-- TAG-NR-RRC-DEFINITIONS-START

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 {
	-- The 6 most significant bit (MSB) of the 10 bit System Frame Number. The 4 LSB of the SFN are conveyed in the PBCH transport block 
	-- as well but outside the MIB. 
	systemFrameNumber					BIT STRING (SIZE (6)),

	-- Subcarrier spacing for SIB1, Msg.2/4 for initial access and broadcast SI-messages.
	-- If the UE acquires this MIB on a carrier frequency <6GHz, the values 15 and 30 kHz are applicable. 
	-- If the UE acquires this MIB on a carrier frequency >6GHz, the values 60 and 120 kHz are applicable. 
	subCarrierSpacingCommon				ENUMERATED {scs15or60, scs30or120},

	-- The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. (See 38.211, section 7.4.3.1)
	-- Note: For frequencies <6 GHz a fith, this field may comprise only the 4 least significant bits of the ssb-SubcarrierOffset.
	-- The codepoint "FFS_RAN1" indicates that this cell does not provide SIB1 and that there is hence no common CORESET.
	ssb-SubcarrierOffset				INTEGER (0..15),

	-- Position of (first) DL DM-RS. Corresponds to L1 parameter 'DL-DMRS-typeA-pos' (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)
	pdcch-ConfigSIB1					INTEGER (0..255), 

	-- Indicates that UE shall not camp on this cell
	cellBarred							ENUMERATED {barred, notBarred}, 
	
	-- Controls cell reselection to intra-frequency cells when the highest ranked cell is barred, or treated as barred by the UE, 
	-- as specified in TS 38.304.
	intraFreqReselection				ENUMERATED {allowed, notAllowed},
	spare								BIT STRING (SIZE (1))
}

-- TAG-MIB-STOP
-- TAG-MEASUREMENTREPORT-START

MeasurementReport ::=				SEQUENCE {
	criticalExtensions					CHOICE {
		measurementReport							MeasurementReport-IEs,
		criticalExtensionsFuture					SEQUENCE {}
	}
}

MeasurementReport-IEs ::=		SEQUENCE {
	measResults						MeasResults,

	lateNonCriticalExtension				OCTET STRING															OPTIONAL,
	nonCriticalExtension					SEQUENCE{}																OPTIONAL
}

-- 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 EN-DC this field may only be present if the RRCReconfiguration
	-- is transmitted over SRB3. 
	radioBearerConfig						RadioBearerConfig 														OPTIONAL, -- Need M

	-- Configuration of secondary cell group (EN-DC):
	secondaryCellGroup						OCTET STRING (CONTAINING CellGroupConfig)								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 {
	lateNonCriticalExtension				OCTET STRING															OPTIONAL,
	nonCriticalExtension					SEQUENCE {}																OPTIONAL 
}

-- TAG-RRCRECONFIGURATIONCOMPLETE-STOP
-- TAG-SIB1-START

SIB1 ::=		SEQUENCE {

	-- FFS / TODO: Add other parameters. 

	-- Frequency offset for the SSB of -5kHz (M=-1) or +5kHz (M=1). When the field is absent, the UE applies no offset (M=0).
	-- The offset is only applicable for the frequency range 0-2.65GHz. Corresponds to parameter 'M' (see 38.101, section FFS_Section)
	frequencyOffsetSSB				ENUMERATED {khz-5, khz5}																OPTIONAL,	-- Need R

	-- 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),

	uplinkConfigCommon						UplinkConfigCommon											OPTIONAL,
	-- FFS: How to indicate the FrequencyInfoUL for the SUL
	supplementaryUplink					SEQUENCE {
		uplinkConfigCommon					UplinkConfigCommon											OPTIONAL 
		-- FFS: Add additional (selection) criteria determining when/whether the UE shall use the SUL frequency 
	}																									OPTIONAL, -- Cond SUL

	tdd-UL-DL-Configuration				TDD-UL-DL-ConfigCommon											OPTIONAL, -- Cond TDD
	tdd-UL-DL-configurationCommon2		TDD-UL-DL-ConfigCommon											OPTIONAL, -- Cond TDD

	pdcch-ConfigCommon					PDCCH-ConfigCommon												OPTIONAL,
	pucch-ConfigCommon					PUCCH-ConfigCommon												OPTIONAL,

	lateNonCriticalExtension				OCTET STRING															OPTIONAL,
	nonCriticalExtension					SEQUENCE{}																OPTIONAL 
}

-- TAG-SIB1-STOP
-- TAG-SETUP-RELEASE-START

SetupRelease { ElementTypeParam } ::= CHOICE {
	release			NULL,
	setup			ElementTypeParam
}

-- TAG-SETUP-RELEASE-STOP
-- TAG-ADDITIONALSPECTRUMEMISSION-START

AdditionalSpectrumEmission ::=				INTEGER (0..7)

-- TAG-ADDITIONALSPECTRUMEMISSION-STOP
-- TAG-ALPHA-START

Alpha ::=						ENUMERATED {alpha0, alpha04, alpha05, alpha06, alpha07, alpha08, alpha09, alpha1}

-- TAG-ALPHA-STOP
-- TAG-ARFCN-VALUE-NR-START

ARFCN-ValueNR ::=				INTEGER (0..3279165)

-- TAG-ARFCN-VALUE-NR-STOP
-- TAG-BANDWIDTH-PART-START


-- Generic parameters used in Uplink- and Downlink bandwidth parts
BWP ::= 					SEQUENCE {
	-- Frequency domain location and bandwidth of this bandwidth part defined commonly in a table (FFS_Section). The location is given as 
	-- distance (in number of PRBs) to point A (absoluteFrequencyPointA in FrequencyInfoDL). 
	-- 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 bwp-Id) must have the same location (see 38.211, section REF)
	locationAndBandwidth			INTEGER (0..37949),
	-- Subcarrier spacing to be used in this BWP for all channels and 
	-- reference signals unless explicitly configured elsewhere.
	-- Corresponds to subcarrier spacing according to 38.211, Table 4.2-1. 
	-- The value kHz15 corresponds to µ=0, kHz30 to µ=1, and so on. Only the values 15 or 30 kHz  (<6GHz), 60 or 120 kHz (>6GHz) are 
	-- applicable.
	subcarrierSpacing				SubcarrierSpacing,
	-- 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	-- Need R
}

BWP-Uplink ::= 			SEQUENCE {
	-- An identifier for this bandwidth part. Other parts of the RRC configuration use the BWP-Id to associate themselves with a particular
	-- bandwidth part. The BWP ID=0 is always associated with the initial BWP and may hence not be used here (in other bandwidth parts).
	-- The NW may trigger the UE to swtich UL or DL BWP using a DCI field. The four code points in that DCI field map to the RRC-configured 
	-- BWP-ID as follows: For up to 3 configured BWPs (in addition to the initial BWP) the DCI code point is equivalent to the BWP ID 
	-- (initial = 0, first dedicated = 1, ...). If the NW configures 4 dedicated bandwidth parts, they are identified by DCI code 
	-- points 0 to 3. In this case it is not possible to switch to the initial BWP using the DCI field.
	-- Corresponds to L1 parameter 'UL-BWP-index'. (see 38.211, 38.213, section 12)
	bwp-Id								BWP-Id,
	bwp-Common							BWP-UplinkCommon														OPTIONAL,	-- Need M
	bwp-Dedicated						BWP-UplinkDedicated														OPTIONAL,	-- Need M
	...
}

BWP-UplinkCommon ::=				SEQUENCE {
	genericParameters					BWP,
	-- Configuration of cell specific random access parameters which the UE uses for contention based and contention free random access
	-- as well as for contention based beam failure recovery. 
	rach-ConfigCommon					SetupRelease { RACH-ConfigCommon }										OPTIONAL, 	-- Need M
	-- Cell specific parameters for the PUSCH
	pusch-ConfigCommon					SetupRelease { PUSCH-ConfigCommon }										OPTIONAL, 	-- Need M
	
	-- Cell specific parameters for the PUCCH
	pucch-ConfigCommon					SetupRelease { PUCCH-ConfigCommon }										OPTIONAL, 	-- Need M
	...
}

BWP-UplinkDedicated ::= 	SEQUENCE {
	-- PUCCH configuration for one BWP of the regular UL or SUL of a serving cell. If the UE is configured with SUL, the network 
	-- configures PUCCH only on the BWPs of one of the uplinks (UL or SUL).
	pucch-Config						SetupRelease { PUCCH-Config }											OPTIONAL, 	-- Need M
	-- PUSCH configuration for one BWP of the regular UL or SUL of a serving cell. If the UE is configured with SUL and
	-- if it has a PUSCH-Config for both UL and SUL, a carrier indicator field in DCI indicates for which of the two to use an UL grant.
	-- See also L1 parameter 'dynamicPUSCHSUL' (see 38.213, section FFS_Section)
	pusch-Config						SetupRelease { PUSCH-Config }											OPTIONAL, 	-- Need M
	-- A Configured-Grant of typ1 or type2. It may be configured for Ul or SUL but in case of type1 [FFS also type2] not for both at a time.
	configuredGrantConfig				SetupRelease { ConfiguredGrantConfig }									OPTIONAL, 	-- Need M
	-- Uplink sounding reference signal configuration
	srs-Config							SetupRelease { SRS-Config }												OPTIONAL, 	-- Need M
	-- Determines how the UE performs Beam Failure Recovery upon detection of a Beam Failure (see RadioLinkMonitoringConfig)
	beamFailureRecoveryConfig			SetupRelease { BeamFailureRecoveryConfig }								OPTIONAL,	-- Need M
	...
}


BWP-Downlink ::= 					SEQUENCE {
	-- An identifier for this bandwidth part. Other parts of the RRC configuration use the BWP-Id to associate themselves with a particular
	-- bandwidth part. The BWP ID=0 is always associated with the initial BWP and may hence not be used here. (in other bandwidth parts).
	-- The NW may trigger the UE to swtich UL or DL BWP using a DCI field. The four code points in that DCI field map to the RRC-configured 
	-- BWP-ID as follows: For up to 3 configured BWPs (in addition to the initial BWP) the DCI code point is equivalent to the BWP ID 
	-- (initial = 0, first dedicated = 1, ...). If the NW configures 4 dedicated bandwidth parts, they are identified by DCI code 
	-- points 0 to 3. In this case it is not possible to switch to the initial BWP using the DCI field.
	-- Corresponds to L1 parameter 'DL-BWP-index'. (see 38.211, 38.213, section 12)
	bwp-Id								BWP-Id,
	bwp-Common							BWP-DownlinkCommon														OPTIONAL,	-- Need M
	bwp-Dedicated						BWP-DownlinkDedicated													OPTIONAL,	-- Need M
	...
}


BWP-DownlinkCommon ::=				SEQUENCE {
	genericParameters					BWP,
	pdcch-ConfigCommon					SetupRelease { PDCCH-ConfigCommon }										OPTIONAL,	-- Need M
	pdsch-ConfigCommon					SetupRelease { PDSCH-ConfigCommon }										OPTIONAL,	-- Need M
	...
}

BWP-DownlinkDedicated ::= 			SEQUENCE {
	pdcch-Config						SetupRelease { PDCCH-Config }											OPTIONAL,	-- Need M
	pdsch-Config						SetupRelease { PDSCH-Config }											OPTIONAL,	-- Need M 
	sps-Config							SetupRelease { SPS-Config }												OPTIONAL, 	-- Need M
	radioLinkMonitoringConfig			SetupRelease { RadioLinkMonitoringConfig }								OPTIONAL,	-- Need M
	...
}


-- TAG-BANDWIDTH-PART-STOP 
-- TAG-BWP-ID-START

BWP-Id ::=							INTEGER (0..maxNrofBWPs)

-- TAG-BWP-ID-STOP
-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-START

BeamFailureRecoveryConfig ::= 		SEQUENCE {
	rootSequenceIndex-BFR				INTEGER (0..137)															OPTIONAL,	--	Need M
	-- Configuration of contention free random access occasions for BFR
	rach-ConfigBFR						RACH-ConfigGeneric															OPTIONAL,	--	Need M
	-- L1-RSRP threshold used for determining whether a candidate beam may be used by the UE to attempt contention free 
	-- Random Access to recover from beam failure. The signalled threshold is applied directly for SSB, a threshold for 
	-- CSI-RS is determined by linearly scaling singalled value based on Pc_ss corresponding to the CSI-RS resource.
	-- (see FFS_Specification, FFS_Section)
	candidateBeamThreshold		RSRP-Range																			OPTIONAL,	--	Need M
	-- A list of reference signals (CSI-RS and/or SSB) identifying the candidate beams for recover and the associated RA parameters
	candidateBeamRSList					SEQUENCE (SIZE(1..maxNrofCandidateBeams)) OF PRACH-ResourceDedicatedBFR		OPTIONAL,	--	Need M
	-- Explicitly signalled PRACH Mask Index for RA Resource selection in TS 36.321. The mask is valid for all SSB resources
	ra-ssb-OccasionMaskIndex			INTEGER (0..15)																OPTIONAL, 	--	Need M
	-- Control Resource Set that the UE uses to receive the random access response for beam failure recovery. 
	-- If the field is absent the UE uses the initial CORESET (ControlResourceSetId = 0)
	recoveryControlResourceSetId		ControlResourceSetId														OPTIONAL	,	-- Need S
	-- Search space to use for BFR RAR. If the field is absent, the UE uses the initial Serach Space (SearchSpaceId = 0).
	recoverySearchSpaceId				SearchSpaceId																OPTIONAL,	-- Need S
	...
}

PRACH-ResourceDedicatedBFR ::= 		CHOICE {
	ssb									BFR-SSB-Resource,
	csi-RS								BFR-CSIRS-Resource
}

BFR-SSB-Resource ::= 			SEQUENCE {
	-- The ID of an SSB transmitted by this serving cell. It determines a candidate beam for beam failure recovery (BFR)
	ssb								SSB-Index,
	-- The preamble index that the UE shall use when performing BFR upon selecting the candidate beams identified by this SSB.
	ra-PreambleIndex				INTEGER (0..63),
	...
}

BFR-CSIRS-Resource ::=			SEQUENCE {
	-- The ID of a NZP-CSI-RS-Resource configured in the CSI-MeasConfig of this serving cell. This reference signal determines a candidate beam
	-- for beam failure recovery (BFR).
	csi-RS							NZP-CSI-RS-ResourceId,
	-- RA occasions that the UE shall use when performing BFR upon selecting the candidate beam identified by this CSI-RS. If the field is absent
	-- the UE uses the RA occasion associated with the SSB that is QCLed with this CSI-RS. 
	-- The RA preamble index to use in the RA occasions associated with this CSI-RS. If the field is absent, the UE uses the preamble index
	-- associated with the SSB that is QCLed with this CSI-RS. 
	ra-PreambleIndex				INTEGER (0..63)																	OPTIONAL,	-- Need R
	...
}

-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-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..maxLC-ID)) OF RLC-Bearer-Config				OPTIONAL,   -- Need N
	rlc-BearerToReleaseList						SEQUENCE (SIZE(1..maxLC-ID)) OF LogicalChannelIdentity			OPTIONAL,   -- Need N

	-- Parameters applicable for the entire cell group:
	mac-CellGroupConfig							MAC-CellGroupConfig												OPTIONAL,	-- Need M
	physicalCellGroupConfig						PhysicalCellGroupConfig											OPTIONAL,	-- Need M

	-- Serving Cell specific parameters (SpCell and SCells)
	spCellConfig								SpCellConfig													OPTIONAL, 	-- Need M
	sCellToAddModList							SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig				OPTIONAL,	-- Need N
	-- List of seconary serving cells to be released (not applicable for SpCells)
	sCellToReleaseList							SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex				OPTIONAL,	-- Need N
	...
}

-- The ID of a cell group. 0 identifies the master cell group. Other values identify secondary cell groups.
-- In this version of the specification only values 0 and 1 are supported.
-- FFS: This should be moved to be own IE section
CellGroupId ::=									INTEGER (0.. maxSecondaryCellGroups)


RLC-Bearer-Config ::=								SEQUENCE {
	-- ID used commonly for the MAC logical channel and for the RLC bearer.
	logicalChannelIdentity						LogicalChannelIdentity,

	-- Associates the RLC Bearer with an SRB or a DRB. The UE shall deliver DL RLC SDUs received via the RLC entity of this
	-- RLC bearer to the PDCP entity of the servedRadioBearer. Furthermore, the UE shall advertise and deliver uplink PDCP PDUs of the 
	-- uplink PDCP entity of the servedRadioBearer to the uplink RLC entity of this RLC bearer unless the uplink scheduling 
	-- restrictions ('moreThanOneRLC' in PDCP-Config and the restrictions in LogicalChannelConfig) forbid it to do so.
	servedRadioBearer							CHOICE {
		srb-Identity                           SRB-Identity,
		drb-Identity                           DRB-Identity
	}																											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..maxLC-ID)

-- 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) for PUCCH 
	-- reporting of HARQ-ACK. 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-SpatialBundlingPUCCH				ENUMERATED {true}												OPTIONAL,	-- Need R

	-- Enables spatial bundling of HARQ ACKs. It is configured per cell group (i.e. for all the cells within the cell group) for PUSCH 
	-- reporting of HARQ-ACK. 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-SpatialBundlingPUSCH				ENUMERATED {true}												OPTIONAL,	-- Need R
	-- The maximum transmit power to be used by the UE in this NR cell group. 
	p-NR										P-Max															OPTIONAL,	-- Need R
	-- The PDSCH HARQ-ACK codebook is 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)
	pdsch-HARQ-ACK-Codebook						ENUMERATED {semiStatic, dynamic},
	-- RNTI used for SRS TPC commands on DCI. Corresponds to L1 parameter 'TPC-SRS-RNTI' (see 38.213, section 10)
	tpc-SRS-RNTI								RNTI-Value														OPTIONAL,	-- Need R
	-- RNTI used for PUCCH TPC commands on DCI. Corresponds to L1 parameter 'TPC-PUCCH-RNTI' (see 38.213, section 10).
	tpc-PUCCH-RNTI								RNTI-Value														OPTIONAL,	-- Need R
	-- RNTI used for PUSCH TPC commands on DCI. Corresponds to L1 parameter 'TPC-PUSCH-RNTI' (see 38.213, section 10)
	tpc-PUSCH-RNTI	RNTI-Value																					OPTIONAL,-- Need R
	...
}


-- Serving cell specific MAC and PHY parameters for a SpCell:
SpCellConfig ::=						SEQUENCE {
	-- Serving cell ID of a PSCell (the PCell of the Master Cell Group uses ID = 0)
	servCellIndex						ServCellIndex															OPTIONAL,	-- Cond SCG
	-- Parameters for the synchronous reconfiguration to the target SpCell:
	reconfigurationWithSync 			ReconfigurationWithSync 												OPTIONAL,	-- Cond ReconfWithSync
	rlf-TimersAndConstants				SetupRelease { RLF-TimersAndConstants }									OPTIONAL,	-- Need M
	rlmInSyncOutOfSyncThreshold         INTEGER (0..1)                         									OPTIONAL,	-- Need M
	spCellConfigDedicated				ServingCellConfig														OPTIONAL,	-- Need M
	...
}

ReconfigurationWithSync ::=			SEQUENCE {
	spCellConfigCommon					ServingCellConfigCommon													OPTIONAL,	-- Need M
	newUE-Identity						RNTI-Value,
	t304								ENUMERATED {ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000},
		rach-ConfigDedicated				CHOICE {
			uplink								RACH-ConfigDedicated,
			supplementaryUplink					RACH-ConfigDedicated
	}																											OPTIONAL,	-- Need N
	...
}			

SCellConfig ::=						SEQUENCE {
	sCellIndex							SCellIndex,
	sCellConfigCommon					ServingCellConfigCommon													OPTIONAL,	-- Cond SCellAdd
	sCellConfigDedicated				ServingCellConfig														OPTIONAL,	-- Cond SCellAddMod
	...
}

-- TAG-CELL-GROUP-CONFIG-STOP 
-- TAG-CODEBOOKCONFIG-START
CodebookConfig ::= 									SEQUENCE {
	-- 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										CHOICE {
				typeI-SinglePanel									SEQUENCE {
					nrOfAntennaPorts									CHOICE {
						two													SEQUENCE {
							-- Codebook subset restriction for 2TX codebook 
							-- Corresponds to L1 parameter ' TypeI-SinglePanel-2Tx-CodebookSubsetRestriction' (see 38.214 section 5.2.2.2.1)
							twoTX-CodebookSubsetRestriction						BIT STRING (SIZE (6))
						},
						moreThanTwo											SEQUENCE {
							-- Number of antenna ports in first (n1) and second (n2) dimension and codebook subset restriction
							-- Corresponds to L1 parameters 'CodebookConfig-N1', 'CodebookConfig-N2'
							-- 'TypeI-SinglePanel-CodebookSubsetRestriction ' (see 38.214 section 5.2.2.2.1)
							n1-n2												CHOICE {
								two-one-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (8)),
								two-two-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (64)),
								four-one-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (16)),
								three-two-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (96)),
								six-one-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (24)),
								four-two-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (128)),
								eight-one-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (32)),
								four-three-TypeI-SinglePanel-Restriction			BIT STRING (SIZE (192)),
								six-two-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (192)),
								twelve-one-TypeI-SinglePanel-Restriction			BIT STRING (SIZE (48)),
								four-four-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (256)),
								eight-two-TypeI-SinglePanel-Restriction				BIT STRING (SIZE (256)),
								sixteen-one-TypeI-SinglePanel-Restriction			BIT STRING (SIZE (64))
							},
							-- 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 5.2.2.2.1)
							typeI-SinglePanel-codebookSubsetRestriction-i2		BIT STRING (SIZE (16))	OPTIONAL
						}
					},
					-- Restriction for RI for TypeI-SinglePanel-RI-Restriction
					-- Corresponds to L1 parameter 'TypeI-SinglePanel-RI-Restriction' (see 38.214, section 5.2.2.2.1)
					typeI-SinglePanel-ri-Restriction					BIT STRING (SIZE (8))
				}, 
				typeI-MultiPanel									SEQUENCE {
					-- Codebook subset restriction for Type I Multi-panel codebook
					-- Corresponds to L1 parameter 'TypeI-MultiPanel-CodebookSubsetRestriction' (see 38.214, section 5.2.2.2.2)
					ng-n1-n2												CHOICE {
						two-two-one-TypeI-MultiPanel-Restriction				BIT STRING (SIZE (8)),
						two-four-one-TypeI-MultiPanel-Restriction				BIT STRING (SIZE (32)),
						four-two-one-TypeI-MultiPanel-Restriction				BIT STRING (SIZE (32)),
						two-two-two-TypeI-MultiPanel-Restriction				BIT STRING (SIZE (128)),
						two-eight-one-TypeI-MultiPanel-Restriction				BIT STRING (SIZE (64)),
						four-four-one-TypeI-MultiPanel-Restriction				BIT STRING (SIZE (64)),
						two-four-two-TypeI-MultiPanel-Restriction				BIT STRING (SIZE (256)),
						four-two-two-TypeI-MultiPanel-Restriction				BIT STRING (SIZE (256))
					},
					-- Restriction for RI for TypeI-MultiPanel-RI-Restriction
					-- Corresponds to L1 parameter 'TypeI-MultiPanel-RI-Restriction' (see 38.214, section 5.2.2.2.2)
					ri-Restriction							BIT STRING (SIZE (4))
				}
			},
			-- CodebookMode as specified in 38.214 section 5.2.2.2.2
			codebookMode										INTEGER (1..2)

		},
		type2									SEQUENCE {
			subType									CHOICE {
				typeII									SEQUENCE {
					-- Number of antenna ports in first (n1) and second (n2) dimension and codebook subset restriction
					-- Corresponds to L1 parameters 'CodebookConfig-N1', 'CodebookConfig-N2'
					-- The CHOICE name indicates the value of n1 and n2, the CHOICE contents is the codebook subset restriction bitmap
					-- Corresponds to L1 parameter ' TypeII-CodebookSubsetRestriction' (see 38.214 section 5.2.2.2.3)
					-- Number of bits for codebook subset restriction is ceil(log2(nchoosek(O1*O2,4)))+8*n1*n2 where nchoosek(a,b) = a!/(b!(a-b)!)
					n1-n2-codebookSubsetRestriction			CHOICE {
						two-one									BIT STRING (SIZE (16)),
						two-two									BIT STRING (SIZE (139)),
						four-one								BIT STRING (SIZE (32)),
						three-two								BIT STRING (SIZE (59)),
						six-one									BIT STRING (SIZE (49)),
						four-two								BIT STRING (SIZE (75)),
						eight-one								BIT STRING (SIZE (65)),
						four-three								BIT STRING (SIZE (107)),
						six-two									BIT STRING (SIZE (107)),
						twelve-one								BIT STRING (SIZE (129)),
						four-four								BIT STRING (SIZE (139)),
						eight-two								BIT STRING (SIZE (139)),
						sixteen-one								BIT STRING (SIZE (129))
					},
					-- Restriction for RI for TypeII-RI-Restriction
					-- Corresponds to L1 parameter 'TypeII-RI-Restriction' (see 38.214, section 5.2.2.2.3)
					typeII-RI-Restriction					BIT STRING (SIZE (2))
				}, 
				typeII-PortSelection					SEQUENCE {
					-- The size of the port selection codebook (parameter d)
					portSelectionSamplingSize				ENUMERATED {n1, n2, n3, n4}					OPTIONAL,		-- Cond TypeII-PortSelection
					-- Restriction for RI for TypeII-PortSelection-RI-Restriction
					-- Corresponds to L1 parameter 'TypeII-PortSelection-RI-Restriction' (see 38.214, section 5.2.2.4)
					typeII-PortSelectionRI-Restriction		BIT STRING (SIZE (2))
				}
			},
			-- 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 {two, three, four}
		}
	}
}

-- TAG-CODEBOOKCONFIG-STOP
-- TAG-CONFIGUREDGRANTCONFIG-START

ConfiguredGrantConfig ::=				SEQUENCE {

	-- Frequency hopping as agreed in RAN1-AH18776
	frequencyHopping             ENUMERATED {mode1, mode2},
	-- DMRS configuration, as agreed in RAN1-AH18776
	cg-DMRS-Configuration		DMRS-UplinkConfig,

	-- Indicates the MCS table the UE shall use for PUSCH without transform precoding, as agreed in RAN1-AH18776
	mcs-Table					ENUMERATED {qam64, qam256},
	-- Indicates the MCS table the UE shall use for PUSCH with transform precoding, as agreed in RAN1-AH18776
	-- When the field is absent the UE applies the value 64QAM
	mcs-TableTransformPrecoder		ENUMERATED {qam256}																	OPTIONAL,	-- Need S
	-- Selection between and configuration of dynamic and semi-static beta-offset, as agreed in RAN1-AH18776
	-- Note: For Type 1 UL data transmission without grant, "uci-on-PUSCH" should be set to semiStatic
	uci-OnPUSCH							SetupRelease { CG-UCI-OnPUSCH },
	-- Configuration of resource allocation type 0 and resource allocation type 1, as agreed in RAN1-AH18776
	-- Note: For Type 1 UL data transmission without grant, "resourceAllocation" should be resourceAllocationType0 or resourceAllocationType1
	resourceAllocation					ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch },
	-- Selection between config 1 and config 2 for RBG size for PUSCH. When the field is absent the UE applies the value config1.
	-- Note: rbg-Size is used when the transformPrecoder parameter is disabled.
	rbg-Size								ENUMERATED {config2}														OPTIONAL,	-- Need S
									
	-- Closed control loop to apply. Corresponds to L1 parameter 'PUSCH-closed-loop-index' (see 38.213, section FFS_Section)
	powerControlLoopToUse					ENUMERATED {n0, n1},
	-- Index of the P0-PUSCH-AlphaSet to be used for this configuration
	p0-PUSCH-Alpha							P0-PUSCH-AlphaSetId,
	-- Enable transformer precoder for type1 and type2. Absence indicates that it is disabled.
	-- Corresponds to L1 parameter 'UL-TWG-tp' (see 38.214, section 6.1.3)
	transformPrecoder						ENUMERATED {enabled}														OPTIONAL,	-- Need R
	-- The number of HARQ processes configured. It applies for both Type 1 and Type 2
	-- Corresponds to L1 parameter 'UL-TWG-numbHARQproc' (see 38.321, section 5.8.2)
	nrofHARQ-Processes						INTEGER(1..16),
	-- 	The number or repetitions of K:
	repK									ENUMERATED {n1, n2, n4, n8},
	-- If repetitions is used, this field indicates the redundancy version (RV) sequence to use.
	-- Corresponds to L1 parameter 'UL-TWG-RV-rep' (see 38.321, section 5.8.2)
	repK-RV									ENUMERATED {s1-0231, s2-0303, s3-0000}										OPTIONAL,	-- Cond RepK
	-- Periodicity for UL transmission without UL grant for type 1 and type 2
	-- Corresponds to L1 parameter 'UL-TWG-periodicity' (see 38.321, section 5.8.2)

	-- The following periodicities are supported depending on the configured subcarrier spacing [symbols]:
	--	15kHz: 2, 7, n*14, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 320, 640}
	--	30kHz: 2, 7, n*14, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 640, 1280}
	--	60kHz with normal CP: 2, 7, n*14, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 512, 640, 1280, 2560}
	--	60kHz with ECP: 2, 6, n*12, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 512, 640, 1280, 2560}
	--	120kHz: 2, 7, n*14, where n={1, 2, 4, 5, 8, 10, 16, 20, 32, 40, 64, 80, 128, 160, 256, 320, 512, 640, 1024, 1280, 2560, 5120}
	-- (see 38.214, Table 6.1.2.3-1)
	periodicity								ENUMERATED {
												sym2, sym7, sym1x14, sym2x14, sym4x14, sym5x14, sym8x14, sym10x14, sym16x14, sym20x14,
												sym32x14, sym40x14, sym64x14, sym80x14, sym128x14, sym160x14, sym256x14, sym320x14, sym512x14,
												sym640x14, sym1024x14, sym1280x14, sym2560x14, sym5120x14,

												sym6, sym1x12, sym2x12, sym4x12, sym5x12, sym8x12, sym10x12, sym16x12, sym20x12, sym32x12,
												sym40x12, sym64x12, sym80x12, sym128x12, sym160x12, sym256x12, sym320x12, sym512x12, sym640x12,
												sym1280x12, sym2560x12
											},

	-- If configured, the UE uses the configured grant timer (see 38.321, section 5.8.2) with this initial timer value.
	-- Supported values are as follows in units of symbols:
	-- For normal CP: 2, 7, {1, 2, 4, 5, 8, 10, 20, 32, 40, 64, 80, 128, 160, 256, 512, 640 } x 14
	-- For extended CP: 2, 6, {1, 2, 4, 8, 20, 40, 80, 128, 160, 256, 320, 512, 640 } x 12
	configuredGrantTimer					ENUMERATED {
												sym2, sym7, sym1x14, sym2x14, sym4x14, sym5x14, sym8x14, sym10x14, sym16x14, sym20x14, sym32x14,
												sym40x14, sym64x14, sym80x14, sym128x14, sym160x14, sym256x14, sym512x14, sym640x14,

												sym6, sym1x12, sym2x12, sym4x12, sym5x12, sym8x12, sym10x12, sym16x12, sym20x12, sym32x12,
												sym40x12, sym64x12, sym80x12, sym128x12, sym256x12, sym320x12, sym512x12, sym640x12
											}																			OPTIONAL,	-- Need R
	-- Selection between "configured grant" transmission with fully RRC-configured UL grant (Type1) 
	-- or with UL grant configured by DCI addressed to CS-RNTI (Type2).
	rrc-ConfiguredUplinkGrant		SEQUENCE {
			-- Offset related to SFN=0
			timeDomainOffset						INTEGER  (0..5119),
			-- Corresponding to the DCI field of time domain resource assignment, and the maximum bit width is 4.
			--(see 38.214, section 6.1.2 and 38.212, section 7.3.1)
			timeDomainAllocation					 INTEGER  (0..15), -- RAN1 indicated just "Mapping-type,Index-start-len"
            -- Corresponding to the DCI field of freq domain resource assignment. 
			-- (see 38.214, section 6.1.2, and 38.212, section 7.3.1)
			frequencyDomainAllocation				BIT STRING (SIZE(18)),
			-- UE-specific DMRS configuration: corresponding to the DCI field of antenna ports, and the maximum bitwidth is 5. 
			-- (see 38.214, section 6.1.2, and 38.212, section 7.3.1)
            antennaPort								INTEGER   (0..31),
            dmrs-SeqInitialization					INTEGER   (0..1)          					  OPTIONAL,  -- Cond NoTransformPrecoder
            precodingAndNumberOfLayers				INTEGER   (0..63),
            srs-ResourceIndicator					INTEGER   (0..15),
			-- The modulation order, target code rate and TB size (see 38.214, section 6.1.2)
			mcsAndTBS								INTEGER (0..31),
			-- Enables intra-slot frequency hopping with the given frequency hopping offset
			-- Corresponds to L1 parameter 'UL-TWG-hopping' (see 38.214, section FFS_Section)

			frequencyHoppingOffset					INTEGER (1.. maxNrofPhysicalResourceBlocks-1),
			pathlossReferenceIndex					INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1),
			...
	}																								OPTIONAL  -- Cond Type1
}

CG-UCI-OnPUSCH ::= CHOICE {
	dynamic									SEQUENCE (SIZE (1..4)) OF BetaOffsets,
	semiStatic								BetaOffsets
}

-- TAG-CONFIGUREDGRANTCONFIG-STOP
-- TAG-CONTROLRESOURCESET-START

ControlResourceSet ::= 					SEQUENCE {
	-- Corresponds to L1 parameter 'CORESET-ID'
	-- Value 0 identifies the common CORESET configured in MIB and in ServingCellConfigCommon
	-- Values 1..maxNrofControlResourceSets-1 identify CORESETs configured by dedicated signalling
	-- The controlResourceSetId is unique among the BWPs of a ServingCell.
	controlResourceSetId					ControlResourceSetId,


	-- Frequency domain resources for the CORESET. Each bit corresponds a group of 6 RBs, with grouping starting from PRB 0, which is fully 
	-- contained in the bandwidth part within which the CORESET is configured. 
	-- The most significant bit corresponds to the group of lowest frequency which is fully contained in the bandwidth part within which the 
	-- CORESET is configured, each next subsequent lower significance bit corresponds to the next lowest frequency group fully contained within
	-- the bandwidth part within which the CORESET is configured, if any. 
	-- Bits corresponding to a group not fully contained within the bandwidth part within which the CORESET is configured are set to zero. 
	-- Corresponds to L1 parameter 'CORESET-freq-dom'(see 38.211, section 7.3.2.2)
	frequencyDomainResources				BIT STRING (SIZE (45)),
	-- Contiguous time duration of the CORESET in number of symbols 
	-- Corresponds to L1 parameter 'CORESET-time-duration' (see 38.211, section 7.3.2.2FFS_Section)
	duration								INTEGER (1..maxCoReSetDuration),
	-- Mapping of Control Channel Elements (CCE) to Resource Element Groups (REG). 
	-- Corresponds to L1 parameter 'CORESET-CCE-REG-mapping-type' (see 38.211Section sections 7.3.2.2 and 7.4.1.3.2)
	cce-REG-MappingType							CHOICE { 
		interleaved								SEQUENCE {
			-- Resource Element Groups (REGs) can be bundled to create REG bundles. This parameter defines the size of such bundles. 
			-- Corresponds to L1 parameter 'CORESET-REG-bundle-size' (see 38.211, section FFS_Section)
			reg-BundleSize							ENUMERATED {n2, n3, n6},
			-- Corresponds to L1 parameter 'CORESET-interleaver-size' (see 38.211, 38.213, section FFS_Section)
			interleaverSize							ENUMERATED {n2, n3, n6}, 
			-- Corresponds to L1 parameter 'CORESET-shift-index' (see 38.211, section 7.3.2.2)
			shiftIndex								INTEGER(0..maxNrofPhysicalResourceBlocks-1)
		}, 
		nonInterleaved 							NULL
	},
	-- Precoder granularity in frequency domain. 
	-- Corresponds to L1 parameter 'CORESET-precoder-granuality' (see 38.211, sections 7.3.2.2 and 7.4.1.3.2)
	precoderGranularity						ENUMERATED {sameAsREG-bundle, allContiguousRBs},

	-- A subset of the TCI states defined in TCI-States used for providing QCL relationships between the DL RS(s) in one RS Set 
	-- (TCI-State) and the PDCCH DMRS ports. Corresponds to L1 parameter 'TCI-StatesPDCCH' (see 38.214, section FFS_Section)
	tci-StatesPDCCH							SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId				OPTIONAL,	-- Need R

	-- 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.
	-- Corresponds to L1 parameter 'TCI-PresentInDCI' (see 38,213, section 5.1.5)
	tci-PresentInDCI						ENUMERATED {enabled}													OPTIONAL, 	-- Need S

	-- 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 '0'.
	pdcch-DMRS-ScramblingID					BIT STRING (SIZE (16))													OPTIONAL 	-- Need S
}

-- TAG-CONTROLRESOURCESET-STOP
-- TAG-CONTROL-RESOURCE-SET-ID-START

ControlResourceSetId ::=				INTEGER (0..maxNrofControlResourceSets-1)

-- TAG-CONTROL-RESOURCE-SET-ID-STOP

CrossCarrierSchedulingConfig ::=		SEQUENCE {
	schedulingCellInfo						CHOICE {
		own										SEQUENCE {					-- No cross carrier scheduling
			cif-Presence							BOOLEAN
		},
		other									SEQUENCE {					-- Cross carrier scheduling
			schedulingCellId						ServCellIndex,
			cif-InSchedulingCell					INTEGER (1..7)
		}																	-- Cond SCellOnly
	},
	...
}

-- TAG-CSI-APERIODICTRIGGERSTATELIST-START

CSI-AperiodicTriggerStateList ::=	SEQUENCE (SIZE (1..maxNrOfCSI-AperiodicTriggers)) OF CSI-AperiodicTriggerState 

CSI-AperiodicTriggerState ::=		SEQUENCE {
	associatedReportConfigInfoList		SEQUENCE (SIZE(1..maxNrofReportConfigPerAperiodicTrigger)) OF CSI-AssociatedReportConfigInfo,
	...	
}

CSI-AssociatedReportConfigInfo ::=		SEQUENCE {
	-- The reportConfigId of one of the CSI-ReportConfigToAddMod configured in CSI-MeasConfig
	reportConfigId						CSI-ReportConfigId,

	resourcesForChannel					CHOICE {
       nzp-CSI-RS							SEQUENCE {
			-- NZP-CSI-RS-ResourceSet for channel measurements. Entry number in nzp-CSI-RS-ResourceSetList in the CSI-ResourceConfig 
			-- indicated by resourcesForChannelMeasurement in the CSI-ReportConfig indicated by reportConfigId above 
			-- (1 corresponds to the first entry, 2 to thesecond entry, and so on).
			resourceSet		INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig),

			-- List of references to TCI-States for providing the QCL source and QCL type for for each NZP-CSI-RS-Resource 
			-- listed in nzp-CSI-RS-Resources of the NZP-CSI-RS-ResourceSet indicated by nzp-CSI-RS-ResourcesforChannel. 
			-- First entry in qcl-info-forChannel corresponds to first entry in nzp-CSI-RS-Resources of that NZP-CSI-RS-ResourceSet, 
			-- second entry in qcl-info-forChannel corresponds to second entry in nzp-CSI-RS-Resources,
			-- and so on. Corresponds to L1 parameter 'QCL-Info-aPeriodicReportingTrigger' (see 38.214, section 5.2.1.5.1)
			qcl-info						SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF TCI-StateId
		},
		-- CSI-SSB-ResourceSet for channel measurements. Entry number in csi-SSB-ResourceSetList in the CSI-ResourceConfig indicated by
		-- resourcesForChannelMeasurement in the CSI-ReportConfig indicated by reportConfigId above (1 corresponds to the first entry, 2 to 
		-- the second entry, and so on).
		csi-SSB-ResourceSet					INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfig)
	},

	-- CSI-IM-ResourceSet for interference measurement. Entry number in csi-IM-ResourceSetList in the CSI-ResourceConfig indicated by 
	-- csi-IM-ResourcesForInterference in the CSI-ReportConfig indicated by reportConfigId above (1 corresponds to the first entry, 2 to the second
	-- entry, and so on).
	-- The indicated CSI-IM-ResourceSet should have exactly the same number of resources like the NZP-CSI-RS-ResourceSet indicated in 
	-- nzp-CSI-RS-ResourcesforChannel.
	-- This field can only be present if the CSI-ReportConfig identified by reportConfigId includes csi-IM-ResourcesForInterference.
	csi-IM-ResourcesforInteference				INTEGER(1..maxNrofCSI-IM-ResourceSetsPerConfig)			OPTIONAL, --Cond CSI-IM-forInterference


	-- NZP-CSI-RS-ResourceSet for interference measurement. Entry number in nzp-CSI-RS-ResourceSetList in the CSI-ResourceConfig indicated by 
	-- nzp-CSI-RS-ResourcesForInterference in the CSI-ReportConfig indicated by reportConfigId above (1 corresponds to the first entry,
	-- 2 to the second entry, and so on).
	-- The indicated NZP-CSI-RS-ResourceSet should have exactly the same number of resources like the NZP-CSI-RS-ResourceSet indicated in 
	-- nzp-CSI-RS-ResourcesforChannel.
	-- This field can only be present if the CSI-ReportConfig identified by reportConfigId includes nzp-CSI-RS-ResourcesForInterference.
	nzp-CSI-RS-ResourcesforInterference			INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig)	OPTIONAL, --Cond LinkedNZP-CSI-RS-forInterference
	...
}

-- TAG-CSI-APERIODICTRIGGERSTATELIST-STOP 
-- TAG-CSI-FREQUENCYOCCUPATION-START

CSI-FrequencyOccupation ::=				SEQUENCE {
	-- PRB where this CSI resource starts in relation to PRB 0 of the associated BWP. 
	-- Only multiples of 4 are allowed (0, 4, ...)
	startingRB								INTEGER (0..maxNrofPhysicalResourceBlocks-1),
	-- Number of PRBs across which this CSI resource spans. Only multiples of 4 are allowed. The smallest configurable 
	-- number is the minimum of 24 and the width of the associated BWP.
	nrofRBs									INTEGER (24..maxNrofPhysicalResourceBlocks),
	...
}

-- TAG-CSI-FREQUENCYOCCUPATION-STOP
-- TAG-CSI-IM-RESOURCE-START
CSI-IM-Resource ::= 			SEQUENCE {
	csi-IM-ResourceId						CSI-IM-ResourceId,

	-- The resource element pattern (Pattern0 (2,2) or Pattern1 (4,1)) with corresponding parameters.
	-- Corresponds to L1 parameter 'CSI-IM-RE-pattern' (see 38.214, section 5.2.2.3.4)
	csi-IM-ResourceElementPattern				CHOICE {
		pattern0									SEQUENCE {
			-- OFDM subcarrier occupancy of the CSI-IM resource for Pattern0
			-- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4)
			subcarrierLocation-p0						ENUMERATED { s0, s2, s4, s6, s8, s10 },
			-- OFDM symbol location of the CSI-IM resource for Pattern0 
			-- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4)
			symbolLocation-p0							INTEGER (0..12)
		},
		pattern1									SEQUENCE {
			-- OFDM subcarrier occupancy of the CSI-IM resource for Pattern1
			-- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4)
			subcarrierLocation-p1						ENUMERATED { s0, s4, s8 },
			-- OFDM symbol location of the CSI-IM resource for Pattern1 
			-- Corresponds to L1 parameter 'CSI-IM-ResourceMapping' (see 38.214, section 5.2.2.3.4)
			symbolLocation-p1							INTEGER (0..13)
		}
	}																										OPTIONAL,	--Need M

	-- Frequency-occupancy of CSI-IM. Corresponds to L1 parameter 'CSI-IM-FreqBand' (see 38.214, section 5.2.2.3.2)
	freqBand									CSI-FrequencyOccupation										OPTIONAL,	-- Need M

	-- Periodicity and slot offset for periodic/semi-persistent CSI-IM. Corresponds to L1 parameter 'CSI-IM-timeConfig' 
	periodicityAndOffset					CSI-ResourcePeriodicityAndOffset								OPTIONAL, --Cond PeriodicOrSemiPersistent
	...
}

-- TAG-CSI-IM-RESOURCE-STOP
-- TAG-CSI-IM-RESOURCEID-START
CSI-IM-ResourceId ::= 			INTEGER (0..maxNrofCSI-IM-Resources-1) 

-- TAG-CSI-IM-RESOURCEID-STOP
-- TAG-CSI-IM-RESOURCESET-START
CSI-IM-ResourceSet ::=			SEQUENCE {

	csi-IM-ResourceSetId					CSI-IM-ResourceSetId,
	-- CSI-IM-Resources associated with this CSI-IM-ResourceSet
	-- Corresponds to L1 parameter 'CSI-IM-ResourceConfigList' (see 38.214, section 5.2)
	csi-IM-Resources						SEQUENCE (SIZE(1..maxNrofCSI-IM-ResourcesPerSet)) OF CSI-IM-ResourceId,
	...
}
-- TAG-CSI-IM-RESOURCESET-STOP
-- TAG-CSI-IM-RESOURCESETID-START

CSI-IM-ResourceSetId ::=				INTEGER (0..maxNrofCSI-IM-ResourceSets-1)

-- TAG-CSI-IM-RESOURCESETID-STOP
-- TAG-CSI-MEAS-CONFIG-START

CSI-MeasConfig ::=					SEQUENCE {
	-- Pool of NZP-CSI-RS-Resource which can be referred to from NZP-CSI-RS-ResourceSet
    nzp-CSI-RS-ResourceToAddModList		SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) OF NZP-CSI-RS-Resource					OPTIONAL, -- Need N
	nzp-CSI-RS-ResourceToReleaseList	SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-Resources)) OF NZP-CSI-RS-ResourceId				OPTIONAL, -- Need N

	-- Pool of NZP-CSI-RS-ResourceSet which can be referred to from CSI-ResourceConfig or from MAC CEs
	nzp-CSI-RS-ResourceSetToAddModList	SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) OF NZP-CSI-RS-ResourceSet			OPTIONAL, -- Need N
	nzp-CSI-RS-ResourceSetToReleaseList	SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSets)) OF NZP-CSI-RS-ResourceSetId			OPTIONAL, -- Need N

	-- Pool of CSI-IM-Resource which can be referred to from CSI-IM-ResourceSet
	csi-IM-ResourceToAddModList			SEQUENCE (SIZE (1..maxNrofCSI-IM-Resources)) OF CSI-IM-Resource							OPTIONAL, -- Need N
	csi-IM-ResourceToReleaseList		SEQUENCE (SIZE (1..maxNrofCSI-IM-Resources)) OF CSI-IM-ResourceId						OPTIONAL, -- Need N

	-- Pool of CSI-IM-ResourceSet which can be referred to from CSI-ResourceConfig or from MAC CEs
	csi-IM-ResourceSetToAddModList		SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSets)) OF CSI-IM-ResourceSet					OPTIONAL, -- Need N
	csi-IM-ResourceSetToReleaseList		SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSets)) OF CSI-IM-ResourceSetId					OPTIONAL, -- Need N

	-- Pool of CSI-SSB-ResourceSet which can be referred to from CSI-ResourceConfig
	csi-SSB-ResourceSetToAddModList		SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSets)) OF CSI-SSB-ResourceSet					OPTIONAL, -- Need N
	csi-SSB-ResourceSetToAddReleaseList	SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSets)) OF CSI-SSB-ResourceSetId				OPTIONAL, -- Need N

	-- Configured CSI resource settings as specified in TS 38.214 section 5.2.1.2
	csi-ResourceConfigToAddModList 		SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations)) OF CSI-ResourceConfig			OPTIONAL, -- Need N
	csi-ResourceConfigToReleaseList 	SEQUENCE (SIZE (1..maxNrofCSI-ResourceConfigurations)) OF CSI-ResourceConfigId			OPTIONAL, -- Need N

	-- Configured CSI report settings as specified in TS 38.214 section 5.2.1.1
	csi-ReportConfigToAddModList		SEQUENCE (SIZE (1..maxNrofCSI-ReportConfigurations)) OF CSI-ReportConfig				OPTIONAL, -- Need N
	csi-ReportConfigToReleaseList		SEQUENCE (SIZE (1..maxNrofCSI-ReportConfigurations)) OF CSI-ReportConfigId				OPTIONAL, -- Need N
	

	-- Size of CSI request field in DCI (bits). Corresponds to L1 parameter 'ReportTriggerSize' (see 38.214, section 5.2)
	reportTriggerSize				INTEGER (0..6)																				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: How to address the MAC-CE configuration
	aperiodicTriggerStateList			SetupRelease { CSI-AperiodicTriggerStateList }											OPTIONAL, -- Need M
	semiPersistentOnPUSCH-TriggerStateList			SetupRelease { CSI-SemiPersistentOnPUSCH-TriggerStateList }					OPTIONAL, -- Need M
	...
}

maxNrofNZP-CSI-RS-ResourceSets		INTEGER ::= 		64
maxNrofNZP-CSI-RS-ResourceSets-1	INTEGER ::= 		63

maxNrofCSI-SSB-ResourceSets 		INTEGER ::=			64
maxNrofCSI-SSB-ResourceSets-1 		INTEGER ::=			63

maxNrofCSI-IM-ResourceSets 			INTEGER ::=			64
maxNrofCSI-IM-ResourceSets-1		INTEGER ::=			63

-- TAG-CSI-MEAS-CONFIG-STOP 
-- TAG-CSI-REPORTCONFIG-START
-- Configuration of a CSI-Report sent on L1 (e.g. PUCCH) (see 38.214, section 5.2.1)
CSI-ReportConfig ::=			SEQUENCE {
	reportConfigId							CSI-ReportConfigId,

	-- Indicates in which serving cell the CSI-ResourceConfigToAddMod(s) below are to be found.
	-- If the field is absent, the resources are on the same serving cell as this report configuration.
	carrier									ServCellIndex			OPTIONAL,	-- Need S

	-- Resources for channel measurement. csi-ResourceConfigId of a CSI-ResourceConfig included in the configuration of the serving cell
	-- indicated with the field "carrier" above. This CSI-ReportConfig is associated with the DL BWP indicated by bwp-Id in that CSI-ResourceConfig.
	resourcesForChannelMeasurement			CSI-ResourceConfigId,

	-- CSI IM resources for interference measurement. csi-ResourceConfigId of a CSI-ResourceConfig included in the configuration of the serving cell
	-- indicated with the field "carrier" above. The bwp-Id in that CSI-ResourceConfigToAddMod is the same value like the bwp-Id in the
	-- CSI-ResourceConfig indicated by resourcesForChannelMeasurement.
	csi-IM-ResourcesForInterference			CSI-ResourceConfigId	OPTIONAL,	-- Need R

	-- NZP CSI RS resources for interference measurement. csi-ResourceConfigId of a CSI-ResourceConfigToAddMod included in the configuration of the 
	-- serving cell indicated with the field "carrier" above. The bwp-Id in that CSI-ResourceConfigToAddMod is the same value like the bwp-Id in the
	-- CSI-ResourceConfigToAddMod indicated by resourcesForChannelMeasurement.
	nzp-CSI-RS-ResourcesForInterference		CSI-ResourceConfigId	OPTIONAL, 	-- Need R

	-- 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						CSI-ReportPeriodicityAndOffset,
			-- Indicates which PUCCH resource to use for reporting on PUCCH.
			pucch-CSI-ResourceList					SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
		},
		semiPersistentOnPUCCH					SEQUENCE {
			-- Periodicity and slot offset. Corresponds to L1 parameter 'ReportPeriodicity' and 'ReportSlotOffset' 
			-- (see 38.214, section section 5.2.1.4). 
			reportSlotConfig						CSI-ReportPeriodicityAndOffset,
			-- Indicates which PUCCH resource to use for reporting on PUCCH.
			pucch-CSI-ResourceList					SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
		},
		semiPersistentOnPUSCH					SEQUENCE {
			-- Periodicity. Corresponds to L1 parameter 'Reportperiodicity-spCSI'. (see 38.214, section 5.2.1.1?FFS_Section)
			reportSlotConfig						ENUMERATED {sl5, sl10, sl20, sl40, sl80, sl160, sl320},
			-- Timing offset Y for aperiodic reporting using PUSCH. This field lists the allowed offset values. 
			-- A particular value is indicated in DCI. The first report is transmitted in slot n+Y, second report in n+Y+P,
			-- where P is the configured periodicity.
			reportSlotOffsetList				SEQUENCE (SIZE (1..4)) OF INTEGER (0..7),
			-- RNTI for SP CSI-RNTI, Corresponds to L1 parameter 'SPCSI-RNTI' (see 38.214, section 5.2.1.5.2)
			-- FFS: RAN1 models different RNTIs as different Search Spaces with independent configurations. Align the configuration 
			-- of this one (e.g. group with monitoring periodicity, PDCCH candidate configuration, DCI-Payload size...)?
			csi-RNTI								RNTI-Value,
			-- Index of the p0-alpha set determining the power control for this CSI report transmission. 
			-- Corresponds to L1 parameter 'SPCSI-p0alpha' (see 38.214, section FFS_Section)
			p0alpha									P0-PUSCH-AlphaSetId
		},
		aperiodic								SEQUENCE {
			-- Timing offset Y for aperiodic reporting using PUSCH. This field lists the allowed offset values. A particular value is indicated in DCI. 
			-- (see 38.214, section 5.2.3)
			-- FFS_Value: Range wasn’t final in RAN1 table. 
			-- FFS_FIXME: How are the DCI codepoints mapped to the allowed offsets?
			reportSlotOffsetList				SEQUENCE (SIZE (1..16)) OF INTEGER (0..7)
		}
	},
	-- The CSI related quanities to report. Corresponds to L1 parameter 'ReportQuantity' (see 38.214, section REF)
	reportQuantity							CHOICE {
		none									NULL,
		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 5.2.1.4)
			pdsch-BundleSizeForCSI					ENUMERATED {n2, n4}		OPTIONAL
		}, 
		cri-RI-CQI								NULL, 
		cri-RSRP								NULL, 
		ssb-Index-RSRP							NULL,
		cri-RI-LI-PMI-CQI						NULL
	},
	-- Reporting configuration in the frequency domain. (see 38.214, section 5.2.1.4)
	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. 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)
		-- The number of subbands is determined according to 38.214 section 5.2.1.4. It is absent if there are less than 24 PRBs (no sub band)
		-- and present otherwise, the number of sub bands can be from 3 (24 PRBs, sub band size 8) to 18 (72 PRBs, sub band size 4).
		csi-ReportingBand						CHOICE {
			subbands3								BIT STRING(SIZE(3)),
			subbands4								BIT STRING(SIZE(4)),
			subbands5								BIT STRING(SIZE(5)),
			subbands6								BIT STRING(SIZE(6)),
			subbands7								BIT STRING(SIZE(7)),
			subbands8								BIT STRING(SIZE(8)),
			subbands9								BIT STRING(SIZE(9)),
			subbands10								BIT STRING(SIZE(10)),
			subbands11								BIT STRING(SIZE(11)),
			subbands12								BIT STRING(SIZE(12)),
			subbands13								BIT STRING(SIZE(13)),
			subbands14								BIT STRING(SIZE(14)),
			subbands15								BIT STRING(SIZE(15)),
			subbands16								BIT STRING(SIZE(16)),
			subbands17								BIT STRING(SIZE(17)),
			subbands18								BIT STRING(SIZE(18)),
			...
		}	OPTIONAL	-- Need S

	},
	-- Time domain measurement restriction for the channel (signal) measurements. 
	-- Corresponds to L1 parameter 'MeasRestrictionConfig-time-channel' (see 38.214, section 5.2.1.1)
	timeRestrictionForChannelMeasurements				ENUMERATED {configured, notConfigured},
	-- Time domain measurement restriction for interference measurements. 
	-- Corresponds to L1 parameter 'MeasRestrictionConfig-time-interference' (see 38.214, section 5.2.1.1)
	timeRestrictionForInterferenceMeasurements			ENUMERATED {configured, notConfigured},
	-- 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 5.2.1.4)	
	groupBasedBeamReporting						CHOICE {
		enabled										NULL,
		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	-- Need S
		}
	},

	-- Which CQI table to use for CQI calculation. Corresponds to L1 parameter 'CQI-table' (see 38.214, section 5.2.2.1)
	cqi-Table								ENUMERATED {table1, table2, spare2, spare1}										OPTIONAL,
	-- Indicates one out of two possible BWP-dependent values for the subband size as indicated in 38.214 table 5.2.1.4-2
	-- Corresponds to L1 parameter 'SubbandSize' (see 38.214, section 5.2.1.4)
	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 5.2.2.1)
	-- FFS_Values (now filled with spares)
	bler-Target								ENUMERATED {zerodot1, spare3, space2, spare1}										OPTIONAL,
	-- Port indication for RI/CQI calculation. For each  CSI-RS resource in the linked ResourceConfig for channel measurement, 
	-- a port indication for each rank R, indicating which R ports to use. Applicable only for non-PMI feedback.
	-- Corresponds to L1 parameter 'Non-PMI-PortIndication' (see 38.214, section FFS_Section)
	-- The first entry in non-PMI-PortIndication corresponds to the NZP-CSI-RS-Resource indicated by the first entry in
	-- nzp-CSI-RS-Resources in the NZP-CSI-RS-ResourceSet indicated in the first entry of nzp-CSI-RS-ResourceSetList of the
	-- CSI-ResourceConfig whose CSI-ResourceConfigId is indicated in a CSI-MeasId together with the above CSI-ReportConfigId,
	-- the second entry in non-PMI-PortIndication corresponds to the NZP-CSI-RS-Resource indicated by the second entry in
	-- nzp-CSI-RS-Resources in the NZP-CSI-RS-ResourceSet indicated in the first entry of nzp-CSI-RS-ResourceSetList of the
	-- same CSI-ResourceConfig, and so on until the NZP-CSI-RS-Resource indicated by the last entry in nzp-CSI-RS-Resources
	-- in the in the NZP-CSI-RS-ResourceSet indicated in the first entry of nzp-CSI-RS-ResourceSetList of the
	-- same CSI-ResourceConfig, then the next entry corresponds to the NZP-CSI-RS-Resource indicated by the first entry
	-- in nzp-CSI-RS-Resources in the NZP-CSI-RS-ResourceSet indicated in the second entry of nzp-CSI-RS-ResourceSetList of the
	-- same CSI-ResourceConfig and so on.
	non-PMI-PortIndication					SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) OF PortIndexFor8Ranks		OPTIONAL,	...
}

CSI-ReportPeriodicityAndOffset ::= CHOICE {
	slots4								INTEGER(0..3),
	slots5								INTEGER(0..4),
	slots8								INTEGER(0..7),
	slots10								INTEGER(0..9),
	slots16								INTEGER(0..15),
	slots20								INTEGER(0..19),
	slots40								INTEGER(0..39),
	slots80								INTEGER(0..79),
	slots160							INTEGER(0..159),
	slots320							INTEGER(0..319)
}

PUCCH-CSI-Resource ::= 				CHOICE {
	uplinkBandwidthPartId				BWP-Id,
	-- PUCCH resource for the associated uplink BWP. Only PUCCH-Resource of format 2, 3 and 4 is supported.
	pucch-Resource						PUCCH-Resource
}

-- The PortIndexFor8Ranks allows to indicate port indexes for 1 to 8 ranks using a port index ranges from 0 to 31, or from 0 to 15, or from 0
-- to 7, or from 0 to 3, or from 0 to 1, or with 0 only.

PortIndexFor8Ranks ::=	CHOICE {
	portIndex8				SEQUENCE{
		rank1-8					PortIndex8,
		rank2-8					SEQUENCE(SIZE(1..2)) OF PortIndex8,
		rank3-8					SEQUENCE(SIZE(1..3)) OF PortIndex8,
		rank4-8					SEQUENCE(SIZE(1..4)) OF PortIndex8,
		rank5-8					SEQUENCE(SIZE(1..5)) OF PortIndex8,
		rank6-8					SEQUENCE(SIZE(1..6)) OF PortIndex8,
		rank7-8					SEQUENCE(SIZE(1..7)) OF PortIndex8,
		rank8-8					SEQUENCE(SIZE(1..8)) OF PortIndex8
	},
	portIndex4				SEQUENCE{
		rank1-4					PortIndex4,
		rank2-4					SEQUENCE(SIZE(1..2)) OF PortIndex4,
		rank3-4					SEQUENCE(SIZE(1..3)) OF PortIndex4,
		rank4-4					SEQUENCE(SIZE(1..4)) OF PortIndex4
	},
	portIndex2				SEQUENCE{
		rank1-2					PortIndex2,
		rank2-2					SEQUENCE(SIZE(1..2)) OF PortIndex2
	},
	portIndex1				NULL
}

PortIndex8::=	INTEGER (0..7)
PortIndex4::=	INTEGER (0..3)
PortIndex2::=	INTEGER (0..1)

maxNrofNZP-CSI-RS-ResourcesPerConfig	INTEGER ::=	128
-- TAG-CSI-REPORTCONFIG-STOP
-- TAG-CSI-REPORTCONFIGID-START
CSI-ReportConfigId ::= 					INTEGER (0..maxNrofCSI-ReportConfigurations-1)

-- TAG-CSI-REPORTCONFIGID-STOP
-- TAG-CSI-RESOURCECONFIG-START

-- One CSI resource configuration comprising of one or more resource sets
CSI-ResourceConfig ::= 		SEQUENCE {

	-- Used in CSI-ReportConfig to refer to an instance of CSI-ResourceConfig
	csi-ResourceConfigId				CSI-ResourceConfigId,

	-- Contains up to maxNrofNZP-CSI-RS-ResourceSetsPerConfig resource sets if ResourceConfigType is 'aperiodic' and 1 otherwise.
	-- Corresponds to L1 parameter 'ResourceSetConfigList' (see 38.214, section 5.2.1.3.1)	
	csi-RS-ResourceSetList 	 			CHOICE {
		nzp-CSI-RS-SSB 						SEQUENCE {
			nzp-CSI-RS-ResourceSetList			SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig)) OF NZP-CSI-RS-ResourceSetId OPTIONAL,
			-- List of SSB resources used for beam measurement and reporting in a resource set
			-- Corresponds to L1 parameter 'resource-config-SS-list' (see 38,214, section FFS_Section)
			csi-SSB-ResourceSetList				SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSetsPerConfig)) OF CSI-SSB-ResourceSetId	OPTIONAL
		},			
		csi-IM-ResourceSetList				SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSetsPerConfig)) OF CSI-IM-ResourceSetId
	},


	-- The DL BWP which the CSI-RS associated with this CSI-ResourceConfig are located in. 
	-- Corresponds to L1 parameter 'BWP-Info' (see 38.214, section 5.2.1.2
	bwp-Id								BWP-Id,

	-- Time domain behavior of resource configuration. Corresponds to L1 parameter 'ResourceConfigType' (see 38.214, section 5.2.2.3.5)	
	resourceType						ENUMERATED { aperiodic, semiPersistent, periodic },
	...
}

-- TAG-CSI-RESOURCECONFIGTOADDMOD-STOP
-- TAG-CSI-RESOURCECONFIGID-START
CSI-ResourceConfigId ::= INTEGER (0..maxNrofCSI-ResourceConfigurations-1)

-- TAG-CSI-RESOURCECONFIGID-STOP
-- TAG-CSI-RESOURCEPERIODICITYANDOFFSET-START

CSI-ResourcePeriodicityAndOffset ::=	CHOICE {
	slots4							INTEGER (0..3), 
	slots5							INTEGER (0..4), 
	slots8							INTEGER (0..7), 
	slots10							INTEGER (0..9), 
	slots16							INTEGER (0..15), 
	slots20							INTEGER (0..19), 
	slots32							INTEGER (0..31), 
	slots40							INTEGER (0..39), 
	slots64							INTEGER (0..63), 
	slots80							INTEGER (0..79), 
	slots160						INTEGER (0..159), 
	slots320						INTEGER (0..319), 
	slots640						INTEGER (0..639)
}

-- TAG-CSI-RESIYRCEPERIODICITYANDOFFSET-STOP
-- TAG-CSI-RS-RESOURCEMAPPING-START

CSI-RS-ResourceMapping ::= 				SEQUENCE {
	-- Frequency domain allocation within a physical resource block in accordance with 38.211, section 7.4.1.5.3 including table 7.4.1.5.2-1.
	-- The number of bits that may be set to one depend on the chosen row in that table. For the choice "other", the row can be determined from
	-- the parmeters below and from the number of bits set to 1 in frequencyDomainAllocation.
	frequencyDomainAllocation			CHOICE {
		row1								BIT STRING (SIZE (4)),
		row2								BIT STRING (SIZE (12)),
		row4								BIT STRING (SIZE (3)),
		other								BIT STRING (SIZE (6))
	},
	-- Number of ports (see 38.214, section 5.2.2.3.1)
	nrofPorts							ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32},
	-- Time domain allocation within a physical resource block. The field indicates the first OFDM symbol in the PRB used for CSI-RS.
	-- Parameter l0 in 38.211, section 7.4.1.5.3. Value 2 is supported only when DL-DMRS-typeA-pos equals 3.
	firstOFDMSymbolInTimeDomain			INTEGER (0..13),
	-- Time domain allocation within a physical resource block. Parameter l1 in 38.211, section 7.4.1.5.3.
	firstOFDMSymbolInTimeDomain2		INTEGER (0..13)																OPTIONAL,	-- Need R
	-- CDM type (see 38.214, section 5.2.2.3.1)	
	cdm-Type								ENUMERATED {noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4},
	-- Density of CSI-RS resource measured in RE/port/PRB. Corresponds to L1 parameter 'CSI-RS-Density'  (see 38.211, section 7.4.1.5.3)
	-- 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.
	-- For density = 1/2, includes 1 bit indication for RB level comb offset indicating  whether odd or even RBs are occupied by CSI-RS
	density									CHOICE {
		dot5									ENUMERATED {evenPRBs, oddPRBs}, 
		one										NULL, 
		three									NULL, 
		spare									NULL
	},
	-- Wideband or partial band CSI-RS. Corresponds to L1 parameter 'CSI-RS-FreqBand' (see 38.214, section 5.2.2.3.1)	
	freqBand								CSI-FrequencyOccupation,
	...
}

-- TAG-CSI-RS-RESOURCEMAPPING-STOP
-- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-START

CSI-SemiPersistentOnPUSCH-TriggerStateList ::=	SEQUENCE(SIZE (1..maxNrOfSemiPersistentPUSCH-Triggers)) OF CSI-SemiPersistentOnPUSCH-TriggerState
CSI-SemiPersistentOnPUSCH-TriggerState ::=		SEQUENCE {
	associatedReportConfigInfo						CSI-ReportConfigId,
	...
}

maxNrOfSemiPersistentPUSCH-Triggers					INTEGER ::= 64		-- Maximum number of triggers for semi persistent reporting on PUSCH

-- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-STOP 
-- TAG-CSI-SSB-RESOURCESETID-START

CSI-SSB-ResourceSetId ::=	INTEGER (0..maxNrofCSI-SSB-ResourceSets-1)

-- TAG-CSI-SSB-RESOURCESETID-STOP
-- TAG-CSI-SSB-RESOURCESET-START

CSI-SSB-ResourceSet ::=						SEQUENCE {
	csi-SSB-ResourceSetId						CSI-SSB-ResourceSetId,
	csi-SSB-ResourceList						SEQUENCE (SIZE(1..maxNrofCSI-SSB-ResourcePerSet)) OF SSB-Index,
	...
}

-- TAG-CSI-SSB-RESOURCESET-STOP
-- TAG-DMRS-DOWNLINKCONFIG-START

DMRS-DownlinkConfig ::=					SEQUENCE {
	-- Selection of the DMRS type to be used for DL (see 38.211, section 7.4.1.1.1).
	-- If the field is absent, the UE uses DMRS type 1.
	dmrs-Type								ENUMERATED {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.
	-- If the field is absent, the UE applies the value pos2.
	dmrs-AdditionalPosition					ENUMERATED {pos0, pos1, pos3}										OPTIONAL,	-- Need R
	-- DM-RS groups that are QCL:ed, i.e. group 1 (see 38.214, section 5.1)
	dmrs-group1								BIT STRING (SIZE (12))												OPTIONAL,	-- Need R
	-- DM-RS groups that are QCL:ed, i.e. group 2 (see 38.214, section 5.1)
	dmrs-group2								BIT STRING (SIZE (12))												OPTIONAL,	-- Need R
	-- The maximum number of OFDM symbols for DL front loaded DMRS. 'len1' corresponds to value 1. 'len2 corresponds to value 2.
	-- If the field is absent, the UE applies value len1.
	-- Corresponds to L1 parameter 'DL-DMRS-max-len' (see 38.214, section 5.1)
	maxLength								ENUMERATED {len2}													OPTIONAL, 	-- Need R
	-- DL DMRS scrambling initalization
	-- Corresponds to L1 parameter 'n_SCID 0' (see 38.211, section 7.4.1)
	-- When the field is absent the UE applies the value Physical cell ID (physCellId) configured for this serving cell."
	scramblingID0							INTEGER (0..65535)													OPTIONAL, 	-- Need S
	-- DL DMRS scrambling initalization. Corresponds to L1 parameter 'n_SCID 1' (see 38.211, section 7.4.1)
	-- When the field is absent the UE applies the value (physCellId) configured for this serving cell.
	scramblingID1							INTEGER (0..65535)													OPTIONAL, 	-- Need S

	-- Configures downlink PTRS. If absent of released, the UE assumes that downlink PTRS are not present. See 38.214 section 5.1.6.3
	phaseTrackingRS						SetupRelease { PTRS-DownlinkConfig	}									OPTIONAL,	-- Need M

	...
}

-- TAG-DMRS-DOWNLINKCONFIG-STOP
-- TAG-DMRS-UPLINKCONFIG-START

DMRS-UplinkConfig ::=					SEQUENCE {
	-- Selection of the DMRS type to be used for UL (see section 38.211, section 6.4.1.1.3)
	-- If the field is absent, the UE uses DMRS type 1.
	dmrs-Type								ENUMERATED {type2} 													OPTIONAL,	-- Need R
	-- Position for additional DM-RS in UL. Corresponds to L1 parameter 'UL-DMRS-add-pos' (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 UL. 
	-- If the field is absent, the UE applies the value pos2.
	dmrs-AdditionalPosition					ENUMERATED {pos0, pos1, pos3}										OPTIONAL,	-- Need R
	-- Configures uplink PTRS (see 38.211, section x.x.x.x) FFS_Ref
	phaseTrackingRS						SetupRelease { PTRS-UplinkConfig }										OPTIONAL,	-- Need M
	-- The maximum number of OFDM symbols for UL front loaded DMRS. 'len1' corresponds to value 1. 'len2 corresponds to value 2.
	-- If the field is absent, the UE applies value len1.
	-- Corresponds to L1 parameter 'UL-DMRS-max-len' (see 38.214, section 6.4.1.1.2)
	maxLength								ENUMERATED {len2}													OPTIONAL, 	-- Need R

	transformPrecoding					CHOICE {
		-- DMRS related parameters for Cyclic Prefix OFDM
		disabled									SEQUENCE {
			-- UL DMRS scrambling initalization for CP-OFDM
			-- Corresponds to L1 parameter 'n_SCID 0' (see 38.214, section 6.4.1.1.2)
			-- When the field is absent the UE applies the value Physical cell ID (physCellId)
			scramblingID0							INTEGER (0..65535)											OPTIONAL,	-- Need S
			-- UL DMRS scrambling initalization for CP-OFDM.
			-- Corresponds to L1 parameter 'n_SCID 1' (see 38.214, section 6.4.1.1.2)
			-- When the field is absent the UE applies the value Physical cell ID (physCellId)
			scramblingID1							INTEGER (0..65535)											OPTIONAL		-- Need S

		},
		-- DMRS related parameters for DFT-s-OFDM (Transform Precoding)
		enabled								SEQUENCE {
			-- Parameter: N_ID^(PUSCH) for DFT-s-OFDM DMRS. If the value is absent or released, the UE uses the Physical cell ID.
			-- Corresponds to L1 parameter 'nPUSCH-Identity-Transform precoding' (see 38.211, section FFS_Section)
			nPUSCH-Identity							INTEGER(0..1007)											OPTIONAL,	-- Need S
			-- Sequence-group hopping for PUSCH can be disabled for a certain UE despite being enabled on a cell basis. For DFT-s-OFDM DMRS
			-- If the field is released, the UE considers group hopping to be enabled.
			-- Corresponds to L1 parameter 'Disable-sequence-group-hopping-Transform-precoding' (see 38.211, section FFS_Section)
			disableSequenceGroupHopping				ENUMERATED {disabled}										OPTIONAL,	-- Need S
			-- Determines if sequence hopping is enabled or not. For DFT-s-OFDM DMRS. 
			-- If the field is released, the UE considers sequence hopping to be disabled.
			-- Corresponds to L1 parameter 'Sequence-hopping-enabled-Transform-precoding' (see 38.211, section FFS_Section)
			sequenceHoppingEnabled					ENUMERATED {enabled}										OPTIONAL	-- Need S
		}
	},
	...
}

-- TAG-DMRS-UPLINKCONFIG-STOP
-- TAG-DOWNLINKPREEMPTION-START

-- Configuration of downlink preemption indication on PDCCH.
DownlinkPreemption ::=						SEQUENCE {
	-- RNTI used for indication pre-emption in DL. 
	-- Corresponds to L1 parameter 'INT-RNTI', where ”INT” stands for ”interruption” (see 38.213, section 10)
	int-RNTI								RNTI-Value,

	-- Set selection for DL-preemption indication. Corresponds to L1 parameter 'int-TF-unit' (see 38.213, section 10.1)
	-- The set determines how the UE interprets the DL preemption DCI payload.
	timeFrequencySet						ENUMERATED {set0, set1},

	-- Total length of the DCI payload scrambled with INT-RNTI. The value must be an integer multiple of 14 bit.
	-- Corresponds to L1 parameter 'INT-DCI-payload-length' (see 38.213, section 11.2)
	dci-PayloadSize							INTEGER (0..maxINT-DCI-PayloadSize),

	-- Indicates (per serving cell) the position of the 14 bit INT values inside the DCI payload. 
	-- Corresponds to L1 parameter 'INT-cell-to-INT' and 'cell-to-INT' (see 38.213, section 11.2)
	int-ConfigurationPerServingCell			SEQUENCE (SIZE (1..maxNrofServingCells)) OF INT-ConfigurationPerServingCell,
	...
}

INT-ConfigurationPerServingCell ::= 		SEQUENCE {
	servingCellId							ServCellIndex,
	-- Starting position (in number of bit) of the 14 bit INT value applicable for this serving cell (servingCellId) within the DCI 
	-- payload. Must be multiples of 14 (bit). Corresponds to L1 parameter 'INT-values' (see 38.213, section 11.2)
	positionInDCI							INTEGER (0..maxINT-DCI-PayloadSize-1)
}

-- TAG-DOWNLINKPREEMPTION-STOP
-- TAG-DRB-IDENTITY-START

DRB-Identity ::=					INTEGER (1..32)

-- TAG-DRB-IDENTITY-STOP
-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-START

EUTRA-MBSFN-SubframeConfigList ::= 		SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF EUTRA-MBSFN-SubframeConfig

EUTRA-MBSFN-SubframeConfig ::=			SEQUENCE {
	-- Field as defined in MBSFN-SubframeConfig in 36.331 
	radioframeAllocationPeriod			ENUMERATED {n1, n2, n4, n8, n16, n32},
	-- Field as defined in MBSFN-SubframeConfig in 36.331 
	radioframeAllocationOffset			INTEGER (0..7),
	-- Field as defined in MBSFN-SubframeConfig in 36.331 
	subframeAllocation					CHOICE {
		-- Field as defined in MBSFN-SubframeConfig in 36.331 
		oneFrame							BIT STRING (SIZE(6)),
		-- Field as defined in MBSFN-SubframeConfig in 36.331 
		fourFrames							BIT STRING (SIZE(24))
	},
	subframeAllocation-v1430			CHOICE {
		-- Field as defined in MBSFN-SubframeConfig in 36.331 
		oneFrame-v1430						BIT STRING (SIZE(2)),
		-- Field as defined in MBSFN-SubframeConfig in 36.331 
		fourFrames-v1430					BIT STRING (SIZE(8))
	}																														OPTIONAL,	-- Need R
	...
}

-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-STOP

FilterCoefficient ::=					ENUMERATED {
											fc0, fc1, fc2, fc3, fc4, fc5,
											fc6, fc7, fc8, fc9, fc11, fc13, 
											fc15, fc17, fc19, spare1, ...}

-- TAG-FREQBANDINDICATORNR-START

FreqBandIndicatorNR ::=     		INTEGER (1..1024)

-- TAG-FREQBANDINDICATORNR-STOP
-- TAG-FREQUENCY-INFO-DL-START

FrequencyInfoDL ::= 				SEQUENCE {
	-- Frequency of the SSB to be used for this serving cell. The frequency provided in this field identifies the position of 
	-- resource element RE=#0 (subcarrier #0) of resource block RB#10 of the SS block. The cell-defining SSB of an SpCell is always on
	-- the sync raster. Frequencies are considered to be on the sync raster if they are also identifiable with a GSCN value (see 38.101).
	absoluteFrequencySSB					ARFCN-ValueNR,
	-- The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. 
	-- Absence of the field indicates that no offset is applied (offset = 0). For FR2 only values up to 11 are applicable. 
	-- Corresponds to L1 parameter kssb (See 38.211, section 7.4.3.1)
	ssb-SubcarrierOffset					INTEGER (1..23)																OPTIONAL,	-- Need S
	-- List of one or multiple frequency bands to which this carrier(s) belongs. Multiple values are only supported in 
	-- system information but not when the FrequencyInfoDL is provided in dedicated signalling (HO or S(p)Cell addition).
	frequencyBandList					MultiFrequencyBandListNR,
	-- Absolute frequency position of the reference resource block (Common RB 0). Its lowest subcarrier is also known as Point A. 
	-- Note that the lower edge of the actual carrier is not defined by this field but rather in the scs-SpecificCarrierList.
	-- Corresponds to L1 parameter 'offset-ref-low-scs-ref-PRB' (see 38.211, section FFS_Section)
	absoluteFrequencyPointA					ARFCN-ValueNR,

	-- A set of carriers for different subcarrier spacings (numerologies). Defined in relation to Point A.
	-- Corresponds to L1 parameter 'offset-pointA-set' (see 38.211, section FFS_Section)
	scs-SpecificCarrierList					SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
	...
}

-- TAG-FREQUENCY-INFO-UL-STOP
-- TAG-FREQUENCY-INFO-UL-START

FrequencyInfoUL ::= 				SEQUENCE {
	-- List of one or multiple frequency bands to which this carrier(s) belongs. Multiple values are only supported in 
	-- system information but not when the FrequencyInfoDL is provided in dedicated signalling (HO or S(p)Cell addition).
	frequencyBandList					MultiFrequencyBandListNR										OPTIONAL,	-- Cond FDD-OrSUL
	-- Absolute frequency of the reference resource block (Common RB 0). Its lowest subcarrier is also known as Point A.
	-- Corresponds to L1 parameter 'offset-ref-low-scs-ref-PRB' (see 38.211, section FFS_Section)
	absoluteFrequencyPointA						ARFCN-ValueNR					OPTIONAL,	-- Cond FDD-OrSUL
	-- A set of virtual carriers for different subcarrier spacings (numerologies). Defined in relation to Point A.
	-- Note that the lower edge of the actual carrier is not defined by this field but rather in the scs-SpecificCarrierList.
	-- Corresponds to L1 parameter 'offset-pointA-set' (see 38.211, section FFS_Section)
	scs-SpecificCarriers				SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,

	-- The additional spectrum emission requirements to be applied by the UE on this uplink. 
	-- If the field is absent, the UE applies the value FFS_RAN4. (see FFS_section, section FFS_Section)
	additionalSpectrumEmission			AdditionalSpectrumEmission										OPTIONAL,	-- Need S
	-- FFS_Definition. Corresponds to parameter FFS_RAN4. (see FFS_Spec, section FFS_Section)
	-- If the field is absent, the UE applies the value FFS_RAN4.
	p-Max								P-Max															OPTIONAL,	-- Need S
	-- Enable the NR UL transmission with a 7.5KHz shift to the LTE raster. If the field is absent, the frequency shift is disabled.
	frequencyShift7p5khz				ENUMERATED {true}												OPTIONAL,	-- Cond FDD-OrSUL-Optional
	...
}

-- TAG-FREQUENCY-INFO-UL-STOP
-- TAG-GSCN-VALUE-NR-START

GSCN-ValueNR ::=				INTEGER (1..28557)


-- TAG-GSCN-VALUE-NR-STOP

Hysteresis ::=							INTEGER (0..30)

-- 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},

		allowedServingCells				SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF ServCellIndex					OPTIONAL,	-- Need R
		allowedSCS-List					SEQUENCE (SIZE (1..maxSCSs)) OF SubcarrierSpacing							OPTIONAL,	-- Need R
		maxPUSCH-Duration				ENUMERATED { ms0p02, ms0p04, ms0p0625, ms0p125, ms0p25, ms0p5, spare2, spare1 }												OPTIONAL,	-- Need R
		configuredGrantType1Allowed		ENUMERATED {true}															OPTIONAL,	-- Need R

		logicalChannelGroup				INTEGER (0..maxLCG-ID)														OPTIONAL, 	-- Need R
		schedulingRequestID				SchedulingRequestId															OPTIONAL,	-- Need R
		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							SetupRelease { DRX-Config }																OPTIONAL, -- Need M

	schedulingRequestConfig				SchedulingRequestConfig																OPTIONAL, -- Need M
	bsr-Config							BSR-Config																	OPTIONAL,	-- Need M
	tag-Config							TAG-Config																	OPTIONAL,	-- Need M	
	phr-Config							SetupRelease { PHR-Config }																OPTIONAL,	-- Need M
	-- FFS : configurable per SCell?
	skipUplinkTxDynamic					BOOLEAN,
	-- RNTI value for downlink SPS (see SPS-config) and uplink configured scheduling (see ConfiguredSchedulingConfig).
	cs-RNTI								SetupRelease { RNTI-Value }															OPTIONAL	-- Need M
}

DRX-Config ::=						SEQUENCE {
	drx-onDurationTimer					CHOICE {
											subMilliSeconds	INTEGER (1..31),
											milliSeconds	ENUMERATED {
											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, 
											sl160, sl320, 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, sl128, 
											sl160, sl320, spare15, spare14, spare13, spare12, spare11, spare10, spare9, 
											spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 },
	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						INTEGER (0..31)

}

PHR-Config ::=						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			SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id											OPTIONAL,	-- Need N
	tag-ToAddModList			SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-ToAddMod											OPTIONAL		-- Need N
}

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 {
	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, spare5, spare4,
											spare3, spare2, spare1},
	logicalChannelSR-DelayTimer		ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1}	OPTIONAL	-- Need R
}



-- TAG-MAC-CELL-GROUP-CONFIG-STOP
-- TAG-MEAS-CONFIG-START

MeasConfig ::=							SEQUENCE {
	-- Measurement objects
	measObjectToRemoveList					MeasObjectToRemoveList											OPTIONAL,	-- Need N
	measObjectToAddModList					MeasObjectToAddModList											OPTIONAL,	-- Need N

	-- Reporting configurations
	reportConfigToRemoveList				ReportConfigToRemoveList										OPTIONAL,	-- Need N
	reportConfigToAddModList				ReportConfigToAddModList										OPTIONAL,	-- Need N

	-- Measurement identities
	measIdToRemoveList						MeasIdToRemoveList												OPTIONAL,	-- Need N
	measIdToAddModList						MeasIdToAddModList												OPTIONAL,	-- Need N

	-- Other parameters
	--s-Measure config
	s-MeasureConfig							CHOICE {
		ssb-RSRP								RSRP-Range,						
		csi-RSRP								RSRP-Range						
	} 																										OPTIONAL,	-- Need M

	quantityConfig						QuantityConfig														OPTIONAL,	-- Need M

	--Placehold for measGapConfig
	measGapConfig							MeasGapConfig													OPTIONAL,	-- Need M
	...
}

MeasObjectToRemoveList ::=				SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectId

MeasIdToRemoveList ::=					SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasId

ReportConfigToRemoveList ::=			SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId

-- TAG-MEAS-CONFIG-STOP
--TAG-MEAS-GAP-CONFIG-START

MeasGapConfig ::=				SEQUENCE {
		gapFR2 						SetupRelease { GapConfig }				OPTIONAL,
		...
}

GapConfig ::=					SEQUENCE {
		gapOffset 					INTEGER (0..159),
		mgl 						ENUMERATED {ms1dot5, ms3, ms3dot5, ms4, ms5dot5, ms6},
		mgrp 						ENUMERATED {ms20, ms40, ms80, ms160},
		mgta						ENUMERATED {ms0, ms0dot25, ms0dot5},
		...
}

-- TAG-MEAS-GAP-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,
	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 {
	ssbFrequency								ARFCN-ValueNR															OPTIONAL,
	refFreqCSI-RS								ARFCN-ValueNR															OPTIONAL,

	--RS configuration (e.g. SMTC window, CSI-RS resource, etc.)
	referenceSignalConfig						ReferenceSignalConfig,													

	--Consolidation of L1 measurements per RS index
	absThreshSS-BlocksConsolidation			ThresholdNR																	OPTIONAL,	-- Need R
	absThreshCSI-RS-Consolidation			ThresholdNR																	OPTIONAL,	-- Need R
																													
	--Config for cell measurement derivation
	nrofSS-BlocksToAverage					INTEGER (2..maxNrofSS-BlocksToAverage)										OPTIONAL,	-- Need R
	nrofCSI-RS-ResourcesToAverage			INTEGER (2..maxNrofCSI-RS-ResourcesToAverage)								OPTIONAL,	-- Need R
																															
	-- Filter coefficients applicable to this measurement object
	quantityConfigIndex							INTEGER (1..maxNrofQuantityConfig),

	--Frequency-specific offsets 
	offsetFreq									Q-OffsetRangeList,

	-- Cell list
	cellsToRemoveList							PCI-List																OPTIONAL,	-- Need N
	cellsToAddModList							CellsToAddModList														OPTIONAL,	-- Need N

	-- Black list
	blackCellsToRemoveList						PCI-RangeIndexList														OPTIONAL,	-- Need N
	blackCellsToAddModList						BlackCellsToAddModList													OPTIONAL,	-- Need N

	-- White list
	whiteCellsToRemoveList						PCI-RangeIndexList														OPTIONAL,	-- Need N
	whiteCellsToAddModList						WhiteCellsToAddModList													OPTIONAL,	-- Need N
	...
}

ReferenceSignalConfig::=     			SEQUENCE {
	

	-- SSB configuration for mobility (nominal SSBs, timing configuration)
	ssb-ConfigMobility						SSB-ConfigMobility				OPTIONAL,	-- Need M
	-- CSI-RS resources to be used for CSI-RS based RRM measurements
	csi-rs-ResourceConfigMobility			SetupRelease { CSI-RS-ResourceConfigMobility } OPTIONAL-- Need M		

}

-- A measurement timing configuration
SSB-ConfigMobility::= 	SEQUENCE {
		--Only the values 15, 30 or 60 kHz  (<6GHz), 60 or 120 kHz (>6GHz) are applicable
		subcarrierSpacing                    SubcarrierSpacing,
		-- 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							SetupRelease { SSB-ToMeasure }								OPTIONAL,	-- Need M

	-- Indicates whether the UE can utilize serving cell timing to derive the index of SS block transmitted by neighbour cell:
	useServingCellTimingForSync				BOOLEAN,
																									
	-- 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! They seem to intend an index to a hidden table in L1 specs. 
		-- (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)
		duration								ENUMERATED { sf1, sf2, sf3, sf4, sf5 }
	},

	-- 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 PhysCellId		OPTIONAL,	-- Need M
		-- Periodicity for the given PCIs. Timing offset and Duration as provided in smtc1.
		periodicity								ENUMERATED {sf5, sf10, sf20, sf40, sf80, sf160, spare2, spare1}
	}																										OPTIONAL,-- Cond IntraFreqConnected
	ss-RSSI-Measurement							SEQUENCE {
		measurementSlots							CHOICE {
			kHz15										BIT STRING (SIZE(1)),
			kHz30										BIT STRING (SIZE(2)),
			kHz60										BIT STRING (SIZE(4)),
			kHz120										BIT STRING (SIZE(8))
		},
		endSymbol									INTEGER(0..13)
	}																										OPTIONAL				
}

CSI-RS-ResourceConfigMobility ::= 		SEQUENCE {
	-- MO specific values
		isServingCellMO						BOOLEAN,
	-- Subcarrier spacing of CSI-RS. 
	-- Only the values 15, 30 or 60 kHz  (<6GHz), 60 or 120 kHz (>6GHz) are applicable.
	-- Corresponds to L1 parameter 'Numerology' (see 38.211, section FFS_Section)
	subcarrierSpacing						SubcarrierSpacing,
	-- List of cells
	csi-RS-CellList-Mobility 	SEQUENCE (SIZE (1..maxNrofCSI-RS-CellsRRM))	OF CSI-RS-CellMobility

}

CSI-RS-CellMobility ::=				SEQUENCE {
	cellId									PhysCellId,

	csi-rs-MeasurementBW					SEQUENCE {
		-- Allowed size of the measurement BW in PRBs
		-- Corresponds to L1 parameter 'CSI-RS-measurementBW-size' (see FFS_Spec, section FFS_Section)
		nrofPRBs			ENUMERATED { size24, size48, size96, size192, size264},
		-- Starting PRB index of the measurement bandwidth
		-- Corresponds to L1 parameter 'CSI-RS-measurement-BW-start' (see FFS_Spec, section FFS_Section)
		-- FFS_Value: Upper edge of value range unclear in RAN1
		startPRB			INTEGER(0..2169)
	},

	-- Frequency domain density for the 1-port CSI-RS for L3 mobility
	-- Corresponds to L1 parameter 'Density' (see FFS_Spec, section FFS_Section)
	density									ENUMERATED {d1,d3}												OPTIONAL,


-- 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-Index							CSI-RS-Index,
	-- Contains periodicity and slot offset for periodic/semi-persistent CSI-RS (see 38.211, section x.x.x.x)FFS_Ref
	slotConfig								CHOICE {
		ms4										INTEGER (0..31),
		ms5										INTEGER (0..39),
		ms10									INTEGER (0..79),
		ms20									INTEGER (0..159),
		ms40									INTEGER (0..319)
	},
	-- Each CSI-RS resource may be associated with one SSB. If such SSB is indicated, the NW also indicates whether the UE may assume 
	-- quasi-colocation of this SSB with this CSI-RS reosurce. 
	-- Corresponds to L1 parameter 'Associated-SSB' (see FFS_Spec, section FFS_Section)
	
	associatedSSB							SEQUENCE {
		ssb-Index								SSB-Index,
		-- The CSI-RS resource is either QCL’ed not QCL’ed with the associated SSB in spatial parameters
		-- Corresponds to L1 parameter 'QCLed-SSB' (see FFS_Spec, section FFS_Section)
		isQuasiColocated						BOOLEAN
	}					OPTIONAL, -- Cond AssociatedSSB

	
	-- Frequency domain allocation within a physical resource block in accordance with 38.211, section 7.4.1.5.3 including table 7.4.1.5.2-1.
	-- The number of bits that may be set to one depend on the chosen row in that table. For the choice "other", the row can be determined from
	-- the parmeters below and from the number of bits set to 1 in frequencyDomainAllocation.
	frequencyDomainAllocation			CHOICE {
		row1								BIT STRING (SIZE (4)),
		row2								BIT STRING (SIZE (12))
	},

	
	-- Time domain allocation within a physical resource block. The field indicates the first OFDM symbol in the PRB used for CSI-RS.
	-- Parameter l0 in 38.211, section 7.4.1.5.3. Value 2 is supported only when DL-DMRS-typeA-pos equals 3.
	firstOFDMSymbolInTimeDomain			INTEGER (0..13),	
	-- Scrambling ID for CSI-RS(see 38.211, section 7.4.1.5.2)
	sequenceGenerationConfig				INTEGER (0..1023),
	...
}

CSI-RS-Index ::= 				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
}

SSB-ToMeasure ::=			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))
}


ThresholdNR ::=							SEQUENCE{
	thresholdRSRP							RSRP-Range					OPTIONAL,
	thresholdRSRQ						RSRQ-Range					OPTIONAL,
	thresholdSINR						SINR-Range					OPTIONAL
}

CellsToAddModList ::=					SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddMod

CellsToAddMod ::=						SEQUENCE {
	physCellId								PhysCellId,
	cellIndividualOffset					Q-OffsetRangeList
}

BlackCellsToAddModList ::=				SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF BlackCellsToAddMod

BlackCellsToAddMod ::=					SEQUENCE {
	pci-RangeIndex							PCI-RangeIndex,		
	pci-Range								PCI-Range
}


WhiteCellsToAddModList ::=				SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF WhiteCellsToAddMod

WhiteCellsToAddMod ::=					SEQUENCE {
	pci-RangeIndex							PCI-RangeIndex,
	pci-Range							PCI-Range
}

-- 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,
		...
	}
}

-- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-STOP 
-- TAG-MEAS-RESULTS-START

MeasResults ::=								SEQUENCE {
	measId										MeasId,
	measResultServingFreqList					MeasResultServFreqList,
	measResultNeighCells						CHOICE {
		measResultListNR							MeasResultListNR,
		...
	}																														OPTIONAL,
	...
}

MeasResultServFreqList ::=					SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServFreq

MeasResultServFreq ::=						SEQUENCE {
	servFreqId									ServCellIndex,																
	measResultServingCell						MeasResultNR,
	measResultBestNeighCell						MeasResultNR,
	...															
}

MeasResultListNR ::=						SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR

MeasResultNR ::=							SEQUENCE {
	physCellId									PhysCellId																	OPTIONAL,
	--FFS: Details of cgi info 
	cgi-Info									ENUMERATED {ffsTypeAndValue}												OPTIONAL,
	measResult									SEQUENCE {
		cellResults									SEQUENCE{
			resultsSSB-Cell								MeasQuantityResults													OPTIONAL,
			resultsCSI-RS-Cell							MeasQuantityResults													OPTIONAL
		},
		rsIndexResults								SEQUENCE{
			resultsSSB-Indexes							ResultsPerSSB-IndexList												OPTIONAL, 
			resultsCSI-RS-Indexes						ResultsPerCSI-RS-IndexList											OPTIONAL
		}																													OPTIONAL
	},
	...
}


MeasQuantityResults ::= 		SEQUENCE {
	rsrp							RSRP-Range													OPTIONAL,
	rsrq							RSRQ-Range													OPTIONAL,
	sinr							SINR-Range													OPTIONAL
}

ResultsPerSSB-IndexList::= 				SEQUENCE (SIZE (1..maxNrofSSBs)) OF ResultsPerSSB-Index

ResultsPerSSB-Index ::= 					SEQUENCE {
	ssb-Index									SSB-Index,
	ssb-Results									MeasQuantityResults							OPTIONAL
}

ResultsPerCSI-RS-IndexList::= 				SEQUENCE (SIZE (1..maxNrofCSI-RS)) OF ResultsPerCSI-RS-Index

ResultsPerCSI-RS-Index ::= 					SEQUENCE {
	csi-RS-Index								CSI-RS-Index,
	csi-RS-Results								MeasQuantityResults							OPTIONAL
}

-- TAG-MEAS-RESULTS-STOP
-- TAG-MEAS-RESULT-SCG-FAILURE-START

MeasResultSCG-Failure ::= 			SEQUENCE {
	measResultServFreqList					MeasResultServFreqList2NR,
	measResultNeighCells						MeasResultList2NR,
	...
}

MeasResultServFreqList2NR ::=			SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServFreq2NR

MeasResultServFreq2NR ::=				SEQUENCE {
	ssbFrequency							ARFCN-ValueNR			OPTIONAL,
	refFreqCSI-RS							ARFCN-ValueNR			OPTIONAL,
	measResultServingCell					MeasResultNR,
	measResultBestNeighCell					MeasResultNR		OPTIONAL
}

MeasResultList2NR ::=					SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR

MeasResult2NR ::=						SEQUENCE {	
	ssbFrequency							ARFCN-ValueNR			OPTIONAL,
	refFreqCSI-RS							ARFCN-ValueNR			OPTIONAL,
	measResultListNR						MeasResultListNR
}

-- TAG-MEAS-RESULT-SCG-FAILURE-STOP
-- TAG-MEASRESULT-CELL-LIST-SFTD-START

MeasResultCellListSFTD ::=			SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD

MeasResultCellSFTD ::=	SEQUENCE {
	physCellId							PhysCellId,
	sfn-OffsetResult					INTEGER (0..1023),
	frameBoundaryOffsetResult			INTEGER (-30720..30719),
	rsrp-Result							RSRP-Range						OPTIONAL
}

-- TAG-MEASRESULT-CELL-LIST-SFTD-STOP
-- TAG-MULTIFREQUENCYBANDLISTNR-START

MultiFrequencyBandListNR ::= 		SEQUENCE (SIZE (1..maxNrofMultiBands)) OF FreqBandIndicatorNR

-- TAG-MULTIFREQUENCYBANDLISTNR-STOP
-- TAG-NZP-CSI-RS-RESOURCESET-START
NZP-CSI-RS-ResourceSet ::= 		SEQUENCE {
	nzp-CSI-ResourceSetId					NZP-CSI-RS-ResourceSetId,	

	-- NZP-CSI-RS-Resources assocaited with this NZP-CSI-RS resource set.
	-- Corresponds to L1 parameter 'CSI-RS-ResourceConfigList' (see 38.214, section 5.2)
	-- For CSI, there are at most 8 NZP CSI RS resources per resource set
	nzp-CSI-RS-Resources						SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-ResourceId,

	-- Indicates whether repetition is on/off. If set to set to 'OFF', the UE may not assume that the 
	-- NZP-CSI-RS resources within the resource set are transmitted with the same downlink spatial domain transmission filter 
	-- and with same NrofPorts in every symbol.
	-- Corresponds to L1 parameter 'CSI-RS-ResourceRep' (see 38.214, sections 5.2.2.3.1 and 5.1.6.1.2)
	-- Can only be configured for CSI-RS resource sets which are associated with CSI-ReportConfig with report of L1 RSRP or “no report”	
	repetition									ENUMERATED { on, off }				OPTIONAL,

	-- Offset X between the slot containing the DCI that triggers a set of aperiodic NZP CSI-RS resources and the slot in which the 
	-- CSI-RS resource set is transmitted. When the field is absent the UE applies the value 0.
	-- Corresponds to L1 parameter 'Aperiodic-NZP-CSI-RS-TriggeringOffset' (see 38,214, section FFS_Section)
	aperiodicTriggeringOffset			 		INTEGER(0..4)																		OPTIONAL,	-- Need S

	-- Indicates that the antenna port for all NZP-CSI-RS resources in the CSI-RS resource set is same.
	-- Corresponds to L1 parameter 'TRS-Info' (see 38.214, section 5.2.2.3.1)
	trs-Info								ENUMERATED {true}																OPTIONAL,
	...
}

-- TAG-NZP-CSI-RS-RESOURCESET-STOP
-- TAG-NZP-CSI-RS-RESOURCESETID-START
NZP-CSI-RS-ResourceSetId ::= INTEGER (0..maxNrofNZP-CSI-RS-ResourceSets-1)

-- TAG-NZP-CSI-RS-RESOURCESETID-STOP
-- TAG-NZP-CSI-RS-RESOURCE-START
NZP-CSI-RS-Resource ::=		SEQUENCE {
	nzp-CSI-RS-ResourceId				NZP-CSI-RS-ResourceId,

	-- OFDM symbol location(s) in a slot and subcarrier occupancy in a PRB of the CSI-RS resource	
	resourceMapping							CSI-RS-ResourceMapping,
	-- Power offset of NZP CSI-RS RE to PDSCH RE. Value in dB. Corresponds to L1 parameter Pc (see 38.214, sections 5.2.2.3.1 and 4.1)
	powerControlOffset						INTEGER(-8..15),
	-- Power offset of NZP CSI-RS RE to SS RE. Value in dB. Corresponds to L1 parameter 'Pc_SS' (see 38.214, section 5.2.2.3.1)
	powerControlOffsetSS					ENUMERATED{db-3, db0, db3, db6}								OPTIONAL,	
	-- Scrambling ID (see 38.214, section 5.2.2.3.1)
	scramblingID							ScramblingId,

	-- Periodicity and slot offset sl1 corresponds to a periodicity of 1 slot, sl2 to a periodicity of two slots, and so on. 
	-- The corresponding offset is also given in number of slots. Corresponds to L1 parameter 'CSI-RS-timeConfig' (see 38.214, section 5.2.2.3.1)
	periodicityAndOffset					CSI-ResourcePeriodicityAndOffset							OPTIONAL, --Cond PeriodicOrSemiPersistent

	-- For a target periodic CSI-RS, contains a reference to one TCI-State in TCI-States for providing the QCL source and 
	-- QCL type. For periodic CSI-RS, the source can be SSB or another periodic-CSI-RS.
	-- Corresponds to L1 parameter 'QCL-Info-PeriodicCSI-RS' (see 38.214, section 5.2.2.3.1)
	qcl-InfoPeriodicCSI-RS						TCI-StateId												OPTIONAL, --Cond Periodic
	...
}

-- TAG-NZP-CSI-RS-RESOURCE-STOP
-- TAG-NZP-CSI-RS-RESOURCEID-START
NZP-CSI-RS-ResourceId ::= 					INTEGER (0..maxNrofNZP-CSI-RS-Resources-1)

-- TAG-NZP-CSI-RS-RESOURCEID-STOP
-- TAG-P-MAX-START

P-Max ::=				INTEGER (-30..33)

-- TAG-P-MAX-STOP
-- TAG-PCI-LIST-START

PCI-List ::=						SEQUENCE (SIZE (1..maxNrofCellMeas)) OF PhysCellId

-- TAG-PCI-LIST-STOP
-- TAG-PCI-RANGE-START

PCI-Range ::=				SEQUENCE {
	start							PhysCellId,
	range							ENUMERATED {
										n4, n8, n12, n16, n24, n32, n48, n64, n84,
										n96, n128, n168, n252, n504, n1008,
										spare1} 					OPTIONAL	-- Need Nss
}

-- TAG-PCI-RANGE-STOP
-- TAG-PCI-RANGE-INDEX-START

PCI-RangeIndex ::=						INTEGER (1..maxNrofPCI-Ranges)


-- TAG-PCI-RANGE-INDEX-STOP
-- TAG-PCI-RANGE-INDEX-LIST-START

PCI-RangeIndexList ::=						SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeIndex

-- TAG-PCI-Range-INDEX-LIST-STOP
-- TAG-PDCCH-CONFIG-START

PDCCH-Config ::= 						SEQUENCE {
	-- List of UE specifically configured Control Resource Sets (CORESETs) to be used by the UE.
	-- The network configures at most 3 CORESETs per BWP per cell (including the initial CORESET).
	controlResourceSetToAddModList			SEQUENCE(SIZE (1..3)) OF ControlResourceSet 		OPTIONAL,
	controlResourceSetToReleaseList			SEQUENCE(SIZE (1..3)) OF ControlResourceSetId			OPTIONAL,

	-- List of UE specifically configured Control Resource Sets (CORESETs).
	-- The network configures at most 10 Search Spaces per BWP per cell (including the initial Search Space).
	searchSpacesToAddModList				SEQUENCE(SIZE (1..10)) OF SearchSpace						OPTIONAL,
	searchSpacesToReleaseList				SEQUENCE(SIZE (1..10)) OF SearchSpaceId						OPTIONAL,

	-- Configuration of downlink preemtption indications to be monitored in this cell. 
	-- Corresponds to L1 parameter 'Preemp-DL' (see 38.214, section 11.2)
	-- FFS_RAN1: LS R1-1801281 indicates this is "Per Cell (but association with each configured BWP is needed)" => Unclear, keep on BWP for now.
	downlinkPreemption						SetupRelease { DownlinkPreemption }															OPTIONAL,	-- Need M

	-- Configuration of Slot-Format-Indicators to be monitored in this cell

	-- FFS_RAN1 discusses still whether this SFI payload configuration is BWP- or Cell-Specific. 
	slotFormatIndicator						SetupRelease { SlotFormatIndicator }															OPTIONAL,	-- Need M
	-- Enable and configure reception of group TPC commands for PUSCH
	tpc-PUSCH								SetupRelease { PUSCH-TPC-CommandConfig }							OPTIONAL,   -- Need M

	-- Enable and configure reception of group TPC commands fpr PUCCH
	tpc-PUCCH								SetupRelease { PUCCH-TPC-CommandConfig }							OPTIONAL,   -- Cond PUCCH-CellOnly

	...
}

-- TAG-PDCCH-CONFIG-STOP 
-- TAG-PDCCH-CONFIGCOMMON-START

PDCCH-ConfigCommon ::=					SEQUENCE {

	-- A list of common control resource sets. Only CORESETs with ControlResourceSetId = 0 or 1 are allowed. The CORESET#0 
	-- corresponds to the CORESET configured in MIB (see pdcch-ConfigSIB1) and is used to provide that information to the UE
	-- by dedicated signalling during handover and (P)SCell addition. The CORESET#1 may be configured an used for RAR 
	-- (see ra-ControlResourceSet).
	commonControlResourcesSets					SEQUENCE (SIZE(1..2)) OF ControlResourceSet							OPTIONAL, 	-- Need R

	-- A list of additional common search spaces.
	commonSearchSpaces							SEQUENCE (SIZE(1..4)) OF SearchSpace								OPTIONAL,	-- Need R

	-- ID of the search space for SIB1 message.
	
	-- Corresponds to L1 parameter 'rmsi-SearchSpace' (see 38.213, section 10)
	searchSpaceSIB1								SearchSpaceId														OPTIONAL,	-- Need R
	-- ID of the Search space for other system information, i.e., SIB2 and beyond. 
	-- Corresponds to L1 parameter 'osi-SearchSpace' (see 38.213, section 10)
	-- If the field is absent, the monitoring occasions are derived as described in 38.213, section 10.1 and section 13.
	searchSpaceOtherSystemInformation			SearchSpaceId														OPTIONAL,	-- Need R
	
	-- ID of the Search space for paging. Corresponds to L1 parameter 'paging-SearchSpace' (see 38.213, section 10)
	-- If the field is absent, the monitoring occasions are derived as described in 38.213, section 10.1 and section 13.
	pagingSearchSpace							SearchSpaceId														OPTIONAL, 	-- Need R

	-- CORESET configured for random access. When the field is absent the UE uses the CORESET according to pdcch-ConfigSIB1
	-- which is associated with ControlResourceSetId = 0.
	-- Corresponds to L1 parameter 'rach-coreset-configuration' (see 38.211?, section FFS_Section)
	ra-ControlResourceSet					ControlResourceSetId																OPTIONAL, 	-- Need S
	-- ID of the Search space for random access procedure. Corresponds to L1 parameter 'ra-SearchSpace' (see 38.214?, section FFS_Section)
	-- If the field is absent, the monitoring occasions are derived as described in 38.213, section 10.1 and section 13.
	ra-SearchSpace							SearchSpaceId																	OPTIONAL, 	-- Need R
	...

}

-- TAG-PDCCH-CONFIGCOMMON-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-SizeUL			ENUMERATED {len12bits, len18bits}				OPTIONAL, -- Cond Setup2
		pdcp-SN-SizeDL			ENUMERATED {len12bits, len18bits}				OPTIONAL, -- Cond Setup2
		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
				},
				drb-ContinueROHC			BOOLEAN 
			},
			uplinkOnlyROHC			SEQUENCE {
				maxCID					INTEGER (1..16383)				DEFAULT 15,
				profiles				SEQUENCE {
					profile0x0006			BOOLEAN
				},
				drb-ContinueROHC			BOOLEAN 
			},
			...
		},
		integrityProtection		ENUMERATED { enabled }														OPTIONAL,	-- Cond ConnectedTo5GC
		statusReportRequired	ENUMERATED { true }															OPTIONAL,	-- Cond Rlc-AM
		outOfOrderDelivery		BOOLEAN
	}																											OPTIONAL,	-- Cond DRB
	-- FFS / TODO: Handle more than two secondary cell groups
	moreThanOneRLC			SEQUENCE {
		primaryPath				SEQUENCE {
			cellGroup				CellGroupId											OPTIONAL,	-- Need R
			logicalChannel			LogicalChannelIdentity								OPTIONAL	-- Need R
		},
		ul-DataSplitThreshold	UL-DataSplitThreshold 									OPTIONAL, -- Cond SplitBearer						
		pdcp-Duplication			ENUMERATED { true }													OPTIONAL	-- Need R
	}																										OPTIONAL, -- Cond MoreThanOneRLC

	t-Reordering				ENUMERATED {
									ms0, ms1, ms2, ms4, ms5, ms8, ms10, ms15, ms20, ms30, ms40, ms50, ms60, ms80, ms100, ms120, ms140, ms160, ms180, ms200, ms220, 
									ms240, ms260, ms280, ms300,	ms500, ms750, ms1000, ms1250, ms1500, ms1750, ms2000, ms2250, ms2500, ms2750,
									ms3000, spare28, spare27, spare26, spare25, spare24, spare23, spare22, spare21, spare20,
									spare19, spare18, spare17, spare16, spare15, spare14, spare13, spare12, spare11, spare10, spare09,
									spare08, spare07, spare06, spare05, spare04, spare03, spare02, spare01 }		OPTIONAL, -- Need S

	
	...
}

UL-DataSplitThreshold ::= 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}

-- TAG-PDCP-CONFIG-STOP
-- TAG-PDSCH-CONFIG-START

PDSCH-Config ::= 						SEQUENCE {
	-- Identifer used to initalite data scrambling (c_init) for both PDSCH.
	-- Corresponds to L1 parameter 'Data-scrambling-Identity' (see 38,214, section FFS_Section)
	-- FFS:_Replace by tye ScramblingId used in other places?
	dataScramblingIdentityPDSCH			INTEGER (0..1007)															OPTIONAL,

	-- DMRS configuration for PDSCH transmissions using PDSCH mapping type A (chosen dynamically via PDSCH-TimeDomainResourceAllocation).
	dmrs-DownlinkForPDSCH-MappingTypeA			SetupRelease { DMRS-DownlinkConfig }										OPTIONAL,	-- Need M
	-- DMRS configuration for PDSCH transmissions using PDSCH mapping type B (chosen dynamically via PDSCH-TimeDomainResourceAllocation).
	dmrs-DownlinkForPDSCH-MappingTypeB			SetupRelease { DMRS-DownlinkConfig } 							OPTIONAL,	-- Need M


	-- A list of 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-StatesToAddModList					SEQUENCE (SIZE(1..maxNrofTCI-States)) OF TCI-State					OPTIONAL,	-- Need N
	tci-StatesToReleaseList					SEQUENCE (SIZE(1..maxNrofTCI-States)) OF TCI-StateId						OPTIONAL,	-- Need N

	-- Interleaving unit configurable between 2 and 4 PRBs
	-- Corresponds to L1 parameter 'VRB-to-PRB-interleaver' (see 38.211, section 6.3.1.6)
	vrb-ToPRB-Interleaver					ENUMERATED {n2, n4},

	-- Configuration of resource allocation type 0 and resource allocation type 1 for non-fallback DCI
	-- Corresponds to L1 parameter 'Resouce-allocation-config' (see 38.214, section 5.1.2)
	resourceAllocation						ENUMERATED { resourceAllocationType0, 
resourceAllocationType1, 
dynamicSwitch},

	-- List of time-domain configurations for timing of DL assignment to DL data. If configured, the values provided herein 
	-- override the values received in corresponding PDSCH-ConfigCommon.
	pdsch-AllocationList			SEQUENCE (SIZE(1..maxNrofDL-Allocations)) OF PDSCH-TimeDomainResourceAllocation		OPTIONAL,	-- Need R
	-- Number of repetitions for data. Corresponds to L1 parameter 'aggregation-factor-DL' (see 38.214, section FFS_Section)
	-- When the field is absent the UE applies the value 1
	pdsch-AggregationFactor					ENUMERATED { n2, n4, n8 }													OPTIONAL,	-- Need S

	-- 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 'Resource-set-BWP' (see 38.214, section 5.1.2.2.3)
	-- FFS: RAN1 indicates that there should be a set of patterns per cell and one per BWP => Having both seems unnecessary.

	rateMatchPatternToAddModList			SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern											OPTIONAL, -- Need N
	rateMatchPatternToReleaseList			SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId		OPTIONAL, -- Need N

	-- The IDs of a first group of RateMatchPatterns defined in the rateMatchPatternToAddModList.
	-- Corresponds to L1 parameter 'Resource-set-group-1'. (see 38.214, section FFS_Section)
	rateMatchPatternGroup1					SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId		OPTIONAL, -- Need R
	-- The IDs of a second group of RateMatchPatterns defined in the rateMatchPatternToAddModList
	-- Corresponds to L1 parameter 'Resource-set-group-2'. (see 38.214, section FFS_Section)
	rateMatchPatternGroup2					SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId		OPTIONAL, -- Need R


	-- 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 {qam64, qam256},

	-- 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


	-- Indicates the PRB bundle type and bundle size(s). If "dynamic" is chosen, the actual BundleSizeSet to use is indicated via DCI. 
	-- If a bundleSize(Set) value is absent, the UE applies the value n2. Corresponds to L1 parameter 'PRB_bundling' 
	-- (see 38.214, section 5.1.2.3)
	prb-BundlingType					CHOICE {
		static									SEQUENCE {
			bundleSize								ENUMERATED { n4, wideband }											OPTIONAL	-- Need S
		},
		dynamic 								SEQUENCE {
			bundleSizeSet1							ENUMERATED { n4, wideband, n2-wideband, n4-wideband }				OPTIONAL,	-- Need S
			bundleSizeSet2							ENUMERATED { n4, wideband }											OPTIONAL	-- Need S
		}
	},

	-- A list of Zero-Power (ZP) CSI-RS resources used for PDSCH rate-matching.
	-- Corresponds to L1 parameter 'ZP-CSI-RS-ResourceConfigList' (see 38.214, section FFS_Section)
	zp-CSI-RS-ResourceToAddModList			SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Resources)) OF ZP-CSI-RS-Resource	OPTIONAL,	-- Need N
	zp-CSI-RS-ResourceToReleaseList			SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Resources)) OF ZP-CSI-RS-ResourceId	OPTIONAL,	-- Need M

	-- A list of sets. Each set contains a set-ID and the IDs of one or more ZP-CSI-RS-Resources (the actual resources are defined in the 
	-- zp-CSI-RS-ResourceToAddModList). The network triggers a set by indicating its set-ID (ZP-CSI-RS-ResourceSetId) in the DCI payload.
	-- The resources referenced in these sets are confgiured with resourceType 'aperiodic'.
	-- Corresponds to L1 parameter ' ZP-CSI-RS-ResourceSetConfigList' (see 38.214, section FFS_Section)
	aperiodic-ZP-CSI-RS-ResourceSetsToAddModList	SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) OF ZP-CSI-RS-ResourceSet		OPTIONAL,	-- Need N
	aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList	SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) OF ZP-CSI-RS-ResourceSetId	OPTIONAL,	-- Need N
	
	-- A list of sets. Each set contains a set-ID and the IDs of one or more ZP-CSI-RS-Resources (the actual resources are defined in the 
	-- zp-CSI-RS-ResourceToAddModList). The network triggers a set by indicating its set-ID (ZP-CSI-RS-ResourceSetId) in the MAC CE.
	-- The resources referenced in these sets are confgiured with resourceType 'semi-persistent'.
	-- Corresponds to L1 parameter 'SP-ZP-CSI-RS-Resource-List' (see 38.214, section 5.1.4_Section)
	sp-ZP-CSI-RS-ResourceSetsToAddModList	SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) OF ZP-CSI-RS-ResourceSet		OPTIONAL,	-- Need N
	sp-ZP-CSI-RS-ResourceSetsToReleaseList	SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-Sets)) OF ZP-CSI-RS-ResourceSetId	OPTIONAL,	-- Need N

	...
}




-- TAG-PDSCH-CONFIG-STOP
-- TAG-PDSCH-CONFIGCOMMON-START

PDSCH-ConfigCommon ::=					SEQUENCE {

	-- List of time-domain configurations for timing of DL assignment to DL data 
	pdsch-AllocationList			SEQUENCE (SIZE(1..maxNrofDL-Allocations)) OF PDSCH-TimeDomainResourceAllocation			OPTIONAL,	-- Need R

	...
}

-- TAG-PDSCH-CONFIGCOMMON-STOP
-- TAG-PDSCH-SERVINGCELLCONFIG-START

PDSCH-ServingCellConfig ::= 			SEQUENCE {
	-- Enables and configures code-block-group (CBG) based transmission (see 38.213, section 9.1.1)
	codeBlockGroupTransmission				SetupRelease { PDSCH-CodeBlockGroupTransmission }						OPTIONAL,	-- Need M
	-- Accounts for overhead from CSI-RS, CORESET, etc. If the field is absent, the UE applies value xOh0.
	-- Corresponds to L1 parameter 'Xoh-PDSCH' (see 38.214, section 5.1.3.2)
	xOverhead								ENUMERATED { xOh6, xOh12, xOh18 }										OPTIONAL,	-- Need S
	-- The number of HARQ processes to be used on the PDSCH of a serving cell. n2 corresponds to 2 HARQ processes, n4 to 4 HARQ processes 
	-- and so on. If the field is absent, the UE uses 8 HARQ processes. 
	-- Corresponds to L1 parameter 'number-HARQ-process-PDSCH' (see 38.214, section REF) 
	nrofHARQ-ProcessesForPDSCH				ENUMERATED {n2, n4, n6, n10, n12, n16}									OPTIONAL,	-- Need S
	-- The ID of the serving cell (of the same cell group) to use for PUCCH. 
	-- If the field is absent, the UE sends the HARQ feedback on the PUCCH of the SpCell of this cell group. 
	pucch-Cell								ServCellIndex															OPTIONAL	,	-- Cond SCellAddOnly
	...
}

PDSCH-CodeBlockGroupTransmission ::=		SEQUENCE {
	-- 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 38.212, section 7.3.1.2.2)
	codeBlockGroupFlushIndicator			BOOLEAN,
	...
}

-- TAG-PDSCH-SERVINGCELLCONFIG-STOP
-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATION-START

PDSCH-TimeDomainResourceAllocation ::= 		SEQUENCE {
	-- Corresponds to L1 parameter 'K0' (see 38.214, section FFS_Section)
	-- When the field is absent the UE applies the value 0
	k0									INTEGER (1..3)																OPTIONAL,	-- Need S
	-- PDSCH mapping type. Corresponds to L1 parameter 'Mapping-type' (see 38.214, section FFS_Section)
	mappingType							ENUMERATED {typeA, typeB},
	-- An index into a table/equation in RAN1 specs capturing valid combinations of start symbol and length (jointly encoded)
	-- Corresponds to L1 parameter 'Index-start-len' (see 38.214, section FFS_Section)
	startSymbolAndLength				BIT STRING (SIZE (7))
}

-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATION-STOP
-- TAG-PHYS-CELL-ID-START

PhysCellId ::=						INTEGER (0..1007)

-- TAG-PHYS-CELL-ID-STOP
-- TAG-PRB-ID-START

PRB-Id ::=						INTEGER (0..maxNrofPhysicalResourceBlocks-1)

-- TAG-PRB-ID-STOP
-- TAG-PTRS-DOWNLINKCONFIG-START

PTRS-DownlinkConfig ::= 					SEQUENCE {
	-- Presence and  frequency density of DL PT-RS as a function of Scheduled BW 
	-- If the field is absent, the UE uses K_PT-RS = 2.
	-- Corresponds to L1 parameter 'DL-PTRS-frequency-density-table' (see 38.214, section 5.1)
	frequencyDensity							SEQUENCE (SIZE (2)) OF INTEGER (1..276)			OPTIONAL,	-- Need S
	-- Presence and time density of DL PT-RS  as a function of MCS. The value 29 is only applicable for MCS Table 5.1.3.1-1 (38.214)
	-- If the field is absent, the UE uses L_PT-RS = 1.
	-- Corresponds to L1 parameter 'DL-PTRS-time-density-table' (see 38.214, section 5.1)
	timeDensity									SEQUENCE (SIZE (3)) OF INTEGER (0..29)		OPTIONAL, 	-- Need S
	-- EPRE ratio between PTRS and PDSCH. Value 0 correspond to the codepoint ”00” in table 4.1-2. Value 1 corresponds to codepoint ”01” 
	-- If the field is not provided, the UE applies value 0. Corresponds to L1 parameter 'DL-PTRS-EPRE-ratio' (see 38.214, section 4.1)
	epre-RatioPort1								INTEGER (0..3)															OPTIONAL,	-- Need S
	-- EPRE ratio between PTRS and PDSCH. Value 0 correspond to the codepoint ”00” in table 4.1-2. Value 1 corresponds to codepoint ”01”.
	-- If the field is not provided, the UE applies value 0. Corresponds to L1 parameter 'DL-PTRS-EPRE-ratio' (see 38.214, section 4.1)
	epre-RatioPort2								SEQUENCE (SIZE (1..2)) OF INTEGER (0..3)								OPTIONAL,	-- Cond TwoPorts
	-- Indicates the subcarrier offset for DL PTRS. If the field is absent, the UE applies the value offset00.
	-- Corresponds to L1 parameter 'DL-PTRS-RE-offset' (see 38.214, section 5.1.6.3)
	resourceElementOffset						ENUMERATED { offset01, offset10, offset11 }							OPTIONAL,	-- Need S
	...
}

-- TAG-PTRS-DOWNLINKCONFIG-STOP
-- TAG-PTRS-UPLINKCONFIG-START

PTRS-UplinkConfig ::= 					SEQUENCE { 

	modeSpecificParameters					CHOICE {
		-- Configuration of UL PTRS for CP-OFDM
		cp-OFDM									SEQUENCE {
			-- Presence and  frequency density of UL PT-RS for CP-OFDM waveform as a function of scheduled BW 
			-- If the field is absent, the UE uses K_PT-RS = 2.
			-- Corresponds to L1 parameter 'UL-PTRS-frequency-density-table' (see 38.214, section 6.1)
			frequencyDensity						SEQUENCE (SIZE (2)) OF INTEGER (1..276)		OPTIONAL,	-- Need S
			-- Presence and time density of UL PT-RS for CP-OFDM waveform as a function of MCS 
				-- If the field is absent, the UE uses L_PT-RS = 1.
			-- Corresponds to L1 parameter 'UL-PTRS-time-density-table' (see 38.214, section 6.1)
			timeDensity								SEQUENCE (SIZE (3)) OF INTEGER (0..29)		OPTIONAL, 	-- Need S
			-- The maximum number of UL PTRS ports for CP-OFDM. 
			-- Corresponds to L1 parameter 'UL-PTRS-ports' (see 38.214, section 6.2.3.1)
			maxNrofPorts								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					ENUMERATED {offset01, offset10, offset11 }			OPTIONAL,	-- Need S
			-- UL PTRS power boosting factor per PTRS port. Corresponds to L1 parameter 'UL-PTRS-power' (see 38.214, section 6.1, table 6.2.3-5)
			ptrs-Power								ENUMERATED {p00, p01, p10, p11}
		},
		-- Configuration of UL PTRS for DFT-S-OFDM. 
		dft-S-OFDM								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. 
			-- Corresponds to L1 parameter 'UL-PTRS-pre-DFT-density' (see 38.214, section 6.1, 6.2.3-3)
			sampleDensity						SEQUENCE (SIZE (5)) OF INTEGER (1..276),
			-- Time density (OFDM symbol level) of PT-RS for DFT-s-OFDM. If the value is absent, the UE applies value d1.
			-- Corresponds to L1 parameter 'UL-PTRS-time-density-transform-precoding' (see 38.214, section 6.1)
			timeDensity							ENUMERATED {d2}														OPTIONAL	-- Need S
		}
	}																													OPTIONAL,	-- Cond M
	...
}

-- TAG-PTRS-UPLINKCONFIG-STOP
-- TAG-PUCCH-CONFIG-START

PUCCH-Config ::= 						SEQUENCE {
	-- Lists for adding and releasing PUCCH resource sets (see 38.213, section 9.2)
	resourceSetToAddModList					SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSet				OPTIONAL,	-- Need N
	resourceSetToReleaseList				SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSetId			OPTIONAL,	-- Need N

	-- Lists for adding and releasing PUCCH resources applicable for the UL BWP and serving cell in which the PUCCH-Config 
	-- is defined. The resources defined herein are referred to from other parts of the configuration to determine which 
	-- resource the UE shall use for which report. 
	resourceToAddModList					SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-Resource				OPTIONAL,	-- Need N
	resourceToReleaseList					SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceId				OPTIONAL,	-- Need N

	-- Parameters that are common for all PUCCH resources of format 1
	format1									SetupRelease { PUCCH-FormatConfig }												OPTIONAL,	-- Need M
	-- Parameters that are common for all PUCCH resources of format 2
	format2									SetupRelease { PUCCH-FormatConfig }												OPTIONAL,	-- Need M
	-- Parameters that are common for all PUCCH resources of format 3
	format3									SetupRelease { PUCCH-FormatConfig }												OPTIONAL,	-- Need M
	-- Parameters that are common for all PUCCH resources of format 4
	format4									SetupRelease { PUCCH-FormatConfig }												OPTIONAL,	-- Need M

	schedulingRequestResourceToAddModList	SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig		OPTIONAL, -- Need M
	schedulingRequestResourceToReleaseList	SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceId			OPTIONAL, -- Need M

	multi-CSI-PUCCH-ResourceList			SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId										OPTIONAL,-- Need M

	-- List of timiing for given PDSCH to the DL ACK. In this version of the specification only the values [0..8] are applicable.
	-- Corresponds to L1 parameter 'Slot-timing-value-K1' (see 38.213, section FFS_Section)
	dl-DataToUL-ACK							SEQUENCE (SIZE (8)) OF INTEGER (0..15)											OPTIONAL,	-- Need M

	-- Configuration of the spatial relation between a reference RS and PUCCH. Reference RS can be SSB/CSI-RS/SRS.
	-- If the list has more than one element, MAC-CE selects a single element (see 38.321, section FFS_Section).
	-- Corresponds to L1 parameter 'PUCCH-SpatialRelationInfo' (see 38.213, section FFS_Section)
	spatialRelationInfoToAddModList			SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfo	OPTIONAL,	-- Need N
	spatialRelationInfoToReleaseList		SEQUENCE (SIZE (1..maxNrofSpatialRelationInfos)) OF PUCCH-SpatialRelationInfoId	OPTIONAL,	-- Need N

	pucch-PowerControl						PUCCH-PowerControl																OPTIONAL,	-- Need M
	...
}

PUCCH-FormatConfig ::=					SEQUENCE {
	-- Enabling inter-slot frequency hopping when PUCCH Format 1, 3 or 4 is repetead over multiple slots.
	-- The field is not applicable for format 2.
	interslotFrequencyHopping				ENUMERATED {enabled}														OPTIONAL, 	-- Need R
	-- Enabling 2 DMRS symbols per hop of a PUCCH Format 3 or 4 if both hops are more than X symbols when FH is enabled (X=4).
	-- Enabling 4 DMRS sybmols for a PUCCH Format 3 or 4 with more than 2X+1 symbols when FH is disabled (X=4).
	-- Corresponds to L1 parameter 'PUCCH-F3-F4-additional-DMRS' (see 38.213, section 9.2.1)
	-- The field is not applicable for format 1 and 2.
	additionalDMRS							ENUMERATED {true}															OPTIONAL,	-- Need R
	-- Max coding rate to determine how to feedback UCI on PUCCH for format 2, 3 or 4
	-- Corresponds to L1 parameter 'PUCCH-F2-maximum-coderate', 'PUCCH-F3-maximum-coderate' and 'PUCCH-F4-maximum-coderate' 
	-- (see 38.213, section 9.2.5)
	-- The field is not applicable for format 1.
	maxCodeRate								PUCCH-MaxCodeRate															OPTIONAL,	-- Need R
	-- Number of slots with the same PUCCH F1, F3 or F4. When the field is absent the UE applies the value n1.
	-- Corresponds to L1 parameter 'PUCCH-F1-number-of-slots', 'PUCCH-F3-number-of-slots' and 'PUCCH-F4-number-of-slots'
	-- (see 38.213, section 9.2.6)
	-- The field is not applicable for format 2.
	nrofSlots								ENUMERATED {n2,n4,n8}													OPTIONAL, 	-- Need S
	-- Enabling pi/2 BPSK for UCI symbols instead of QPSK for PUCCH. 
	-- Corresponds to L1 parameter 'PUCCH-PF3-PF4-pi/2PBSK' (see 38.213, section 9.2.5)
	-- The field is not applicable for format 1 and 2.
	pi2PBSK									ENUMERATED {enabled}														OPTIONAL, 	-- Need R
	-- Enabling simultaneous transmission of CSI and HARQ-ACK feedback with or without SR with PUCCH Format 2, 3 or 4
	-- Corresponds to L1 parameter 'PUCCH-F2-Simultaneous-HARQ-ACK-CSI', 'PUCCH-F3-Simultaneous-HARQ-ACK-CSI' and
	-- 'PUCCH-F4-Simultaneous-HARQ-ACK-CSI' (see 38.213, section 9.2.5)
	-- When the field is absent the UE applies the value OFF
	-- The field is not applicable for format 1.
	simultaneousHARQ-ACK-CSI				ENUMERATED {true}															OPTIONAL	-- Need R
}

PUCCH-MaxCodeRate ::= 						ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35, zeroDot45, zeroDot60, zeroDot80}

PUCCH-SpatialRelationInfo ::=				SEQUENCE {
	pucch-SpatialRelationInfoId					PUCCH-SpatialRelationInfoId,
	referenceSignal 							CHOICE {
		ssb-Index									SSB-Index,
		csi-RS-Index								NZP-CSI-RS-ResourceId,
		srs											SRS-ResourceId
	},
	pucch-PathlossReferenceRS-Id 				PUCCH-PathlossReferenceRS-Id,
	p0-PUCCH-Id									P0-PUCCH-Id,
	closedLoopIndex								ENUMERATED { i0, i1 }
}

PUCCH-SpatialRelationInfoId ::= 			INTEGER (1..maxNrofSpatialRelationInfos)

-- A set with one or more PUCCH resources
PUCCH-ResourceSet ::=							SEQUENCE {
	pucch-ResourceSetId								PUCCH-ResourceSetId,

	-- PUCCH resources of format0 and format1 are only allowed in the first PUCCH reosurce set,
	-- i.e., in a PUCCH-ResourceSet with pucch-ResourceSetId = 0. This set may contain between 8 and 32 resources. 
	-- PUCCH resources of format2, format3 and format4 are only allowed  in a PUCCH-ReosurceSet with pucch-ResourceSetId > 0. If present, these sets must contain 8 resources each.
	-- The UE chooses a PUCCH-Resource from this list based on the 3-bit PUCCH resource indicator field in DCI as 
	-- speciied in 38.213, FFS_section.
	-- Note that this list contains only a list of resource IDs. The actual resources are configured in PUCCH-Config.
	resources										SEQUENCE (SIZE (8..maxNrofPUCCH-ResourcesPerSet)) OF PUCCH-ResourceId,

	-- Maximum number of payload bits minus 1 that the UE may transmit using this PUCCH resource set. In a PUCCH occurrence, the UE 
	-- chooses the first of its PUCCH-ResourceSet which supports the number of bits that the UE wants to transmit. 
	-- The field is not present in the first set (Set0) since the maximum Size of Set0 is specified to be 3 bit.
	-- The field is not present in the last configured set since the UE derives its maximum payload size as specified in 38.213.
	-- This field can take integer values that are multiples of 4. Corresponds to L1 parameter 'N_2' or 'N_3' (see 38.213, section 9.2)
	maxPayloadMinus1								INTEGER (4..256)														OPTIONAL	-- Need R
}

PUCCH-ResourceSetId ::=							INTEGER (0..maxNrofPUCCH-ResourceSets-1)

PUCCH-Resource ::= 								SEQUENCE {
	pucch-ResourceId								PUCCH-ResourceId,

	startingPRB										PRB-Id, 
	-- Corresponds to the L1 parameter 'PUCCH-frequency-hopping' (see 38.213, section 9.2)
	intraSlotFrequencyHopping						ENUMERATED { enabled }													OPTIONAL,	-- Need R
	-- Index of starting PRB for second hop of PUCCH in case of FH. This value is appliable for intra-slot frequency hopping.
	-- Corresponds to L1 parameter 'PUCCH-2nd-hop-PRB' (see 38.213, section 9.2)
	secondHopPRB									PRB-Id																	OPTIONAL,	-- Need R

	-- Selection of the PUCCH format and format-specific parameters
	format											CHOICE {
		format0											PUCCH-format0,														-- Cond InFirstSetOnly
		format1											PUCCH-format1,														-- Cond InFirstSetOnly
		format2											PUCCH-format2,														-- Cond NotInFirstSet
		format3											PUCCH-format3,														-- Cond NotInFirstSet
		format4											PUCCH-format4														-- Cond NotInFirstSet
	}
}

PUCCH-ResourceId ::=							INTEGER (0..maxNrofPUCCH-Resources-1)


-- A PUCCH Format 0 resource configuration (see 38.213, section 9.2)
-- Corresponds to L1 parameter 'PUCCH-format0' (see 38.213, section 9.2.1)
PUCCH-format0 ::=								SEQUENCE {
	initialCyclicShift								INTEGER(0..11),
	nrofSymbols										INTEGER (1..2), 
	startingSymbolIndex								INTEGER(0..13) 
}

-- A PUCCH Format 1 resource configuration (see 38.213, section 9.2)
-- Corresponds to L1 parameter 'PUCCH-format1' (see 38.213, section 9.2.1)
PUCCH-format1 ::= 								SEQUENCE {
	initialCyclicShift								INTEGER(0..11), 
	nrofSymbols										INTEGER (4..14), 
	startingSymbolIndex								INTEGER(0..10), 
	timeDomainOCC									INTEGER(0..6)
}

-- A PUCCH Format 2 resource configuration (see 38.213, section 9.2)
-- Corresponds to L1 parameter 'PUCCH-format2onfig' (see 38.213, section 9.2.1)
PUCCH-format2 ::= 								SEQUENCE {
	nrofPRBs										INTEGER (1..16), 
	nrofSymbols										INTEGER (1..2), 
	startingSymbolIndex								INTEGER(0..13) 
}

-- A PUCCH Format 3 resource configuration(see 38.213, section 9.2)
-- Corresponds to L1 parameter 'PUCCH-format3' (see 38.213, section 9.2.1)
PUCCH-format3 ::= 								SEQUENCE {
	-- The supported values are 1,2,3,4,5,6,8,9,10,12,15 and 16
	nrofPRBs										INTEGER (1..16), 
	nrofSymbols										INTEGER (4..14), 
	startingSymbolIndex								INTEGER(0..10) 
}

-- A PUCCH Format 4 resource configuration (see 38.213, section 9.2)
-- Corresponds to L1 parameter 'PUCCH-format4' (see 38.213, section 9.2.1)
PUCCH-format4 ::= 								SEQUENCE {
	nrofSymbols										INTEGER (4..14), 
	occ-Length										ENUMERATED {n2,n4}, 
	occ-Index										ENUMERATED {n0,n1,n2,n3},
	startingSymbolIndex								INTEGER(0..10) 
}

-- TAG-PUCCH-CONFIG-STOP 
-- TAG-PUCCH-CONFIGCOMMON-START

PUCCH-ConfigCommon ::=					SEQUENCE {
	-- An entry into a 16-row table where each row configures a set of cell-specific PUCCH resources/parameters. The UE uses 
	-- those PUCCH resources during initial access on the initial uplink BWP. Once the network provides a dedicated PUCCH-Config 
	-- for that bandwidth part the UE applies that one instead of the one provided in this field.   
	-- Corresponds to L1 parameter 'PUCCH-resource-common' (see 38.213, section 9.2)
	pucch-ResourceCommon					BIT STRING (SIZE (4))															OPTIONAL,	-- Need R

	-- Configuration of group- and sequence hopping for all the PUCCH formats 0, 1, 3 and 4. "neither" implies neither group 
	-- or sequence hopping is enabled. "enable" enables group hopping and disables sequence hopping. "disable"” disables group 
	-- hopping and enables sequence hopping. Corresponds to L1 parameter 'PUCCH-GroupHopping' (see 38.211, section 6.4.1.3)
	pucch-GroupHopping						ENUMERATED { neither, enable, disable },
	-- Cell-Specific scrambling ID for group hoppping and sequence hopping if enabled.
	-- Corresponds to L1 parameter 'HoppingID' (see 38.211, section 6.3.2.2)
	hoppingId								BIT STRING (SIZE (10))															OPTIONAL, 	-- Need R

	-- Power control parameter P0 for PUCCH transmissions. Value in dBm. Only even values (step size 2) allowed. 
	-- Corresponds to L1 parameter 'p0-nominal-pucch' (see 38.213, section 7.2)
	p0-nominal								INTEGER (-202..24)																OPTIONAL, 	-- Need R

	...
}

-- TAG-PUCCH-CONFIGCOMMON-STOP
-- TAG-PUCCH-POWERCONTROL-START
PUCCH-PowerControl ::= 				SEQUENCE {

	-- deltaF for PUCCH format 0 with 1dB step size (see 38.213, section 7.2)
	deltaF-PUCCH-f0							INTEGER (-16..15)																	OPTIONAL, 	-- Need R
	-- deltaF for PUCCH format 1 with 1dB step size (see 38.213, section 7.2)
	deltaF-PUCCH-f1							INTEGER (-16..15)																	OPTIONAL, 	-- Need R
	-- deltaF for PUCCH format 2 with 1dB step size (see 38.213, section 7.2)
	deltaF-PUCCH-f2							INTEGER (-16..15)																	OPTIONAL, 	-- Need R
	-- deltaF for PUCCH format 3 with 1dB step size (see 38.213, section 7.2)
	deltaF-PUCCH-f3							INTEGER (-16..15)																	OPTIONAL, 	-- Need R
	-- deltaF for PUCCH format 4 with 1dB step size (see 38.213, section 7.2)
	deltaF-PUCCH-f4							INTEGER (-16..15)																	OPTIONAL, 	-- Need R

	-- A set with dedicated P0 values for PUCCH, i.e.,  {P01, P02,... }. Corresponds to L1 parameter 'p0-pucch-set' (see 38.213, section 7.2)
	p0-Set								SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF P0-PUCCH									OPTIONAL, -- Need M

	-- A set of Reference Signals (e.g. a CSI-RS config or a SSblock) to be used for PUCCH pathloss estimation. 
	-- Up to maxNrofPUCCH-PathlossReference-RSs may be configured
	-- FFS_CHECK: Is it possible not to configure it at all? What does the UE use then? Any SSB?
	-- Corresponds to L1 parameter 'pucch-pathlossReference-rs-config' (see 38.213, section 7.2)
	pathlossReferenceRSs				SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF PUCCH-PathlossReferenceRS	OPTIONAL, -- Need M
	-- Number of PUCCH power control adjustment states maintained by the UE (i.e., g(i)). If the field is present (n2) the UE maintains
	-- two power control states (i.e., g(i,0) and g(i,1)). Otherwise, it applies one (i.e., g(i,0)). 
	-- Corresponds to L1 parameter 'num-pucch-pcadjustment-states' (see 38.213, section 7.2)
	twoPUCCH-PC-AdjustmentStates		ENUMERATED {twoStates}																	OPTIONAL, -- Need R
	...
}

-- P0 value for PUCCH. Corresponds to L1 parameter 'p0-pucch' (see 3,213, section 7.2)
P0-PUCCH ::=							SEQUENCE {
	p0-PUCCH-Id								P0-PUCCH-Id,
	-- P0 value for PUCCH with 1dB step size.
	p0-PUCCH-Value							INTEGER (-16..15)
}

P0-PUCCH-Id ::=							INTEGER (1..8)

-- A reference signal (RS) configured as pathloss reference signal for PUCCH power control
-- Corresponds to L1 parameter 'pucch-pathlossReference-rs' (see 38.213, section 7.2)
PUCCH-PathlossReferenceRS ::=					SEQUENCE {
	pucch-PathlossReferenceRS-Id 				PUCCH-PathlossReferenceRS-Id, 
	referenceSignal								CHOICE {
		ssb-Index									SSB-Index,
		csi-RS-Index								NZP-CSI-RS-ResourceId
	}
}

-- ID for a referemce signal (RS) configured as PUCCH pathloss reference 
-- Corresponds to L1 parameter 'pucch-pathlossreference-index' (see 38.213, section 7.2)
-- FFS_CHECK: Is this ID used anywhere except inside the PUCCH-PathlossReference-RS	itself? If not, remove.
PUCCH-PathlossReferenceRS-Id ::=			INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1)

-- TAG-PUCCH-POWERCONTROL-STOP
-- TAG-PUCCH-TPC-COMMANDCONFIG-START

PUCCH-TPC-CommandConfig ::=				SEQUENCE {
	-- An index determining the position of the first bit of TPC command (applicable to the SpCell) inside the DCI format 2-2 payload. 
	tpc-IndexPCell							INTEGER (1..15)													OPTIONAL,	-- Cond PUCCH-SCell
	-- An index determining the position of the first bit of TPC command (applicable to the PUCCH-SCell) inside the DCI format 2-2 payload. 
	tpc-IndexPUCCH-SCell					INTEGER (1..15)													OPTIONAL,	-- Cond PUCCH-SCellOnly
    ...
}

-- TAG-PUCCH-TPC-COMMANDCONFIG-STOP
-- TAG-PUSCH-CONFIG-START

PUSCH-Config ::= 						SEQUENCE {
	-- Identifer used to initalite data scrambling (c_init) for both PUSCH.
	-- Corresponds to L1 parameter 'Data-scrambling-Identity' (see 38,214, section FFS_Section)
	dataScramblingIdentityPUSCH			INTEGER (0..1007)															OPTIONAL,	-- Need M
	-- Whether UE uses codebook based or non-codebook based transmission. Corresponds to L1 parameter 'ulTxConfig' (see 38.214, section 6.1.1)
	txConfig								ENUMERATED {codebook, nonCodebook},

	-- DMRS configuration for PUSCH transmissions using PUSCH mapping type A (chosen dynamically via PUSCH-TimeDomainResourceAllocation).
	dmrs-UplinkForPUSCH-MappingTypeA		SetupRelease { DMRS-UplinkConfig }											OPTIONAL,	-- Need M
	-- DMRS configuration for PUSCH transmissions using PUSCH mapping type B (chosen dynamically via PUSCH-TimeDomainResourceAllocation)
	dmrs-UplinkForPUSCH-MappingTypeB		SetupRelease { DMRS-UplinkConfig }									OPTIONAL,	-- Need M

	pusch-PowerControl						PUSCH-PowerControl															OPTIONAL, -- Need M
	-- 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}													OPTIONAL,	-- Need S
	-- Set of frequency hopping offsets used when frequency hopping is enabled for granted transmission (not msg3) and type 2
	-- Corresponds to L1 parameter 'Frequency-hopping-offsets-set' (see 38.214, section 6.3)
	frequencyHoppingOffsetLists				SEQUENCE (SIZE (1..4)) OF INTEGER (1.. maxNrofPhysicalResourceBlocks-1)	OPTIONAL,	-- Need M
	-- Configuration of resource allocation type 0 and resource allocation type 1 for non-fallback DCI
	-- Corresponds to L1 parameter 'Resouce-allocation-config' (see 38.214, section 6.1.2)
	resourceAllocation						ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch},

	-- List of time domain allocations for timing of UL assignment to UL data. If configured, the values provided herein 
	-- override the values received in corresponding PUSCH-ConfigCommon.
	pusch-AllocationList					SEQUENCE (SIZE(1..maxNrofUL-Allocations)) OF PUSCH-TimeDomainResourceAllocation	OPTIONAL, 	-- Need R,
	-- Number of repetitions for data. Corresponds to L1 parameter 'aggregation-factor-UL' (see 38.214, section FFS_Section)
	-- When the field is absent the UE applies the value 1.
	pusch-AggregationFactor					ENUMERATED { n2, n4, n8 }													OPTIONAL, 	-- Need S

	-- 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 {qam256}													OPTIONAL,	-- Need S
	-- 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 { qam256}													OPTIONAL,	-- Need S
	-- The UE specific 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, disabled}												OPTIONAL,	-- Need S
	-- Subset of PMIs addressed by TPMI, where PMIs are those supported by UEs with maximum coherence capabilities 
	-- Corresponds to L1 parameter 'ULCodebookSubset' (see 38.211, section 6.3.1.5)
	codebookSubset			ENUMERATED {fullyAndPartialAndNonCoherent, partialAndNonCoherent, nonCoherent},
	-- Subset of PMIs addressed by TRIs from 1 to ULmaxRank. Corresponds to L1 parameter 'ULmaxRank' (see 38.211, section 6.3.1.5)
	maxRank									INTEGER (1..4),

	-- Selection between config 1 and config 2 for RBG size for PUSCH. When the field is absent the UE applies the value config1.
	-- Corresponds to L1 parameter 'RBG-size-PUSCH' (see 38.214, section 6.1.2.2.1)
	rbg-Size								ENUMERATED { config2}												OPTIONAL,	-- Need S

	-- Selection between and configuration of dynamic and semi-static beta-offset.
	-- If the field is absent or released, the UE applies the value 'semiStatic' and the BetaOffsets according to 
	-- FFS [BetaOffsets and/or section 9.x.x).
	-- Corresponds to L1 parameter 'UCI-on-PUSCH' (see 38.213, section 9.3)
	uci-OnPUSCH							SetupRelease { UCI-OnPUSCH}									OPTIONAL, -- Need M
	-- Interleaving unit configurable between 2 and 4 PRBs
	-- Corresponds to L1 parameter 'VRB-to-PRB-interleaver' (see 38.211, section 6.3.1.6)
	vrb-ToPRB-Interleaver					ENUMERATED {n2, n4},
	...
}

UCI-OnPUSCH ::= 						SEQUENCE {
	betaOffsets								CHOICE {
			dynamic									SEQUENCE (SIZE (4)) OF BetaOffsets,
			semiStatic								BetaOffsets
	}																													OPTIONAL, -- Need M
	-- Indicates a scaling factor to limit the number of resource elements assigned to UCI on PUSCH.
	-- Value f0p5 corresponds to 0.5, value f0p65 corresponds to 0.65, and so on. 
	-- Corresponds to L1 parameter 'uci-on-pusch-scaling' (see 38.212, section 6.3)
	scaling						ENUMERATED { f0p5, f0p65, f0p8, f1 }
}

-- TAG-PUSCH-CONFIG-STOP
-- TAG-PUSCH-CONFIGCOMMON-START

PUSCH-ConfigCommon ::= 					SEQUENCE {
	-- Sequence-group hopping can be enabled or disabled by means of this cell-specific parameter. 
	-- Corresponds to L1 parameter 'Group-hopping-enabled-Transform-precoding' (see 38.211, section FFS_Section)
	-- This field is Cell specific
	groupHoppingEnabledTransformPrecoding	ENUMERATED {enabled}															OPTIONAL,	-- Need R

	-- List of time domain allocations for timing of UL assignment to UL data
	pusch-AllocationList					SEQUENCE (SIZE(1..maxNrofUL-Allocations)) OF PUSCH-TimeDomainResourceAllocation	OPTIONAL,	-- Need R

	-- ------------------------
	-- Power control parameters

	-- Power offset between msg3 and RACH preamble transmission in steps of 1dB. 
	-- Corresponds to L1 parameter 'Delta-preamble-msg3' (see 38.213, section 7.1)
	msg3-DeltaPreamble							INTEGER (-1..6)															OPTIONAL,	-- Need R

	-- P0 value for PUSCH with grant (except msg3). Value in dBm. Only even values (step size 2) allowed.
	-- Corresponds to L1 parameter 'p0-nominal-pusch-withgrant' (see 38.213, section 7.1)
	-- This field is cell specific
	p0-NominalWithGrant						INTEGER (-202..24)																OPTIONAL,	-- Need R
	...
}

-- TAG-PUSCH-CONFIGCOMMON-STOP
-- TAG-PUSCH-POWERCONTROL-START

PUSCH-PowerControl ::= 						SEQUENCE {

	-- If enabled, UE applies TPC commands via accumulation. If not enabled, UE applies the TPC command without accumulation. 
	-- If absent, TPC accumulation is enabled. Corresponds to L1 parameter 'Accumulation-enabled' (see 38.213, section 7.1)
	tpc-Accumulation							ENUMERATED { disabled }													OPTIONAL,	-- Need R

	-- Dedicated alpha value for msg3 PUSCH. Corresponds to L1 parameter 'alpha-ue-pusch-msg3' (see 38.213, section 7.1)
	-- When the field is absent the UE applies the value 1.
	msg3-Alpha									Alpha																	OPTIONAL, 	-- Need S

	-- P0 value for UL grant-free/SPS based PUSCH. Value in dBm. Only even values (step size 2) allowed.
	-- Corresponds to L1 parameter 'p0-nominal-pusch-withoutgrant' (see 38.213, section 7.1)
	p0-NominalWithoutGrant						INTEGER (-202..24)														OPTIONAL,	-- Need M,
	-- configuration {p0-pusch,alpha} sets for PUSCH (except msg3), i.e., { {p0,alpha,index1}, {p0,alpha,index2},...}.
	-- Corresponds to L1 parameter 'p0-push-alpha-setconfig' (see 38,213, section 7.1)
	p0-AlphaSets								SEQUENCE (SIZE (1..maxNrofP0-PUSCH-AlphaSets)) OF P0-PUSCH-AlphaSet		OPTIONAL,	-- Need M,

	-- A set of Reference Signals (e.g. a CSI-RS config or a SSblock) to be used for PUSCH path loss estimation. 
	-- Up to maxNrofPUSCH-PathlossReferenceRSs may be configured when 'PUSCH beam indication' is present (FFS: in DCI???). 
	-- Otherwise, there may be only one entry. 
	-- Corresponds to L1 parameter 'pusch-pathlossReference-rs-config' (see 38.213, section 7.1)
	pathlossReferenceRSToAddModList				SEQUENCE (SIZE (1..maxNrofPUSCH-PathlossReferenceRSs)) OF PUSCH-PathlossReferenceRS	
																														OPTIONAL,	-- Need N
	pathlossReferenceRSToReleaseList			SEQUENCE (SIZE (1..maxNrofPUSCH-PathlossReferenceRSs)) OF PUSCH-PathlossReferenceRS-Id	
																														OPTIONAL,	-- Need N

	-- Number of PUSCH power control adjustment states maintained by the UE (i.e., fc(i)). If the field is present (n2) the UE maintains
	-- two power control states (i.e., fc(i,1) and fc(i,2)). Otherwise, it applies one (i.e., fc(i,1)). 
	-- Corresponds to L1 parameter 'num-pusch-pcadjustment-states' (see 38.213, section 7.1)
	twoPUSCH-PC-AdjustmentStates				ENUMERATED {twoStates}													OPTIONAL, -- Need S

	-- Indicates whether to apply dela MCS. When the field is absent, the UE applies Ks = 0 in delta_TFC formula for PUSCH. 
	-- Corresponds to L1 parameter 'deltaMCS-Enabled' (see 38.213, section 7.1)
	deltaMCS									ENUMERATED {enabled}													OPTIONAL, -- Need S

	-- A list of SRI-PUSCH-PowerControl elements among which one is selected by the SRI field in DCI. 
	-- Corresponds to L1 parameter 'SRI-PUSCHPowerControl-mapping' (see 38.213, section 7.1)
	sri-PUSCH-MappingToAddModList			SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControl		OPTIONAL, -- Need M
	sri-PUSCH-MappingToReleaseList				SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControlId	OPTIONAL -- Need M 
}

-- A set of p0-pusch and alpha used for PUSCH with grant. 'PUSCH beam indication' (if present) gives the index of the set to 
-- be used for a particular PUSCH transmission.
-- FFS_CHECK: Is the ”PUSCH beam indication” in DCI which schedules the PUSCH? If so, clarify in field description
-- Corresponds to L1 parameter 'p0-pusch-alpha-set' (see 38.213, section 7.1)
P0-PUSCH-AlphaSet ::= 						SEQUENCE {
	p0-PUSCH-AlphaSetId 						P0-PUSCH-AlphaSetId,
	-- P0 value for PUSCH with grant (except msg3) in steps of 1dB. Corresponds to L1 parameter 'p0-pusch' (see 38,213, section 7.1)
	p0											INTEGER (-16..15)															OPTIONAL,
	-- alpha value for PUSCH with grant (except msg3) (see 38.213, section 7.1)
	-- When the field is absent the UE applies the value 1
	alpha 										Alpha																	OPTIONAL	-- Need S
}

-- ID for a P0-PUSCH-AlphaSet. Corresponds to L1 parameter 'p0alphasetindex' (see 38.213, section 7.1)
P0-PUSCH-AlphaSetId ::= 					INTEGER (0..maxNrofP0-PUSCH-AlphaSets-1)

-- A reference signal (RS) configured as pathloss reference signal for PUSCH power control
-- Corresponds to L1 parameter 'pusch-pathlossReference-rs' (see 38.213, section 7.1)
PUSCH-PathlossReferenceRS ::=				SEQUENCE {
	pusch-PathlossReferenceRS-Id 				PUSCH-PathlossReferenceRS-Id, 
	referenceSignal								CHOICE {
		ssb-Index									SSB-Index,
		csi-RS-Index									NZP-CSI-RS-ResourceId
	}
}

-- ID for a referemce signal (RS) configured as PUSCH pathloss reference 
-- Corresponds to L1 parameter 'pathlossreference-index' (see 38.213, section 7.1)
-- FFS_CHECK: Is this ID used anywhere except inside the PUSCH-PathlossReference-RS	itself?
PUSCH-PathlossReferenceRS-Id ::=			INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1)


-- A set of PUSCH power control parameters associated with one SRS-ResourceIndex (SRI)
SRI-PUSCH-PowerControl ::=					SEQUENCE {
	-- The ID of this SRI-PUSCH-PowerControl configuration. It is used as the codepoint (payload) in the SRI DCI field.
	sri-PUSCH-PowerControlId					SRI-PUSCH-PowerControlId,
	-- The ID of PUSCH-PathlossReferenceRS as configured in the pathlossReferenceRSToAddModList in PUSCH-PowerControl.
	sri-PUSCH-PathlossReferenceRS-Id 			PUSCH-PathlossReferenceRS-Id,
	-- The ID of a P0-PUSCH-AlphaSet as configured in p0-AlphaSets in PUSCH-PowerControl.
	sri-P0-PUSCH-AlphaSetId 					P0-PUSCH-AlphaSetId,
	-- The index of the closed power control loop associated with this SRI-PUSCH-PowerControl
	sri-PUSCH-ClosedLoopIndex					ENUMERATED { i0, i1 }
}

SRI-PUSCH-PowerControlId ::=				INTEGER (0..maxNrofSRI-PUSCH-Mappings-1)

-- 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 S
	-- 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 S
	-- 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 S
	-- 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 S
	-- 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 S
	-- 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 S
	-- 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 S
}

-- TAG-PUSCH-POWERCONTROL-STOP
-- TAG-PUSCH-SERVINGCELLCONFIG-START

PUSCH-ServingCellConfig ::=				SEQUENCE {
	-- Enables and configures code-block-group (CBG) based transmission (see 38.214, section FFS_Section)
	codeBlockGroupTransmission				SetupRelease { PUSCH-CodeBlockGroupGransmission	}							OPTIONAL,	-- Need M
	-- Enables LBRM (Limited buffer rate-matching). When the field is absent the UE applies FBRM (Full buffer rate-matchingLBRM).
	-- Corresponds to L1 parameter 'LBRM-FBRM-selection' (see 38.212, section 5.4.2)
	rateMatching							ENUMERATED {limitedBufferRM}												OPTIONAL,	-- Need S
	-- Accounts for overhead from CSI-RS, CORESET, etc. If the field is absent, the UE applies the value 'xoh0'.
	-- Corresponds to L1 parameter 'Xoh-PUSCH' (see 38.214, section 5.1.3.2)
	xOverhead								ENUMERATED {xoh6, xoh12, xoh18}												OPTIONAL,	-- Need S
	...
}

PUSCH-CodeBlockGroupGransmission ::=	SEQUENCE {
	-- Maximum number of code-block-groups (CBGs) per TB (see 38.xxx, section x.x.x, FFS_Ref)
	-- For 2 codewords, only the values { n2, n4 } are valid.
	maxCodeBlockGroupsPerTransportBlock		ENUMERATED {n2, n4, n6, n8},
	...
}

-- TAG-PUSCH-SERVINGCELLCONFIG-STOP
-- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATION-START

PUSCH-TimeDomainResourceAllocation ::= 	SEQUENCE {
	-- Corresponds to L1 parameter 'K2' (see 38.214, section FFS_Section)
	-- When the field is absent the UE applies the value 01 when PUSCH SCS is 15/30KHz; 2 when PUSCH SCS is 60KHz and 3 when PUSCH SCS is 120KHz.
	k2									INTEGER (0..7)																OPTIONAL,	-- Need S
	-- Mapping type. Corresponds to L1 parameter 'Mapping-type' (see 38.214, section FFS_Section)
	mappingType							ENUMERATED {typeA, typeB},
	-- An index into a table/equation in RAN1 specs capturing valid combinations of start symbol and length (jointly encoded)
	-- Corresponds to L1 parameter 'Index-start-len' (see 38.214, section FFS_Section)
	startSymbolAndLength				BIT STRING (SIZE (7))
}

-- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATION-STOP
-- TAG-PUSCH-TPC-COMMANDCONFIG-START

PUSCH-TPC-CommandConfig ::=			SEQUENCE {
	-- An index determining the position of the first bit of TPC command inside the DCI format 2-2 payload. 
	tpc-Index							INTEGER (1..15)															OPTIONAL,	-- Cond SUL
	-- An index determining the position of the first bit of TPC command inside the DCI format 2-2 payload. 
	tpc-IndexSUL						INTEGER (1..15)															OPTIONAL,	-- Cond SUL-Only
	-- The serving cell to which the acquired power control commands are applicable. If the value is absent, the UE applies the 
	-- TPC commands to the serving cell on which the command has been received. 
	targetCell							ServCellIndex															OPTIONAL,	-- Need S
	...
}

-- TAG-PUSCH-TPC-COMMANDCONFIG-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

	
QuantityConfig ::=							SEQUENCE {
	quantityConfigNR-List						QuantityConfigNR-List						OPTIONAL,	-- Need M
	...
}

QuantityConfigNR-List::=						SEQUENCE (SIZE (1..maxNrofQuantityConfig)) OF QuantityConfigNR

QuantityConfigNR::=							SEQUENCE {
	quantityConfigCell							QuantityConfigRS,
	quantityConfigRS-Index						QuantityConfigRS								OPTIONAL	-- Need M
}

QuantityConfigRS ::=						SEQUENCE {
	-- SS Block based L3 filter configurations:
	ssb-FilterConfig				FilterConfig,

	-- CSI-RS basedL3 filter configurations:
	cs-RS-FilterConfig				FilterConfig
}

FilterConfig ::=				SEQUENCE {
	filterCoefficientRSRP			FilterCoefficient										DEFAULT fc4,
	filterCoefficientRSRQ			FilterCoefficient										DEFAULT fc4,
	filterCoefficientRS-SINR		FilterCoefficient										DEFAULT fc4
}

-- TAG-QUANTITY-CONFIG-STOP
-- TAG-RACH-CONFIG-COMMON-START

RACH-ConfigCommon ::= 				SEQUENCE {
	-- Generic RACH parameters 
	rach-ConfigGeneric			RACH-ConfigGeneric,

	-- Total number of preambles used for contention based and contention free random access, excluding	
	-- preambles used for other purposes (e.g. for SI request). If the field is absent, the UE may use all 64 preambles for RA.
	totalNumberOfRA-Preambles			INTEGER (1..63)																		OPTIONAL,	-- Need S

	-- Number of SSBs per RACH occasion (L1 parameter 'SSB-per-rach-occasion') and the number of Contention Based preambles per SSB
	-- (L1 parameter 'CB-preambles-per-SSB'). By multiplying the two values, the UE determines the total number of CB preambles.
	ssb-perRACH-OccasionAndCB-PreamblesPerSSB	CHOICE { 
		oneEighth								ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64}, 
		oneFourth								ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64}, 
		oneHalf									ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64}, 
		one										ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32,n36,n40,n44,n48,n52,n56,n60,n64}, 
		two										ENUMERATED {n4,n8,n12,n16,n20,n24,n28,n32}, 
		four									INTEGER (1..16), 
		eight									INTEGER (1..8), 
		sixteen									INTEGER (1..4)
	}																														OPTIONAL,	-- Need M

	groupBconfigured 					SEQUENCE {
		-- Transport Blocks size threshold in bit below which the UE shall use a contention based RA premable 
		-- of group A. (see 38.321, section 5.1.2)
		ra-Msg3SizeGroupA					ENUMERATED {b56, b144, b208, b256, b282, b480, b640, b800, b1000, spare7, spare6, spare5,
											spare4, spare3, spare2, spare1},
		-- Threshold for preamble selection.  Value in dB.  Value minusinfinity corresponds to –infinity.  
		-- Value dB0 corresponds to 0 dB, dB5 corresponds to 5 dB and so on. (see FFS_Spec, section FFS_Section)
		messagePowerOffsetGroupB			ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18},
		-- The number of CB preambles per SSB in group A. This determines implicitly the number of CB preambles per SSB available in group B.
		-- (see 38.321, section 5.1.1)
		numberOfRA-PreamblesGroupA			INTEGER (1..64)
	}																														OPTIONAL,	-- Need R

	-- The initial value for the contention resolution timer (see 38.321, section 5.1.5)	
	ra-ContentionResolutionTimer			ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64},

	-- 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)
	rsrp-ThresholdSSB						RSRP-Range																		OPTIONAL,	-- Need R
	-- UE may select the SS block and corresponding PRACH resource for path-loss estimation and (re)transmission on the SUL carrier
	-- based on SS blocks that satisfy the threshold
	-- Corresponds to L1 parameter 'SUL-RSRP-Threshold' (see FFS_Spec, section FFS_Section)
	rsrp-ThresholdSSB-SUL					RSRP-Range																		OPTIONAL,	-- Need R

	-- 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)
	},

	-- Subcarrier spacing of PRACH. Only the values 15 or 30 kHz  (<6GHz), 60 or 120 kHz (>6GHz) are applicable.
	-- Corresponds to L1 parameter 'prach-Msg1SubcarrierSpacing' (see 38.211, section FFS_Section)
	msg1-SubcarrierSpacing					SubcarrierSpacing,

	-- Configuration of an unrestricted set or one of two types of restricted sets, see 38.211	6.3.3.1 
	restrictedSetConfig						ENUMERATED {unrestrictedSet, restrictedSetTypeA, restrictedSetTypeB},
	-- 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 {enabled}															OPTIONAL,	-- Need R
	...
}

-- TAG-RACH-CONFIG-COMMON-STOP 
-- TAG-RACH-CONFIG-GENERIC-START

RACH-ConfigGeneric ::= 			SEQUENCE {
	-- PRACH configuration index. Corresponds to L1 parameter 'PRACHConfigurationIndex' (see 38.211, section 6.3.3.2)
	prach-ConfigurationIndex				INTEGER (0..255),
	-- The number of PRACH transmission occasions FDMed in one time instance. 
	-- Corresponds to L1 parameter 'prach-FDM' (see 38.211, section FFS_Section)
	msg1-FDM								ENUMERATED {one, two, four, eight},
	-- Offset of lowest PRACH transmission occasion in frequency domain with respective to PRB 0.
	-- The value is configured so that the corresponding RACH resource is entirely within the bandwidth of the UL BWP.
	-- Corresponds to L1 parameter 'prach-frequency-start' (see 38,211, section FFS_Section)
	msg1-FrequencyStart						INTEGER (0..maxNrofPhysicalResourceBlocks-1),
	-- N-CS configuration, see Table 6.3.3.1-3 in 38.211
	zeroCorrelationZoneConfig				INTEGER(0..15),
	-- The target power level at the network receiver side (see 38.213, section 7.4, 38.321, section 5.1.2, 5.1.3)
	-- Only multiples of 2 dBm may be chosen (e.g. -200, -198, ...).
	-- FFS-Value: Actual values to be updated based on input from RAN4 (see LS in R2-1800004 and R4-1803466).
	preambleReceivedTargetPower				INTEGER (-200..-74),
	-- Max number of RA preamble transmission perfomed before declaring a failure (see 38.321, section 5.1.4, 5.1.5)
	preambleTransMax 						ENUMERATED {n3, n4, n5, n6, n7,	n8, n10, n20, n50, n100, n200},
	-- Power ramping steps for PRACH (see 38.321,5.1.3)
	powerRampingStep						ENUMERATED {dB0, dB2, dB4, dB6},
	-- Msg2 (RAR) window length in number of slots. The network configures a value lower than or euqal to 10 ms (see 38.321, section 5.1.4)
	ra-ResponseWindow						ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80}
}

-- TAG-RACH-CONFIG-GENERIC-STOP 
-- TAG-RACH-CONFIG-DEDICATED-START

-- FFS_Standlone: resources for msg1-based on-demand SI request

RACH-ConfigDedicated ::=		SEQUENCE {
	-- Resources for contention free random access to a given target cell
	cfra-Resources					CFRA-Resources, 
	...
}

CFRA-Resources ::= 				CHOICE {
	ssb								SEQUENCE {
		ssb-ResourceList				SEQUENCE (SIZE(1..maxRA-SSB-Resources)) OF CFRA-SSB-Resource,
		-- Explicitly signalled PRACH Mask Index for RA Resource selection in TS 36.321. The mask is valid for all SSB
		-- resources signalled in ssb-ResourceList
		ra-ssb-OccasionMaskIndex		INTEGER (0..15)
	},
	csirs							SEQUENCE {
		csirs-ResourceList				SEQUENCE (SIZE(1..maxRA-CSIRS-Resources)) OF CFRA-CSIRS-Resource,
		cfra-csirs-DedicatedRACH-Threshold	RSRP-Range
	}
}

CFRA-SSB-Resource ::= 			SEQUENCE {
	-- The ID of an SSB transmitted by this serving cell. 
	ssb								SSB-Index,
	-- The preamble index that the UE shall use when performing CF-RA upon selecting the candidate beams identified by this SSB.
	ra-PreambleIndex				INTEGER (0..63),
	...
}

CFRA-CSIRS-Resource ::= 		SEQUENCE {
	-- The ID of a CSI-RS resource defined in the measurement object associated with this serving cell.
	csi-RS							CSI-RS-Index,
	-- RA occasions that the UE shall use when performing CF-RA upon selecting the candidate beam identified by this CSI-RS.
	ra-OccasionList					SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1),
	-- The RA preamble index to use in the RA occasions assoicated with this CSI-RS.
	ra-PreambleIndex				INTEGER (0..63),	
	...
}

-- TAG-RACH-CONFIG-DEDICATED-STOP
-- TAG-RADIO-BEARER-CONFIG-START

RadioBearerConfig ::=					SEQUENCE {
	srb-ToAddModList						SRB-ToAddModList										OPTIONAL, -- Need N
	srb3-ToRelease							ENUMERATED{true}										OPTIONAL, -- Need N
	drb-ToAddModList						DRB-ToAddModList										OPTIONAL, -- Need N
	drb-ToReleaseList						DRB-ToReleaseList										OPTIONAL, -- Need N
	securityConfig 							SecurityConfig											OPTIONAL, -- Cond M
	...
}

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, 		-- Need N
	discardOnPDCP                           ENUMERATED{true}										OPTIONAL,		-- Need N
	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),												-- EPS-DRB-Setup
		--	The SDAP configuration determines how to map QoS flows to DRBs when NR connects to the 5GC
		sdap-Config								SDAP-Config													-- 5GC
	} 										OPTIONAL, -- Cond DRBSetup
	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, 		-- Need N
	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,	-- Cond RBTermChange
	keyToUse							ENUMERATED{keNB, s-KgNB}								OPTIONAL,	-- Cond RBTermChange
	...
}

-- TAG-RADIO-BEARER-CONFIG-STOP
-- TAG-RADIOLINKMONITORINGCONFIG-START

RadioLinkMonitoringConfig ::=			SEQUENCE {
	-- A list of reference signals for detecting beam failure and/or cell level radio link failure (RLF).
	-- The network configures at most two detectionResources per BWP for the purpose "beamFailure" or "both". 
	-- If no RSs are provided for the purpose of beam failure detection, the UE performs beam monitoring based on the activated TCI-State 
	-- for PDCCH. However, if the activated TCI state refers to an aperiodic or semi-persistent CSI-RS, the gNB configures the failure
	-- detection resources explicitly (FFS_RAN1: TBC by RAN1).
	-- If no RSs are provided in this list at all (neither for Cell- nor for Beam-RLM), the UE performs also Cell-RLM based 
	-- on the activated TCI-State of PDCCH (FFS_RAN1: TBC by RAN1).
	-- When the network reconfigures this field, the UE resets on-going RLF timers and counters.
	failureDetectionResources				SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS	OPTIONAL, 	-- Need M
	-- This field determines after how many beam failure events the UE triggers beam failure recovery (see 38.321, section 5.17). 
	-- Value n1 corresponds to 1 beam failure instance, n2 corresponds to 2 beam failure instances and so on. 
	-- When the network reconfigures this field, the UE resets on-going RLF timers and counters. 
	-- If the field is absent, the UE does not trigger beam failure recovery.
	beamFailureInstanceMaxCount				ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10}									OPTIONAL,	-- Need S
	-- Timer for beam failure detection (see 38.321, section FFS_Section). See also the BeamFailureRecoveryConfig IE.
	-- Value in number of "periods of Beam Failure Detection" Reference Signal. Value pbfd1 corresponds to 1 period of Beam Failure 
	-- Detection Reference Signal, value pbfd2 corresponds to 2 periods of Beam Failure Detection Reference Signal and so on.
	-- When the network reconfigures this field, the UE resets on-going RLF timers and counters.
	beamFailureDetectionTimer      			ENUMERATED {pbfd1, pbfd2, pbfd3, pbfd4, pbfd5, pbfd6, pbfd8, pbfd10}			OPTIONAL,	-- Need R
	...
}

RadioLinkMonitoringRS ::=				SEQUENCE {
	-- Determines whether the UE shall monitor the associated reference signal for the purpose of cell- and/or beam failure detection.
	purpose									ENUMERATED {beamFailure, rlf, both},
	-- A reference signal that the UE shall use for radio link monitoring. The network provides an ssb-Index only if
	-- the purpose is set to rlf.
	detectionResource						CHOICE {
		ssb-Index								SSB-Index,
		csi-RS-Index							NZP-CSI-RS-ResourceId
	},
	...
}

-- TAG-RADIOLINKMONITORINGCONFIG-STOP
-- TAG-RATEMATCHPATTERN-START
RateMatchPattern ::= 						SEQUENCE {
	rateMatchPatternId							RateMatchPatternId,

	patternType									CHOICE {
		bitmaps										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)
			-- FFS: Why not split it into two BIT STRINGs of 14 bit each?
			symbolsInResourceBlock						CHOICE {
				oneSlot										BIT STRING (SIZE (14)),
				twoSlots									BIT STRING (SIZE (28))
			},

			-- A time domain repetition pattern. at which the symbolsInResourceBlock 
			-- pattern recurs. This slot pattern repeats itself continuously. 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)
			periodicityAndPattern						CHOICE {
				n2											BIT STRING (SIZE (2)), 
				n4											BIT STRING (SIZE (4)), 
				n5											BIT STRING (SIZE (5)), 
				n8											BIT STRING (SIZE (8)), 
				n10											BIT STRING (SIZE (10)), 
				n20											BIT STRING (SIZE (20)), 
				n40											BIT STRING (SIZE (40))
			}																										OPTIONAL, 	-- Need S
			...
		},
		-- This ControlResourceSet us used as a PDSCH rate matching pattern, i.e., PDSCH reception rate matches around it. 
		controlResourceSet							ControlResourceSetId
	},
	-- The SubcarrierSpacing for this resource pattern. If the field is absent, the UE applies the SCS of the associcated BWP. 
	-- The value kHz15 corresponds to µ=0, kHz30 to µ=1, and so on. Only the values 15 or 30 kHz  (<6GHz), 60 or 120 kHz (>6GHz) are 
	-- applicable. Corresponds to L1 parameter 'resource-pattern-scs' (see 38.214, section FFS_Section)
	subcarrierSpacing							SubcarrierSpacing 													OPTIONAL,	-- Cond CellLevel
	-- FFS_Description, FFS_Section
	mode										ENUMERATED { dynamic, semiStatic },
	...
}

-- TAG-RATEMATCHPATTERN-STOP
-- TAG-RATEMATCHPATTERNID-START

RateMatchPatternId ::=						INTEGER (0..maxNrofRateMatchPatterns-1)

-- TAG-RATEMATCHPATTERNID-STOP
-- TAG-RATEMATCHPATTERNLTE-CRS-START

RateMatchPatternLTE-CRS ::=				SEQUENCE {
	-- Center of the LTE carrier. Corresponds to L1 parameter 'center-subcarrier-location' (see 38.214, section 5.1.4)
	carrierFreqDL							INTEGER (0..16383),
	-- BW of the LTE carrier in numbewr of PRBs. Corresponds to L1 parameter 'BW' (see 38.214, section 5.1.4)
	carrierBandwidthDL						ENUMERATED {n6, n15, n25, n50, n75, n100, spare2, spare1},
	-- LTE MBSFN subframe configuration. Corresponds to L1 parameter 'MBSFN-subframconfig' (see 38.214, section 5.1.4)
	-- FFS_ASN1: Import the LTE MBSFN-SubframeConfigList
	mbsfn-SubframeConfigList				EUTRA-MBSFN-SubframeConfigList						OPTIONAL,	-- Need M
	-- 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}			
}

-- TAG-RATEMATCHPATTERNLTE-CRS-STOP
-- TAG-REPORT-CONFIG-ID-START

ReportConfigId ::=							INTEGER (1..maxReportConfigId)

-- TAG-REPORT-CONFIG-ID-STOP
-- TAG-REPORT-CONFIG-START

ReportConfigNR ::=							SEQUENCE {
	reportType									CHOICE {
		periodical									PeriodicalReportConfig, 
		eventTriggered								EventTriggerConfig,
-- reportCGI is to be completed before the end of Rel-15.
		reportCGI									ENUMERATED {ffsTypeAndValue},
		...
	}
}

-- FFS / TODO: Consider separating trgger configuration (trigger, periodic, ...) from report configuration.
-- 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														
		},
		eventA4										SEQUENCE {
			a4-Threshold								MeasTriggerQuantity,
			reportOnLeave								BOOLEAN,
			hysteresis									Hysteresis,
			timeToTrigger								TimeToTrigger,
			useWhiteCellList							BOOLEAN														
		},
		eventA5										SEQUENCE {
			a5-Threshold1								MeasTriggerQuantity,
			a5-Threshold2								MeasTriggerQuantity,
			reportOnLeave								BOOLEAN,
			hysteresis									Hysteresis,
			timeToTrigger								TimeToTrigger,
			useWhiteCellList							BOOLEAN														
		},
		eventA6										SEQUENCE {
			a6-Offset									MeasTriggerQuantityOffset,
			reportOnLeave								BOOLEAN,
			hysteresis									Hysteresis,
			timeToTrigger								TimeToTrigger,
			useWhiteCellList							BOOLEAN														
		},
		...
	},

	rsType										NR-RS-Type,

	-- Common reporting config (at least to periodical and eventTriggered)
	reportInterval								ReportInterval,
	reportAmount								ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},

	-- Cell reporting configuration
	reportQuantityCell							MeasReportQuantity,
	maxReportCells								INTEGER (1..maxCellReport),

	-- RS index reporting configuration
	reportQuantityRsIndexes						MeasReportQuantity													OPTIONAL,	-- Need M
	maxNrofRSIndexesToReport					INTEGER (1..maxNrofIndexesToReport) 								OPTIONAL,	-- Need M
	includeBeamMeasurements						BOOLEAN,
	-- If configured the UE includes the best neighbour cells per serving frequency
	reportAddNeighMeas							ENUMERATED {setup}									OPTIONAL,		-- Need R
	...

}

PeriodicalReportConfig ::=					SEQUENCE {
	rsType										NR-RS-Type,

	-- Common reporting config (at least to periodical and eventTriggered)
	reportInterval								ReportInterval,
	reportAmount								ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},

	-- Cell reporting configuration
	reportQuantityCell							MeasReportQuantity,
	maxReportCells								INTEGER (1..maxCellReport),

	-- RS index reporting configuration
	reportQuantityRsIndexes						MeasReportQuantity													OPTIONAL,	-- Need R
	maxNrofRsIndexesToReport					INTEGER (1..maxNrofIndexesToReport) 									OPTIONAL,	-- Need R
	includeBeamMeasurements						BOOLEAN,
	useWhiteCellList							BOOLEAN,
	...

}

NR-RS-Type ::= ENUMERATED {ssb, csi-rs}

MeasTriggerQuantity ::=						CHOICE {
	rsrp										RSRP-Range,
	rsrq										RSRQ-Range,
	sinr										SINR-Range
}

MeasTriggerQuantityOffset ::=				CHOICE {
	rsrp										INTEGER (-30..30),														
	rsrq										INTEGER (-30..30),														
	sinr										INTEGER (-30..30)														
}

			
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,
		...
	}
}

-- TAG- REPORT-CONFIG-TO-ADD-MOD-LIST-STOP

ReportInterval ::=					ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, ms20480, ms40960, min1,
													min6, min12, min30 }

-- 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-FieldLengthAM,
	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-FieldLengthAM,
	t-Reassembly						T-Reassembly,
	t-StatusProhibit					T-StatusProhibit
}

UL-UM-RLC ::=						SEQUENCE {
	sn-FieldLength						SN-FieldLengthUM
}

DL-UM-RLC ::=						SEQUENCE {
	sn-FieldLength						SN-FieldLengthUM,
	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-FieldLengthUM ::=				ENUMERATED {size6, size12}
SN-FieldLengthAM ::=				ENUMERATED {size12, size18}

-- TAG-RLC-CONFIG-STOP
-- TAG-RLF-TIMERS-AND-CONSTANTS-START

RLF-TimersAndConstants ::= 			SEQUENCE {
	t310								ENUMERATED {ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, ms4000, ms6000},
	n310								ENUMERATED {n1, n2, n3, n4, n6, n8, n10, n20},
	n311								ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10},
	...
}

-- TAG-RLF-TIMERS-AND-CONSTANTS-STOP
-- TAG-RNTI-VALUE-START

RNTI-Value ::=						INTEGER (0..65535)

-- TAG-RNTI-VALUE-STOP
-- TAG-RSRP-RANGE-START

RSRP-Range ::=						INTEGER(0..124)

-- TAG-RSRP-RANGE-STOP
-- TAG-RSRQ-RANGE-START

RSRQ-Range ::=						INTEGER(0..127)

-- TAG-RSRQ-RANGE-STOP
-- TAG-SCELL-INDEX-START

-- The value range is shared across the Cell Groups 
SCellIndex ::=						INTEGER (1..31)

-- TAG-SCELL-INDEX-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 {
	sr-ConfigIndex		SchedulingRequestId,

	sr-ProhibitTimer					ENUMERATED {ms1, ms2, ms4, ms8, ms16, ms32, ms64, ms128}					OPTIONAL,	-- Need S
	sr-TransMax							ENUMERATED { n4, n8, n16, n32, n64, spare3, spare2, spare1}
}

SchedulingRequestId ::=	INTEGER (0..7)

-- FFS_TODO: provide resources for each SchedulingRequestID in ServingCellConfig (TBD whether directly, in PUCCH-Config, in each BWP)

-- TAG-SCHEDULING-REQUEST-CONFIG-STOP
-- TAG-SCHEDULING-REQUEST-RESOURCE-CONFIG-START

SchedulingRequestResourceConfig ::=			SEQUENCE {
	schedulingRequestResourceId						SchedulingRequestResourceId,
	-- The ID of the SchedulingRequestConfig that uses this scheduling request resource.
	schedulingRequestID								SchedulingRequestId,
	-- SR periodicity and offset in number of slots. Corresponds to L1 parameter 'SR-periodicity' and 'SR-offset' (see 38.213, section 9.2.2)	
	-- The following periodicities may be configured depending on the chosen subcarrier spacing:
	-- SCS =  15 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 5sl, 8sl, 10sl, 16sl, 20sl, 40sl, 80sl
	-- SCS =  30 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 8sl, 10sl, 16sl, 20sl, 40sl, 80sl, 160sl
	-- SCS =  60 kHz: 2sym, 7sym/6sym, 1sl, 2sl, 4sl, 8sl, 16sl, 20sl, 40sl, 80sl, 160sl, 320sl
	-- SCS = 120 kHz: 2sym, 7sym, 1sl, 2sl, 4sl, 8sl, 16sl, 40sl, 80sl, 160sl, 320sl, sl640
	-- sym6or7 corresponds to 6 symbols if extended cyclic prefix and a SCS of 60 kHz are configured, otherwise it corresponds to 7 symbols.
	-- For periodicities sym2, sym7 and sl1 the UE assumes an offset of 0 slots.
	periodicityAndOffset							CHOICE {
		sym2											NULL,						
		sym6or7											NULL,						
		sl1												NULL,						-- Recurs in every slot
		sl2												INTEGER (0..1),
		sl4												INTEGER (0..3),
		sl5												INTEGER (0..4),
		sl8												INTEGER (0..7),
		sl10											INTEGER (0..9),
		sl16											INTEGER (0..15),
		sl20											INTEGER (0..19),
		sl40											INTEGER (0..39),
		sl80											INTEGER (0..79),
		sl160											INTEGER (0..159),
		sl320											INTEGER (0..319),
		sl640											INTEGER (0..639)
	}																														OPTIONAL,	-- Need M
	-- ID of the PUCCH resource in which the UE shall send the scheduling request. The 
	-- actual PUCCH-Resource is configured in PUCCH-Config of the same UL BWP and serving cell as this SchedulingRequestResourceConfig. 
	-- The network configures a PUCCH-Resource of PUCCH-format0 or PUCCH-format1 
	-- (other formats not supported). Corresponds to L1 parameter 'SR-resource' (see 38.213, section 9.2.2)
	resource										PUCCH-ResourceId														OPTIONAL	-- Need M
}

-- TAG-SCHEDULING-REQUEST-RESOURCE-CONFIG-STOP
-- TAG-SCHEDULINGREQUESTRESOURCEID-START

SchedulingRequestResourceId ::=					INTEGER (1..maxNrofSR-Resources)

-- TAG-SCHEDULINGREQUESTRESOURCEID-STOP
-- TAG-SCRAMBLING-ID-START

ScramblingId ::=					INTEGER (0..1023)

-- TAG-SCRAMBLING-ID-STOP
-- TAG-SCS-SPECIFIC-CARRIER-START

SCS-SpecificCarrier ::=			SEQUENCE {
	-- Offset in frequency domain between Point A (lowest subcarrier of common RB 0) and the lowest usable subcarrier on this carrier
	-- in number of PRBs (using the subcarrierSpacing defined for this carrier). The maximum value corresponds to 275*8-1. 
	-- Corresponds to L1 parameter 'offset-pointA-low-scs' (see 38.211, section FFS_Section)
	offsetToCarrier				INTEGER (0..2199),
	-- Subcarrier spacing of this carrier. It is used to convert the offsetToCarrier into an actual frequency. 
	-- Only the values 15 or 30 kHz  (<6GHz), 60 or 120 kHz (>6GHz) are applicable.
	-- Corresponds to L1 parameter 'ref-scs' (see 38.211, section FFS_Section)
	subcarrierSpacing					SubcarrierSpacing,
	-- Corresponds to L1 parameter k0 (see 38.211, section 5.3.1). n-6 corresponds to value -6, n0 corresponds to value 0 and n6 corresponds
	-- to value +6.
	k0									ENUMERATED {n-6, n0, n6}, 
	-- Width of this carrier in number of PRBs (using the subcarrierSpacing defined for this carrier)
	-- Corresponds to L1 parameter 'BW' (see 38.211, section FFS_Section)
	carrierBandwidth					INTEGER (1..maxNrofPhysicalResourceBlocks),
	...
}

-- TAG-SCS-SPECIFIC-CARRIER-STOP 
-- TAG-SDAP-CONFIG-START

SDAP-Config ::=						SEQUENCE {
	pdu-Session							PDU-SessionID,

	-- FFS: separate configuration for UL and DL
	sdap-HeaderDL 						ENUMERATED {present, absent},
	sdap-HeaderUL 						ENUMERATED {present, absent},
	defaultDRB							BOOLEAN,

	-- A list of QoS-Flow-IDs that the UE shall map to the DRB of this SDAP-Config.
	mappedQoS-FlowsToAdd				SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI 									OPTIONAL, -- Need N
	-- A list of QoS-Flow-IDs that the UE shall no longer map to the DRB of this SDAP-Config.
	mappedQoS-FlowsToRelease			SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI 									OPTIONAL, -- Need N
	...
}

QFI ::= 							INTEGER (0..maxQFI)

PDU-SessionID ::= INTEGER (0..255)

-- TAG-SDAP-CONFIG-STOP
-- TAG-SEARCHSPACE-START

SearchSpace ::= 						SEQUENCE {
	-- Identity of the search space. SearchSpaceId = 0 identifies the SearchSpace configured via PBCH (MIB) or ServingCellConfigCommon.
	-- The searchSpaceId is unique among the BWPs of a Serving Cell. 
	searchSpaceId							SearchSpaceId,

	-- The CORESET applicable for this SearchSpace. 
	-- Value 0 identifies the common CORESET configured in MIB and in ServingCellConfigCommon
	-- Values 1..maxNrofControlResourceSets-1 identify CORESETs configured by dedicated signalling
	controlResourceSetId					ControlResourceSetId														OPTIONAL, 	-- Cond SetupOnly

	-- 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)
	monitoringSlotPeriodicityAndOffset		CHOICE {
		sl1										NULL, 
		sl2										INTEGER (0..1), 
		sl4										INTEGER (0..3), 
		sl5 									INTEGER (0..4),
		sl8										INTEGER (0..7), 
		sl10 									INTEGER (0..9),
		sl16 									INTEGER (0..15),
		sl20 									INTEGER (0..19)
	}																													OPTIONAL,	-- Cond Setup

	-- 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, 	-- Cond Setup

	-- Number of PDCCH candidates per aggregation level. Corresponds to L1 parameter 'Aggregation-level-1' to 'Aggregation-level-8'.
	-- The number of candidates and aggregation levels configured here applies to all formats unless a particular value is specified or
	-- a format-specific value is provided (see inside searchSpaceType). 
	-- (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},
		aggregationLevel16						ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8}
	}																													OPTIONAL,	-- Cond Setup

	-- Indicates whether this is a common search space (present) or a UE specific search space as well as DCI formats to monitor for.
	searchSpaceType							CHOICE {
		-- Configures this search space as common search space (CSS) and DCI formats to monitor.
		common									SEQUENCE {
			-- If configured, the UE monitors the DCI formats 0_0 and 1_0 with CRC scrambled by C-RNTI, CS-RNTI (if configured), 
			-- SP-CSI-RNTI (if configured), RA-RNTI, TC-RNTI, P-RNTI, SI-RNTI
			dci-Format0-0-AndFormat1-0					SEQUENCE {
				...
			}																											OPTIONAL,	-- Need R
			-- If configured, UE monitors the DCI format format 2_0 with CRC scrambled by SFI-RNTI
			dci-Format2-0								SEQUENCE {
				-- The number of PDCCH candidates specifically for format 2-0 for the configured aggregation level.
				-- If an aggregation level is absent, the UE does not search for any candidates with that aggregation level.
				-- Corresponds to L1 parameters 'SFI-Num-PDCCH-cand' and 'SFI-Aggregation-Level' (see 38.213, section 11.1.1).
				nrofCandidates-SFI							SEQUENCE {
					aggregationLevel1							ENUMERATED {n1, n2}										OPTIONAL,	-- Need R
					aggregationLevel2							ENUMERATED {n1, n2}										OPTIONAL,	-- Need R
					aggregationLevel4							ENUMERATED {n1, n2}										OPTIONAL,	-- Need R
					aggregationLevel8							ENUMERATED {n1, n2}										OPTIONAL,	-- Need R
					aggregationLevel16							ENUMERATED {n1, n2}										OPTIONAL	-- Need R
				},
				...
			}																											OPTIONAL,	-- Need R
			-- If configured, UE monitors the DCI format format 2_1 with CRC scrambled by INT-RNTI
			dci-Format2-1								SEQUENCE {
				...
			}																											OPTIONAL,	-- Need R
			-- If configured, UE monitors the DCI format 2_2 with CRC scrambled by TPC-PUSCH-RNTI or TPC-PUCCH-RNTI
			dci-Format2-2								SEQUENCE {
				...
			}																											OPTIONAL,	-- Need R
			-- If configured, UE monitors the DCI format 2_3 with CRC scrambled by TPC-SRS-RNTI
			dci-Format2-3								SEQUENCE {
				-- Monitoring periodicity of SRS PDCCH in number of slots for DCI format 2-3. 
				-- Corresponds to L1 parameter 'SRS-monitoring-periodicity' (see 38.212, 38.213, section 7.3.1, 11.3)
				monitoringPeriodicity				ENUMERATED {n1, n2, n4, n5, n8, n10, n16, n20 }						OPTIONAL, 	-- Cond Setup

				-- The number of PDCCH candidates for DCI format 2-3 for the configured aggregation level.
				-- Corresponds to L1 parameter 'SRS-Num-PDCCH-cand' (see 38.212, 38.213, section 7.3.1, 11.3)
				nrofPDCCH-Candidates				ENUMERATED {n1, n2},
				...
			}																											OPTIONAL	-- Need R
		},
		-- Configures this search space as UE specific search space (USS). The UE monitors the DCI format with CRC scrambled 
		-- by C-RNTI, CS-RNTI (if configured), TC-RNTI (if a certain condition is met), and SP-CSI-RNTI (if configured)
		ue-Specific								SEQUENCE {
			-- Indicates whether the UE monitors in this USS for DCI formats 0-0 and 1-0 or for formats 0-1 and 1-1.
			dci-Formats									ENUMERATED {formats0-0-And-1-0, formats0-1-And-1-1},
			... 
		}
	}																													OPTIONAL	-- Cond Setup
}
-- TAG-SEARCHSPACE-STOP
-- TAG-SEARCHSPACEID-START

SearchSpaceId ::= 							INTEGER (0..maxNrofSearchSpaces-1)

-- TAG-SEARCHSPACEID-STOP
-- TAG-SECURITY-ALGORITHM-CONFIG-START

SecurityAlgorithmConfig ::=			SEQUENCE {
	cipheringAlgorithm					CipheringAlgorithm,
	integrityProtAlgorithm				IntegrityProtAlgorithm			OPTIONAL,	-- Need R	
	...
}

IntegrityProtAlgorithm ::=			ENUMERATED {
											nia0, nia1, nia2, nia3, spare4, spare3,
											spare2, spare1, ...}

CipheringAlgorithm ::=				ENUMERATED {
											nea0, nea1, nea2, nea3, spare4, spare3,
											spare2, spare1, ...}

-- TAG-SECURITY-ALGORITHM-CONFIG-STOP
-- TAG-SERV-CELL-INDEX-START

ServCellIndex ::=					INTEGER (0..maxNrofServingCells-1)

-- TAG-SERV-CELL-INDEX-STOP
-- TAG-SERVING-CELL-CONFIG-START

ServingCellConfig ::=		SEQUENCE {
	-- L1 parameters:

	tdd-UL-DL-ConfigurationDedicated	TDD-UL-DL-ConfigDedicated												OPTIONAL, -- Cond TDD

	-- The dedicated (UE-specific) configuration for the initial downlink bandwidth-part.
	initialDownlinkBWP					BWP-DownlinkDedicated													OPTIONAL,	-- Cond ServCellAdd

	-- List of additional downlink bandwidth parts to be released. (see 38.211, 38.213, section 12). 
	downlinkBWP-ToReleaseList			SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id								OPTIONAL,	-- Need N
	-- List of additional downlink bandwidth parts to be added or modified. (see 38.211, 38.213, section 12). 
	downlinkBWP-ToAddModList			SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink						OPTIONAL, 	-- Need N

	-- If configured for an SpCell, this field contains the ID of the DL BWP to be activated upon performing the reconfiguration 
	-- in which it is received. If the field is absent, the RRC reconfiguration does not impose a BWP switch (corresponds to L1 
	-- parameter 'active-BWP-DL-Pcell'). 
	-- If configured for an SCell, this field contains the ID of the downlink bandwidth part to be used upon MAC-activation of an  SCell. 
	-- If not provided, the UE uses the default BWP.
	-- The initial bandwidth part is referred to by BWP-Id = 0.
	firstActiveDownlinkBWP-Id			BWP-Id																	OPTIONAL,	-- Need R

	-- The duration in ms after which the UE falls back to the default Bandwidth Part. (see 38.321, section 5.15) 
	-- The value 0.5 ms is only applicable for carriers >6 GHz. 
	-- When the network releases the timer configuration, the UE stops the timer without swithching to the default BWP.
	bwp-InactivityTimer					ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, ms40,ms50, ms60, ms80,
													ms100, ms200, ms300, ms500, ms750, ms1280, ms1920, ms2560, spare10, spare9, 
													spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 } OPTIONAL,	--	Need R	

	-- Corresponds to L1 parameter 'default-DL-BWP'. The initial bandwidth part is referred to by BWP-Id = 0.
	-- 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 uses the the initial BWP as default BWP.
	-- (see 38.211, 38.213, section 12 and 38.321, section 5.15)
	defaultDownlinkBWP-Id				BWP-Id																	OPTIONAL, 	-- Need M

	uplinkConfig						UplinkConfig															OPTIONAL,	-- Cond ServCellAdd-UL
	supplementaryUplink					UplinkConfig 															OPTIONAL, 	-- Cond ServCellAdd-SUL


	-- PDSCH releated parameters that are not BWP-specific.
	pdsch-ServingCellConfig				SetupRelease { PDSCH-ServingCellConfig }								OPTIONAL,	-- Need M
	csi-MeasConfig						SetupRelease { CSI-MeasConfig }											OPTIONAL,	-- Need M
	
	-- Includes parameters for configuration of carrier based SRS switching
	-- Corresponds to L1 parameter 'SRS-CarrierSwitching' (see 38,214, section FFS_Section)
	carrierSwitching					SetupRelease { SRS-CarrierSwitching	}									OPTIONAL,	-- Need M
	-- MAC parameters:
	sCellDeactivationTimer				ENUMERATED {ms20, ms40, ms80, ms160, ms200, ms240, ms320, ms400, ms480, ms520, ms640, 
												ms720, ms840, ms1280, spare2,spare1}				OPTIONAL,	-- Cond ServingCellWithoutPUCCH

	-- Indicates whether this SCell is cross-carrier scheduled by another serving cell.
	crossCarrierSchedulingConfig		CrossCarrierSchedulingConfig											OPTIONAL,	-- Need M

	-- 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,	-- Need R

	-- 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 SCellOnly
}

UplinkConfig ::=					SEQUENCE {
	-- Configuration of UL BWPs (including BWP-specific parameters:

	-- The dedicated (UE-specific) configuration for the initial uplink bandwidth-part.
	initialUplinkBWP					BWP-UplinkDedicated														OPTIONAL, 	-- Cond ServCellAdd

	-- The additional 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. 
	uplinkBWP-ToReleaseList				SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id								OPTIONAL,	-- Need N
	uplinkBWP-ToAddModList				SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink							OPTIONAL, 	-- Need N

	-- If configured for an SpCell, this field contains the ID of the DL BWP to be activated upon performing the reconfiguration 
	-- in which it is received. If the field is absent, the RRC reconfiguration does not impose a BWP switch (corresponds to 
	-- L1 parameter 'active-BWP-UL-Pcell').
	-- If configured for an SCell, this field contains the 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.
	-- The initial bandwidth part is referred to by BandiwdthPartId = 0.
	firstActiveUplinkBWP-Id				BWP-Id																	OPTIONAL,	-- Need R

	-- Configuration that is common across the UL BWPs:

	-- PUSCH related parameters that are not BWP-specific.
	pusch-ServingCellConfig				SetupRelease { PUSCH-ServingCellConfig }								OPTIONAL,	-- Need M
	...
}

-- TAG-SERVING-CELL-CONFIG-STOP
-- TAG-SERVING-CELL-CONFIG-COMMON-START

ServingCellConfigCommon ::=		SEQUENCE {
	physCellId							PhysCellId													OPTIONAL, -- Cond HOAndServCellAdd,
	frequencyInfoDL						FrequencyInfoDL												OPTIONAL, -- Cond InterFreqHOAndServCellAdd
	-- The initial downlink BWP configuration for a SpCell (PCell of MCG or SCG). 
	initialDownlinkBWP					BWP-DownlinkCommon											OPTIONAL,	-- Cond ServCellAdd

	uplinkConfigCommon					UplinkConfigCommon											OPTIONAL, -- Cond ServCellAdd-UL 
	supplementaryUplinkConfig					UplinkConfigCommon									OPTIONAL, -- Cond ServCellAdd-SUL


	-- Indicates the time domain positions of the transmitted SS-blocks in an SS-burst. The first/ leftmost bit corresponds to SS/PBCH 
	-- block index 0, the second bit corresponds to SS/PBCH block index 1, and so on. Value 0 in the bitmap indicates that the 
	-- corresponding SS/PBCH block is not transmitted while value 1 indicates that the corresponding SS/PBCH block is transmitted.
	-- Corresponds to L1 parameter 'SSB-Transmitted' (see 38.213, section 4.1)
	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 R,
	-- The SSB periodicity in msec for the rate matching purpose. If the field is absent, the UE applies the value ms5.
	-- (see 38.211, section [7.4.3.1])
	ssb-periodicityServingCell			ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1 }			OPTIONAL,	-- Need S
	-- Position of (first) DL DM-RS (see 38.211, section 7.4.1.1.1)
	dmrs-TypeA-Position					ENUMERATED {pos2, pos3},

	-- Parameters to determine an LTE CRS pattern that the UE shall rate match around.
	lte-CRS-ToMatchAround					SetupRelease { RateMatchPatternLTE-CRS } 				OPTIONAL,	-- Need M

	-- Resources patterns which the UE should rate match PDSCH around. The UE rate matches around the union of all resources 
	-- indicated in the nested bitmaps. Rate match patterns defined here on cell level apply only to PDSCH of the same numerology.
	-- Corresponds to L1 parameter 'Resource-set-cekk' (see 38.214, section 5.1.2.2.3)
	rateMatchPatternToAddModList			SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern		OPTIONAL, -- Need N
	rateMatchPatternToReleaseList			SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId		OPTIONAL, -- Need N

	-- 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. 
	-- Only the values 15 or 30 kHz (<6GHz), 120 or 240 kHz (>6GHz) are applicable.
	subcarrierSpacing				SubcarrierSpacing												OPTIONAL, -- Need S
	-- A cell-specific TDD UL/DL configuration. Corresponds to L1 parameter 'UL-DL-configuration-common' (see 38.213, section 11.1)
	tdd-UL-DL-ConfigurationCommon		TDD-UL-DL-ConfigCommon										OPTIONAL, -- Cond TDD
	-- A second cell-specific TDD UL/DL configuration. When tdd-UL-DL-ConfigurationCommon2 is configured, the cell specific DL/UL 
	-- pattern is a concatenation of the pattern specified in tdd-UL-DL-ConfigurationCommon and the pattern specified in 
	-- tdd-UL-DL-ConfigurationCommon2. Corresponds to L1 parameter 'UL-DL-configuration-common-Set2' (see 38.211, section 11.1)
	tdd-UL-DL-ConfigurationCommon2		TDD-UL-DL-ConfigCommon										OPTIONAL, -- Cond TDD
	-- 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),
	...
}

UplinkConfigCommon ::=				SEQUENCE {
	-- Absolute uplink frequency configuration and subcarrier specific virtual carriers.
	frequencyInfoUL						FrequencyInfoUL												OPTIONAL, -- Cond InterFreqHOAndServCellAdd
	-- The initial uplink BWP configuration for a SpCell (PCell of MCG or SCG). Corresponds to L1 parameter 'initial-UL-BWP'. 
	-- (see 38.331, section FFS_Section).
	initialUplinkBWP			BWP-UplinkCommon													OPTIONAL	-- Cond ServCellAdd
}

-- TAG-SERVING-CELL-CONFIG-COMMON-STOP 
-- TAG-SINR-RANGE-START

SINR-Range ::=						INTEGER(0..127)

-- TAG-SINR-RANGE-STOP
-- TAG-SLOTFORMATCOMBINATIONSPERCELL-START

-- The SlotFormatCombinations applicable for one serving cell. Corresponds to L1 parameter 'cell-to-SFI' (see 38.213, section 11.1.1)
SlotFormatCombinationsPerCell ::=								SEQUENCE {
	-- The ID of the serving cell for which the slotFormatCombinations are applicable
	servingCellId								ServCellIndex,

	-- Reference subcarrier spacing for this Slot Format Combination. Corresponds to L1 parameter 'SFI-scs' (see 38.213, section FFS_Section)
	subcarrierSpacing							SubcarrierSpacing,
	-- Reference subcarrier spacing for a Slot Format Combination on an FDD or SUL cell. 
	-- Corresponds to L1 parameter 'SFI-scs2' (see 38.213, section FFS_Section).
	-- For FDD, subcarrierSpacing (SFI-scs) is the reference SCS for DL BWP and subcarrierSpacing2 (SFI-scs2) is the reference SCS for UL BWP.
	-- For SUL, subcarrierSpacing (SFI-scs) is the reference SCS for non-SUL carrier and subcarrierSpacing2 (SFI-scs2) is the reference 
	-- SCS for SUL carrier. 
	subcarrierSpacing2							SubcarrierSpacing															OPTIONAL,	-- Need R

	-- A list with SlotFormatCombinations. Each SlotFormatCombination comprises of one or more SlotFormats (see 38.211, section 4.3.2)
	-- FFS_CHECK: RAN1 indicates that the combinations could be of two different types... but they don't specify the second
	slotFormatCombinations						SEQUENCE (SIZE (1..maxNrofSlotFormatCombinationsPerSet)) OF SlotFormatCombination	OPTIONAL,

	-- The (starting) position (bit) of the slotFormatCombinationId (SFI-Index) for this serving cell (servingCellId) within the DCI payload. 
	-- Corresponds to L1 parameter 'SFI-values' (see 38.213, section FFS_Section)
	positionInDCI							INTEGER(0..maxSFI-DCI-PayloadSize-1)													OPTIONAL,
	...
}

SlotFormatCombination ::= 					SEQUENCE {
	-- This ID is used in the DCI payload to dynamically select this SlotFormatCombination.
	-- Corresponds to L1 parameter 'SFI-index' (see 38.213, section FFS_Section)
	slotFormatCombinationId						SlotFormatCombinationId,
	-- Slot formats that occur in consecutive slots in time domain order as listed here. The the slot formats are 
	-- defined in 38.211, table 4.3.2-3 and numbered with 0..255.
	slotFormats									SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) OF INTEGER (0..255)
}

-- 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..maxNrofSlotFormatCombinationsPerSet-1)

-- TAG-SLOTFORMATCOMBINATIONSPERCELL-STOP
-- TAG-SLOTFORMATINDICATOR-START

SlotFormatIndicator ::= 		SEQUENCE {
	-- RNTI used for SFI on the given cell
	-- Corresponds to L1 parameter 'SFI-RNTI' (see 38.213, section 11.1.1)
	sfi-RNTI						RNTI-Value,

	-- Total length of the DCI payload scrambled with SFI-RNTI. 
	-- Corresponds to L1 parameter 'SFI-DCI-payload-length' (see 38.213, section 11.1.1)
	dci-PayloadSize					INTEGER (1..maxSFI-DCI-PayloadSize),

	-- A list of SlotFormatCombinations for the UE's serving cells.
	-- Corresponds to L1 parameter 'SFI-cell-to-SFI' (see 38.213, section 11.1.1)
	slotFormatCombToAddModList		SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF SlotFormatCombinationsPerCell	OPTIONAL,	-- Need N
	slotFormatCombToReleaseList		SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex					OPTIONAL,	-- Need N
	...
}

-- TAG-SLOTFORMATINDICATOR-STOP
-- TAG-SPS-CONFIG-START

-- Downlink 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 {
	-- Periodicity for DL SPS
	-- Corresponds to L1 parameter 'semiPersistSchedIntervalDL' (see 38.214 and 38.321, section FFS_Section)
	-- FFS-Value: Support also shorter periodicities for DL?
	periodicity								ENUMERATED {ms10, ms20, ms32, ms40, ms64, ms80, ms128, ms160, ms320, ms640,
														spare6, spare5, spare4, spare3, spare2, spare1},
	-- Number of configured HARQ processes for SPS DL. Corresponds to L1 parameter 'numberOfConfSPS-Processes' (see 38.214, section FFS_Section)
	nrofHARQ-Processes						INTEGER (1..8),
	-- HARQ resource for PUCCH for DL SPS. The network configures the resource either as format0 or format1. (see 38.214, section FFS_Section)
	n1PUCCH-AN									PUCCH-Resource																OPTIONAL	-- Need M
}

-- TAG-SPS-CONFIG-STOP
-- TAG-SRB-IDENTITY-START

SRB-Identity ::=					INTEGER (1..3)

-- TAG-SRB-IDENTITY-STOP
-- TAG-SRS-CONFIG-START

SRS-Config ::= 							SEQUENCE {
	srs-ResourceSetToReleaseList 			SEQUENCE (SIZE(0..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId			OPTIONAL, 	-- Need N
	srs-ResourceSetToAddModList 			SEQUENCE (SIZE(0..maxNrofSRS-ResourceSets)) OF SRS-ResourceSet				OPTIONAL, 	-- Need N

	srs-ResourceToReleaseList 	 			SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-ResourceId					OPTIONAL,	-- Need N
	srs-ResourceToAddModList 	 			SEQUENCE (SIZE(1..maxNrofSRS-Resources)) OF SRS-Resource					OPTIONAL, 	-- Need N


	-- If absent, UE applies TPC commands via accumulation. If disabled, UE applies the TPC command without accumulation 
	-- (this applies to SRS when a separate closed loop is configured for SRS)
	-- Corresponds to L1 parameter 'Accumulation-enabled-srs' (see 38,213, section 7.3)
	tpc-Accumulation							ENUMERATED {disabled}													OPTIONAL,	-- Need S
	...
}

SRS-ResourceSet ::= 					SEQUENCE {
	-- The ID of this resource set. It is unique in the context of the BWP in which the parent SRS-Config is defined.
	srs-ResourceSetId						SRS-ResourceSetId,
	-- The IDs of the SRS-Reosurces used in this SRS-ResourceSet
	srs-ResourceIdList						SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId		OPTIONAL,	-- Cond Setup

	resourceType							CHOICE {
		aperiodic								SEQUENCE {
			-- The DCI "code point" upon which the UE shall transmit SRS according to this SRS resource set configuration.
			-- Corresponds to L1 parameter 'AperiodicSRS-ResourceTrigger' (see 38.214, section 6.1.1.2)
			aperiodicSRS-ResourceTrigger			INTEGER (0..maxNrofSRS-TriggerStates-1),
			-- ID of CSI-RS resource associated with this SRS resource set. (see 38.214, section 6.1.1.2)
			csi-RS									NZP-CSI-RS-ResourceId,
			-- An offset in number of slots between the triggering DCI and the actual transmission of this SRS-ResourceSet.
			-- If the field is absent the UE applies no offset (value 0)
			slotOffset								INTEGER (1..8)													OPTIONAL,	-- Need S
			...
		},
		semi-persistent							SEQUENCE {
			-- ID of CSI-RS resource associated with this SRS resource set in non-codebook based operation.
			-- Corresponds to L1 parameter 'SRS-AssocCSIRS' (see 38.214, section 6.2.1)
			associatedCSI-RS		NZP-CSI-RS-ResourceId															OPTIONAL, -- Cond nonCodebook
			...
		},
		periodic								SEQUENCE {
			-- ID of CSI-RS resource associated with this SRS resource set in non-codebook based operation.
			-- Corresponds to L1 parameter 'SRS-AssocCSIRS' (see 38.214, section 6.2.1)
			associatedCSI-RS		NZP-CSI-RS-ResourceId															OPTIONAL, -- Cond nonCodebook
			...
		}
	},
	-- Indicates if the SRS resource set is used for beam management vs. used for either codebook based or non-codebook based transmission.
	-- Corresponds to L1 parameter 'SRS-SetUse' (see 38.214, section 6.2.1)
	-- FFS_CHECK: Isn't codebook/noncodebook already known from the ulTxConfig in the SRS-Config? If so, isn't the only distinction 
	-- in the set between BeamManagement, AtennaSwitching and "Other”? Or what happens if SRS-Config=Codebook but a Set=NonCodebook?
	usage									ENUMERATED {beamManagement, codebook, nonCodebook, antennaSwitching},

	-- alpha value for SRS power control. Corresponds to L1 parameter 'alpha-srs' (see 38.213, section 7.3)
	-- When the field is absent the UE applies the value 1
	alpha									Alpha																		OPTIONAL, -- Need S
	-- P0 value for SRS power control. The value is in dBm. Only even values (step size 2) are allowed.
	-- Corresponds to L1 parameter 'p0-srs' (see 38.213, section 7.3)
	p0										INTEGER (-202..24)															OPTIONAL, -- Cond Setup
	-- A reference signal (e.g. a CSI-RS config or a SSblock) to be used for SRS path loss estimation. 
	-- Corresponds to L1 parameter 'srs-pathlossReference-rs-config' (see 38.213, section 7.3)
	pathlossReferenceRS						CHOICE {
		ssb-Index								SSB-Index,
		csi-RS-Index							NZP-CSI-RS-ResourceId
	}																													OPTIONAL, -- Need M
	-- Indicates whether hsrs,c(i) = fc(i,1) or hsrs,c(i) = fc(i,2) (if twoPUSCH-PC-AdjustmentStates are configured) 
	-- or serarate close loop is configured for SRS. This parameter is applicable only for Uls on which UE also transmits PUSCH.
	-- If absent or release, the UE applies the value sameAs-Fci1
	-- Corresponds to L1 parameter 'srs-pcadjustment-state-config' (see 38.213, section 7.3)
	srs-PowerControlAdjustmentStates		ENUMERATED { sameAsFci2, separateClosedLoop}					OPTIONAL, -- Need S
	...
}

SRS-ResourceSetId ::= 					INTEGER (0..maxNrofSRS-ResourceSets-1)

SRS-Resource ::= 						SEQUENCE {
	srs-ResourceId							SRS-ResourceId,
	nrofSRS-Ports							ENUMERATED {port1, ports2, ports4},
	-- The PTRS port index for this SRS resource for non-codebook based UL MIMO. This is only applicable when the corresponding 
	-- PTRS-UplinkConfig is set to CP-OFDM. The ptrs-PortIndex configured here must be smaller than or equal to the maxNnrofPorts  
	-- configured in the PTRS-UplinkConfig.
	-- Corresponds to L1 parameter 'UL-PTRS-SRS-mapping-non-CB' (see 38.214, section 6.1)
	ptrs-PortIndex							ENUMERATED {n0, n1 }														OPTIONAL,	-- Need R  
	-- Comb value (2 or 4) and comb offset (0..combValue-1). Corresponds to L1 parameter 'SRS-TransmissionComb' (see 38.214, section 6.2.1)
	transmissionComb						CHOICE {
		n2										SEQUENCE {
			combOffset-n2							INTEGER (0..1),
			-- Cyclic shift configuration. Corresponds to L1 parameter 'SRS-CyclicShiftConfig' (see 38.214, section 6.2.1)
			cyclicShift-n2							INTEGER (0..7)
		}, 
		n4										SEQUENCE {
			combOffset-n4							INTEGER (0..3),
			-- Cyclic shift configuration. Corresponds to L1 parameter 'SRS-CyclicShiftConfig' (see 38.214, section 6.2.1)
			cyclicShift-n4							INTEGER (0..11)
		}
	},
	-- OFDM symbol location of the SRS resource within a slot including number of OFDM symbols (N = 1, 2 or 4 per SRS resource),
	-- startPosition (SRSSymbolStartPosition = 0..5; "0" refers to the last symbol, "1" refers to the second last symbol) and 
	-- RepetitionFactor (r = 1, 2 or 4).	
	-- Corresponds to L1 parameter 'SRS-ResourceMapping' (see 38.214, section 6.2.1 and 38.211, section 6.4.1.4). 
	-- FFS: Apparently, RAN1 considers replacing these three fields by a table in RAN1 specs and a corresponding index in ASN.1?!
	resourceMapping							SEQUENCE {
		startPosition							INTEGER (0..5),
		nrofSymbols								ENUMERATED {n1, n2, n4},
		repetitionFactor						ENUMERATED {n1, n2, n4}
	},
	-- 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						INTEGER (0..67),
	freqDomainShift							INTEGER (0..268), 
	-- Includes  parameters capturing SRS frequency hopping 
	-- Corresponds to L1 parameter 'SRS-FreqHopping' (see 38.214, section 6.2.1)
	freqHopping								SEQUENCE {
		c-SRS									INTEGER (0..63),
		b-SRS									INTEGER (0..3), 
		b-hop									INTEGER (0..3)
	},
	-- Parameter(s) for configuring group or sequence hopping
	-- Corresponds to L1 parameter 'SRS-GroupSequenceHopping' (see 38.211, section FFS_Section)
	groupOrSequenceHopping					ENUMERATED { neither, groupHopping, sequenceHopping },
	-- Time domain behavior of SRS resource configuration.  
	-- Corresponds to L1 parameter 'SRS-ResourceConfigType' (see 38.214, section 6.2.1).
	-- For codebook based uplink transmission, the network configures SRS resources in the same resource set with the same 
	-- time domain behavior on periodic, aperiodic and semi-persistent SRS.
	-- FFS: Add configuration parameters for the different SRS resource types?
	resourceType							CHOICE {
		aperiodic								SEQUENCE {
			...
		}, 
		semi-persistent							SEQUENCE {
			-- Periodicity and slot offset for for this SRS resource. All values in "number of slots".
			-- sl1 corresponds to a periodicity of 1 slot, value sl2 corresponds to a periodicity of 2 slots, and so on. 
			-- For each periodicity the corresponding offset is given in number of slots. For periodicity sl1 the offset is 0 slots.   
			-- Corresponds to L1 parameter 'SRS-SlotConfig' (see 38.214, section 6.2.1)
			periodicityAndOffset-sp						SRS-PeriodicityAndOffset,
			...
		},
		periodic								SEQUENCE {
			-- Periodicity and slot offset for for this SRS resource. All values in "number of slots" 
			-- sl1 corresponds to a periodicity of 1 slot, value sl2 corresponds to a periodicity of 2 slots, and so on. 
			-- For each periodicity the corresponding offset is given in number of slots. For periodicity sl1 the offset is 0 slots.   
			-- Corresponds to L1 parameter 'SRS-SlotConfig' (see 38.214, section 6.2.1)
			periodicityAndOffset-p						SRS-PeriodicityAndOffset,
			...
		}
	},
	-- Sequence ID used to initialize psedo random group and sequence hopping. 
	-- Corresponds to L1 parameter 'SRS-SequenceId' (see 38.214, section 6.2.1)
	sequenceId								BIT STRING (SIZE (10)),

	-- 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						CHOICE {
		ssb-Index								SSB-Index,
		csi-RS-Index									NZP-CSI-RS-ResourceId,
		srs										SRS-ResourceId
	}																													OPTIONAL,	-- Need R
	...
}

SRS-ResourceId ::= 						INTEGER (0..maxNrofSRS-Resources-1)

SRS-PeriodicityAndOffset ::=			CHOICE {
	sl1										NULL, 
	sl2										INTEGER(0..1), 
	sl4										INTEGER(0..3), 
	sl5										INTEGER(0..4), 
	sl8										INTEGER(0..7), 
	sl10									INTEGER(0..9), 
	sl16									INTEGER(0..15), 
	sl20									INTEGER(0..19), 
	sl32									INTEGER(0..31), 
	sl40									INTEGER(0..39), 
	sl64									INTEGER(0..63), 
	sl80									INTEGER(0..79), 
	sl160									INTEGER(0..159), 
	sl320									INTEGER(0..319),
	sl640									INTEGER(0..639),
	sl1280									INTEGER(0..1279),
	sl2560									INTEGER(0..2559)
}

-- TAG-SRS-CONFIG-STOP
-- TAG-SRS-CARRIERSWITCHING-START
SRS-CarrierSwitching ::=				SEQUENCE {

	-- Indicates the serving cell whose UL transmission may be interrupted during SRS transmission on a PUSCH-less cell. 
	-- During SRS transmission on a PUSCH-less cell, the UE may temporarily suspend the UL transmission on a serving cell with PUSCH 
	-- in the same CG to allow the PUSCH-less cell to transmit SRS. (see 38.214, section 6.2.1.3)
	srs-SwitchFromServCellIndex				INTEGER (0..31)																OPTIONAL,	-- Cond Setup

	-- Network configures the UE with either typeA-SRS-TPC-PDCCH-Group or typeB-SRS-TPC-PDCCH-Group, if any.
	srs-TPC-PDCCH-Group					CHOICE {
		-- Type A trigger configuration for SRS transmission on a PUSCH-less SCell. 
		-- Corresponds to L1 parameter 'typeA-SRS-TPC-PDCCH-Group' (see 38.212, 38.213, section 7.3.1, 11.3)
		typeA								SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config,
		-- Type B trigger configuration for SRS transmission on a PUSCH-less SCell. 
		-- Corresponds to L1 parameter 'typeB-SRS-TPC-PDCCH-Config' (see 38.212, 38.213, section 7.3.1, 11.3)
		typeB								SRS-TPC-PDCCH-Config
	}																													OPTIONAL, 	-- Cond Setup

	-- Maps a specific cell to a given SFI value within the DCI message
	-- Corresponds to L1 parameter 'SRS-cell-to-SFI' (see 38.212, 38.213, section 7.3.1, 11.3)
	srs-CellToSFI						SEQUENCE (SIZE (1..maxNrofServingCells)) OF SlotFormatCombinationsPerCell			OPTIONAL, 	-- Cond Setup
	
	-- A set of serving cells for monitoring PDCCH conveying SRS DCI format with CRC scrambled by TPC-SRS-RNTI
	-- Corresponds to L1 parameter 'SRS-monitoring-cells' (see 38.212, 38.213, section 7.3.1, 11.3)
	monitoringCells		SEQUENCE (SIZE (1..maxNrofServingCells)) OF ServCellIndex						OPTIONAL,	-- Cond Setup
	...
}

-- One trigger configuration for SRS-Carrier Switching. (see 38.212, 38.213, section 7.3.1, 11.3)
SRS-TPC-PDCCH-Config ::=				SEQUENCE {
	-- The starting bit position of a block within the group DCI with SRS request fields (optional) and TPC commands 
	-- for a PUSCH-less SCell. (see 38.212, 38.213, section 7.3.1, 11.3)
	startingBitOfFormat2-3					INTEGER (1..31)																OPTIONAL, 	-- Cond Setup
	-- The type of a field within the group DCI with SRS request fields (optional) for a PUSCH-less SCell, 
	-- which indicates how many bits in the field are for SRS request (0 or 1/2). 
	-- Note that for Type A, there is a common SRS request field for all SCells in the set, but each SCell has its 
	-- own TPC command bits. See TS 38.212. Network configures this field with the same value for all PUSCH-less SCells.
	-- (see 38.212, 38.213, section 7.3.1, 11.3)
	fieldTypeFormat2-3						INTEGER (0..1)																OPTIONAL, 	-- Cond Setup
	-- A list of paris of [cc-SetIndex; cc-IndexInOneCC-Set] (see 38.212, 38.213, section 7.3.1, 11.3)
	-- FFS: Improve description. What is a "CC"? Where is a CC-Set defined? ...
	srs-CC-SetIndexlist						SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex 									OPTIONAL	-- Cond Setup
}

SRS-CC-SetIndex ::=						SEQUENCE {
	-- Indicates the CC set index for Type A associated (see 38.212, 38.213, section 7.3.1, 11.3)
	cc-SetIndex								INTEGER (0..3)															OPTIONAL, 	-- Cond Setup
	-- Indicates the CC index in one CC set for Type A (see 38.212, 38.213, section 7.3.1, 11.3)
	cc-IndexInOneCC-Set						INTEGER (0..7)															OPTIONAL		-- Cond Setup
}

-- TAG-SRS-CARRIERSWITCHING-STOP
-- TAG-SSB-INDEX-START

SSB-Index ::=								INTEGER (0..63)

-- TAG-SSB-INDEX-STOP
-- TAG-SUBCARRIER-SPACING-START

-- The subcarrier spacing supported in NR. Restrictions applicable for certain frequencies, channels or signals are clarified 
-- in the fields that use this IE.
SubcarrierSpacing ::= 					ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, spare3, spare2, spare1}


-- TAG-SUBCARRIER-SPACING-STOP
-- TAG-TCI-STATE-START

TCI-State ::= 				SEQUENCE {
	tci-StateId					TCI-StateId,
	qcl-Type1					QCL-Info,
	qcl-Type2					QCL-Info																					OPTIONAL,	-- Need R
	nrofPTRS-Ports				ENUMERATED {n1, n2}																			OPTIONAL,	-- Need R
	...
}

QCL-Info ::=				SEQUENCE {

	-- The carrier which the RS is located in. If the field is absent, it applies to the serving cell in which the TCI-State is configured
	cell						ServCellIndex																				OPTIONAL,	-- Need R

	-- The DL BWP which the RS is located in. 
	bwp-Id						BWP-Id			OPTIONAL, -- Cond CSI-RS-Indicated
	-- Cond NZP-CSI-RS-Indicated: mandatory if csi-rs or csi-RS-for-tracking is included, absent otherwise
	referenceSignal				CHOICE {
		csi-rs						NZP-CSI-RS-ResourceId,
		ssb							SSB-Index,
		-- A set of CSI-RS resources for tracking
		csi-RS-for-tracking			NZP-CSI-RS-ResourceSetId
	},
	qcl-Type					ENUMERATED {typeA, typeB, typeC, typeD},
	...
}

-- TAG-TCI-STATE-STOP
-- TAG-TCI-STATEID-START

TCI-StateId ::=				INTEGER (0..maxNrofTCI-States-1)

-- TAG-TCI-STATEID-STOP
-- TAG-TDD-UL-DL-CONFIG-START

TDD-UL-DL-ConfigCommon ::=			SEQUENCE {
	-- Reference SCS used to determine the time domain boundaries in the UL-DL pattern which must be common across all subcarrier specific
	-- virtual carriers, i.e., independent of the actual subcarrier spacing using for data transmission. 
	-- Only the values 15 or 30 kHz  (<6GHz), 60 or 120 kHz (>6GHz) are applicable.
	-- Corresponds to L1 parameter 'reference-SCS' (see 38.211, section FFS_Section)
	referenceSubcarrierSpacing			SubcarrierSpacing																	OPTIONAL,
	-- Periodicity of the DL-UL pattern. Corresponds to L1 parameter 'DL-UL-transmission-periodicity' (see 38.211, section FFS_Section)
	dl-UL-TransmissionPeriodicity		ENUMERATED {ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, 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, Table 4.3.2-1)
	nrofDownlinkSlots					INTEGER (0..maxNrofSlots)																	OPTIONAL,

	-- Number of consecutive DL symbols in the beginning of the slot following the last full DL slot (as derived from nrofDownlinkSlots). 
	-- If the field is absent or released, there is no partial-downlink slot.
	-- Corresponds to L1 parameter 'number-of-DL-symbols-common' (see 38.211, section FFS_Section).
	nrofDownlinkSymbols					INTEGER (0..maxNrofSymbols-1)															OPTIONAL,	-- Need R
	
	-- 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, Table 4.3.2-1)
	nrofUplinkSlots						INTEGER (0..maxNrofSlots)																	OPTIONAL,
	
	-- Number of consecutive UL symbols in the end of the slot preceding the first full UL slot (as derived from nrofUplinkSlots).
	-- If the field is absent or released, there is no partial-uplink slot.
	-- Corresponds to L1 parameter 'number-of-UL-symbols-common' (see 38.211, section FFS_Section)
	nrofUplinkSymbols					INTEGER (0..maxNrofSymbols-1)															OPTIONAL	-- Need R
}

TDD-UL-DL-ConfigDedicated ::=		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. 
	-- FFS_CHECK: This list will grow very large if used for many slots.
	slotSpecificConfigurationsToAddModList		SEQUENCE (SIZE (1..maxNrofSlots)) OF TDD-UL-DL-SlotConfig							OPTIONAL, -- Need N
	slotSpecificConfigurationsToreleaseList		SEQUENCE (SIZE (1..maxNrofSlots)) OF TDD-UL-DL-SlotIndex						OPTIONAL -- Need N
}

TDD-UL-DL-SlotConfig ::=			SEQUENCE {
	-- Identifies a slot within a dl-UL-TransmissionPeriodicity (given in tdd-UL-DL-configurationCommon)
	slotIndex							TDD-UL-DL-SlotIndex,
		
	-- The direction (downlink or uplink) for the symbols in this slot. "allDownlink" indicates that all symbols in this slot are used
	-- for downlink; "allUplink" indicates that all symbols in this slot are used for uplink; "explicit" indicates explicitly how many symbols 
	-- in the beginning and end of this slot are allocated to downlink and uplink, respectively.
	symbols								CHOICE {
		allDownlink							NULL,
		allUplink							NULL,
		explicit							SEQUENCE {
			-- Number of consecutive DL symbols in the beginning of the slot identified by slotIndex.
			-- If the field is absent the UE assumes that there are no leading DL symbols.
			-- Corresponds to L1 parameter 'number-of-DL-symbols-dedicated' (see 38.211, section FFS_Section)
			nrofDownlinkSymbols					INTEGER (1..maxNrofSymbols-1)												OPTIONAL,	-- Need S
			
			-- Number of consecutive UL symbols in the end of the slot identified by slotIndex.
			-- If the field is absent the UE assumes that there are no trailing UL symbols.
			-- Corresponds to L1 parameter 'number-of-UL-symbols-dedicated' (see 38.211, section FFS_Section)
			nrofUplinkSymbols					INTEGER (1..maxNrofSymbols-1)												OPTIONAL	-- Need S
		}
	}
}

TDD-UL-DL-SlotIndex ::=				INTEGER (0..maxNrofSlots-1)

-- TAG-TDD-UL-DL-CONFIG-STOP

TimeToTrigger ::=					ENUMERATED {
										ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
										ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
										ms5120}

-- TAG-ZP-CSI-RS-RESOURCE-START

ZP-CSI-RS-Resource ::=						SEQUENCE {
	-- ZP CSI-RS resource configuration ID
	-- Corresponds to L1 parameter 'ZP-CSI-RS-ResourceConfigId' (see 38.214, section 5.1.4.2)
	zp-CSI-RS-ResourceId						ZP-CSI-RS-ResourceId,
	-- OFDM symbol and subcarrier occupancy of the ZP-CSI-RS resource within a slot
	resourceMapping								CSI-RS-ResourceMapping,
	-- Periodicity and slot offset for periodic/semi-persistent ZP-CSI-RS
	-- Corresponds to L1 parameter 'ZP-CSI-RS-timeConfig' (see 38.214, section 5.1.4.2)
	periodicityAndOffset						CSI-ResourcePeriodicityAndOffset							OPTIONAL, --Cond PeriodicOrSemiPersistent

	...
}

ZP-CSI-RS-ResourceId ::=							INTEGER (0..maxNrofZP-CSI-RS-Resources-1)

-- TAG-ZP-CSI-RS-RESOURCE-STOP
-- TAG-ZP-CSI-RS-RESOURCESET-START

ZP-CSI-RS-ResourceSet ::= 						SEQUENCE {
	zp-CSI-RS-ResourceSetId							ZP-CSI-RS-ResourceSetId,
	-- The list of ZP-CSI-RS-ResourceId identifying the ZP-CSI-RS-Resource elements belonging to this set. 
	zp-CSI-RS-ResourceIdList							SEQUENCE (SIZE(1..maxNrofZP-CSI-RS-ResourcesPerSet)) OF ZP-CSI-RS-ResourceId,
	-- Time domain behavior of ZP-CSI-RS resource configuration. 
	-- Corresponds to L1 parameter 'ZP-CSI-RS-ResourceConfigType' (see 38.214, section 5.1.4.2)
	resourceType									ENUMERATED {aperiodic, semiPersistent, periodic},
	...
}

-- TAG-ZP-CSI-RS-RESOURCESET-STOP
-- TAG-ZP-CSI-RS-RESOURCESETID-START

ZP-CSI-RS-ResourceSetId ::= 					INTEGER (0..maxNrofZP-CSI-RS-ResourceSets-1)

-- TAG-ZP-CSI-RS-RESOURCESETID-STOP
-- TAG-BANDCOMBINATIONLIST-START

BandCombinationList ::=	SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination

BandCombination ::= SEQUENCE {
	bandAndDL-ParametersList			BandAndDL-ParametersList,
	bandCombinationsUL					BIT STRING (SIZE (1.. maxBandComb)),
	bandCombinationParametersList		SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationParameters 	OPTIONAL
}

BandAndDL-ParametersList ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandAndDL-Parameters

BandAndDL-Parameters ::= CHOICE {
	bandAndDL-ParametersEUTRA	BandAndDL-ParametersEUTRA,
	bandAndDL-ParametersNR		BandAndDL-ParametersNR
}
BandCombinationParameters ::= SEQUENCE {
	ca-ParametersNR					CA-ParametersNR			OPTIONAL,
	mrdc-Parameters					MRDC-Parameters			OPTIONAL
}

CA-ParametersNR ::=	SEQUENCE {
	multipleTimingAdvances		ENUMERATED {supported}				OPTIONAL,
-- R4 2-5: Simultaneous reception and transmission for inter band CA (TDD-TDD or TDD-FDD)
	simultaneousRxTxInterBandCA			ENUMERATED {supported}		OPTIONAL,
-- BCS related to R4 2-1 and Updated CA BW class in R4-1803374
	supportedBandwidthCombinationSet	BIT STRING (SIZE (1..32))	OPTIONAL
}

MRDC-Parameters ::=	SEQUENCE {
	singleUL-Transmission		ENUMERATED {supported}		OPTIONAL,
-- R4 1-10: Support of EN-DC with LTE-NR coexistence in UL sharing from UE perspective
	ul-SharingEUTRA-NR					ENUMERATED {supported}		OPTIONAL,
-- R4 1-11: Switching time between LTE UL and NR UL for EN-DC with LTE-NR coexistence in UL sharing from UE perspective
	ul-SwitchingTimeEUTRA-NR			ENUMERATED {type1, type2}	OPTIONAL,
-- R4 2-4: Simultaneous reception and transmission for inter-band EN-DC (TDD-TDD or TDD-FDD)
	simultaneousRxTxInterBandENDC		ENUMERATED {supported}		OPTIONAL,
-- R4 2-6: Asynchronous FDD-FDD intra-band EN-DC
	asyncIntraBandENDC					ENUMERATED {supported}		OPTIONAL,
	basebandProcesingCombinationMRDC 	BasebandProcessingCombinationMRDC
}

BandAndDL-ParametersEUTRA ::= SEQUENCE {
	bandEUTRA					FreqBandIndicatorEUTRA,
	ca-BandwidthClassDL-EUTRA	CA-BandwidthClassEUTRA		OPTIONAL,
	intraBandContiguousCC-InfoDL-EUTRA-List		SEQUENCE (SIZE (1.. maxNrofServingCellsEUTRA)) OF IntraBandContiguousCC-InfoDL-EUTRA		OPTIONAL
}

BandAndDL-ParametersNR ::= SEQUENCE {
	bandNR						FreqBandIndicatorNR,
	ca-BandwidthClassDL			CA-BandwidthClassNR			OPTIONAL,
-- R4 2-3: Non-contiguous intra-band CA frequency separation class for FR2 as in the RAN4 LS R4-1803363
	intraBandFreqSeparationDL	FreqSeparationClass					OPTIONAL,
	intraBandContiguousCC-InfoDL-List		SEQUENCE (SIZE (1.. maxNrofServingCells)) OF IntraBandContiguousCC-InfoDL		OPTIONAL
}

IntraBandContiguousCC-InfoDL ::=	SEQUENCE {
-- Related to RAN4 LS R2-1804078
	maxNumberMIMO-LayersPDSCH			MIMO-LayersDL					OPTIONAL
}

IntraBandContiguousCC-InfoDL-EUTRA ::=	SEQUENCE {
-- Related to RAN4 LS R2-1804078
	mimo-CapabilityDL					ENUMERATED {twoLayers, fourLayers, eightLayers}					OPTIONAL
}

-- TAG-BANDCOMBINATIONLIST-STOP
-- TAG-BANDCOMBINATIONPARAMETERSULLIST-START

BandCombinationParametersUL-List ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationParametersUL

BandCombinationParametersUL ::= SEQUENCE (SIZE (1.. maxSimultaneousBands)) OF BandParametersUL

BandParametersUL ::= CHOICE {
	bandParametersUL-EUTRA		BandParametersUL-EUTRA,
	bandParametersUL-NR			BandParametersUL-NR
}

BandParametersUL-EUTRA ::= SEQUENCE {
	ca-BandwidthClassUL-EUTRA	CA-BandwidthClassEUTRA		OPTIONAL,
	intraBandContiguousCC-InfoUL-EUTRA-List		SEQUENCE (SIZE (1.. maxNrofServingCellsEUTRA)) OF IntraBandContiguousCC-InfoUL-EUTRA		OPTIONAL
}

BandParametersUL-NR ::= SEQUENCE {
	ca-BandwidthClassUL			CA-BandwidthClassNR 				OPTIONAL,
-- R4 2-3: Non-contiguous intra-band CA frequency separation class for FR2 as in the RAN4 LS R4-1803363
	intraBandFreqSeparationUL	FreqSeparationClass					OPTIONAL,
	intraBandContiguousCC-InfoUL-List		SEQUENCE (SIZE (1.. maxNrofServingCells)) OF IntraBandContiguousCC-InfoUL			OPTIONAL
}

IntraBandContiguousCC-InfoUL ::=	SEQUENCE {
-- Related to RAN4 LS R2-1804078
	maxNumberMIMO-LayersCB-PUSCH		MIMO-LayersUL					OPTIONAL,
	maxNumberMIMO-LayersNonCB-PUSCH		MIMO-LayersUL					OPTIONAL
}

IntraBandContiguousCC-InfoUL-EUTRA ::=	SEQUENCE {
-- Related to RAN4 LS R2-1804078
	mimo-CapabilityUL						ENUMERATED {twoLayers, fourLayers}					OPTIONAL
}

-- TAG-BANDCOMBINATIONPARAMETERSULLIST-STOP
-- TAG-BASEBANDCOMBINATIONPARAMETERSULLIST-START

BasebandCombinationParametersUL-List ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandCombinationParametersUL

BasebandCombinationParametersUL ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BasebandParametersPerBandUL

BasebandParametersPerBandUL ::= SEQUENCE {
	ca-BandwidthClassUL				CA-BandwidthClassNR,
	freqRange						ENUMERATED {fr1, fr2},
	basebandParametersPerCC-UL		SEQUENCE (SIZE (1.. maxNrofServingCells)) OF BasebandParametersPerCC-UL
}

BasebandParametersPerCC-UL ::= SEQUENCE {
-- R4 2-2: Simultaneous reception or transmission with same or  different numerologies in CA
-- It is expressed by the combination of SCS whether simultaneous RxTx is supported or not.
	supportedSubcarrierSpacingUL				SubcarrierSpacing,
-- Accoding to the RAN4 LS R4-1803563, maximum Bandwidth supported per CC is added in BPC
-- FFS how to work together with BCS and max BW for each CC to be defined for each CA band combination in the RAN4 spec.
	supportedBandwidthUL		CHOICE {
		fr1							ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100},
		fr2							ENUMERATED {mhz50, mhz100, mhz200, mhz400}
	},
	-- R2-1800012. To be confirmed by RAN1
	scalingFactor0dot75				ENUMERATED {supported}		OPTIONAL,
-- R1 2-14: Codebook based PUSCH MIMO transmission. Absence of this field implies that CB-based PUSCH is not supported.
	maxNumberMIMO-LayersCB-PUSCH		MIMO-LayersUL					OPTIONAL,
-- R1 2-15: Non-codebook based PUSCH MIMO transmission. Absence of this field implies that Non-CB-based PUSCH is not supported.
	maxNumberMIMO-LayersNonCB-PUSCH		MIMO-LayersUL					OPTIONAL,
-- Accoding to the RAN4 LS R4-1803563, modulation order is added per CC granularity in BPC
-- FFS whether all of modulation order specified in the spec need to be signalled.
-- FFS how to address the requirements agreed by RAN4, e.g. mandaotry w/o capabiltiy for 64QAM. mandaotry with capabiltiy for DL 256QAM in FR1.
	supportedModulationOrderUL					ModulationOrder					OPTIONAL,
-- R1 2-53: SRS resources
	supportedSRS-Resources			SRS-Resources								OPTIONAL,
-- R1 2-55: SRS Tx switch
	srs-TxSwitch					SRS-TxSwitch								OPTIONAL,
-- R1 2-57: Support low latency CSI feedback
	lowLatencyCSI-Feedback				ENUMERATED {supported}					OPTIONAL,
-- R1 5-12 & 5-12a: Up to 2/7 PUSCHs per slot for different TBs
	pusch-DifferentTB-PerSlot		SEQUENCE {
		scs-15kHz						ENUMERATED {upto2, upto7}					OPTIONAL,
		scs-30kHz						ENUMERATED {upto2, upto7}					OPTIONAL,
		scs-60kHz						ENUMERATED {upto2, upto7}					OPTIONAL,
		scs-120kHz						ENUMERATED {upto2, upto7}					OPTIONAL
	}																			OPTIONAL,
-- R1 6-7: Two PUCCH group
	twoPUCCH-Group					ENUMERATED {supported}						OPTIONAL,
-- R1 6-8: Different numerology across PUCCH groups
	diffNumerologyAcrossPUCCH-Group	ENUMERATED {supported}						OPTIONAL,
-- R1 6-9: Different numerologies across carriers within the same PUCCH group
	diffNumerologyWithinPUCCH-Group	ENUMERATED {supported}						OPTIONAL,
-- R1 6-10: Cross carrier scheduling
	crossCarrierScheduling			ENUMERATED {supported}						OPTIONAL,
-- R1 6-11: Number of supported TAGs
	supportedNumberTAG				ENUMERATED {n2, n3, n4}						OPTIONAL,
-- R1 6-18: Supplemental uplink with dynamic switch
	dynamicSwitchSUL				ENUMERATED {supported}						OPTIONAL,
-- R1 6-19: Simultaneous transmission of SRS on an SUL/non-SUL carrier and PUSCH/PUCCH/SRS/PRACH on the other UL carrier in the same cell
-- Details on the channel/signal combination are to be described in TS 38.306
	simultaneousTxSUL-NonSUL		ENUMERATED {supported}						OPTIONAL,
-- R1 6-22: UL search space sharing for CA
	searchSpaceSharingCA-UL			ENUMERATED {supported}						OPTIONAL
}

-- TAG-BASEBANDCOMBINATIONPARAMETERSULLIST-STOP
-- TAG-BASEBANDPROCESSINGCOMBINATIONMRDC-START

BasebandProcessingCombinationMRDC ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombinationLink

BasebandProcessingCombinationLink ::= SEQUENCE {
	basebandProcessingCombinationIndexMN		BasebandProcessingCombinationIndex, 
	basebandProcessingCombinationLinkedIndexSN	SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombinationIndex
}

BasebandProcessingCombinationIndex ::= INTEGER (1..maxBasebandProcComb)

-- TAG-BASEBANDPROCESSINGCOMBINATIONMRDC-STOP
-- TAG-CA-BANDWIDTHCLASSNR-START

-- Updated based on R4-1803374
CA-BandwidthClassNR ::= ENUMERATED {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, ...}

-- TAG-CA-BANDWIDTHCLASSNR-STOP
-- TAG-CA-BANDWIDTHCLASSEUTRA-START

CA-BandwidthClassEUTRA ::=	ENUMERATED {a, b, c, d, e, f, ...}

-- TAG-CA-BANDWIDTHCLASSEUTRA-STOP
-- TAG-FREQ-BAND-INDICATOR-EUTRA-START

FreqBandIndicatorEUTRA ::=	INTEGER (1..maxBandsEUTRA)

-- TAG-FREQ-BAND-INDICATOR-EUTRA-STOP
-- TAG-FREQBANDLIST-START

FreqBandList ::=	SEQUENCE (SIZE (1..maxBandsMRDC)) OF FreqBandInformation

FreqBandInformation ::= CHOICE {
	bandEUTRA				FreqBandIndicatorEUTRA,
	bandNR					FreqBandIndicatorNR
}

-- TAG-FREQBANDLIST-STOP
-- TAG-FREQSEPARATIONCLASS-START

FreqSeparationClass ::=	ENUMERATED {c1, c2, c3, ...}

-- TAG-FREQSEPARATIONCLASS-STOP
-- TAG-MIMO-LAYERS-START

MIMO-LayersDL ::=	ENUMERATED {twoLayers, fourLayers, eightLayers}

MIMO-LayersUL ::=	ENUMERATED {oneLayer, twoLayers, fourLayers}

-- TAG-MIMO-LAYERS-STOP
-- TAG-MODULATION-ORDER-START

ModulationOrder ::=	ENUMERATED {bpsk-halfpi, bpsk, qpsk, qam16, qam64, qam256}

-- TAG-MODULATION-ORDER-STOP
-- TAG-RAT-TYPE-START

RAT-Type ::= ENUMERATED {nr, eutra-nr, spare2, spare1, ...}

-- TAG-RAT-TYPE-STOP
-- TAG-SUPPORTEDBASEBANDPROCESSINGCOMBINATION-START

SupportedBasebandProcessingCombination ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BasebandProcessingCombination

BasebandProcessingCombination ::= SEQUENCE {
	basebandParametersDL			SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BasebandParametersPerBandDL,
	basebandParametersUL				BIT STRING (SIZE (1..maxBasebandProcComb))}

BasebandParametersPerBandDL ::= SEQUENCE {
	ca-BandwidthClassDL			CA-BandwidthClassNR,
	freqRange					ENUMERATED {fr1, fr2},
	basebandParametersPerCC-DL		SEQUENCE (SIZE (1.. maxNrofServingCells)) OF BasebandParametersPerCC-DL
}

BasebandParametersPerCC-DL ::= SEQUENCE {
-- R4 2-2: Simultaneous reception or transmission with same or  different numerologies in CA
-- It is expressed by the combination of SCS whether simultaneous RxTx is supported or not.
	supportedSubcarrierSpacingDL				SubcarrierSpacing,
-- Accoding to the RAN4 LS R4-1803563, maximum Bandwidth supported per CC is added in BPC
-- FFS how to work together with BCS and max BW for each CC to be defined for each CA band combination in the RAN4 spec.
	supportedBandwidthDL		CHOICE {
		fr1							ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100},
		fr2							ENUMERATED {mhz50, mhz100, mhz200, mhz400}
	},
-- R2-1800012. To be confirmed by RAN1
	scalingFactor0dot75			ENUMERATED {supported}		OPTIONAL,
-- R1 2-2: PDSCH beam switching
	timeDurationForQCL					SEQUENCE {
		scs-60kHz							ENUMERATED {s7, s14, s28}				OPTIONAL,
		sch-120kHz							ENUMERATED {s14, s28}					OPTIONAL
	}																			OPTIONAL,
-- R1 1-10: Support of SCell without SS/PBCH block
	scellWithoutSSB					ENUMERATED {supported}						OPTIONAL,
-- R1 1-11: Support of CSI-RS RRM measurement for SCell without SS/PBCH block
	csi-RS-MeasSCellWithoutSSB		ENUMERATED {supported}						OPTIONAL,
-- R1 2-3: PDSCH MIMO layers. Absence of this field implies support of one layer.
	maxNumberMIMO-LayersPDSCH			MIMO-LayersDL							OPTIONAL,
-- Accoding to the RAN4 LS R4-1803563, modulation order is added per CC granularity in BPC
-- FFS whether all of modulation order specified in the spec need to be signalled.
-- FFS how to address the requirements agreed by RAN4, e.g. mandaotry w/o capabiltiy for 64QAM. mandaotry with capabiltiy for DL 256QAM in FR1.
	supportedModulationOrderDL					ModulationOrder					OPTIONAL,
-- R1 2-15a: Association between CSI-RS and SRS
	srs-AssocCSI-RS					ENUMERATED {supported}						OPTIONAL,
-- R1 3-1a: For type 1 CSS with dedicated RRC configuration and for type 3 CSS, UE specific SS, CORESET resource allocation of 6RB bit-map and duration 3 OFDM symbols for FR2
	type1-3-CSS						ENUMERATED {supported}						OPTIONAL,
-- R1 3-5 & 3-5a: For type 1 with dedicated RRC configuration, type 3, and UE-SS,, monitoring occasion can be any OFDM symbol(s) of a slot for Case 2 (with a DCI gap)
	pdcchMonitoringAnyOccasions		ENUMERATED {withoutDCI-gap, withDCI-gap}	OPTIONAL,
-- R1 5-1a: UE specific RRC configure UL/DL assignment
	ue-SpecificUL-DL-Assignment		ENUMERATED {supported}						OPTIONAL,
-- R1 5-11 & 5-11a: Up to 2/7 unicast PDSCHs per slot for different TBs
	pdsch-DifferentTB-PerSlot		SEQUENCE {
		scs-15kHz						ENUMERATED {upto2, upto7}					OPTIONAL,
		scs-30kHz						ENUMERATED {upto2, upto7}					OPTIONAL,
		scs-60kHz						ENUMERATED {upto2, upto7}					OPTIONAL,
		scs-120kHz						ENUMERATED {upto2, upto7}					OPTIONAL
	}																			OPTIONAL,
-- R1 6-10: Cross carrier scheduling
	crossCarrierScheduling			ENUMERATED {supported}						OPTIONAL,
-- R1 6-21: DL search space sharing for CA
	searchSpaceSharingCA-DL			ENUMERATED {supported}						OPTIONAL
}

-- TAG-SUPPORTEDBASEBANDPROCESSINGCOMBINATION-STOP
-- TAG-UE-CAPABILITY-RAT-CONTAINER-LIST-START

UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0.. maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Container

UE-CapabilityRAT-Container ::= SEQUENCE {
	rat-Type							RAT-Type,
	ue-CapabilityRAT-Container			OCTET STRING
}

-- TAG-UE-CAPABILITY-RAT-CONTAINER-LIST-STOP
-- TAG-UE-MRDC-CAPABILITY-START

UE-MRDC-Capability ::=	SEQUENCE {
	measParametersMRDC					MeasParametersMRDC					OPTIONAL,
	rf-ParametersMRDC					RF-ParametersMRDC,
	phy-ParametersMRDC					Phy-ParametersMRDC					OPTIONAL,
	generalParametersMRDC				GeneralParametersMRDC-XDD-Diff		OPTIONAL,
	fdd-Add-UE-MRDC-Capabilities		UE-MRDC-CapabilityAddXDD-Mode		OPTIONAL,
	tdd-Add-UE-MRDC-Capabilities		UE-MRDC-CapabilityAddXDD-Mode		OPTIONAL,
	fr1-Add-UE-MRDC-Capabilities		UE-MRDC-CapabilityAddFRX-Mode		OPTIONAL,
	fr2-Add-UE-MRDC-Capabilities		UE-MRDC-CapabilityAddFRX-Mode		OPTIONAL,
	lateNonCriticalExtension			OCTET STRING						OPTIONAL,
	nonCriticalExtension				SEQUENCE {}							OPTIONAL
}

UE-MRDC-CapabilityAddXDD-Mode ::=	SEQUENCE {
	phy-ParametersMRDC-XDD-Diff		Phy-ParametersMRDC-XDD-Diff		OPTIONAL,
	measParametersMRDC-XDD-Diff		MeasParametersMRDC-XDD-Diff		OPTIONAL,
	generalParametersMRDC-XDD-Diff		GeneralParametersMRDC-XDD-Diff		OPTIONAL
}

UE-MRDC-CapabilityAddFRX-Mode ::=	SEQUENCE {
	phy-ParametersMRDC-FRX-Diff		Phy-ParametersMRDC-FRX-Diff		OPTIONAL,
	measParametersMRDC-FRX-Diff		MeasParametersMRDC-FRX-Diff
}

RF-ParametersMRDC ::= SEQUENCE {
	supportedBandCombination	BandCombinationList,
	bandCombinationParametersUL-List	BandCombinationParametersUL-List
}

Phy-ParametersMRDC ::= SEQUENCE {
	phy-ParametersMRDC-XDD-Diff		Phy-ParametersMRDC-XDD-Diff		OPTIONAL,
	phy-ParametersMRDC-FRX-Diff		Phy-ParametersMRDC-FRX-Diff		OPTIONAL
}

Phy-ParametersMRDC-XDD-Diff ::=	SEQUENCE {
-- R1 8-1: Dynamic power sharing for LTE-NR DC
	dynamicPowerSharing					ENUMERATED {supported}				OPTIONAL,
-- R1 6-13 & 8-2: Case 1 Single Tx UL LTE-NR DC
	tdm-Pattern							ENUMERATED {supported}				OPTIONAL
}
Phy-ParametersMRDC-FRX-Diff ::=	SEQUENCE {
-- R1 8-1: Dynamic power sharing for LTE-NR DC
	dynamicPowerSharing					ENUMERATED {supported}				OPTIONAL,
-- R1 6-13 & 8-2: Case 1 Single Tx UL LTE-NR DC
	tdm-Pattern							ENUMERATED {supported}				OPTIONAL
}

MeasParametersMRDC ::= SEQUENCE {
	measParametersMRDC-Common		MeasParametersMRDC-Common,
	measParametersMRDC-XDD-Diff		MeasParametersMRDC-XDD-Diff				OPTIONAL,
	measParametersMRDC-FRX-Diff		MeasParametersMRDC-FRX-Diff
}

MeasParametersMRDC-Common ::=	SEQUENCE {
-- R4 3-1: Independent measurement gap configurations for FR1 and FR2
	independentGapConfig			ENUMERATED {supported}	OPTIONAL 
}

MeasParametersMRDC-XDD-Diff ::=	SEQUENCE {
	sftd-MeasPSCell							ENUMERATED {supported}		OPTIONAL,
	sftd-MeasNR-Cell						ENUMERATED {supported}		OPTIONAL
}

MeasParametersMRDC-FRX-Diff ::=	SEQUENCE {
-- R4 3-2: Simultaneous reception of data and SS block with different numerologies when UE conducts the serving cell measurement or intra-frequency measurement
	simultaneousRxDataSSB-DiffNumerology	ENUMERATED {supported}		OPTIONAL
}

GeneralParametersMRDC-XDD-Diff ::= SEQUENCE {
	splitSRB-WithOneUL-Path				ENUMERATED {supported}		OPTIONAL,
	splitDRB-withUL-Both-MCG-SCG		ENUMERATED {supported}		OPTIONAL,
	srb3									ENUMERATED {supported}		OPTIONAL
}

-- TAG-UE-MRDC-CAPABILITY-STOP
-- TAG-UE-NR-CAPABILITY-START

UE-NR-Capability ::= SEQUENCE {
	pdcp-Parameters					PDCP-Parameters, 
	rlc-Parameters					RLC-Parameters						OPTIONAL,						
	mac-Parameters					MAC-Parameters						OPTIONAL,						 
	phy-Parameters					Phy-Parameters,
	rf-Parameters					RF-Parameters,
	measParameters					MeasParameters						OPTIONAL,
	fdd-Add-UE-NR-Capabilities		UE-NR-CapabilityAddXDD-Mode			OPTIONAL,
	tdd-Add-UE-NR-Capabilities		UE-NR-CapabilityAddXDD-Mode			OPTIONAL,
	fr1-Add-UE-NR-Capabilities		UE-NR-CapabilityAddFRX-Mode			OPTIONAL,
	fr2-Add-UE-NR-Capabilities		UE-NR-CapabilityAddFRX-Mode			OPTIONAL,
	lateNonCriticalExtension		OCTET STRING						OPTIONAL,
	nonCriticalExtension			SEQUENCE {}							OPTIONAL
}

UE-NR-CapabilityAddXDD-Mode ::=	SEQUENCE {
	phy-ParametersXDD-Diff			Phy-ParametersXDD-Diff			OPTIONAL,
	mac-ParametersXDD-Diff			MAC-ParametersXDD-Diff			OPTIONAL,
	measParametersXDD-Diff			MeasParametersXDD-Diff			OPTIONAL
}

UE-NR-CapabilityAddFRX-Mode ::=	SEQUENCE {
	phy-ParametersFRX-Diff			Phy-ParametersFRX-Diff			OPTIONAL,
	measParametersFRX-Diff			MeasParametersFRX-Diff			OPTIONAL
}

Phy-Parameters ::=	SEQUENCE {
	phy-ParametersCommon			Phy-ParametersCommon				OPTIONAL,
	phy-ParametersXDD-Diff			Phy-ParametersXDD-Diff				OPTIONAL,
	phy-ParametersFRX-Diff			Phy-ParametersFRX-Diff				OPTIONAL,
	phy-ParametersFR1				Phy-ParametersFR1					OPTIONAL,
	phy-ParametersFR2				Phy-ParametersFR2					OPTIONAL,
	supportedBasebandProcessingCombination		SupportedBasebandProcessingCombination,
	basebandCombinationParametersUL-List		BasebandCombinationParametersUL-List
}

Phy-ParametersCommon ::=	SEQUENCE {
-- R1 1-9: CSI-RS based CFRA for HO
	csi-RS-CFRA-ForHO					ENUMERATED {supported}						OPTIONAL,
-- R1 2-11: Downlink dynamic PRB bundling (DL)
	dynamicPRB-BundlingDL				ENUMERATED {supported}						OPTIONAL,
-- R1 2-32a: Semi-persistent CSI report on PUCCH
	sp-CSI-ReportPUCCH					ENUMERATED {supported}						OPTIONAL,
-- R1 2-32b: Semi-persistent CSI report on PUSCH
	sp-CSI-ReportPUSCH					ENUMERATED {supported}						OPTIONAL,
-- R1 2-34: NZP-CSI-RS  based interference measurement
	nzp-CSI-RS-IntefMgmt				ENUMERATED {supported}						OPTIONAL,
-- R1 2-42: Support Type II SP-CSI feedback on long PUCCH
	type2-SP-CSI-Feedback-LongPUCCH		ENUMERATED {supported}						OPTIONAL,
-- R1 3-3: More than one CORESET per BWP (in addition to CORESET #0)
	multipleCORESET						ENUMERATED {supported}						OPTIONAL,
-- R1 3-6: Dynamic SFI monitoring and dynamic UL/DL determination
	dynamicSFI							ENUMERATED {supported}						OPTIONAL,
-- R1 3-7: Precoder-granularity of CORESET size
	precoderGranularityCORESET			ENUMERATED {supported}						OPTIONAL,
-- R1 4-10: Dynamic HARQ-ACK codebook
	dynamicHARQ-ACK-Codebook			ENUMERATED {supported}						OPTIONAL,
-- R1 4-11: Semi-static HARQ-ACK codebook
	semiStaticHARQ-ACK-Codebook			ENUMERATED {supported}						OPTIONAL,
-- R1 4-12: HARQ-ACK spatial bundling for PUCCH or PUSCH per PUCCH group
	spatialBundlingHARQ-ACK				ENUMERATED {supported}						OPTIONAL,
-- R1 4-21: Dynamic beta-offset configuration and indication for HARQ-ACK and/or CSI
	dynamicBetaOffsetInd-HARQ-ACK-CSI	ENUMERATED {supported}						OPTIONAL,
-- R1 4-23: Repetitions for PUCCH format 1, 3,and 4 over multiple slots with K = 1, 2, 4, 8
	pucch-Repetition-F1-3-4				ENUMERATED {supported}						OPTIONAL,
-- R1 5-2: RA type 0 for PUSCH
	ra-Type0-PUSCH						ENUMERATED {supported}						OPTIONAL,
-- R1 5-3: Dynamic switching between RA type 0 and RA type 1 for PDSCH
	dynamicSwitchRA-Type0-1-PDSCH		ENUMERATED {supported}						OPTIONAL,
-- R1 5-4: Dynamic switching between RA type 0 andRA type 1 for PUSCH
	dynamicSwitchRA-Type0-1-PUSCH		ENUMERATED {supported}						OPTIONAL,
-- R1 5-6: PDSCH mapping type A with less than 7 OFDM symbols
	pdsch-MappingTypeA					ENUMERATED {supported}						OPTIONAL,
-- R1 5-6a: PDSCH mapping type B
	pdsch-MappingTypeB					ENUMERATED {supported}						OPTIONAL,
-- R1 5-7: Interleaving for VRB-to-PRB mapping for PDSCH
	interleavingVRB-ToPRB-PDSCH			ENUMERATED {supported}						OPTIONAL,
-- R1 5-8: Interleaving for VRB-to-PRB mapping for PUSCH
	interleavingVRB-ToPRB-PUSCH			ENUMERATED {supported}						OPTIONAL,
-- R1 5-10: Inter-slot frequency hopping for PUSCH
	interSlotFreqHopping-PUSCH			ENUMERATED {supported}						OPTIONAL,
-- R1 5-13: Type 1 configured PUSCH repetitions within a slot
	type1-PUSCH-RepetitionOneSlot		ENUMERATED {supported}						OPTIONAL,
-- R1 5-14: Type 1 configured PUSCH repetitions over multiple slots
	type1-PUSCH-RepetitionMultiSlots	ENUMERATED {supported}						OPTIONAL,
-- R1 5-15: Type 2 configured PUSCH repetitions within a slot
	type2-PUSCH-RepetitionOneSlot		ENUMERATED {supported}						OPTIONAL,
-- R1 5-16: Type 2 configured PUSCH repetitions over multiple slots
	type2-PUSCH-RepetitionMultiSlots	ENUMERATED {supported}						OPTIONAL,
-- R1 5-17: PUSCH repetitions over multiple slots
	pusch-RepetitionMultiSlots			ENUMERATED {supported}						OPTIONAL,
-- R1 5-17a: PDSCH repetitions over multiple slots
	pdsch-RepetitionMultiSlots			ENUMERATED {supported}						OPTIONAL,
-- R1 5-18: DL SPS
	downlinkSPS							ENUMERATED {supported}						OPTIONAL,
-- R1 5-19: Type 1 Configured UL grant
	configuredUL-GrantType1				ENUMERATED {supported}						OPTIONAL,
-- R1 5-20: Type 2 Configured UL grant
	configuredUL-GrantType2				ENUMERATED {supported}						OPTIONAL,
-- R1 5-21: Pre-emption indication for DL
	pre-EmptIndication-DL				ENUMERATED {supported}						OPTIONAL,
-- R1 5-22 & 5-25: CBG-based re-transmission for DL/UL using CBGTI
	cbg-TransIndication					BIT STRING (SIZE (2))						OPTIONAL,
-- R1 5-23: CBGFI for CBG-based re-transmission for DL
	cbg-FlushIndication-DL				ENUMERATED {supported}						OPTIONAL,
-- R1 5-24: Dynamic HARQ-ACK codebook using sub-codebooks for CBG-based re-transmission for DL
	dynamicHARQ-ACK-CodeB-CBG-Retx-DL	ENUMERATED {supported}						OPTIONAL,
-- R1 5-26: Semi-static rate-matching resource set configuration for DL
	rateMatchingResrcSetSemi-Static		ENUMERATED {supported}						OPTIONAL,
-- R1 5-27: Dynamic rate-matching resource set configuration for DL
	rateMatchingResrcSetDynamic			ENUMERATED {supported}						OPTIONAL,
-- R1 5-28: Rate-matching around LTE CRS
	rateMatchingLTE-CRS					ENUMERATED {supported}						OPTIONAL,
-- R4 1-8: BWP switching delay
	bwp-SwitchingDelay					ENUMERATED {type1, type2}					OPTIONAL
}

Phy-ParametersXDD-Diff ::=	SEQUENCE {
-- R1 4-2: 2 PUCCH of format 0 or 2 in consecutive symbols
	twoPUCCH-F0-2-ConsecSymbols			ENUMERATED {supported}						OPTIONAL,
-- R1 8-7: UL power control with 2 PUSCH closed loops
	twoDifferentTPC-Loop-PUSCH			ENUMERATED {supported}						OPTIONAL,
-- R1 8-8: UL power control with 2 PUCCH closed loops
	twoDifferentTPC-Loop-PUCCH			ENUMERATED {supported}						OPTIONAL
}

Phy-ParametersFRX-Diff ::=	SEQUENCE {
-- R1 2-6 & 2-16b: Support 1+2 DMRS (DL/UL)
	oneFL-DMRS-TwoAdditionalDMRS		BIT STRING (SIZE (2))						OPTIONAL,
-- R1 2-7 & 2-18: Supported 2 symbols front-loaded DMRS(DL/UL)
	twoFL-DMRS							BIT STRING (SIZE (2))						OPTIONAL,
-- R1 2-8 & 2-18a: Supported 2 symbols front-loaded +2 symbols additional DMRS(DL/UL)
	twoFL-DMRS-TwoAdditionalDMRS		BIT STRING (SIZE (2))						OPTIONAL,
-- R1 2-9 & 2-19: Support 1+3 DMRS (DL/UL)
	oneFL-DMRS-ThreeAdditionalDMRS		BIT STRING (SIZE (2))						OPTIONAL,
-- R1 2-10: Support DMRS type (DL)
	supportedDMRS-TypeDL				ENUMERATED {type1, type2}					OPTIONAL,
-- R1 2-17: Support DMRS type (UL)
	supportedDMRS-TypeUL				ENUMERATED {type1, type2}					OPTIONAL,
-- R1 2-37: Support Semi-open loop CSI
	semiOpenLoopCSI						ENUMERATED {supported}						OPTIONAL,
-- R1 2-38: CSI report without PMI
	csi-ReportWithoutPMI				ENUMERATED {supported}						OPTIONAL,
-- R1 2-39: CSI report with CRI
	csi-ReportWithCRI					ENUMERATED {supported}						OPTIONAL,
-- R1 2-39a: CSI report without CQI
	csi-ReportWithoutCQI				ENUMERATED {supported}						OPTIONAL,
-- R1 2-44 & 2-47: 1 port of DL/UL PTRS
	onePortsPTRS						BIT STRING (SIZE (2))						OPTIONAL,
-- R1 4-2: 2 PUCCH of format 0 or 2 in consecutive symbols
	twoPUCCH-F0-2-ConsecSymbols			ENUMERATED {supported}						OPTIONAL,
-- R1 4-3: PUCCH format 2 over 1 – 2 OFDM symbols once per slot with FH
	pucch-F2-WithFH						ENUMERATED {supported}						OPTIONAL,
-- R1 4-4: PUCCH format 3 over 4 – 14 OFDM symbols once per slot with FH
	pucch-F3-WithFH						ENUMERATED {supported}						OPTIONAL,
-- R1 4-5: PUCCH format 4 over 4 – 14 OFDM symbols once per slot with FH
	pucch-F4-WithFH						ENUMERATED {supported}						OPTIONAL,
-- R1 4-6: Non-frequency hopping for PUCCH formats 0 and 2
	freqHoppingPUCCH-F0-2				ENUMERATED {notSupported}					OPTIONAL,
-- R1 4-7: Non-frequency hopping for PUCCH format 1, 3, and 4
	freqHoppingPUCCH-F1-3-4				ENUMERATED {notSupported}					OPTIONAL,
-- R1 4-19: SR/HARQ-ACK/CSI multiplexing once per slot using a PUCCH (or piggybacked on a PUSCH)
	mux-SR-HARQ-ACK-CSI-PUCCH			ENUMERATED {supported}						OPTIONAL,
-- R1 4-20: UCI code-block segmentation 
	uci-CodeBlockSegmentation			ENUMERATED {supported}						OPTIONAL,
-- R1 4-22: 1 long PUCCH format and 1 short PUCCH format in the same slot
	onePUCCH-LongAndShortFormat			ENUMERATED {supported}						OPTIONAL,
-- R1 4-22a: 2 PUCCH transmissions in the same slot which are not covered by 4-22 and 4-2
	twoPUCCH-AnyOthersInSlot			ENUMERATED {supported}						OPTIONAL,
-- R1 5-9: Intra-slot frequency-hopping for PUSCH except for PUSCH scheduled by Type 1 before RRC connection
	intraSlotFreqHopping-PUSCH			ENUMERATED {supported}						OPTIONAL,
-- R1 5-29: LBRM for PUSCH
	pusch-LBRM							ENUMERATED {supported}						OPTIONAL,
-- R1 6-5a: PDCCH blind detection capability for CA
	pdcch-BlindDetectionCA				ENUMERATED {supported}						OPTIONAL,
-- R1 8-3: TPC-PUSCH-RNTI
	tpc-PUSCH-RNTI						ENUMERATED {supported}						OPTIONAL,
-- R1 8-4: TPC-PUCCH-RNTI
	tpc-PUCCH-RNTI						ENUMERATED {supported}						OPTIONAL,
-- R1 8-5: TPC-SRS-RNTI
	tpc-SRS-RNTI						ENUMERATED {supported}						OPTIONAL,
-- R1 8-6: Absolute TPC command mode
	absoluteTPC-Command					ENUMERATED {supported}						OPTIONAL,
-- R1 8-7: UL power control with 2 PUSCH closed loops
	twoDifferentTPC-Loop-PUSCH			ENUMERATED {supported}						OPTIONAL,
-- R1 8-8: UL power control with 2 PUCCH closed loops
	twoDifferentTPC-Loop-PUCCH			ENUMERATED {supported}						OPTIONAL,
-- R4 1-6: pi/2-BPSK for PUSCH
	pusch-HalfPi-BPSK					ENUMERATED {supported}						OPTIONAL,
-- R4 1-7: pi/2-BPSK for PUCCH format 3/4
	pucch-F3-4-HalfPi-BPSK				ENUMERATED {supported}						OPTIONAL,
-- R4 1-9: 1-symbol GP in unpaired spectrum
	oneSymbolGP-TDD						ENUMERATED {supported}						OPTIONAL,
-- R4 2-7: Almost contiguous UL CP-OFDM
	almostContiguousCP-OFDM-UL			ENUMERATED {supported}						OPTIONAL
}

Phy-ParametersFR1 ::=	SEQUENCE {
-- R1 3-2: Unicast PDCCH monitoring following Case 1-2
	pdcchMonitoringSingleOccasion		ENUMERATED {supported}						OPTIONAL,
-- R4 1-1: 60kHz of subcarrier spacing for FR1
	scs-60kHz							ENUMERATED {supported}						OPTIONAL,
-- R4 1-4: 256QAM for PDSCH in FR1
	pdsch-256QAM-FR1					ENUMERATED {supported}						OPTIONAL
}

Phy-ParametersFR2 ::=	SEQUENCE {
-- R4 2-8: PA calibration gap
	calibrationGapPA					ENUMERATED {supported}						OPTIONAL
}

RF-Parameters ::= SEQUENCE {
	supportedBandListNR					SupportedBandListNR,
	supportedBandCombination			BandCombinationList,
	bandCombinationParametersUL-List	BandCombinationParametersUL-List
}

SupportedBandListNR ::=	SEQUENCE (SIZE (1..maxBands)) OF BandNR

BandNR ::=	SEQUENCE {
	bandNR							FreqBandIndicatorNR,
-- Modified MPR behaviour as in RAN4 LS R2-1804077, which is needed for NSA as well as SA
	modifiedMPR-Behaviour			BIT STRING (SIZE (8))						OPTIONAL,
-- R4 2-1: Maximum channel bandwidth supported in each band for DL and UL separately and for each SCS that UE supports within a single CC
-- RAN4 agreed that 400 MHz is optional for FR2. The other values defined for FR1/fR2 in TS 38.101 are mandatory w/o capability bit.
	maxChannelBW-PerCC				ENUMERATED {mhz400}							OPTIONAL,
	mimo-ParametersPerBand			MIMO-ParametersPerBand						OPTIONAL,
-- R1 0-10: Extended CP
	extendedCP						ENUMERATED {supported}						OPTIONAL,
-- R1 0-13: Phase coherence across non-contiguous UL symbols in slot in the transmission of one channel
	phaseCoherenceUL				ENUMERATED {supported}						OPTIONAL,
-- R1 1-10: Support of SCell without SS/PBCH block
	scellWithoutSSB					ENUMERATED {supported}						OPTIONAL,
-- R1 1-11: Support of CSI-RS RRM measurement for SCell without SS/PBCH block
	csi-RS-MeasSCellWithoutSSB		ENUMERATED {supported}						OPTIONAL,
-- R1 2-15a: Association between CSI-RS and SRS
	srs-AssocCSI-RS					ENUMERATED {supported}						OPTIONAL,
-- R1 3-1a: For type 1 CSS with dedicated RRC configuration and for type 3 CSS, UE specific SS, CORESET resource allocation of 6RB bit-map and duration 3 OFDM symbols for FR2
	type1-3-CSS						ENUMERATED {supported}						OPTIONAL,
-- R1 3-4: More than one TCI state configurations per CORESET
	multipleTCI						ENUMERATED {supported}						OPTIONAL,
-- R1 3-5 & 3-5a: For type 1 with dedicated RRC configuration, type 3, and UE-SS,, monitoring occasion can be any OFDM symbol(s) of a slot for Case 2 (with a DCI gap)
	pdcchMonitoringAnyOccasions		ENUMERATED {withoutDCI-gap, withDCI-gap}	OPTIONAL,
-- R1 5-1a: UE specific RRC configure UL/DL assignment
	ue-SpecificUL-DL-Assignment		ENUMERATED {supported}						OPTIONAL,
-- R1 5-11 & 5-11a: Up to 2/7 unicast PDSCHs per slot for different TBs
	pdsch-DifferentTB-PerSlot		SEQUENCE {
		scs-15kHz						ENUMERATED {upto2, upto7}				OPTIONAL,
		scs-30kHz						ENUMERATED {upto2, upto7}				OPTIONAL,
		scs-60kHz						ENUMERATED {upto2, upto7}				OPTIONAL,
		scs-120kHz						ENUMERATED {upto2, upto7}				OPTIONAL
	}																			OPTIONAL,
-- R1 5-12 & 5-12a: Up to 2/7 PUSCHs per slot for different TBs
	pusch-DifferentTB-PerSlot		SEQUENCE {
		scs-15kHz						ENUMERATED {upto2, upto7}				OPTIONAL,
		scs-30kHz						ENUMERATED {upto2, upto7}				OPTIONAL,
		scs-60kHz						ENUMERATED {upto2, upto7}				OPTIONAL,
		scs-120kHz						ENUMERATED {upto2, upto7}				OPTIONAL
	}																			OPTIONAL,
-- R1 6-2 & 6-3: Type A/B BWP adaptation (up to 2/4 BWPs) with same numerology
	bwp-SameNumerology					ENUMERATED {upto2, upto4}				OPTIONAL,
-- R1 6-4: BWP adaptation (up to 4 BWPs) with different numerologies
	bwp-DiffNumerology					ENUMERATED {upto4}						OPTIONAL,
-- R1 6-7: Two PUCCH group
	twoPUCCH-Group					ENUMERATED {supported}						OPTIONAL,
-- R1 6-8: Different numerology across PUCCH groups
	diffNumerologyAcrossPUCCH-Group	ENUMERATED {supported}						OPTIONAL,
-- R1 6-9: Different numerologies across carriers within the same PUCCH group
	diffNumerologyWithinPUCCH-Group	ENUMERATED {supported}						OPTIONAL,
-- R1 6-10: Cross carrier scheduling
	crossCarrierScheduling			ENUMERATED {supported}						OPTIONAL,
-- R1 6-11: Number of supported TAGs
	supportedNumberTAG				ENUMERATED {n2, n3, n4}						OPTIONAL,
-- R1 6-19: Simultaneous transmission of SRS on an SUL/non-SUL carrier and PUSCH/PUCCH/SRS/PRACH on the other UL carrier in the same cell
-- Details on the channel/signal combination are to be described in TS 38.306
	simultaneousTxSUL-NonSUL		ENUMERATED {supported}						OPTIONAL,
-- R1 6-21: DL search space sharing for CA
	searchSpaceSharingCA-DL			ENUMERATED {supported}						OPTIONAL,
-- R1 6-22: UL search space sharing for CA
	searchSpaceSharingCA-UL			ENUMERATED {supported}						OPTIONAL,
-- R4 1-4: 256QAM for PDSCH in FR2
	pdsch-256QAM-FR2				ENUMERATED {supported}						OPTIONAL,
-- R4 1-5: 256QAM for PUSCH
	pusch-256QAM					ENUMERATED {supported}						OPTIONAL
}

MIMO-ParametersPerBand ::= SEQUENCE {
-- R1 2-2: PDSCH beam switching
	timeDurationForQCL					SEQUENCE {
		scs-60kHz							ENUMERATED {s7, s14, s28}									OPTIONAL,
		sch-120kHz							ENUMERATED {s14, s28}										OPTIONAL
	}																									OPTIONAL,
-- R1 2-3: PDSCH MIMO layers. Absence of this field implies support of one layer.
	maxNumberMIMO-LayersPDSCH			MIMO-LayersDL													OPTIONAL,
-- R1 2-14: Codebook based PUSCH MIMO transmission. Absence of this field implies that CB-based PUSCH is not supported.
	maxNumberMIMO-LayersCB-PUSCH		MIMO-LayersUL													OPTIONAL,
-- R1 2-15: Non-codebook based PUSCH MIMO transmission. Absence of this field implies that Non-CB-based PUSCH is not supported.
	maxNumberMIMO-LayersNonCB-PUSCH		MIMO-LayersUL													OPTIONAL,
-- R1 2-4: TCI states for PDSCH
	maxNumberConfiguredTCIstates		ENUMERATED {n4, n8, n16, n32, n64}								OPTIONAL,
	maxNumberActiveTCI-PerCC			ENUMERATED {n1, n2, n4, n8}										OPTIONAL,
-- R1 2-13: PUSCH transmission coherence
	pusch-TransCoherence				ENUMERATED {nonCoherent, partialNonCoherent, fullCoherent}	OPTIONAL,
-- R1 2-20: Beam correspondence
	beamCorrespondence					ENUMERATED {supported}											OPTIONAL,
-- R1 2-21: Periodic beam report on PUCCH
	periodicBeamReport					ENUMERATED {supported}											OPTIONAL,
-- R1 2-22: Aperiodic beam report on PUSCH
	aperiodicBeamReport					ENUMERATED {supported}											OPTIONAL,
-- R1 2-23: Semi-persistent beam report on PUCCH
	sp-BeamReportPUCCH					ENUMERATED {supported}											OPTIONAL,
-- R1 2-23a: Semi-persistent beam report on PUSCH
	sp-BeamReportPUSCH					ENUMERATED {supported}											OPTIONAL,
-- R1 2-24: SSB/CSI-RS for beam management
	beamManagementSSB-CSI-RS			BeamManagementSSB-CSI-RS										OPTIONAL,
-- R1 2-26: Receiving beam selection using CSI-RS resource repetition "ON"
	maxNumberRxBeam						INTEGER (2..8)													OPTIONAL,
-- R1 2-27: Beam switching (including SSB and CSI-RS)
	maxNumberRxTxBeamSwitchDL			SEQUENCE {
		scs-15kHz							ENUMERATED {n4, n7, n14}									OPTIONAL,
		scs-30kHz							ENUMERATED {n4, n7, n14}									OPTIONAL,
		scs-60kHz							ENUMERATED {n4, n7, n14}									OPTIONAL,
		scs-120kHz							ENUMERATED {n4, n7, n14}									OPTIONAL,
		scs-240kHz							ENUMERATED {n4, n7, n14}									OPTIONAL
	}																									OPTIONAL,
-- R1 2-29: Non-group based beam reporting
	maxNumberNonGroupBeamReporting		ENUMERATED {n1, n2, n4}											OPTIONAL,
-- R1 2-29a: Group based beam reporting
	groupBeamReporting					ENUMERATED {supported}											OPTIONAL,
-- R1 2-30: UL beam management
	uplinkBeamManagement				SEQUENCE {
		maxNumberSRS-ResourcePerSet			ENUMERATED {n8, n16, n32},
		maxNumberSRS-ResourceSet			INTEGER (1..8)
	}																									OPTIONAL,
-- R1 2-31: Beam failure recovery
	maxNumberCSI-RS-BFR					INTEGER (1..64)													OPTIONAL,
	maxNumberSSB-BFR					INTEGER (1..64)													OPTIONAL,
	maxNumberCSI-RS-SSB-BFR				INTEGER (1..256)												OPTIONAL,
-- R1 2-45 & 2-48: 2 ports of DL/UL PTRS
	twoPortsPTRS						BIT STRING (SIZE (2))											OPTIONAL,
-- R1 2-53: SRS resources
	supportedSRS-Resources			SRS-Resources														OPTIONAL,
-- R1 2-55: SRS Tx switch
	srs-TxSwitch					SRS-TxSwitch														OPTIONAL,
-- R1 2-54a: Simultaneous SRS Tx
	maxNumberSimultaneousSRS-PerCC		INTEGER (1..4)													OPTIONAL,
-- R1 2-57: Support low latency CSI feedback
	lowLatencyCSI-Feedback				ENUMERATED {supported}											OPTIONAL
}

-- R1 2-24: SSB/CSI-RS for beam management
BeamManagementSSB-CSI-RS ::=	SEQUENCE {
	maxNumberSSB-CSI-RS-ResourceOneTx	ENUMERATED {n8, n16, n32, n64},
	maxNumberSSB-CSI-RS-ResourceTwoTx	ENUMERATED {n0, n4, n8, n16, n32, n64},
	supportedCSI-RS-Density				ENUMERATED {one, three, oneAndThree}
}

-- R1 2-53: SRS resources
SRS-Resources ::=	SEQUENCE {
	maxNumberAperiodicSRS-PerBWP					ENUMERATED {n1, n2, n4, n8, n16},
	maxNumberAperiodicSRS-PerBWP-PerSlot			INTEGER (1..6),
	maxNumberPeriodicSRS-PerBWP						ENUMERATED {n1, n2, n4, n8, n16},
	maxNumberPeriodicSRS-PerBWP-PerSlot				INTEGER (1..6),
	maxNumberSemiPersitentSRS-PerBWP				ENUMERATED {n0, n1, n2, n4, n8, n16},
	maxNumberSP-SRS-PerBWP-PerSlot					INTEGER (0..6),
	maxNumberSRS-Ports-PerResource					ENUMERATED {n1, n2, n4}
}
-- R1 2-55: SRS Tx switch
SRS-TxSwitch ::=	SEQUENCE {
	supportedSRS-TxPortSwitch			ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4},
	txSwitchImpactToRx					ENUMERATED {true}								OPTIONAL
}

PDCP-Parameters ::= SEQUENCE {
	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
}

RLC-Parameters ::= SEQUENCE {
	am-WithShortSN					ENUMERATED {supported}	OPTIONAL,
		um-WithShortSN					ENUMERATED {supported}	OPTIONAL, 
		um-WIthLongSN					ENUMERATED {supported}	OPTIONAL
}

MAC-Parameters ::= SEQUENCE {
	mac-ParametersCommon			MAC-ParametersCommon	OPTIONAL,
	mac-ParametersXDD-Diff			MAC-ParametersXDD-Diff	OPTIONAL
}

MAC-ParametersCommon ::=	SEQUENCE {
	lcp-Restriction					ENUMERATED {supported}	OPTIONAL,
-- R1 4-24: PUCCH-spatialrelationinfo indication by a MAC CE per PUCCH resource
	pucch-SpatialRelInfoMAC-CE		ENUMERATED {supported}	OPTIONAL
}

MAC-ParametersXDD-Diff ::=	SEQUENCE {
	skipUplinkTxDynamic				ENUMERATED {supported}	OPTIONAL,
	logicalChannelSR-DelayTimer		ENUMERATED {supported}	OPTIONAL, 
	longDRX-Cycle					ENUMERATED {supported}	OPTIONAL, 
	shortDRX-Cycle					ENUMERATED {supported}	OPTIONAL, 
	multipleSR-Configurations		ENUMERATED {supported}	OPTIONAL, 
	-- If supported UE supports 8 SR configurations, otherwise 1 SR config is supported. 
	-- Confirmation is needed whether to align the number to what the configuration signalling can support.
	multipleConfiguredGrantConfigurations	ENUMERATED {supported}	OPTIONAL 
	-- If supported UE supports 16 configured grant configurations, otherwise 1 ConfiguredGrant config is supported.
	-- Confirmation is needed whether to align the number to what the configuration signalling can support, and to consider whether the 16 refers
	-- to the configurations or the active ones only (as they are within the BWP).
}

MeasParameters ::= SEQUENCE {
	measParametersXDD-Diff			MeasParametersXDD-Diff		OPTIONAL,
	measParametersFRX-Diff			MeasParametersFRX-Diff		OPTIONAL
}

MeasParametersXDD-Diff ::=	SEQUENCE {
	intraAndInterF-MeasAndReport	ENUMERATED {supported}	OPTIONAL,
	eventA-MeasAndReport			ENUMERATED {supported}	OPTIONAL 
	-- Confirmation is needed on the need of capability/IOT signaling in LTE for support of the additional measurement gap configurations.
}

MeasParametersFRX-Diff ::=	SEQUENCE {
-- R1 1-3: SSB based SINR measurement
	ss-SINR-Meas						ENUMERATED {supported}		OPTIONAL,
-- R1 1-5: CSI-RS based RRM measurement with associated SS-block
	csi-RSRP-AndRSRQ-MeasWithSSB		ENUMERATED {supported}		OPTIONAL,
-- R1 1-5a: CSI-RS based RRM measurement without associated SS-block
	csi-RSRP-AndRSRQ-MeasWithoutSSB		ENUMERATED {supported}		OPTIONAL,
-- R1 1-6: CSI-RS based SINR measurement
	csi-SINR-Meas						ENUMERATED {supported}		OPTIONAL,
-- R1 1-7: CSI-RS based RLM
	csi-RS-RLM							ENUMERATED {supported}		OPTIONAL
}

-- TAG-UE-NR-CAPABILITY-STOP
-- TAG-RRC-TRANSACTIONIDENTIFIER-START

RRC-TransactionIdentifier ::=		INTEGER (0..3)

-- TAG-RRC-TRANSACTIONIDENTIFIER-STOP
-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-START

maxBandComb								INTEGER ::=	65536	-- Maximum number of DL band combinations
maxBasebandProcComb						INTEGER ::=	65536	-- Maximum number of baseband processing combinations
maxNrofServingCells						INTEGER ::=	32		-- Max number of serving cells (SpCell + SCells) per cell group
maxNrofServingCells-1					INTEGER ::= 31		-- Max number of serving cells (SpCell + SCells) per cell group minus 1
maxNrofAggregatedCellsPerCellGroup		INTEGER ::= 16
maxNrofSCells							INTEGER ::=	31		-- Max number of secondary serving cells per cell group
maxNrofCellMeas							INTEGER ::=	32		-- Maximum number of entries in each of the cell lists in a measurement object
maxNrofSS-BlocksToAverage				INTEGER ::= 16		-- Max number for the (max) number of SS blocks to average to determine cell
															-- measurement
maxNrofCSI-RS-ResourcesToAverage			INTEGER ::= 16		-- Max number for the (max) number of CSI-RS to average to determine cell
															-- measurement
maxNrofDL-Allocations 					INTEGER ::= 16		-- Maximum number of PDSCH time domain resource allocations

maxNrofSR-ConfigPerCellGroup				INTEGER ::= 8		-- Maximum number of SR configurations per cell group

maxLCG-ID								INTEGER ::= 7		-- Maximum value of LCG ID
maxLC-ID								INTEGER ::= 32		-- Maximum value of Logical Channel ID
maxNrofTAGs								INTEGER ::=	4		-- Maximum number of Timing Advance Groups
maxNrofTAGs-1							INTEGER ::=	3		-- Maximum number of Timing Advance Groups minus 1

maxNrofBWPs								INTEGER ::= 4		-- Maximum number of BWPs per serving cell
maxNrofSymbols-1						INTEGER ::= 13		-- Maximum index identifying a symbol within a slot (14 symbols, indexed from 0..13)
maxNrofSlots							INTEGER ::= 320		-- Maximum number of slots in a 10 ms period
maxNrofSlots-1							INTEGER ::= 319		-- Maximum number of slots in a 10 ms period minus 1

maxNrofPhysicalResourceBlocks			INTEGER ::= 275		-- Maximum number of PRBs
maxNrofPhysicalResourceBlocks-1			INTEGER ::= 274		-- Maximum number of PRBs
maxNrofControlResourceSets 				INTEGER ::= 12 		-- Max number of CoReSets configurable on a serving cell
maxNrofControlResourceSets-1			INTEGER ::= 11  	-- Max number of CoReSets configurable on a serving cell minus 1
maxCoReSetDuration						INTEGER ::= 3		-- Max number of OFDM symbols in a control resource set
maxNrofSearchSpaces						INTEGER ::= 40		-- Max number of Search Spaces
maxNrofSearchSpaces-1					INTEGER ::= 39		-- Max number of Search Spaces minus 1
maxSFI-DCI-PayloadSize					INTEGER ::= 128		-- Max number payload of a DCI scrambled with SFI-RNTI
maxSFI-DCI-PayloadSize-1				INTEGER ::= 127		-- Max number payload of a DCI scrambled with SFI-RNTI minus 1
maxINT-DCI-PayloadSize					INTEGER ::= 126		-- Max number payload of a DCI scrambled with INT-RNTI
maxINT-DCI-PayloadSize-1				INTEGER ::= 125		-- Max number payload of a DCI scrambled with INT-RNTI minus 1
maxNrofRateMatchPatterns				INTEGER ::= 4		-- Max number of rate matching patterns that may be configured
maxNrofRateMatchPatterns-1				INTEGER ::= 3		-- Max number of rate matching patterns that may be configured minus 1

maxNrofCSI-ReportConfigurations			INTEGER ::= 48 		-- Maximum number of report configurations
maxNrofCSI-ReportConfigurations-1		INTEGER ::= 47		-- Maximum number of report configurations minus 1

maxNrofCSI-ResourceConfigurations		INTEGER ::= 112		-- Maximum number of resource configurations
maxNrofCSI-ResourceConfigurations-1		INTEGER ::= 111		-- Maximum number of resource configurations minus 1

maxNrofAP-CSI-RS-ResourcesPerSet		INTEGER ::= 16
maxNrOfCSI-AperiodicTriggers			INTEGER ::= 128		-- Maximum number of triggers for aperiodic CSI reporting
maxNrofReportConfigPerAperiodicTrigger	INTEGER ::= 16		-- Maximum number of report configurations per trigger state for aperiodic reporting

maxNrofNZP-CSI-RS-Resources				INTEGER ::= 192		-- Maximum number of Non-Zero-Power (NZP) CSI-RS resources
maxNrofNZP-CSI-RS-Resources-1			INTEGER ::= 191		-- Maximum number of Non-Zero-Power (NZP) CSI-RS resources minus 1
maxNrofNZP-CSI-RS-ResourcesPerSet		INTEGER ::= 64		-- Maximum number of NZP CSI-RS resources per resource set
maxNrofNZP-CSI-RS-ResourceSetsPerConfig	INTEGER ::= 16		-- Maximum number of resource sets per resource configuration

maxNrofZP-CSI-RS-Resources				INTEGER ::= 32		-- Maximum number of Zero-Power (NZP) CSI-RS resources
maxNrofZP-CSI-RS-Resources-1			INTEGER ::= 31		-- Maximum number of Zero-Power (NZP) CSI-RS resources minus 1
maxNrofZP-CSI-RS-ResourceSets-1			INTEGER ::= 16
maxNrofZP-CSI-RS-ResourcesPerSet		INTEGER ::= 16
maxNrofZP-CSI-RS-Sets					INTEGER ::= 16

maxNrofCSI-IM-Resources					INTEGER ::= 32		-- Maximum number of CSI-IM resources. See CSI-IM-ResourceMax in 38.214.
maxNrofCSI-IM-Resources-1				INTEGER ::= 31		-- Maximum number of CSI-IM resources minus 1. See CSI-IM-ResourceMax in 38.214.
maxNrofCSI-IM-ResourcesPerSet			INTEGER ::= 8		-- Maximum number of CSI-IM resources per set. See CSI-IM-ResourcePerSetMax in 38.214
maxNrofCSI-IM-ResourceSetsPerConfig 	INTEGER ::= 16		-- Maximum number of CSI IM resource sets per resource configuration

maxNrofSSB-Resources-1					INTEGER ::= 63		-- Maximum number of SSB resources in a resource set minus 1
maxNrofCSI-SSB-ResourcePerSet 			INTEGER ::= 64
maxNrofCSI-SSB-ResourceSetsPerConfig 	INTEGER ::= 1		-- Maximum number of CSI SSB resource sets per resource configuration

maxNrofFailureDetectionResources		INTEGER ::= 10		-- Maximum number of failure detection resources	

maxNrofObjectId							INTEGER ::= 64		-- Maximum number of measurement objects
maxNrofPCI-Ranges						INTEGER ::= 8		-- Maximum number of PCI ranges
maxNrofCSI-RS-ResourcesRRM				INTEGER ::= 96		-- Maximum number of CSI-RS resources for an RRM measurement object
maxNrofCSI-RS-ResourcesRRM-1			INTEGER ::= 95		-- Maximum number of CSI-RS resources for an RRM measurement object minus 1
maxNrofMeasId							INTEGER ::= 64		-- Maximum number of configured measurements
maxNrofQuantityConfig					INTEGER	::= 2		-- Maximum number of quantity configurations
maxNrofCSI-RS-CellsRRM 					INTEGER ::= 96 		-- Maximum number of FFS

maxNrofSRS-ResourceSets					INTEGER ::= 16		-- Maximum number of SRS resource sets in a BWP.
maxNrofSRS-ResourceSets-1				INTEGER ::= 15		-- Maximum number of SRS resource sets in a BWP minus 1.
maxNrofSRS-Resources					INTEGER ::= 64		-- Maximum number of SRS resources in an SRS resource set.
maxNrofSRS-Resources-1					INTEGER ::= 63		-- Maximum number of SRS resources in an SRS resource set minus 1.
maxNrofSRS-TriggerStates-1 				INTEGER ::= 3		-- Maximum number of SRS trigger states minus 1, i.e., the largest code point.
maxRAT-CapabilityContainers				INTEGER ::= 8		-- Maximum number of interworking RAT containers (incl NR and MRDC)
maxSimultaneousBands					INTEGER ::= 32		-- Maximum number of simultaneously aggregated bands


maxNrofSlotFormatCombinationsPerCell	INTEGER ::= 16		-- Maximum number of
maxNrofSlotFormatCombinationsPerSet		INTEGER ::= 4096	-- Maximum number of Slot Format Combinations in a SF-Set.
maxNrofSlotFormatCombinationsPerSet-1	INTEGER ::= 4095	-- Maximum number of Slot Format Combinations in a SF-Set minus 1.
maxNrofPUCCH-Resources					INTEGER ::= 128
maxNrofPUCCH-Resources-1				INTEGER ::= 127
maxNrofPUCCH-ResourceSets				INTEGER ::= 4		-- Maximum number of PUCCH Resource Sets
maxNrofPUCCH-ResourceSets-1				INTEGER ::= 3		-- Maximum number of PUCCH Resource Sets minus 1.
maxNrofPUCCH-ResourcesPerSet			INTEGER ::= 32		-- Maximum number of PUCCH Resources per PUCCH-ResourceSet
maxNrofPUCCH-ResourcesPerSet-1			INTEGER ::= 31		-- Maximum number of PUCCH Resources per PUCCH-ResourceSet minus 1.
maxNrofPUCCH-P0-PerSet					INTEGER ::= 8		-- Maximum number of P0-pucch present in a p0-pucch set
maxNrofPUCCH-PathlossReferenceRSs		INTEGER ::= 4		-- Maximum number of RSs used as pathloss reference for PUCCH power control. 
maxNrofPUCCH-PathlossReferenceRSs-1		INTEGER ::= 3		-- Maximum number of RSs used as pathloss reference for PUCCH power control minus 1.

maxNrofP0-PUSCH-AlphaSets				INTEGER ::= 30		-- Maximum number of P0-pusch-alpha-sets (see 38,213, section 7.1)
maxNrofP0-PUSCH-AlphaSets-1				INTEGER ::= 29		-- Maximum number of P0-pusch-alpha-sets minus 1 (see 38,213, section 7.1)
maxNrofPUSCH-PathlossReferenceRSs		INTEGER ::= 4		-- Maximum number of RSs used as pathloss reference for PUSCH power control. 
maxNrofPUSCH-PathlossReferenceRSs-1		INTEGER ::= 3		-- Maximum number of RSs used as pathloss reference for PUSCH power control minus 1.

maxBands 								INTEGER ::= 1024		-- Maximum number of supported bands in UE capability.
maxBandsMRDC							INTEGER	::= 1280
maxBandsEUTRA							INTEGER ::=	256
maxCellPrep		 						INTEGER ::= 32
maxCellReport		 					INTEGER ::= 8
maxDRB		 							INTEGER ::= 29			-- Maximum number of DRBs (that can be added in DRB-ToAddModLIst).
maxFreq		 							INTEGER ::= 8			-- Max number of non-serving frequencies in MeasResultSCG-Failure.
maxNrofCSI-RS	 						INTEGER ::= 64
maxNrofCandidateBeams 					INTEGER ::= 16			-- Max number of PRACH-ResourceDedicatedBFR that in BFR config.
maxNrofPCIsPerSMTC 						INTEGER ::= 64			-- Maximun number of PCIs per SMTC.
maxNrofQFIs 							INTEGER ::= 64
maxNrofSR-Resources		 				INTEGER ::= 8			-- Maximum number of SR resources per BWP in a cell.
maxNrofSlotFormatsPerCombination 		INTEGER ::= 256
maxNrofSpatialRelationInfos 			INTEGER ::= 8
maxNrofSRS-ResourcesPerSet 				INTEGER ::= 16
maxNrofIndexesToReport 					INTEGER ::= 32
maxNrofSSBs 							INTEGER ::= 64 			-- Maximum number of SSB resources in a resource set.
maxNrofSSBs-1							INTEGER ::= 63			-- Maximum number of SSB resources in a resource set minus 1.

maxNrofTCI-StatesPDCCH 					INTEGER ::= 64
maxNrofTCI-States						INTEGER ::= 64			-- Maximum number of TCI states.
maxNrofTCI-States-1						INTEGER ::= 63			-- Maximum number of TCI states minus 1.
maxNrofUL-Allocations 					INTEGER ::= 16			-- Maximum number of PUSCH time domain resource allocations.
maxQFI 									INTEGER ::= 63
maxRA-CSIRS-Resources 					INTEGER ::= 96
maxRA-OccasionsPerCSIRS					INTEGER ::= 64			-- Maximum number of RA occasions for one CSI-RS
maxRA-Occasions-1						INTEGER ::=	511			-- Maximum number of RA occasions in the system
maxRA-SSB-Resources 					INTEGER ::= 64
maxSCSs									INTEGER ::= 5
maxSecondaryCellGroups 					INTEGER ::= 3
maxNrofServingCellsEUTRA				INTEGER ::= 32
maxMBSFN-Allocations					INTEGER ::= 8
maxNrofMultiBands						INTEGER ::= 8
maxCellSFTD    	                    	INTEGER ::= 3  			-- Maximum number of cells for SFTD reporting
maxReportConfigId                 	 	INTEGER ::= 64

maxNrofSRI-PUSCH-Mappings				INTEGER ::= 16
maxNrofSRI-PUSCH-Mappings-1				INTEGER ::= 15

-- Editor’s Note: Targeted for completion in June 2018. Not used in EN-DC drop.
CellIdentity ::=						ENUMERATED {ffsTypeAndValue}
ShortMAC-I ::=							ENUMERATED {ffsTypeAndValue}

-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-STOP

END


NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
	MeasId,
	MeasIdToAddModList,
	MeasObjectToAddModList,
	PhysCellId,
	ReportConfigToAddModList,
	RSRP-Range,
	QuantityConfig,
	maxNrofCellMeas,
	maxNrofMeasId
FROM NR-RRC-Definitions;

-- TAG-VAR-MEAS-CONFIG-START

VarMeasConfig ::=					SEQUENCE {
	-- Measurement identities
	measIdList							MeasIdToAddModList					OPTIONAL,
	-- Measurement objects
	measObjectList						MeasObjectToAddModList				OPTIONAL,
	-- Reporting configurations
	reportConfigList					ReportConfigToAddModList			OPTIONAL,
	-- Other parameters
	quantityConfig						QuantityConfig						OPTIONAL,
	
	s-MeasureConfig							CHOICE {
		ssb-RSRP								RSRP-Range,						
		csi-RSRP								RSRP-Range						
	} 																		OPTIONAL

}

-- TAG-VAR-MEAS-CONFIG-STOP
-- TAG-VAR-MEAS-REPORT-START

VarMeasReportList ::=				SEQUENCE (SIZE (1..maxNrofMeasId)) OF VarMeasReport

VarMeasReport ::=					SEQUENCE {
	-- List of measurement that have been triggered
	measId								MeasId,
	cellsTriggeredList					CellsTriggeredList				OPTIONAL,
	numberOfReportsSent					INTEGER
}

CellsTriggeredList ::=				SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CHOICE {
	physCellId							PhysCellId,
--	Not needed for EN-DC.
	physCellIdEUTRA						ENUMERATED {ffsTypeAndValue}
	}


-- TAG-VAR-MEAS-REPORT-STOP

END

-- TAG_NR-INTER-NODE-DEFINITIONS-START

NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
	ARFCN-ValueNR,
	CellIdentity,
	CSI-RS-Index,
	GapConfig,
	maxBandComb,
	maxBasebandProcComb,
	maxNrofSCells,
	maxNrofIndexesToReport,
	MeasQuantityResults,
	MeasResultSCG-Failure,
	MeasResultCellListSFTD,
	P-Max,
	PhysCellId,
	RadioBearerConfig,
	RRCReconfiguration,
	ServCellIndex,
	SSB-Index,
	ShortMAC-I,
	UE-CapabilityRAT-ContainerList
FROM NR-RRC-Definitions;

-- TAG_NR-INTER-NODE-DEFINITIONS-STOP
-- TAG-HANDOVER-COMMAND-START

HandoverCommand ::=					SEQUENCE {
	criticalExtensions					CHOICE {
		c1									CHOICE{
			handoverCommand					HandoverCommand-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture			SEQUENCE {}
	}
}

HandoverCommand-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		HandoverPreparationInformation-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture			SEQUENCE {}
	}
}

HandoverPreparationInformation-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			ReestabNCellInfoList					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				ENUMERATED {
									s1, s2, s3, s5, s7, s10, s15, s20,
									s25, s30, s40, s50, min1, min1s20c, min1s40,
									min2, min2s30, min3, min3s30, min4, min5, min6,
									min7, min8, min9, min10, min12, min14, min17, min20,
									min24, min28, min33, min38, min44, min50, hr1,
									hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
									hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
									day2hr12, day3, day4, day5, day7, day10, day14, day19,
									day24, day30, dayMoreThan30}		OPTIONAL ,
	candidateCellInfoList		CandidateCellInfoList		OPTIONAL,
	...
}

-- TAG-HANDOVER-PREPARATION-INFORMATION-STOP
-- TAG-CG-CONFIG-START

CG-Config ::=					SEQUENCE {
	criticalExtensions					CHOICE {
		c1									CHOICE{
			cg-Config					CG-Config-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture			SEQUENCE {}
	}
}

CG-Config-IEs ::=			SEQUENCE {
	scg-CellGroupConfig					OCTET STRING (CONTAINING RRCReconfiguration)	OPTIONAL,
	scg-RB-Config						OCTET STRING (CONTAINING RadioBearerConfig)		OPTIONAL,
	configRestrictModReq				ConfigRestrictModReqSCG							OPTIONAL,
	drx-InfoSCG							DRX-Info										OPTIONAL,
	candidateCellInfoListSN				OCTET STRING (CONTAINING CandidateCellInfoList)	OPTIONAL,
	measConfigSN						MeasConfigSN									OPTIONAL,
	selectedBandCombinationNR			BandCombinationIndex							OPTIONAL,
	nonCriticalExtension				SEQUENCE {}										OPTIONAL
}

MeasConfigSN ::= SEQUENCE {
	measuredFrequenciesFR1				SEQUENCE (SIZE (1..maxMeasFreqsMN))	OF NR-FreqInfo	OPTIONAL,
	...
}

NR-FreqInfo ::= SEQUENCE {
	measuredFrequency 					ARFCN-ValueNR									OPTIONAL,
	...
}

ConfigRestrictModReqSCG ::=			SEQUENCE {
	requestedBC-MRDC					BandCombinationIndex							OPTIONAL,
	requestedBPC-ListMRDC				BPC-IndexList									OPTIONAL,
	requestedP-MaxFR1				P-Max												OPTIONAL,
	...
}

BandCombinationIndex ::= INTEGER (1..maxBandComb)

-- TAG-CG-CONFIG-STOP
-- TAG-CG-CONFIG-INFO-START

CG-ConfigInfo ::=				SEQUENCE {
	criticalExtensions				CHOICE {
		c1								CHOICE{
			cg-ConfigInfo				CG-ConfigInfo-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture		SEQUENCE {}
	}
}

CG-ConfigInfo-IEs ::=		SEQUENCE {
	ue-CapabilityInfo			OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList)		OPTIONAL,-- Cond SN-Addition
	candidateCellInfoListMN			CandidateCellInfoList									OPTIONAL,
	candidateCellInfoListSN			OCTET STRING (CONTAINING CandidateCellInfoList)			OPTIONAL,
	measResultCellListSFTD			MeasResultCellListSFTD									OPTIONAL,
	scgFailureInfo					SEQUENCE {
		failureType						ENUMERATED { t310-Expiry, randomAccessProblem,
														rlc-MaxNumRetx, scg-ChangeFailure, 
														scg-reconfigFailure,
														srb3-IntegrityFailure},
		measResultSCG					OCTET STRING (CONTAINING MeasResultSCG-Failure)
	}																						OPTIONAL,
	configRestrictInfo			ConfigRestrictInfoSCG										OPTIONAL,
	drx-InfoMCG					DRX-Info													OPTIONAL,
	measConfigMN				MeasConfigMN												OPTIONAL,
	sourceConfigSCG				OCTET STRING (CONTAINING RRCReconfiguration)				OPTIONAL,
	scg-RB-Config             	OCTET STRING (CONTAINING RadioBearerConfig)        			OPTIONAL,
	mcg-RB-Config				OCTET STRING (CONTAINING RadioBearerConfig)					OPTIONAL,
	nonCriticalExtension		SEQUENCE {}													OPTIONAL
}

ConfigRestrictInfoSCG ::=		SEQUENCE {
	allowedBC-ListMRDC				BandCombinationIndexList								OPTIONAL,
	allowedBPC-ListMRDC				BPC-IndexList											OPTIONAL,
	powerCoordination-FR1				SEQUENCE {
		p-maxNR							P-Max												OPTIONAL,
		p-maxEUTRA						P-Max												OPTIONAL
	}																						OPTIONAL,
	servCellIndexRangeSCG			SEQUENCE {
		lowBound						ServCellIndex,
		upBound							ServCellIndex
	}																						OPTIONAL,   -- Cond SN-Addition
	maxMeasFreqsSCG-NR					INTEGER(1..maxMeasFreqsMN)								OPTIONAL,
	...
}

BandCombinationIndexList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationIndex

BPC-IndexList ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BPC-Index
BPC-Index ::= INTEGER (1..maxBasebandProcComb)

DRX-Info ::=					SEQUENCE {
	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)
	},
	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
}

MeasConfigMN ::= SEQUENCE {
	measuredFrequenciesMN				SEQUENCE (SIZE (1..maxMeasFreqsMN))	OF NR-FreqInfo	OPTIONAL,
	measGapConfigFR1					GapConfig											OPTIONAL,
	gapPurpose							ENUMERATED {perUE, perFR1}							OPTIONAL,
	...
}


-- TAG-CG-CONFIG-INFO-STOP
-- TAG-MEASUREMENT-TIMING-CONFIGURATION-START

MeasurementTimingConfiguration ::=				SEQUENCE {
	criticalExtensions				CHOICE {
		c1								CHOICE{
			measTimingConf					MeasurementTimingConfiguration-IEs,
			spare3 NULL, spare2 NULL, spare1 NULL
		},
		criticalExtensionsFuture		SEQUENCE {}
	}
}

MeasurementTimingConfiguration-IEs ::=	SEQUENCE {
	measTiming								MeasTimingList							OPTIONAL,
	nonCriticalExtension					SEQUENCE {}								OPTIONAL
}

MeasTimingList ::= SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF MeasTiming  

MeasTiming ::= SEQUENCE {
	carrierFreq								ARFCN-ValueNR							OPTIONAL,         
	ssb-MeasurementTimingConfiguration		ENUMERATED {ffsTypeAndValue}		OPTIONAL,
	...
}

-- TAG-MEASUREMENT-TIMING-CONFIGURATION-STOP
-- TAG-CANDIDATE-CELL-INFO-LIST-START

CandidateCellInfoList ::=	SEQUENCE (SIZE (1.. maxNrofSCells)) OF CandidateCellInfo

CandidateCellInfo ::=			SEQUENCE {
	cellIdentification				SEQUENCE {
		physCellId						PhysCellId,
		dl-CarrierFreq					ARFCN-ValueNR
	},
	measResultCell					MeasQuantityResults											OPTIONAL,
	candidateRS-IndexListSSB		CandidateRS-IndexInfoListSSB								OPTIONAL,
	candidateRS-IndexListCSI-RS		CandidateRS-IndexInfoListCSI-RS								OPTIONAL,
	...
}

CandidateRS-IndexInfoListSSB ::=	SEQUENCE (SIZE (1..maxNrofIndexesToReport)) OF CandidateRS-IndexInfoSSB

CandidateRS-IndexInfoSSB ::=	SEQUENCE {
	ssb-Index						SSB-Index,
	measResultSSB					MeasQuantityResults											OPTIONAL,
	...
}

CandidateRS-IndexInfoListCSI-RS ::=	SEQUENCE (SIZE (1..maxNrofIndexesToReport)) OF CandidateRS-IndexInfoCSI-RS

CandidateRS-IndexInfoCSI-RS ::=		SEQUENCE {
	csi-RS-Index							CSI-RS-Index,
	measResultCSI-RS						MeasQuantityResults									OPTIONAL,
	...
}

-- TAG-CANDIDATE-CELL-INFO-LIST-STOP
-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-START

maxMeasFreqsMN				INTEGER ::= 32	-- Maximum number of MN-configured measurement frequencies
maxCellPrep					INTEGER ::= 32	-- Maximum number of cells prepared for handover

-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-STOP
-- TAG_NR-INTER-NODE-DEFINITIONS-END-START

END

-- TAG_NR-INTER-NODE-DEFINITIONS-END-STOP
-- TAG-NAME-START

-- TAG-NAME-STOP
