-- 3GPP TS 36.331 V17.5.0 (2023-06)

EUTRA-Sidelink-Preconf DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
	AdditionalSpectrumEmission,
	AdditionalSpectrumEmission-v10l0,
	ARFCN-ValueEUTRA-r9,
	FilterCoefficient,
	maxCBR-Level-r14,
	maxCBR-Level-1-r14,
	maxFreq,
	maxFreqV2X-r14,
	maxSL-TxPool-r12,
	maxSL-CommRxPoolPreconf-v1310,
	maxSL-CommTxPoolPreconf-v1310,
	maxSL-DiscRxPoolPreconf-r13,
	maxSL-DiscTxPoolPreconf-r13,
	maxSL-V2X-CBRConfig2-r14,
	maxSL-V2X-CBRConfig2-1-r14,
	maxSL-V2X-RxPoolPreconf-r14,
	maxSL-V2X-TxConfig2-r14,
	maxSL-V2X-TxConfig2-1-r14,
	maxSL-V2X-TxPoolPreconf-r14,
	MCS-PSSCH-Range-r15,
	P-Max,
	ReselectionInfoRelay-r13,
	SL-AnchorCarrierFreqList-V2X-r14,
	SL-CBR-Levels-Config-r14,
	SL-CBR-PSSCH-TxConfig-r14,
	SL-CommTxPoolSensingConfig-r14,
	SL-CP-Len-r12,
	SL-HoppingConfigComm-r12,
	SL-NR-AnchorCarrierFreqList-r16,
	SL-OffsetIndicator-r12,
	SL-OffsetIndicatorSync-r12,
	SL-OffsetIndicatorSync-v1430,
	SL-PeriodComm-r12,
	RSRP-RangeSL3-r12,
	SL-MinT2ValueList-r15,
	SL-PriorityList-r13,
	SL-TF-ResourceConfig-r12,
	SL-TRPT-Subset-r12,
	SL-TxParameters-r12,
	SL-ZoneConfig-r14,
	P0-SL-r12,
	TDD-ConfigSL-r12,
	SubframeBitmapSL-r14,
	SL-P2X-ResourceSelectionConfig-r14,
	SL-RestrictResourceReservationPeriodList-r14,
	SL-SyncAllowed-r14,
	SL-OffsetIndicatorSync-r14,
	SL-Priority-r13,
	SL-V2X-FreqSelectionConfigList-r15,
	SL-V2X-PacketDuplicationConfig-r15,
	SL-V2X-SyncFreqList-r15
FROM EUTRA-RRC-Definitions;


SL-Preconfiguration-r12 ::=		SEQUENCE {
	preconfigGeneral-r12				SL-PreconfigGeneral-r12,
	preconfigSync-r12					SL-PreconfigSync-r12,
	preconfigComm-r12					SL-PreconfigCommPoolList4-r12,
	...,
	[[	preconfigComm-v1310				SEQUENCE {
			commRxPoolList-r13			SL-PreconfigCommRxPoolList-r13,
			commTxPoolList-r13			SL-PreconfigCommTxPoolList-r13		OPTIONAL
		}																		OPTIONAL,
		preconfigDisc-r13				SEQUENCE {
			discRxPoolList-r13				SL-PreconfigDiscRxPoolList-r13,
			discTxPoolList-r13				SL-PreconfigDiscTxPoolList-r13		OPTIONAL
		}																		OPTIONAL,
		preconfigRelay-r13				SL-PreconfigRelay-r13				OPTIONAL
	]]

}

SL-PreconfigGeneral-r12 ::=		SEQUENCE {
	-- PDCP configuration
	rohc-Profiles-r12					SEQUENCE {
		profile0x0001-r12						BOOLEAN,
		profile0x0002-r12						BOOLEAN,
		profile0x0004-r12						BOOLEAN,
		profile0x0006-r12						BOOLEAN,
		profile0x0101-r12						BOOLEAN,
		profile0x0102-r12						BOOLEAN,
		profile0x0104-r12						BOOLEAN
	},
	-- Physical configuration
	carrierFreq-r12						ARFCN-ValueEUTRA-r9,
	maxTxPower-r12						P-Max,
	additionalSpectrumEmission-r12		AdditionalSpectrumEmission,
	sl-bandwidth-r12					ENUMERATED {n6, n15, n25, n50, n75, n100},
	tdd-ConfigSL-r12					TDD-ConfigSL-r12,
	reserved-r12						BIT STRING (SIZE (19)),
	...,
	[[	additionalSpectrumEmission-v1440		AdditionalSpectrumEmission-v10l0		OPTIONAL
	]]
}

SL-PreconfigSync-r12 ::=	SEQUENCE {
	syncCP-Len-r12						SL-CP-Len-r12,
	syncOffsetIndicator1-r12			SL-OffsetIndicatorSync-r12,
	syncOffsetIndicator2-r12			SL-OffsetIndicatorSync-r12,
	syncTxParameters-r12				P0-SL-r12,
	syncTxThreshOoC-r12					RSRP-RangeSL3-r12,
	filterCoefficient-r12				FilterCoefficient,
	syncRefMinHyst-r12					ENUMERATED {dB0, dB3, dB6, dB9, dB12},
	syncRefDiffHyst-r12					ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf},
	...,
	[[	syncTxPeriodic-r13					ENUMERATED {true}			OPTIONAL
	]]
}

SL-PreconfigCommPoolList4-r12 ::=	SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-PreconfigCommPool-r12

SL-PreconfigCommRxPoolList-r13 ::=	SEQUENCE (SIZE (1..maxSL-CommRxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12

SL-PreconfigCommTxPoolList-r13 ::=	SEQUENCE (SIZE (1..maxSL-CommTxPoolPreconf-v1310)) OF SL-PreconfigCommPool-r12

SL-PreconfigCommPool-r12 ::=		SEQUENCE {
-- This IE is same as SL-CommResourcePool with rxParametersNCell absent
	sc-CP-Len-r12						SL-CP-Len-r12,
	sc-Period-r12						SL-PeriodComm-r12,
	sc-TF-ResourceConfig-r12			SL-TF-ResourceConfig-r12,
	sc-TxParameters-r12					P0-SL-r12,
	data-CP-Len-r12						SL-CP-Len-r12,
	data-TF-ResourceConfig-r12			SL-TF-ResourceConfig-r12,
	dataHoppingConfig-r12				SL-HoppingConfigComm-r12,
	dataTxParameters-r12				P0-SL-r12,
	trpt-Subset-r12						SL-TRPT-Subset-r12,
	...,
	[[	priorityList-r13				SL-PriorityList-r13			OPTIONAL	-- For Tx
	]]
}

SL-PreconfigDiscRxPoolList-r13 ::=	SEQUENCE (SIZE (1..maxSL-DiscRxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13

SL-PreconfigDiscTxPoolList-r13 ::=	SEQUENCE (SIZE (1..maxSL-DiscTxPoolPreconf-r13)) OF SL-PreconfigDiscPool-r13

SL-PreconfigDiscPool-r13 ::=		SEQUENCE {
-- This IE is same as SL-DiscResourcePool with rxParameters absent
	cp-Len-r13						SL-CP-Len-r12,
	discPeriod-r13				ENUMERATED {rf4, rf6, rf7, rf8, rf12, rf14, rf16, rf24, rf28,
										rf32, rf64, rf128, rf256, rf512, rf1024, spare},
	numRetx-r13					INTEGER (0..3),
	numRepetition-r13				INTEGER (1..50),
	tf-ResourceConfig-r13			SL-TF-ResourceConfig-r12,
	txParameters-r13				SEQUENCE {
		txParametersGeneral-r13		P0-SL-r12,
		txProbability-r13			ENUMERATED {p25, p50, p75, p100}
	}																OPTIONAL,
	...
}

SL-PreconfigRelay-r13 ::=	SEQUENCE {
	reselectionInfoOoC-r13			ReselectionInfoRelay-r13
}


SL-V2X-Preconfiguration-r14 ::=	SEQUENCE {
	v2x-PreconfigFreqList-r14		SL-V2X-PreconfigFreqList-r14,
	anchorCarrierFreqList-r14		SL-AnchorCarrierFreqList-V2X-r14				OPTIONAL,
	cbr-PreconfigList-r14			SL-CBR-PreconfigTxConfigList-r14				OPTIONAL,
	...,
	[[	v2x-PacketDuplicationConfig-r15	SL-V2X-PacketDuplicationConfig-r15			OPTIONAL,
		syncFreqList-r15			SL-V2X-SyncFreqList-r15						OPTIONAL,
		slss-TxMultiFreq-r15		ENUMERATED {true}							OPTIONAL,
		v2x-TxProfileList-r15		SL-V2X-TxProfileList-r15					OPTIONAL
	]],
	[[	anchorCarrierFreqListNR-r16		SL-NR-AnchorCarrierFreqList-r16			OPTIONAL
	]]
}

SL-CBR-PreconfigTxConfigList-r14 ::=	SEQUENCE {
	cbr-RangeCommonConfigList-r14	SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig2-r14)) OF SL-CBR-Levels-Config-r14,
	sl-CBR-PSSCH-TxConfigList-r14	SEQUENCE (SIZE (1..maxSL-V2X-TxConfig2-r14)) OF SL-CBR-PSSCH-TxConfig-r14
}

SL-V2X-PreconfigFreqList-r14 ::=	SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-PreconfigFreqInfo-r14

SL-V2X-PreconfigFreqInfo-r14 ::=		SEQUENCE {
	v2x-CommPreconfigGeneral-r14		SL-PreconfigGeneral-r12,
	v2x-CommPreconfigSync-r14			SL-PreconfigV2X-Sync-r14				OPTIONAL,
	v2x-CommRxPoolList-r14				SL-PreconfigV2X-RxPoolList-r14,
	v2x-CommTxPoolList-r14				SL-PreconfigV2X-TxPoolList-r14,
	p2x-CommTxPoolList-r14				SL-PreconfigV2X-TxPoolList-r14,
	v2x-ResourceSelectionConfig-r14			SL-CommTxPoolSensingConfig-r14			OPTIONAL,
	zoneConfig-r14						SL-ZoneConfig-r14						OPTIONAL,
	syncPriority-r14					ENUMERATED {gnss, enb},
	thresSL-TxPrioritization-r14		SL-Priority-r13						OPTIONAL,
	offsetDFN-r14						INTEGER (0..1000)					OPTIONAL,
	...,
	[[	v2x-FreqSelectionConfigList-r15	SL-V2X-FreqSelectionConfigList-r15	OPTIONAL
	]]
}

SL-PreconfigV2X-RxPoolList-r14 ::=	SEQUENCE (SIZE (1..maxSL-V2X-RxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14

SL-PreconfigV2X-TxPoolList-r14 ::=	SEQUENCE (SIZE (1..maxSL-V2X-TxPoolPreconf-r14)) OF SL-V2X-PreconfigCommPool-r14

SL-V2X-PreconfigCommPool-r14 ::=		SEQUENCE {
-- This IE is same as SL-CommResourcePoolV2X with rxParametersNCell absent
	sl-OffsetIndicator-r14				SL-OffsetIndicator-r12		OPTIONAL,
	sl-Subframe-r14						SubframeBitmapSL-r14,
	adjacencyPSCCH-PSSCH-r14			BOOLEAN,
	sizeSubchannel-r14					ENUMERATED {
										n4, n5, n6, n8, n9, n10, n12, n15, n16, n18, n20, n25, n30,
										n48, n50, n72, n75, n96, n100, spare13, spare12, spare11,
										spare10, spare9, spare8, spare7, spare6, spare5, spare4,
										spare3, spare2, spare1},
	numSubchannel-r14					ENUMERATED {n1, n3, n5, n8, n10, n15, n20, spare1},
	startRB-Subchannel-r14				INTEGER (0..99),
	startRB-PSCCH-Pool-r14				INTEGER (0..99)				OPTIONAL,
	dataTxParameters-r14				P0-SL-r12,
	zoneID-r14							INTEGER (0..7)				OPTIONAL,
	threshS-RSSI-CBR-r14					INTEGER (0..45)				OPTIONAL,
	cbr-pssch-TxConfigList-r14			SL-CBR-PPPP-TxPreconfigList-r14	OPTIONAL,
	resourceSelectionConfigP2X-r14		SL-P2X-ResourceSelectionConfig-r14	OPTIONAL,
	syncAllowed-r14						SL-SyncAllowed-r14				OPTIONAL,
	restrictResourceReservationPeriod-r14	SL-RestrictResourceReservationPeriodList-r14	OPTIONAL,
	...,
	[[	sl-MinT2ValueList-r15			SL-MinT2ValueList-r15			OPTIONAL,
		cbr-pssch-TxConfigList-v1530	SL-CBR-PPPP-TxPreconfigList-v1530	OPTIONAL
	]]
}

SL-PreconfigV2X-Sync-r14 ::=	SEQUENCE {
	syncOffsetIndicators-r14			SL-V2X-SyncOffsetIndicators-r14,
	syncTxParameters-r14				P0-SL-r12,
	syncTxThreshOoC-r14					RSRP-RangeSL3-r12,
	filterCoefficient-r14				FilterCoefficient,
	syncRefMinHyst-r14					ENUMERATED {dB0, dB3, dB6, dB9, dB12},
	syncRefDiffHyst-r14					ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf},
	...,
	[[	slss-TxDisabled-r15				ENUMERATED {true}				OPTIONAL
	]]
}

SL-V2X-SyncOffsetIndicators-r14 ::=	SEQUENCE {
	syncOffsetIndicator1-r14			SL-OffsetIndicatorSync-r14,
	syncOffsetIndicator2-r14			SL-OffsetIndicatorSync-r14,
	syncOffsetIndicator3-r14			SL-OffsetIndicatorSync-r14			OPTIONAL
}

SL-CBR-PPPP-TxPreconfigList-r14 ::=	SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-r14

SL-PPPP-TxPreconfigIndex-r14 ::=	SEQUENCE {
	priorityThreshold-r14			SL-Priority-r13,
	defaultTxConfigIndex-r14		INTEGER(0..maxCBR-Level-1-r14),
	cbr-ConfigIndex-r14				INTEGER(0..maxSL-V2X-CBRConfig2-1-r14),
	tx-ConfigIndexList-r14			SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-PreconfigIndex-r14
}

Tx-PreconfigIndex-r14 ::=			INTEGER(0..maxSL-V2X-TxConfig2-1-r14)

SL-CBR-PPPP-TxPreconfigList-v1530 ::=	SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-v1530

SL-PPPP-TxPreconfigIndex-v1530 ::=		SEQUENCE {
	mcs-PSSCH-Range-r15				SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF MCS-PSSCH-Range-r15						OPTIONAL
}

SL-V2X-TxProfileList-r15 ::=	SEQUENCE (SIZE (1..256)) OF SL-V2X-TxProfile-r15

SL-V2X-TxProfile-r15 ::=		ENUMERATED {
									rel14, rel15, spare6, spare5, spare4,
									spare3, spare2, spare1, ...}

END