diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index e40f72d91e..599c561067 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -315,8 +315,8 @@ elseif (${RRC_ASN1_VERSION} STREQUAL "Rel14")
make_version(RRC_VERSION 14 7 0)
set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1)
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel15")
- make_version(RRC_VERSION 15 2 2)
- set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-36331-f22.asn)
+ make_version(RRC_VERSION 15 3 0)
+ set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.3.0.asn1)
endif (${RRC_ASN1_VERSION} STREQUAL "Rel8")
add_definitions(-DRRC_VERSION=${RRC_VERSION})
set (RRC_FULL_DIR ${asn1_generated_dir}/RRC_${RRC_ASN1_VERSION})
@@ -355,8 +355,8 @@ add_custom_command (
add_list2_option(NR_RRC_ASN1_VERSION "NR_Rel15" "ASN.1 version of NR_RRC interface")
if (${NR_RRC_ASN1_VERSION} STREQUAL "NR_Rel15")
- make_version(NR_RRC_VERSION 15 2 1)
- set (NR_RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.2.1.asn1)
+ make_version(NR_RRC_VERSION 15 3 0)
+ set (NR_RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.3.0.asn1)
endif (${NR_RRC_ASN1_VERSION} STREQUAL "NR_Rel15")
add_definitions(-DNR_RRC_VERSION=${NR_RRC_VERSION})
set (NR_RRC_FULL_DIR ${asn1_generated_dir}/${NR_RRC_ASN1_VERSION})
@@ -394,7 +394,7 @@ add_custom_command (OUTPUT ${NR_RRC_FULL_DIR}/NR_asn_constant.h
# Same limitation as described in RRC: unknown generated file list
# so we generate it at cmake time
##############
-add_list1_option(S1AP_RELEASE R14 "S1AP ASN.1 grammar version" R8 R9 R10 R14 R15)
+add_list1_option(S1AP_RELEASE R15 "S1AP ASN.1 grammar version" R8 R9 R10 R14 R15)
set(S1AP_DIR ${OPENAIR3_DIR}/S1AP)
if (${S1AP_RELEASE} STREQUAL "R8")
@@ -416,11 +416,11 @@ elseif (${S1AP_RELEASE} STREQUAL "R13")
make_version(S1AP_VERSION 13 6 0)
set(S1AP_ASN_FILES "s1ap-13.6.0.asn1")
elseif (${S1AP_RELEASE} STREQUAL "R14")
- make_version(S1AP_VERSION 14 5 0)
- set(S1AP_ASN_FILES "s1ap-14.5.0.asn1")
+ make_version(S1AP_VERSION 14 7 0)
+ set(S1AP_ASN_FILES "s1ap-14.7.0.asn1")
else (${S1AP_RELEASE} STREQUAL "R15")
- make_version(S1AP_VERSION 15 1 0)
- set(S1AP_ASN_FILES "s1ap-15.1.0.asn1")
+ make_version(S1AP_VERSION 15 3 0)
+ set(S1AP_ASN_FILES "s1ap-15.3.0.asn1")
endif(${S1AP_RELEASE} STREQUAL "R8")
add_definitions(-DS1AP_VERSION=${S1AP_VERSION})
set(S1AP_ASN_DIR ${S1AP_DIR}/MESSAGES/ASN1/${S1AP_RELEASE})
@@ -472,7 +472,7 @@ add_library(S1AP_ENB
# Same limitation as described in RRC/S1AP: unknown generated file list
# so we generate it at cmake time
##############
-add_list1_option(X2AP_RELEASE R14 "X2AP ASN.1 grammar version" R8 R11 R12 R14 R15)
+add_list1_option(X2AP_RELEASE R15 "X2AP ASN.1 grammar version" R8 R11 R12 R14 R15)
set(X2AP_DIR ${OPENAIR2_DIR}/X2AP)
if (${X2AP_RELEASE} STREQUAL "R8")
@@ -488,8 +488,8 @@ elseif (${X2AP_RELEASE} STREQUAL "R14")
make_version(X2AP_VERSION 14 6 0)
set(X2AP_ASN_FILES x2ap-14.6.0.asn1)
elseif (${X2AP_RELEASE} STREQUAL "R15")
- make_version(X2AP_VERSION 15 1 0)
- set(X2AP_ASN_FILES x2ap-15.1.0.asn1)
+ make_version(X2AP_VERSION 15 3 0)
+ set(X2AP_ASN_FILES x2ap-15.3.0.asn1)
endif(${X2AP_RELEASE} STREQUAL "R8")
add_definitions(-DX2AP_VERSION=${X2AP_VERSION})
set(X2AP_ASN_DIR ${X2AP_DIR}/MESSAGES/ASN1/${X2AP_RELEASE})
@@ -2611,16 +2611,68 @@ if (${T_TRACER})
foreach(i
#all "add_executable" definitions (except tests, rb_tool, updatefw)
lte-softmodem lte-softmodem-nos1 lte-uesoftmodem lte-uesoftmodem-nos1
+ nr-softmodem nr-softmodem-nos1 nr-uesoftmodem nr-uesoftmodem-nos1
dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim
pdcchsim pucchsim prachsim syncsim ulsim
+ ldpctest polartest
#all "add_library" definitions
- ITTI RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB
- oai_exmimodevif oai_usrpdevif oai_bladerfdevif oai_lmssdrdevif
- oai_eth_transpro
- FLPT_MSG ASYNC_IF FLEXRAN_AGENT HASHTABLE MSC UTIL OMG_SUMO SECU_OSA
- SECU_CN SCHED_LIB PHY L2 default_sched remote_sched RAL CN_UTILS
- GTPV1U SCTP_CLIENT UDP LIB_NAS_UE LFDS LFDS7 SIMU OPENAIR0_LIB PHY_MEX
- coding)
+ITTI
+RRC_LIB
+NR_RRC_LIB
+S1AP_LIB
+S1AP_ENB
+X2AP_LIB
+params_libconfig
+oai_exmimodevif
+oai_usrpdevif
+oai_bladerfdevif
+oai_lmssdrdevif
+oai_eth_transpro
+oai_mobipass
+tcp_bridge
+tcp_bridge_oai
+coding
+FLPT_MSG
+ASYNC_IF
+FLEXRAN_AGENT
+HASHTABLE
+MSC
+UTIL
+SECU_OSA
+SECU_CN
+SCHED_LIB
+SCHED_NR_LIB
+SCHED_RU_LIB
+SCHED_UE_LIB
+SCHED_NR_UE_LIB
+NFAPI_COMMON_LIB
+NFAPI_LIB
+NFAPI_PNF_LIB
+NFAPI_VNF_LIB
+NFAPI_USER_LIB
+PHY_COMMON
+PHY
+PHY_UE
+PHY_NR
+PHY_NR_UE
+PHY_RU
+PHY_MEX
+L2
+L2_NR
+L2_UE
+NR_L2_UE
+NR_LTE_UE_REUSE_LIB
+CN_UTILS
+GTPV1U
+SCTP_CLIENT
+UDP
+LIB_NAS_UE
+NB_IoT
+LFDS
+LFDS7
+SIMU
+SIMU_ETH
+OPENAIR0_LIB)
if (TARGET ${i})
add_dependencies(${i} generate_T)
endif()
diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml
index bfac98919e..72bc4df93a 100644
--- a/cmake_targets/autotests/test_case_list.xml
+++ b/cmake_targets/autotests/test_case_list.xml
@@ -1026,6 +1026,22 @@
segmentation fault|assertion|exiting|fatal
3
+
+
+ execution
+ polartest test cases.
+
+ $OPENAIR_DIR/cmake_targets/build_oai
+ --phy_simulators -c
+ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash
+
+ $OPENAIR_DIR/targets/bin/polartest.Rel15
+ -q -s-10 -f0
+ polartest.test1
+ BLER= 0.000000
+ segmentation fault|assertion|exiting|fatal
+ 3
+
execution
diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper
index 7727ce4fa3..8c5d33975c 100755
--- a/cmake_targets/tools/build_helper
+++ b/cmake_targets/tools/build_helper
@@ -683,7 +683,7 @@ install_asn1c_from_source(){
# better to use a given commit than a branch in case the branch
# is updated and requires modifications in the source of OAI
#git checkout velichkov_s1ap_plus_option_group
- git checkout 73d6b23dcec9ab36605b4af884143824392134c1
+ git checkout d3aed06bb2bec7df1b5c6d0333f8c7dfc5993372
autoreconf -iv
./configure
make -j`nproc`
diff --git a/openair1/PHY/CODING/TESTBENCH/polartest.c b/openair1/PHY/CODING/TESTBENCH/polartest.c
index 20db3624cf..3c725eb5f2 100644
--- a/openair1/PHY/CODING/TESTBENCH/polartest.c
+++ b/openair1/PHY/CODING/TESTBENCH/polartest.c
@@ -18,13 +18,17 @@ int main(int argc, char *argv[]) {
//Initiate timing. (Results depend on CPU Frequency. Therefore, might change due to performance variances during simulation.)
time_stats_t timeEncoder,timeDecoder;
+ time_stats_t polar_decoder_init,polar_rate_matching,decoding,bit_extraction,deinterleaving;
+ time_stats_t path_metric,sorting,update_LLR;
opp_enabled=1;
+ int decoder_int16=0;
+ int generate_optim_code=0;
cpu_freq_GHz = get_cpu_freq_GHz();
reset_meas(&timeEncoder);
reset_meas(&timeDecoder);
-
randominit(0);
crcTableInit();
+
//Default simulation values (Aim for iterations = 1000000.)
int itr, iterations = 1000, arguments, polarMessageType = 0; //0=PBCH, 1=DCI, -1=UCI
double SNRstart = -20.0, SNRstop = 0.0, SNRinc= 0.5; //dB
@@ -36,7 +40,7 @@ int main(int argc, char *argv[]) {
double timeEncoderCumulative = 0, timeDecoderCumulative = 0;
uint8_t aggregation_level = 8, decoderListSize = 8, pathMetricAppr = 0;
- while ((arguments = getopt (argc, argv, "s:d:f:m:i:l:a:h")) != -1)
+ while ((arguments = getopt (argc, argv, "s:d:f:m:i:l:a:hqg")) != -1)
switch (arguments)
{
case 's':
@@ -67,8 +71,20 @@ int main(int argc, char *argv[]) {
pathMetricAppr = (uint8_t) atoi(optarg);
break;
+ case 'q':
+ decoder_int16=1;
+ break;
+
+ case 'g':
+ generate_optim_code=1;
+ iterations=1;
+ SNRstart=-6.0;
+ SNRstop =-6.0;
+ decoder_int16=1;
+ break;
+
case 'h':
- printf("./polartest -s SNRstart -d SNRinc -f SNRstop -m [0=PBCH|1=DCI|2=UCI] -i iterations -l decoderListSize -a pathMetricAppr\n");
+ printf("./polartest -s SNRstart -d SNRinc -f SNRstop -m [0=PBCH|1=DCI|2=UCI] -i iterations -l decoderListSize -a pathMetricAppr -q (use fixed point decoder)\n");
exit(-1);
default:
@@ -93,11 +109,14 @@ int main(int argc, char *argv[]) {
//Logging
time_t currentTime;
time (¤tTime);
- char *folderName, fileName[512], currentTimeInfo[25];
+ char fileName[512], currentTimeInfo[25];
+ char folderName[] = ".";
+ /*
folderName=getenv("HOME");
strcat(folderName,"/Desktop/polartestResults");
-
+ */
+
#ifdef DEBUG_POLAR_TIMING
sprintf(fileName,"%s/TIMING_ListSize_%d_pmAppr_%d_Payload_%d_Itr_%d",folderName,decoderListSize,pathMetricAppr,testLength,iterations);
#else
@@ -107,15 +126,17 @@ int main(int argc, char *argv[]) {
strcat(fileName,currentTimeInfo);
//Create "~/Desktop/polartestResults" folder if it doesn't already exist.
+ /*
struct stat folder = {0};
if (stat(folderName, &folder) == -1) mkdir(folderName, S_IRWXU | S_IRWXG | S_IRWXO);
-
+ */
+
FILE* logFile;
- logFile = fopen(fileName, "w");
- if (logFile==NULL) {
- fprintf(stderr,"[polartest.c] Problem creating file %s with fopen\n",fileName);
- exit(-1);
- }
+ logFile = fopen(fileName, "w");
+ if (logFile==NULL) {
+ fprintf(stderr,"[polartest.c] Problem creating file %s with fopen\n",fileName);
+ exit(-1);
+ }
#ifdef DEBUG_POLAR_TIMING
fprintf(logFile,",timeEncoderCRCByte[us],timeEncoderCRCBit[us],timeEncoderInterleaver[us],timeEncoderBitInsertion[us],timeEncoder1[us],timeEncoder2[us],timeEncoderRateMatching[us],timeEncoderByte2Bit[us]\n");
@@ -136,7 +157,9 @@ int main(int argc, char *argv[]) {
uint8_t *encoderOutputByte = malloc(sizeof(uint8_t) * coderLength);
double *modulatedInput = malloc (sizeof(double) * coderLength); //channel input
double *channelOutput = malloc (sizeof(double) * coderLength); //add noise
-
+ int16_t *channelOutput_int16;
+ if (decoder_int16 == 1) channelOutput_int16 = (int16_t*)malloc (sizeof(int16_t) * coderLength);
+
t_nrPolar_paramsPtr nrPolar_params = NULL, currentPtr = NULL;
nr_polar_init(&nrPolar_params, polarMessageType, testLength, aggregation_level);
currentPtr = nr_polar_params(nrPolar_params, polarMessageType, testLength, aggregation_level);
@@ -285,6 +308,7 @@ int main(int argc, char *argv[]) {
for (int i=0; ipayloadBits; i++) aPrioriArray[i] = NAN;
for (SNR = SNRstart; SNR <= SNRstop; SNR += SNRinc) {
+ printf("SNR %f\n",SNR);
SNR_lin = pow(10, SNR/10);
for (itr = 1; itr <= iterations; itr++) {
@@ -318,6 +342,15 @@ int main(int argc, char *argv[]) {
modulatedInput[i]=(-1)/sqrt(2);
channelOutput[i] = modulatedInput[i] + (gaussdouble(0.0,1.0) * (1/sqrt(2*SNR_lin)));
+
+
+ if (decoder_int16==1) {
+ if (channelOutput[i] > 15) channelOutput_int16[i] = 127;
+ else if (channelOutput[i] < -16) channelOutput_int16[i] = -128;
+ else channelOutput_int16[i] = (int16_t) (8*channelOutput[i]);
+ }
+
+
}
start_meas(&timeDecoder);
@@ -327,12 +360,19 @@ int main(int argc, char *argv[]) {
NR_POLAR_DECODER_LISTSIZE,
aPrioriArray,
NR_POLAR_DECODER_PATH_METRIC_APPROXIMATION);*/
- decoderState = polar_decoder_aPriori(channelOutput,
- estimatedOutput,
- currentPtr,
- NR_POLAR_DECODER_LISTSIZE,
- NR_POLAR_DECODER_PATH_METRIC_APPROXIMATION,
- aPrioriArray);
+ if (decoder_int16==0)
+ decoderState = polar_decoder_aPriori(channelOutput,
+ estimatedOutput,
+ currentPtr,
+ NR_POLAR_DECODER_LISTSIZE,
+ NR_POLAR_DECODER_PATH_METRIC_APPROXIMATION,
+ aPrioriArray);
+ else
+ decoderState = polar_decoder_int16(channelOutput_int16,
+ estimatedOutput,
+ currentPtr);
+
+
stop_meas(&timeDecoder);
/*printf("testInput: [0]->0x%08x\n", testInput[0]);
printf("estimatedOutput: [0]->0x%08x\n", estimatedOutput[0]);*/
@@ -377,6 +417,9 @@ int main(int argc, char *argv[]) {
((double)bitErrorCumulative / (iterations*testLength)),
(timeEncoderCumulative/iterations),timeDecoderCumulative/iterations);
+ if (blockErrorCumulative==0 && bitErrorCumulative==0)
+ break;
+
blockErrorCumulative = 0; bitErrorCumulative = 0;
timeEncoderCumulative = 0; timeDecoderCumulative = 0;
}
diff --git a/openair1/PHY/CODING/crc_byte.c b/openair1/PHY/CODING/crc_byte.c
index b16850b7fb..6176e1f92f 100644
--- a/openair1/PHY/CODING/crc_byte.c
+++ b/openair1/PHY/CODING/crc_byte.c
@@ -255,48 +255,6 @@ unsigned int crcPayload(unsigned char * inptr, int bitlen, uint32_t* crc256Table
return crc;
}
-void nr_crc_computation(uint8_t* input, uint8_t* output, uint16_t payloadBits, uint16_t crcParityBits, uint32_t* crc256Table)
-{
- //Create payload in bit
- uint8_t* input2 = (uint8_t*)malloc(payloadBits); //divided by 8 (in bits)
- uint8_t mask = 128; // 10000000
-
- for(uint8_t ind=0; ind<(payloadBits/8); ind++)
- {
- input2[ind]=0;
- for(uint8_t ind2=0; ind2<8; ind2++)
- {
- if(input[8*ind+ind2])
- {
- input2[ind] = input2[ind] | mask;
- }
- mask= mask >> 1;
- }
- mask=128;
- }
-
- //crcTable256Init(poly);
-
- unsigned int crcBits;
- crcBits = crcPayload(input2, payloadBits, crc256Table);
-
- //create crc in byte
- unsigned int mask2=0x80000000; //100...
-
- for(uint8_t ind=0; ind> 1;
- }
-
-}
-
-
-
#ifdef DEBUG_CRC
diff --git a/openair1/PHY/CODING/nrPolar_init.c b/openair1/PHY/CODING/nrPolar_init.c
new file mode 100644
index 0000000000..f606acbe95
--- /dev/null
+++ b/openair1/PHY/CODING/nrPolar_init.c
@@ -0,0 +1,204 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ * contact@openairinterface.org
+ */
+
+#include "nrPolar_tools/nr_polar_defs.h"
+#include "nrPolar_tools/nr_polar_pbch_defs.h"
+#include "nrPolar_tools/nr_polar_uci_defs.h"
+
+void nr_polar_init(t_nrPolar_params* polarParams, int messageType) {
+
+uint32_t poly6 = 0x84000000; // 1000100000... -> D^6+D^5+1
+uint32_t poly11 = 0x63200000; //11000100001000... -> D^11+D^10+D^9+D^5+1
+//uint32_t poly16 = 0x81080000; //100000010000100... - > D^16+D^12+D^5+1
+//uint32_t poly24a = 0x864cfb00; //100001100100110011111011 -> D^24+D^23+D^18+D^17+D^14+D^11+D^10+D^7+D^6+D^5+D^4+D^3+D+1
+//uint32_t poly24b = 0x80006300; //100000000000000001100011 -> D^24+D^23+D^6+D^5+D+1
+uint32_t poly24c = 0xB2B11700; //101100101011000100010111 -> D^24...
+
+ if (messageType == 0) { //DCI
+
+ } else if (messageType == 1) { //PBCH
+ polarParams->n_max = NR_POLAR_PBCH_N_MAX;
+ polarParams->i_il = NR_POLAR_PBCH_I_IL;
+ polarParams->i_seg = NR_POLAR_PBCH_I_SEG;
+ polarParams->n_pc = NR_POLAR_PBCH_N_PC;
+ polarParams->n_pc_wm = NR_POLAR_PBCH_N_PC_WM;
+ polarParams->i_bil = NR_POLAR_PBCH_I_BIL;
+ polarParams->payloadBits = NR_POLAR_PBCH_PAYLOAD_BITS;
+ polarParams->encoderLength = NR_POLAR_PBCH_E;
+ polarParams->crcParityBits = NR_POLAR_PBCH_CRC_PARITY_BITS;
+
+ polarParams->K = polarParams->payloadBits + polarParams->crcParityBits; // Number of bits to encode.
+ polarParams->N = nr_polar_output_length(polarParams->K, polarParams->encoderLength, polarParams->n_max);
+ polarParams->n = log2(polarParams->N);
+
+ polarParams->crc_generator_matrix=crc24c_generator_matrix(polarParams->payloadBits);
+ polarParams->crc_polynomial = poly24c;
+ polarParams->G_N = nr_polar_kronecker_power_matrices(polarParams->n);
+
+ //polar_encoder vectors:
+ polarParams->nr_polar_crc = malloc(sizeof(uint8_t) * polarParams->crcParityBits);
+ polarParams->nr_polar_cPrime = malloc(sizeof(uint8_t) * polarParams->K);
+ polarParams->nr_polar_d = malloc(sizeof(uint8_t) * polarParams->N);
+
+ //Polar Coding vectors
+ polarParams->nr_polar_u = malloc(sizeof(uint8_t) * polarParams->N); //Decoder: nr_polar_uHat
+ polarParams->nr_polar_cPrime = malloc(sizeof(uint8_t) * polarParams->K); //Decoder: nr_polar_cHat
+ polarParams->nr_polar_b = malloc(sizeof(uint8_t) * polarParams->K); //Decoder: nr_polar_bHat
+
+ polarParams->decoder_kernel = NULL;//polar_decoder_K56_N512_E864;
+
+
+
+ } else if (messageType == 2) { //UCI
+ polarParams->payloadBits = NR_POLAR_PUCCH_PAYLOAD_BITS; //A depends on what they carry...
+ polarParams->encoderLength = NR_POLAR_PUCCH_E ; //E depends on other standards 6.3.1.4
+
+ if (polarParams->payloadBits <= 11) //Ref. 38-212, Section 6.3.1.2.2
+ polarParams->crcParityBits = 0; //K=A
+ else //Ref. 38-212, Section 6.3.1.2.1
+ {
+ if (polarParams->payloadBits < 20)
+ polarParams->crcParityBits = NR_POLAR_PUCCH_CRC_PARITY_BITS_SHORT;
+ else
+ polarParams->crcParityBits = NR_POLAR_PUCCH_CRC_PARITY_BITS_LONG;
+
+ if (polarParams->payloadBits >= 360 && polarParams->encoderLength >= 1088)
+ polarParams->i_seg = NR_POLAR_PUCCH_I_SEG_LONG; // -> C=2
+ else
+ polarParams->i_seg = NR_POLAR_PUCCH_I_SEG_SHORT; // -> C=1
+ }
+
+ polarParams->K = polarParams->payloadBits + polarParams->crcParityBits; // Number of bits to encode.
+
+ //K_r = K/C ; C = I_seg+1
+ if((polarParams->K)/(polarParams->i_seg+1)>=18 && (polarParams->K)/(polarParams->i_seg+1)<=25) //Ref. 38-212, Section 6.3.1.3.1
+ {
+ polarParams->n_max = NR_POLAR_PUCCH_N_MAX;
+ polarParams->i_il =NR_POLAR_PUCCH_I_IL;
+ polarParams->n_pc = NR_POLAR_PUCCH_N_PC_SHORT;
+
+ if( (polarParams->encoderLength - polarParams->K)/(polarParams->i_seg + 1) + 3 > 192 )
+ polarParams->n_pc_wm = NR_POLAR_PUCCH_N_PC_WM_LONG;
+ else
+ polarParams->n_pc_wm = NR_POLAR_PUCCH_N_PC_WM_SHORT;
+ }
+
+ if( (polarParams->K)/(polarParams->i_seg + 1) > 30 ) //Ref. 38-212, Section 6.3.1.3.1
+ {
+ polarParams->n_max = NR_POLAR_PUCCH_N_MAX;
+ polarParams->i_il =NR_POLAR_PUCCH_I_IL;
+ polarParams->n_pc = NR_POLAR_PUCCH_N_PC_LONG;
+ polarParams->n_pc_wm = NR_POLAR_PUCCH_N_PC_WM_LONG;
+ }
+
+ polarParams->i_bil = NR_POLAR_PUCCH_I_BIL; //Ref. 38-212, Section 6.3.1.4.1
+
+ polarParams->N = nr_polar_output_length(polarParams->K, polarParams->encoderLength, polarParams->n_max);
+ polarParams->n = log2(polarParams->N);
+
+ if((polarParams->payloadBits) <= 19)
+ {
+ polarParams->crc_generator_matrix=crc6_generator_matrix(polarParams->payloadBits);
+ polarParams->crc_polynomial = poly6;
+
+ }
+ else
+ {
+ polarParams->crc_generator_matrix=crc11_generator_matrix(polarParams->payloadBits);
+ polarParams->crc_polynomial = poly11;
+ }
+ polarParams->G_N = nr_polar_kronecker_power_matrices(polarParams->n);
+
+ //polar_encoder vectors:
+ polarParams->nr_polar_crc = malloc(sizeof(uint8_t) * polarParams->crcParityBits);
+ polarParams->nr_polar_cPrime = malloc(sizeof(uint8_t) * polarParams->K);
+ polarParams->nr_polar_d = malloc(sizeof(uint8_t) * polarParams->N);
+
+ //Polar Coding vectors
+ polarParams->nr_polar_u = malloc(sizeof(uint8_t) * polarParams->N); //Decoder: nr_polar_uHat
+ polarParams->nr_polar_cPrime = malloc(sizeof(uint8_t) * polarParams->K); //Decoder: nr_polar_cHat
+ polarParams->nr_polar_b = malloc(sizeof(uint8_t) * polarParams->K); //Decoder: nr_polar_bHat
+
+ }
+
+ polarParams->crcCorrectionBits = NR_POLAR_CRC_ERROR_CORRECTION_BITS;
+
+ polarParams->crc256Table = malloc(sizeof(uint32_t)*256);
+ crcTable256Init(polarParams->crc_polynomial, polarParams->crc256Table);
+ polarParams->Q_0_Nminus1 = nr_polar_sequence_pattern(polarParams->n);
+
+ polarParams->interleaving_pattern = malloc(sizeof(uint16_t) * polarParams->K);
+ nr_polar_interleaving_pattern(polarParams->K, polarParams->i_il, polarParams->interleaving_pattern);
+
+ polarParams->rate_matching_pattern = malloc(sizeof(uint16_t) * polarParams->encoderLength);
+ uint16_t *J = malloc(sizeof(uint16_t) * polarParams->N);
+ nr_polar_rate_matching_pattern(polarParams->rate_matching_pattern, J,
+ nr_polar_subblock_interleaver_pattern, polarParams->K, polarParams->N, polarParams->encoderLength);
+
+
+ polarParams->information_bit_pattern = malloc(sizeof(uint8_t) * polarParams->N);
+ polarParams->Q_I_N = malloc(sizeof(int16_t) * (polarParams->K + polarParams->n_pc));
+ polarParams->Q_F_N = malloc(sizeof(int16_t) * (polarParams->N+1)); // Last element shows the final array index assigned a value.
+ polarParams->Q_PC_N = malloc(sizeof(int16_t) * (polarParams->n_pc));
+ for (int i=0; i<=polarParams->N; i++) polarParams->Q_F_N[i] = -1; // Empty array.
+ nr_polar_info_bit_pattern(polarParams->information_bit_pattern,
+ polarParams->Q_I_N, polarParams->Q_F_N, J, polarParams->Q_0_Nminus1,
+ polarParams->K, polarParams->N, polarParams->encoderLength, polarParams->n_pc);
+
+ polarParams->channel_interleaver_pattern = malloc(sizeof(uint16_t) * polarParams->encoderLength);
+ nr_polar_channel_interleaver_pattern(polarParams->channel_interleaver_pattern,
+ polarParams->i_bil, polarParams->encoderLength);
+
+ polarParams->extended_crc_generator_matrix = malloc(polarParams->K * sizeof(uint8_t *)); //G_P3
+ uint8_t tempECGM[polarParams->K][polarParams->crcParityBits];
+ for (int i = 0; i < polarParams->K; i++){
+ polarParams->extended_crc_generator_matrix[i] = malloc(polarParams->crcParityBits * sizeof(uint8_t));
+ }
+
+ for (int i=0; ipayloadBits; i++) {
+ for (int j=0; jcrcParityBits; j++) {
+ tempECGM[i][j]=polarParams->crc_generator_matrix[i][j];
+ }
+ }
+ for (int i=polarParams->payloadBits; iK; i++) {
+ for (int j=0; jcrcParityBits; j++) {
+ if( (i-polarParams->payloadBits) == j ){
+ tempECGM[i][j]=1;
+ } else {
+ tempECGM[i][j]=0;
+ }
+ }
+ }
+
+ for (int i=0; iK; i++) {
+ for (int j=0; jcrcParityBits; j++) {
+ polarParams->extended_crc_generator_matrix[i][j]=tempECGM[polarParams->interleaving_pattern[i]][j];
+ }
+ }
+
+
+ build_decoder_tree(polarParams);
+ printf("decoder tree nodes %d\n",polarParams->tree.num_nodes);
+
+
+
+ free(J);
+}
diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_crc_byte.c b/openair1/PHY/CODING/nrPolar_tools/nr_crc_byte.c
index 7b5a1c922a..ef329b3aaa 100644
--- a/openair1/PHY/CODING/nrPolar_tools/nr_crc_byte.c
+++ b/openair1/PHY/CODING/nrPolar_tools/nr_crc_byte.c
@@ -21,132 +21,7 @@
#include "PHY/CODING/nrPolar_tools/nr_polar_defs.h"
-/*
-// ----- New implementation ----
-uint32_t poly6 = 0x84000000; // 10000100000... -> D^6+D^5+1
-uint32_t poly11 = 0xc4200000; //11000100001000... -> D^11+D^10+D^9+D^5+1
-uint32_t poly16 = 0x10210000; //00100000010000100... - > D^16+D^12+D^5+1
-uint32_t poly24a = 0x864cfb00; //100001100100110011111011 -> D^24+D^23+D^18+D^17+D^14+D^11+D^10+D^7+D^6+D^5+D^4+D^3+D+1
-uint32_t poly24b = 0x80006300; //100000000000000001100011 -> D^24+D^23+D^6+D^5+D+1
-uint32_t poly24c = 0xB2B11700; //101100101011000100010111 -> D^24...
-//static unsigned int crc256Table[256];
-
-void nr_crc_computation(uint8_t* input, uint8_t* output, uint16_t payloadBits, uint16_t crcParityBits, uint32_t* crc256Table)
-{
- //Create payload in bit
- uint8_t* input2 = (uint8_t*)malloc(payloadBits); //divided by 8 (in bits)
- uint8_t mask = 128; // 10000000
-
- for(uint8_t ind=0; ind<(payloadBits/8); ind++)
- {
- input2[ind]=0;
- for(uint8_t ind2=0; ind2<8; ind2++)
- {
- if(input[8*ind+ind2])
- {
- input2[ind] = input2[ind] | mask;
- }
- mask= mask >> 1;
- }
- mask=128;
- }
-
- //crcTable256Init(poly);
-
- unsigned int crcBits;
- crcBits = crcPayload(input2, payloadBits, crc256Table);
-
- //create crc in byte
- unsigned int mask2=0x80000000; //100...
- output = (uint8_t*)malloc(sizeof(uint8_t)*crcParityBits);
-
- for(uint8_t ind=0; ind> 1;
- }
-
-}
-
-unsigned int crcbit (unsigned char* inputptr, int octetlen, unsigned int poly)
-{
- unsigned int i, crc = 0, c;
-
- while (octetlen-- > 0) {
- c = (*inputptr++) << 24;
-
- for (i = 8; i != 0; i--) {
- if ((1 << 31) & (c ^ crc))
- crc = (crc << 1) ^ poly;
- else
- crc <<= 1;
-
- c <<= 1;
- }
- }
-
- return crc;
-}
-
-void crcTableInit (void)
-{
- unsigned char c = 0;
-
- do {
- crc6Table[c] = crcbit(&c, 1, poly6);
- crc11Table[c]= crcbit(&c, 1, poly11);
- crc16Table[c] =crcbit(&c, 1, poly16);
- crc24aTable[c]=crcbit(&c, 1, poly24a);
- crc24bTable[c]=crcbit(&c, 1, poly24b);
- crc24cTable[c]=crcbit(&c, 1, poly24c);
-
- } while (++c);
-}
-
-void crcTable256Init (uint32_t poly, uint32_t* crc256Table)
-{
- unsigned char c = 0;
-// crc256Table = malloc(sizeof(uint32_t)*256);
-
- do {
- crc256Table[c] = crcbit(&c, 1, poly);
-
-// crc6Table[c] = crcbit(&c, 1, poly6);
- // crc11Table[c]= crcbit(&c, 1, poly11);
-// crc16Table[c] =crcbit(&c, 1, poly16);
-// crc24aTable[c]=crcbit(&c, 1, poly24a);
-// crc24bTable[c]=crcbit(&c, 1, poly24b);
-// crc24cTable[c]=crcbit(&c, 1, poly24c);
-
- } while (++c);
-
- //return crc256Table;
-}
-
-unsigned int crcPayload(unsigned char * inptr, int bitlen, uint32_t* crc256Table)
-{
- int octetlen, resbit;
- unsigned int crc = 0;
- octetlen = bitlen/8; // Change in bytes
- resbit = (bitlen % 8);
-
- while (octetlen-- > 0)
- {
- crc = (crc << 8) ^ crc256Table[(*inptr++) ^ (crc >> 24)];
- }
-
- if (resbit > 0)
- {
- crc = (crc << resbit) ^ crc256Table[((*inptr) >> (8 - resbit)) ^ (crc >> (32 - resbit))];
- }
- return crc;
-}
-*/
// ----- Old implementation ----
uint8_t **crc24c_generator_matrix(uint16_t payloadSizeBits){
diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c b/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
index 0a866381b1..f1b72ae897 100644
--- a/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
+++ b/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoder.c
@@ -15,7 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
+ * For more information about the OpenAirInterface (OAI) Software Alliance
* contact@openairinterface.org
*/
@@ -38,6 +38,7 @@
#include "PHY/CODING/nrPolar_tools/nr_polar_defs.h"
+
int8_t polar_decoder(
double *input,
uint8_t *out,
@@ -285,7 +286,6 @@ int8_t polar_decoder_aPriori(double *input,
uint8_t pathMetricAppr,
double *aPrioriPayload)
{
-
uint8_t ***bit = nr_alloc_uint8_t_3D_array(polarParams->N, (polarParams->n+1), 2*listSize);
uint8_t **bitUpdated = nr_alloc_uint8_t_2D_array(polarParams->N, (polarParams->n+1)); //0=False, 1=True
uint8_t **llrUpdated = nr_alloc_uint8_t_2D_array(polarParams->N, (polarParams->n+1)); //0=False, 1=True
@@ -355,6 +355,7 @@ int8_t polar_decoder_aPriori(double *input,
uint8_t listIndex[2*listSize], copyIndex;
for (uint16_t currentBit=0; currentBitN; currentBit++){
+
updateLLR(llr, llrUpdated, bit, bitUpdated, currentListSize, currentBit, 0, polarParams->N, (polarParams->n+1), pathMetricAppr);
if (polarParams->information_bit_pattern[currentBit]==0) { //Frozen bit.
updatePathMetric(pathMetric, llr, currentListSize, 0, currentBit, pathMetricAppr); //approximation=0 --> 11b, approximation=1 --> 12
@@ -528,6 +529,7 @@ int8_t polar_decoder_aPriori(double *input,
*/
nr_byte2bit_uint8_32_t(polarParams->nr_polar_A, polarParams->payloadBits, out);
return(0);
+
}
@@ -1034,3 +1036,42 @@ int8_t polar_decoder_dci(double *input,
nr_byte2bit_uint8_32_t(polarParams->nr_polar_A, polarParams->payloadBits, out);
return(0);
}
+
+
+int8_t polar_decoder_int16(int16_t *input,
+ uint8_t *out,
+ t_nrPolar_params *polarParams)
+{
+
+
+
+ int16_t d_tilde[polarParams->N];// = malloc(sizeof(double) * polarParams->N);
+ nr_polar_rate_matching_int16(input, d_tilde, polarParams->rate_matching_pattern, polarParams->K, polarParams->N, polarParams->encoderLength);
+ for (int i=0;iN;i++) {
+ if (d_tilde[i]<-128) d_tilde[i]=-128;
+ else if (d_tilde[i]>127) d_tilde[i]=128;
+ }
+ memcpy((void*)&polarParams->tree.root->alpha[0],(void*)&d_tilde[0],sizeof(int16_t)*polarParams->N);
+
+ /*
+ * SCL polar decoder.
+ */
+
+
+ generic_polar_decoder(polarParams,polarParams->tree.root);
+
+
+ //Extract the information bits (û to ĉ)
+ nr_polar_info_bit_extraction(polarParams->nr_polar_U, polarParams->nr_polar_CPrime, polarParams->information_bit_pattern, polarParams->N);
+
+ //Deinterleaving (ĉ to b)
+
+ nr_polar_deinterleaver(polarParams->nr_polar_CPrime, polarParams->nr_polar_B, polarParams->interleaving_pattern, polarParams->K);
+
+ //Remove the CRC (â)
+ for (int j = 0; j < polarParams->payloadBits; j++) polarParams->nr_polar_A[j]=polarParams->nr_polar_B[j];
+
+ nr_byte2bit_uint8_32_t(polarParams->nr_polar_A, polarParams->payloadBits, out);
+
+ return(0);
+}
diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c b/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c
index c1d7a62440..b79739e98d 100644
--- a/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c
+++ b/openair1/PHY/CODING/nrPolar_tools/nr_polar_decoding_tools.c
@@ -31,6 +31,10 @@
*/
#include "PHY/CODING/nrPolar_tools/nr_polar_defs.h"
+#include "PHY/sse_intrin.h"
+#include "PHY/impl_defs_top.h"
+
+//#define DEBUG_NEW_IMPL
void updateLLR(double ***llr,
uint8_t **llrU,
@@ -56,8 +60,9 @@ void updateLLR(double ***llr,
computeLLR(llr, row, col, i, offset, approximation);
}
}
-
llrU[row][col]=1;
+
+ // printf("LLR (a %f, b %f): llr[%d][%d] %f\n",32*a,32*b,col,row,32*llr[col][row]);
}
void updateBit(uint8_t ***bit,
@@ -68,6 +73,7 @@ void updateBit(uint8_t ***bit,
uint16_t xlen,
uint8_t ylen)
{
+
uint16_t offset = ( xlen/(pow(2,(ylen-col))) );
for (uint8_t i=0; ifirst_leaf_index=first_leaf_index;
+ node->level=level;
+ node->Nv = 1<leaf = 0;
+ node->left=(decoder_node_t *)NULL;
+ node->right=(decoder_node_t *)NULL;
+ node->all_frozen=0;
+ node->alpha = (int16_t*)malloc16(node->Nv*sizeof(int16_t));
+ node->beta = (int16_t*)malloc16(node->Nv*sizeof(int16_t));
+ memset((void*)node->beta,-1,node->Nv*sizeof(int16_t));
+
+
+ return(node);
+}
+
+decoder_node_t *add_nodes(int level,int first_leaf_index,t_nrPolar_params *pp) {
+
+ int all_frozen_below=1;
+ int Nv = 1<tree.num_nodes,Nv,level);
+ pp->tree.num_nodes++;
+#endif
+ if (level==0) {
+#ifdef DEBUG_NEW_IMPL
+ printf("leaf %d (%s)\n",first_leaf_index,pp->information_bit_pattern[first_leaf_index]==1 ? "information or crc" : "frozen");
+#endif
+ new_node->leaf=1;
+ new_node->all_frozen = pp->information_bit_pattern[first_leaf_index]==0 ? 1 : 0;
+ return new_node; // this is a leaf node
+ }
+
+ for (int i=0;iinformation_bit_pattern[i+first_leaf_index]>0) all_frozen_below=0;
+ }
+if (all_frozen_below==0) new_node->left=add_nodes(level-1,first_leaf_index,pp);
+ else {
+#ifdef DEBUG_NEW_IMPL
+ printf("aggregating frozen bits %d ... %d at level %d (%s)\n",first_leaf_index,first_leaf_index+Nv-1,level,((first_leaf_index/Nv)&1)==0?"left":"right");
+#endif
+ new_node->leaf=1;
+ new_node->all_frozen=1;
+ }
+ if (all_frozen_below==0) new_node->right=add_nodes(level-1,first_leaf_index+(Nv/2),pp);
+
+ return(new_node);
+}
+
+
+void build_decoder_tree(t_nrPolar_params *pp) {
+
+ pp->tree.num_nodes=0;
+ pp->tree.root = add_nodes(pp->n,0,pp);
+
+}
+
+#if defined(__arm__) || defined(__aarch64__)
+// translate 1-1 SIMD functions from SSE to NEON
+#define __m128i int16x8_t
+#define __m64 int8x8_t
+#define _mm_abs_epi16(a) vabsq_s16(a)
+#define _mm_min_epi16(a,b) vminq_s16(a,b)
+#define _mm_subs_epi16(a,b) vsubq_s16(a,b)
+#define _mm_abs_pi16(a) vabs_s16(a)
+#define _mm_min_pi16(a,b) vmin_s16(a,b)
+#define _mm_subs_pi16(a,b) vsub_s16(a,b)
+#endif
+
+void applyFtoleft(t_nrPolar_params *pp,decoder_node_t *node) {
+ int16_t *alpha_v=node->alpha;
+ int16_t *alpha_l=node->left->alpha;
+ int16_t *betal = node->left->beta;
+ int16_t a,b,absa,absb,maska,maskb,minabs;
+
+#ifdef DEBUG_NEW_IMPL
+ printf("applyFtoleft %d, Nv %d (level %d,node->left (leaf %d, AF %d))\n",node->first_leaf_index,node->Nv,node->level,node->left->leaf,node->left->all_frozen);
+
+
+ for (int i=0;iNv;i++) printf("i%d (frozen %d): alpha_v[i] = %d\n",i,1-pp->information_bit_pattern[node->first_leaf_index+i],alpha_v[i]);
+#endif
+
+
+
+ if (node->left->all_frozen == 0) {
+#if defined(__AVX2__)
+ int avx2mod = (node->Nv/2)&15;
+ if (avx2mod == 0) {
+ __m256i a256,b256,absa256,absb256,minabs256;
+ int avx2len = node->Nv/2/16;
+
+ // printf("avx2len %d\n",avx2len);
+ for (int i=0;iNv/2)&7;
+ int sse4len = node->Nv/2/8;
+#if defined(__arm__) || defined(__aarch64__)
+ int16x8_t signatimesb,comp1,comp2,negminabs128;
+ int16x8_t zero=vdupq_n_s16(0);
+#endif
+
+ if (sse4mod == 0) {
+ for (int i=0;iNv/2/8;
+
+ a128 =*((__m128i*)alpha_v);
+ b128 =((__m128i*)alpha_v)[1];
+ absa128 =_mm_abs_epi16(a128);
+ absb128 =_mm_abs_epi16(b128);
+ minabs128 =_mm_min_epi16(absa128,absb128);
+#if defined(__arm__) || defined(__aarch64__)
+ // unfortunately no direct equivalent to _mm_sign_epi16
+ signatimesb=vxorrq_s16(a128,b128);
+ comp1=vcltq_s16(signatimesb,zero);
+ comp2=vcgeq_s16(signatimesb,zero);
+ negminabs128=vnegq_s16(minabs128);
+ *((__m128i*)alpha_l) =vorrq_s16(vandq_s16(minabs128,comp0),vandq_s16(negminabs128,comp1));
+#else
+ *((__m128i*)alpha_l) =_mm_sign_epi16(minabs128,_mm_sign_epi16(a128,b128));
+#endif
+ }
+ }
+ else if (sse4mod == 4) {
+ __m64 a64,b64,absa64,absb64,minabs64;
+ a64 =*((__m64*)alpha_v);
+ b64 =((__m64*)alpha_v)[1];
+ absa64 =_mm_abs_pi16(a64);
+ absb64 =_mm_abs_pi16(b64);
+ minabs64 =_mm_min_pi16(absa64,absb64);
+#if defined(__arm__) || defined(__aarch64__)
+ AssertFatal(1==0,"Need to do this still for ARM\n");
+#else
+ *((__m64*)alpha_l) =_mm_sign_pi16(minabs64,_mm_sign_epi16(a64,b64));
+#endif
+ }
+
+ else
+#endif
+ { // equvalent scalar code to above, activated only on non x86/ARM architectures
+ for (int i=0;iNv/2;i++) {
+ a=alpha_v[i];
+ b=alpha_v[i+(node->Nv/2)];
+ maska=a>>15;
+ maskb=b>>15;
+ absa=(a+maska)^maska;
+ absb=(b+maskb)^maskb;
+ minabs = absaNv == 2) { // apply hard decision on left node
+ betal[0] = (alpha_l[0]>0) ? -1 : 1;
+#ifdef DEBUG_NEW_IMPL
+ printf("betal[0] %d (%p)\n",betal[0],&betal[0]);
+#endif
+ pp->nr_polar_U[node->first_leaf_index] = (1+betal[0])>>1;
+#ifdef DEBUG_NEW_IMPL
+ printf("Setting bit %d to %d (LLR %d)\n",node->first_leaf_index,(betal[0]+1)>>1,alpha_l[0]);
+#endif
+ }
+ }
+}
+
+void applyGtoright(t_nrPolar_params *pp,decoder_node_t *node) {
+
+ int16_t *alpha_v=node->alpha;
+ int16_t *alpha_r=node->right->alpha;
+ int16_t *betal = node->left->beta;
+ int16_t *betar = node->right->beta;
+
+#ifdef DEBUG_NEW_IMPL
+ printf("applyGtoright %d, Nv %d (level %d), (leaf %d, AF %d)\n",node->first_leaf_index,node->Nv,node->level,node->right->leaf,node->right->all_frozen);
+#endif
+
+ if (node->right->all_frozen == 0) {
+#if defined(__AVX2__)
+ int avx2mod = (node->Nv/2)&15;
+ if (avx2mod == 0) {
+ int avx2len = node->Nv/2/16;
+
+ for (int i=0;iNv/2)&7;
+
+ if (sse4mod == 0) {
+ int sse4len = node->Nv/2/8;
+
+ for (int i=0;iNv/2;i++) {
+ alpha_r[i] = alpha_v[i+(node->Nv/2)] - (betal[i]*alpha_v[i]);
+ }
+ }
+ if (node->Nv == 2) { // apply hard decision on right node
+ betar[0] = (alpha_r[0]>0) ? -1 : 1;
+ pp->nr_polar_U[node->first_leaf_index+1] = (1+betar[0])>>1;
+#ifdef DEBUG_NEW_IMPL
+ printf("Setting bit %d to %d (LLR %d)\n",node->first_leaf_index+1,(betar[0]+1)>>1,alpha_r[0]);
+#endif
+ }
+ }
+}
+
+
+int16_t all1[16] = {1,1,1,1,
+ 1,1,1,1,
+ 1,1,1,1,
+ 1,1,1,1};
+
+void computeBeta(t_nrPolar_params *pp,decoder_node_t *node) {
+
+ int16_t *betav = node->beta;
+ int16_t *betal = node->left->beta;
+ int16_t *betar = node->right->beta;
+#ifdef DEBUG_NEW_IMPL
+ printf("Computing beta @ level %d first_leaf_index %d (all_frozen %d)\n",node->level,node->first_leaf_index,node->left->all_frozen);
+#endif
+ if (node->left->all_frozen==0) { // if left node is not aggregation of frozen bits
+#if defined(__AVX2__)
+ int avx2mod = (node->Nv/2)&15;
+ register __m256i allones=*((__m256i*)all1);
+ if (avx2mod == 0) {
+ int avx2len = node->Nv/2/16;
+ for (int i=0;iNv/2)&15;
+
+ if (ssr4mod == 0) {
+ int ssr4len = node->Nv/2/8;
+ register __m128i allones=*((__m128i*)all1);
+ for (int i=0;iNv/2;i++) {
+ betav[i] = (betal[i] != betar[i]) ? 1 : -1;
+ }
+ }
+ }
+ else memcpy((void*)&betav[0],betar,(node->Nv/2)*sizeof(int16_t));
+ memcpy((void*)&betav[node->Nv/2],betar,(node->Nv/2)*sizeof(int16_t));
+
+}
+
+void generic_polar_decoder(t_nrPolar_params *pp,decoder_node_t *node) {
+
+
+ // Apply F to left
+ applyFtoleft(pp,node);
+ // if left is not a leaf recurse down to the left
+ if (node->left->leaf==0) generic_polar_decoder(pp,node->left);
+
+ applyGtoright(pp,node);
+ if (node->right->leaf==0) generic_polar_decoder(pp,node->right);
+
+ computeBeta(pp,node);
+
+}
diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h b/openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
index 5acd7c5b06..396f662289 100644
--- a/openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
+++ b/openair1/PHY/CODING/nrPolar_tools/nr_polar_defs.h
@@ -56,6 +56,27 @@
static const uint8_t nr_polar_subblock_interleaver_pattern[32] = { 0, 1, 2, 4, 3, 5, 6, 7, 8, 16, 9, 17, 10, 18, 11, 19, 12, 20, 13, 21, 14, 22, 15, 23, 24, 25, 26, 28, 27, 29, 30, 31 };
+
+#define Nmax 1024
+#define nmax 10
+
+typedef struct decoder_node_t_s {
+ struct decoder_node_t_s *left;
+ struct decoder_node_t_s *right;
+ int level;
+ int leaf;
+ int Nv;
+ int first_leaf_index;
+ int all_frozen;
+ int16_t *alpha;
+ int16_t *beta;
+} decoder_node_t;
+
+typedef struct decoder_tree_t_s {
+ decoder_node_t *root;
+ int num_nodes;
+} decoder_tree_t;
+
struct nrPolar_params {
//messageType: 0=PBCH, 1=DCI, -1=UCI
int idx; //idx = (messageType * messageLength * aggregation_prime);
@@ -89,7 +110,7 @@ struct nrPolar_params {
uint8_t **crc_generator_matrix; //G_P
uint8_t **G_N;
uint32_t* crc256Table;
-
+ uint8_t **extended_crc_generator_matrix;
//lowercase: bits, Uppercase: Bits stored in bytes
//polar_encoder vectors
uint8_t *nr_polar_crc;
@@ -103,6 +124,8 @@ struct nrPolar_params {
uint8_t *nr_polar_CPrime;
uint8_t *nr_polar_B;
uint8_t *nr_polar_U;
+
+decoder_tree_t tree;
} __attribute__ ((__packed__));
typedef struct nrPolar_params t_nrPolar_params;
typedef t_nrPolar_params *t_nrPolar_paramsPtr;
@@ -151,6 +174,8 @@ int8_t polar_decoder_dci(double *input,
uint8_t pathMetricAppr,
uint16_t n_RNTI);
+void generic_polar_decoder(t_nrPolar_params *,decoder_node_t *);
+
void nr_polar_init(t_nrPolar_paramsPtr *polarParams,
int8_t messageType,
uint16_t messageLength,
@@ -196,6 +221,8 @@ void nr_polar_rate_matching(double *input,
uint16_t N,
uint16_t E);
+void nr_polar_rate_matching_int16(int16_t *input, int16_t *output, uint16_t *rmp, uint16_t K, uint16_t N, uint16_t E);
+
void nr_polar_interleaving_pattern(uint16_t K,
uint8_t I_IL,
uint16_t *PI_k_);
diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_polar_matrix_and_array.c b/openair1/PHY/CODING/nrPolar_tools/nr_polar_matrix_and_array.c
index e6676238a3..81c4125faf 100644
--- a/openair1/PHY/CODING/nrPolar_tools/nr_polar_matrix_and_array.c
+++ b/openair1/PHY/CODING/nrPolar_tools/nr_polar_matrix_and_array.c
@@ -111,6 +111,32 @@ double ***nr_alloc_double_3D_array(uint16_t xlen, uint16_t ylen, uint16_t zlen)
return output;
}
+double **nr_alloc_double_2D_array(uint16_t xlen, uint16_t ylen) {
+ double **output;
+ int i, j;
+
+ if ((output = malloc(xlen * sizeof(*output))) == NULL) {
+ perror("[nr_alloc_double_3D_array] Problem at 1D allocation");
+ return NULL;
+ }
+ for (i = 0; i < xlen; i++)
+ output[i] = NULL;
+
+
+ for (i = 0; i < xlen; i++)
+ if ((output[i] = malloc(ylen * sizeof *output[i])) == NULL) {
+ perror("[nr_alloc_double_2D_array] Problem at 2D allocation");
+ nr_free_double_2D_array(output, xlen);
+ return NULL;
+ }
+ for (i = 0; i < xlen; i++)
+ for (j = 0; j < ylen; j++)
+ output[i][j] = 0;
+
+
+ return output;
+}
+
uint8_t **nr_alloc_uint8_t_2D_array(uint16_t xlen, uint16_t ylen) {
uint8_t **output;
int i, j;
@@ -136,6 +162,18 @@ uint8_t **nr_alloc_uint8_t_2D_array(uint16_t xlen, uint16_t ylen) {
return output;
}
+void nr_free_double_3D_array(double ***input, uint16_t xlen, uint16_t ylen) {
+ int i, j;
+
+ for (i = 0; i < xlen; i++) {
+ for (j = 0; j < ylen; j++) {
+ free(input[i][j]);
+ }
+ free(input[i]);
+ }
+ free(input);
+}
+
void nr_free_uint8_t_3D_array(uint8_t ***input, uint16_t xlen, uint16_t ylen) {
int i, j;
@@ -149,31 +187,28 @@ void nr_free_uint8_t_3D_array(uint8_t ***input, uint16_t xlen, uint16_t ylen) {
}
void nr_free_uint8_t_2D_array(uint8_t **input, uint16_t xlen) {
- for (int i = 0; i < xlen; i++) free(input[i]);
- free(input);
+ for (int i = 0; i < xlen; i++) free(input[i]);
+ free(input);
}
-void nr_free_double_3D_array(double ***input, uint16_t xlen, uint16_t ylen) {
- int i, j;
-
- for (i = 0; i < xlen; i++) {
- for (j = 0; j < ylen; j++) {
- free(input[i][j]);
- }
- free(input[i]);
- }
- free(input);
+void nr_free_double_2D_array(double **input, uint16_t xlen) {
+ int i;
+
+ for (i = 0; i < xlen; i++) {
+ free(input[i]);
+ }
+ free(input);
}
// Modified Bubble Sort.
void nr_sort_asc_double_1D_array_ind(double *matrix, uint8_t *ind, uint8_t len) {
- uint8_t swaps;
+ int swaps;
double temp;
- uint8_t tempInd;
+ int tempInd;
- for (uint8_t i = 0; i < len; i++) {
+ for (int i = 0; i < len; i++) {
swaps = 0;
- for (uint8_t j = 0; j < (len - i) - 1; j++) {
+ for (int j = 0; j < (len - i) - 1; j++) {
if (matrix[j] > matrix[j + 1]) {
temp = matrix[j];
matrix[j] = matrix[j + 1];
@@ -190,3 +225,28 @@ void nr_sort_asc_double_1D_array_ind(double *matrix, uint8_t *ind, uint8_t len)
break;
}
}
+
+void nr_sort_asc_int16_1D_array_ind(int32_t *matrix, int *ind, int len) {
+ int swaps;
+ int16_t temp;
+ int tempInd;
+
+ for (int i = 0; i < len; i++) {
+ swaps = 0;
+ for (int j = 0; j < (len - i) - 1; j++) {
+ if (matrix[j] > matrix[j + 1]) {
+ temp = matrix[j];
+ matrix[j] = matrix[j + 1];
+ matrix[j + 1] = temp;
+
+ tempInd = ind[j];
+ ind[j] = ind[j + 1];
+ ind[j + 1] = tempInd;
+
+ swaps++;
+ }
+ }
+ if (swaps == 0)
+ break;
+ }
+}
diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_polar_procedures.c b/openair1/PHY/CODING/nrPolar_tools/nr_polar_procedures.c
index 6cb111af52..95fc79ecb1 100644
--- a/openair1/PHY/CODING/nrPolar_tools/nr_polar_procedures.c
+++ b/openair1/PHY/CODING/nrPolar_tools/nr_polar_procedures.c
@@ -313,3 +313,25 @@ void nr_polar_rate_matching(double *input, double *output, uint16_t *rmp, uint16
}
}
+
+void nr_polar_rate_matching_int16(int16_t *input, int16_t *output, uint16_t *rmp, uint16_t K, uint16_t N, uint16_t E){
+
+ if (E>=N) { //repetition
+ for (int i=0; i<=N-1; i++) output[i]=0;
+ for (int i=0; i<=E-1; i++){
+ output[rmp[i]]+=input[i];
+ }
+ } else {
+ if ( (K/(double)E) <= (7.0/16) ) { //puncturing
+ for (int i=0; i<=N-1; i++) output[i]=0;
+ } else { //shortening
+ for (int i=0; i<=N-1; i++) output[i]=INFINITY;
+ }
+
+ for (int i=0; i<=E-1; i++){
+ output[rmp[i]]=input[i];
+ }
+ }
+
+}
+
diff --git a/openair1/PHY/CODING/nrPolar_tools/nr_polar_rate_match.c b/openair1/PHY/CODING/nrPolar_tools/nr_polar_rate_match.c
new file mode 100644
index 0000000000..d237603059
--- /dev/null
+++ b/openair1/PHY/CODING/nrPolar_tools/nr_polar_rate_match.c
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The OpenAirInterface Software Alliance licenses this file to You under
+ * the OAI Public License, Version 1.1 (the "License"); you may not use this file
+ * except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.openairinterface.org/?page_id=698
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *-------------------------------------------------------------------------------
+ * For more information about the OpenAirInterface (OAI) Software Alliance:
+ * contact@openairinterface.org
+ */
+
+#include
+#include "PHY/CODING/nrPolar_tools/nr_polar_defs.h"
+
+void nr_polar_rate_matching_pattern(uint16_t *rmp, uint16_t *J, const uint8_t *P_i_, uint16_t K, uint16_t N, uint16_t E){
+
+ uint8_t i;
+ uint16_t *d, *y, ind;
+ d = (uint16_t *)malloc(sizeof(uint16_t) * N);
+ y = (uint16_t *)malloc(sizeof(uint16_t) * N);
+
+ for (int m=0; m<=N-1; m++) d[m]=m;
+
+ for (int m=0; m<=N-1; m++){
+ i=floor((32*m)/N);
+ J[m] = (P_i_[i]*(N/32)) + (m%(N/32));
+ y[m] = d[J[m]];
+ }
+
+ if (E>=N) { //repetition
+ for (int k=0; k<=E-1; k++) {
+ ind = (k%N);
+ rmp[k]=y[ind];
+ }
+ } else {
+ if ( (K/(double)E) <= (7.0/16) ) { //puncturing
+ for (int k=0; k<=E-1; k++) {
+ rmp[k]=y[k+N-E];
+ }
+ } else { //shortening
+ for (int k=0; k<=E-1; k++) {
+ rmp[k]=y[k];
+ }
+ }
+ }
+
+ free(d);
+ free(y);
+}
+
+
+void nr_polar_rate_matching(double *input, double *output, uint16_t *rmp, uint16_t K, uint16_t N, uint16_t E){
+
+ if (E>=N) { //repetition
+ for (int i=0; i<=N-1; i++) output[i]=0;
+ for (int i=0; i<=E-1; i++){
+ output[rmp[i]]+=input[i];
+ }
+ } else {
+ if ( (K/(double)E) <= (7.0/16) ) { //puncturing
+ for (int i=0; i<=N-1; i++) output[i]=0;
+ } else { //shortening
+ for (int i=0; i<=N-1; i++) output[i]=INFINITY;
+ }
+
+ for (int i=0; i<=E-1; i++){
+ output[rmp[i]]=input[i];
+ }
+ }
+
+}
+
+void nr_polar_rate_matching_int8(int16_t *input, int16_t *output, uint16_t *rmp, uint16_t K, uint16_t N, uint16_t E){
+
+ if (E>=N) { //repetition
+ for (int i=0; i<=N-1; i++) output[i]=0;
+ for (int i=0; i<=E-1; i++){
+ output[rmp[i]]+=input[i];
+ }
+ } else {
+ if ( (K/(double)E) <= (7.0/16) ) { //puncturing
+ for (int i=0; i<=N-1; i++) output[i]=0;
+ } else { //shortening
+ for (int i=0; i<=N-1; i++) output[i]=INFINITY;
+ }
+
+ for (int i=0; i<=E-1; i++){
+ output[rmp[i]]=input[i];
+ }
+ }
+
+}
diff --git a/openair1/PHY/CODING/nr_polar_init.c b/openair1/PHY/CODING/nr_polar_init.c
index 87da29c48e..e238c7b84f 100644
--- a/openair1/PHY/CODING/nr_polar_init.c
+++ b/openair1/PHY/CODING/nr_polar_init.c
@@ -147,6 +147,9 @@ void nr_polar_init(t_nrPolar_paramsPtr *polarParams,
free(J);
+ build_decoder_tree(newPolarInitNode);
+ printf("decoder tree nodes %d\n",newPolarInitNode->tree.num_nodes);
+
} else {
AssertFatal(1 == 0, "[nr_polar_init] New t_nrPolar_paramsPtr could not be created");
}
diff --git a/openair1/PHY/INIT/init_top.c b/openair1/PHY/INIT/init_top.c
index e64eda740c..956e473f67 100644
--- a/openair1/PHY/INIT/init_top.c
+++ b/openair1/PHY/INIT/init_top.c
@@ -72,6 +72,7 @@ void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms)
init_dfts();
+ crcTableInit();
phy_generate_viterbi_tables_lte();
diff --git a/openair1/PHY/INIT/nr_init.c b/openair1/PHY/INIT/nr_init.c
index 2d5ccaedeb..a67645eef4 100644
--- a/openair1/PHY/INIT/nr_init.c
+++ b/openair1/PHY/INIT/nr_init.c
@@ -115,6 +115,10 @@ int phy_init_nr_gNB(PHY_VARS_gNB *gNB,
);*/
LOG_D(PHY,"[MSC_NEW][FRAME 00000][PHY_gNB][MOD %02"PRIu8"][]\n", gNB->Mod_id);
+ crcTableInit();
+
+ init_dfts();
+
// PBCH DMRS gold sequences generation
nr_init_pbch_dmrs(gNB);
// Polar encoder init for PBCH
diff --git a/openair1/PHY/INIT/nr_init_ue.c b/openair1/PHY/INIT/nr_init_ue.c
index c1d6399e46..dfbbb25d06 100644
--- a/openair1/PHY/INIT/nr_init_ue.c
+++ b/openair1/PHY/INIT/nr_init_ue.c
@@ -947,6 +947,8 @@ void phy_init_nr_top(PHY_VARS_NR_UE *ue)
crcTableInit();
+ init_dfts();
+
ccodedot11_init();
ccodedot11_init_inv();
diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
deleted file mode 100644
index 4020056e6f..0000000000
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c
+++ /dev/null
@@ -1,748 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- * contact@openairinterface.org
- */
-
-/*! \file PHY/LTE_TRANSPORT/dlsch_decoding.c
-* \brief Top-level routines for decoding Turbo-coded (DLSCH) transport channels from 36-212, V8.6 2009-03
-* \author R. Knopp
-* \date 2011
-* \version 0.1
-* \company Eurecom
-* \email: knopp@eurecom.fr
-* \note
-* \warning
-*/
-
-//#include "defs.h"
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-#include "PHY/CODING/extern.h"
-#include "SCHED/extern.h"
-#include "SIMULATION/TOOLS/defs.h"
-//#define DEBUG_DLSCH_DECODING
-//#define UE_DEBUG_TRACE 1
-
-
-void free_ue_dlsch(LTE_UE_DLSCH_t *dlsch)
-{
-
- int i,r;
-
- if (dlsch) {
- for (i=0; iMdlharq; i++) {
- if (dlsch->harq_processes[i]) {
- if (dlsch->harq_processes[i]->b) {
- free16(dlsch->harq_processes[i]->b,MAX_DLSCH_PAYLOAD_BYTES);
- dlsch->harq_processes[i]->b = NULL;
- }
-
- for (r=0; rharq_processes[i]->c[r],((r==0)?8:0) + 3+768);
- dlsch->harq_processes[i]->c[r] = NULL;
- }
-
- for (r=0; rharq_processes[i]->d[r]) {
- free16(dlsch->harq_processes[i]->d[r],((3*8*6144)+12+96)*sizeof(short));
- dlsch->harq_processes[i]->d[r] = NULL;
- }
-
- free16(dlsch->harq_processes[i],sizeof(LTE_DL_UE_HARQ_t));
- dlsch->harq_processes[i] = NULL;
- }
- }
-
- free16(dlsch,sizeof(LTE_UE_DLSCH_t));
- dlsch = NULL;
- }
-}
-
-LTE_UE_DLSCH_t *new_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint32_t Nsoft,uint8_t max_turbo_iterations,uint8_t N_RB_DL, uint8_t abstraction_flag)
-{
-
- LTE_UE_DLSCH_t *dlsch;
- uint8_t exit_flag = 0,i,r;
-
- unsigned char bw_scaling =1;
-
- switch (N_RB_DL) {
- case 6:
- bw_scaling =16;
- break;
-
- case 25:
- bw_scaling =4;
- break;
-
- case 50:
- bw_scaling =2;
- break;
-
- default:
- bw_scaling =1;
- break;
- }
-
- dlsch = (LTE_UE_DLSCH_t *)malloc16(sizeof(LTE_UE_DLSCH_t));
-
- if (dlsch) {
- memset(dlsch,0,sizeof(LTE_UE_DLSCH_t));
- dlsch->Kmimo = Kmimo;
- dlsch->Mdlharq = Mdlharq;
- dlsch->Nsoft = Nsoft;
- dlsch->max_turbo_iterations = max_turbo_iterations;
-
- for (i=0; iharq_processes[i] = (LTE_DL_UE_HARQ_t *)malloc16(sizeof(LTE_DL_UE_HARQ_t));
-
- if (dlsch->harq_processes[i]) {
- memset(dlsch->harq_processes[i],0,sizeof(LTE_DL_UE_HARQ_t));
- dlsch->harq_processes[i]->first_tx=1;
- dlsch->harq_processes[i]->b = (uint8_t*)malloc16(MAX_DLSCH_PAYLOAD_BYTES/bw_scaling);
-
- if (dlsch->harq_processes[i]->b)
- memset(dlsch->harq_processes[i]->b,0,MAX_DLSCH_PAYLOAD_BYTES/bw_scaling);
- else
- exit_flag=3;
-
- if (abstraction_flag == 0) {
- for (r=0; rharq_processes[i]->c[r] = (uint8_t*)malloc16(((r==0)?8:0) + 3+ 768);
-
- if (dlsch->harq_processes[i]->c[r])
- memset(dlsch->harq_processes[i]->c[r],0,((r==0)?8:0) + 3+ 768);
- else
- exit_flag=2;
-
- dlsch->harq_processes[i]->d[r] = (short*)malloc16(((3*8*6144)+12+96)*sizeof(short));
-
- if (dlsch->harq_processes[i]->d[r])
- memset(dlsch->harq_processes[i]->d[r],0,((3*8*6144)+12+96)*sizeof(short));
- else
- exit_flag=2;
- }
- }
- } else {
- exit_flag=1;
- }
- }
-
- if (exit_flag==0)
- return(dlsch);
- }
-
- printf("new_ue_dlsch with size %zu: exit_flag = %u\n",sizeof(LTE_DL_UE_HARQ_t), exit_flag);
- free_ue_dlsch(dlsch);
-
- return(NULL);
-}
-
-uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
- short *dlsch_llr,
- LTE_DL_FRAME_PARMS *frame_parms,
- LTE_UE_DLSCH_t *dlsch,
- LTE_DL_UE_HARQ_t *harq_process,
- uint32_t frame,
- uint8_t subframe,
- uint8_t harq_pid,
- uint8_t is_crnti,
- uint8_t llr8_flag)
-{
-
-#if UE_TIMING_TRACE
- time_stats_t *dlsch_rate_unmatching_stats=&phy_vars_ue->dlsch_rate_unmatching_stats;
- time_stats_t *dlsch_turbo_decoding_stats=&phy_vars_ue->dlsch_turbo_decoding_stats;
- time_stats_t *dlsch_deinterleaving_stats=&phy_vars_ue->dlsch_deinterleaving_stats;
-#endif
- uint32_t A,E;
- uint32_t G;
- uint32_t ret,offset;
- uint16_t iind;
- // uint8_t dummy_channel_output[(3*8*block_length)+12];
- short dummy_w[MAX_NUM_DLSCH_SEGMENTS][3*(6144+64)];
- uint32_t r,r_offset=0,Kr,Kr_bytes,err_flag=0;
- uint8_t crc_type;
-#ifdef DEBUG_DLSCH_DECODING
- uint16_t i;
-#endif
- //#ifdef __AVX2__
-#if 0
- int Kr_last,skipped_last=0;
- uint8_t (*tc_2cw)(int16_t *y,
- int16_t *y2,
- uint8_t *,
- uint8_t *,
- uint16_t,
- uint16_t,
- uint16_t,
- uint8_t,
- uint8_t,
- uint8_t,
- time_stats_t *,
- time_stats_t *,
- time_stats_t *,
- time_stats_t *,
- time_stats_t *,
- time_stats_t *,
- time_stats_t *);
-
-#endif
-decoder_if_t tc;
-
-
-
-
- if (!dlsch_llr) {
- printf("dlsch_decoding.c: NULL dlsch_llr pointer\n");
- return(dlsch->max_turbo_iterations);
- }
-
- if (!harq_process) {
- printf("dlsch_decoding.c: NULL harq_process pointer\n");
- return(dlsch->max_turbo_iterations);
- }
-
- if (!frame_parms) {
- printf("dlsch_decoding.c: NULL frame_parms pointer\n");
- return(dlsch->max_turbo_iterations);
- }
-
- if (subframe>9) {
- printf("dlsch_decoding.c: Illegal subframe index %d\n",subframe);
- return(dlsch->max_turbo_iterations);
- }
-
- if (dlsch->harq_ack[subframe].ack != 2) {
- LOG_D(PHY, "[UE %d] DLSCH @ SF%d : ACK bit is %d instead of DTX even before PDSCH is decoded!\n",
- phy_vars_ue->Mod_id, subframe, dlsch->harq_ack[subframe].ack);
- }
-
- if (llr8_flag == 0) {
- //#ifdef __AVX2__
-#if 0
- tc_2cw = phy_threegpplte_turbo_decoder16avx2;
-#endif
- tc = decoder16;
- }
- else
- {
- AssertFatal (harq_process->TBS >= 256 , "Mismatch flag nbRB=%d TBS=%d mcs=%d Qm=%d RIV=%d round=%d \n",
- harq_process->nb_rb, harq_process->TBS,harq_process->mcs,harq_process->Qm,harq_process->rvidx,harq_process->round);
- tc = decoder8;
- }
-
-
- // nb_rb = dlsch->nb_rb;
-
- /*
- if (nb_rb > frame_parms->N_RB_DL) {
- printf("dlsch_decoding.c: Illegal nb_rb %d\n",nb_rb);
- return(max_turbo_iterations);
- }*/
-
- /*harq_pid = dlsch->current_harq_pid[phy_vars_ue->current_thread_id[subframe]];
- if (harq_pid >= 8) {
- printf("dlsch_decoding.c: Illegal harq_pid %d\n",harq_pid);
- return(max_turbo_iterations);
- }
- */
-
- harq_process->trials[harq_process->round]++;
-
- A = harq_process->TBS; //2072 for QPSK 1/3
-
- ret = dlsch->max_turbo_iterations;
-
-
- G = harq_process->G;
- //get_G(frame_parms,nb_rb,dlsch->rb_alloc,mod_order,num_pdcch_symbols,phy_vars_ue->frame,subframe);
-
- // printf("DLSCH Decoding, harq_pid %d Ndi %d\n",harq_pid,harq_process->Ndi);
-
- if (harq_process->round == 0) {
- // This is a new packet, so compute quantities regarding segmentation
- harq_process->B = A+24;
- lte_segmentation(NULL,
- NULL,
- harq_process->B,
- &harq_process->C,
- &harq_process->Cplus,
- &harq_process->Cminus,
- &harq_process->Kplus,
- &harq_process->Kminus,
- &harq_process->F);
- // CLEAR LLR's HERE for first packet in process
- }
-
- /*
- else {
- printf("dlsch_decoding.c: Ndi>0 not checked yet!!\n");
- return(max_turbo_iterations);
- }
- */
- err_flag = 0;
- r_offset = 0;
-
- unsigned char bw_scaling =1;
-
- switch (frame_parms->N_RB_DL) {
- case 6:
- bw_scaling =16;
- break;
-
- case 25:
- bw_scaling =4;
- break;
-
- case 50:
- bw_scaling =2;
- break;
-
- default:
- bw_scaling =1;
- break;
- }
-
- if (harq_process->C > MAX_NUM_DLSCH_SEGMENTS/bw_scaling) {
- LOG_E(PHY,"Illegal harq_process->C %d > %d\n",harq_process->C,MAX_NUM_DLSCH_SEGMENTS/bw_scaling);
- return((1+dlsch->max_turbo_iterations));
- }
-#ifdef DEBUG_DLSCH_DECODING
- printf("Segmentation: C %d, Cminus %d, Kminus %d, Kplus %d\n",harq_process->C,harq_process->Cminus,harq_process->Kminus,harq_process->Kplus);
-#endif
-
- opp_enabled=1;
-
- for (r=0; rC; r++) {
-
-
- // Get Turbo interleaver parameters
- if (rCminus)
- Kr = harq_process->Kminus;
- else
- Kr = harq_process->Kplus;
-
- Kr_bytes = Kr>>3;
-
- if (Kr_bytes<=64)
- iind = (Kr_bytes-5);
- else if (Kr_bytes <=128)
- iind = 59 + ((Kr_bytes-64)>>1);
- else if (Kr_bytes <= 256)
- iind = 91 + ((Kr_bytes-128)>>2);
- else if (Kr_bytes <= 768)
- iind = 123 + ((Kr_bytes-256)>>3);
- else {
- printf("dlsch_decoding: Illegal codeword size %d!!!\n",Kr_bytes);
- return(dlsch->max_turbo_iterations);
- }
-
-#ifdef DEBUG_DLSCH_DECODING
- printf("f1 %d, f2 %d, F %d\n",f1f2mat_old[2*iind],f1f2mat_old[1+(2*iind)],(r==0) ? harq_process->F : 0);
-#endif
-
-#if UE_TIMING_TRACE
- start_meas(dlsch_rate_unmatching_stats);
-#endif
- memset(&dummy_w[r][0],0,3*(6144+64)*sizeof(short));
- harq_process->RTC[r] = generate_dummy_w(4+(Kr_bytes*8),
- (uint8_t*) &dummy_w[r][0],
- (r==0) ? harq_process->F : 0);
-
-#ifdef DEBUG_DLSCH_DECODING
- LOG_D(PHY,"HARQ_PID %d Rate Matching Segment %d (coded bits %d,unpunctured/repeated bits %d, TBS %d, mod_order %d, nb_rb %d, Nl %d, rv %d, round %d)...\n",
- harq_pid,r, G,
- Kr*3,
- harq_process->TBS,
- harq_process->Qm,
- harq_process->nb_rb,
- harq_process->Nl,
- harq_process->rvidx,
- harq_process->round);
-#endif
-
-#ifdef DEBUG_DLSCH_DECODING
- printf(" in decoding dlsch->harq_processes[harq_pid]->rvidx = %d\n", dlsch->harq_processes[harq_pid]->rvidx);
-#endif
- if (lte_rate_matching_turbo_rx(harq_process->RTC[r],
- G,
- harq_process->w[r],
- (uint8_t*)&dummy_w[r][0],
- dlsch_llr+r_offset,
- harq_process->C,
- dlsch->Nsoft,
- dlsch->Mdlharq,
- dlsch->Kmimo,
- harq_process->rvidx,
- (harq_process->round==0)?1:0,
- harq_process->Qm,
- harq_process->Nl,
- r,
- &E)==-1) {
-#if UE_TIMING_TRACE
- stop_meas(dlsch_rate_unmatching_stats);
-#endif
- LOG_E(PHY,"dlsch_decoding.c: Problem in rate_matching\n");
- return(dlsch->max_turbo_iterations);
- } else
- {
-#if UE_TIMING_TRACE
- stop_meas(dlsch_rate_unmatching_stats);
-#endif
- }
- r_offset += E;
-
- /*
- printf("Subblock deinterleaving, d %p w %p\n",
- harq_process->d[r],
- harq_process->w);
- */
-#if UE_TIMING_TRACE
- start_meas(dlsch_deinterleaving_stats);
-#endif
- sub_block_deinterleaving_turbo(4+Kr,
- &harq_process->d[r][96],
-
- harq_process->w[r]);
-#if UE_TIMING_TRACE
- stop_meas(dlsch_deinterleaving_stats);
-#endif
-#ifdef DEBUG_DLSCH_DECODING
- /*
- if (r==0) {
- write_output("decoder_llr.m","decllr",dlsch_llr,G,1,0);
- write_output("decoder_in.m","dec",&harq_process->d[0][96],(3*8*Kr_bytes)+12,1,0);
- }
-
- printf("decoder input(segment %d) :",r);
- int i; for (i=0;i<(3*8*Kr_bytes)+12;i++)
- printf("%d : %d\n",i,harq_process->d[r][96+i]);
- printf("\n");*/
-#endif
-
-
- // printf("Clearing c, %p\n",harq_process->c[r]);
- memset(harq_process->c[r],0,Kr_bytes);
-
- // printf("done\n");
- if (harq_process->C == 1)
- crc_type = CRC24_A;
- else
- crc_type = CRC24_B;
-
- /*
- printf("decoder input(segment %d)\n",r);
- for (i=0;i<(3*8*Kr_bytes)+12;i++)
- if ((harq_process->d[r][96+i]>7) ||
- (harq_process->d[r][96+i] < -8))
- printf("%d : %d\n",i,harq_process->d[r][96+i]);
- printf("\n");
- */
-
- //#ifndef __AVX2__
-#if 1
- if (err_flag == 0) {
-/*
- LOG_I(PHY, "turbo algo Kr=%d cb_cnt=%d C=%d nbRB=%d crc_type %d TBSInput=%d TBSHarq=%d TBSplus24=%d mcs=%d Qm=%d RIV=%d round=%d maxIter %d\n",
- Kr,r,harq_process->C,harq_process->nb_rb,crc_type,A,harq_process->TBS,
- harq_process->B,harq_process->mcs,harq_process->Qm,harq_process->rvidx,harq_process->round,dlsch->max_turbo_iterations);
-*/
- if (llr8_flag) {
- AssertFatal (Kr >= 256, "turbo algo issue Kr=%d cb_cnt=%d C=%d nbRB=%d TBSInput=%d TBSHarq=%d TBSplus24=%d mcs=%d Qm=%d RIV=%d round=%d\n",
- Kr,r,harq_process->C,harq_process->nb_rb,A,harq_process->TBS,harq_process->B,harq_process->mcs,harq_process->Qm,harq_process->rvidx,harq_process->round);
- }
-#if UE_TIMING_TRACE
- start_meas(dlsch_turbo_decoding_stats);
-#endif
- LOG_D(PHY,"AbsSubframe %d.%d Start turbo segment %d/%d \n",frame%1024,subframe,r,harq_process->C-1);
- ret = tc
- (&harq_process->d[r][96],
- NULL,
- harq_process->c[r],
- NULL,
- Kr,
- f1f2mat_old[iind*2],
- f1f2mat_old[(iind*2)+1],
- dlsch->max_turbo_iterations,
- crc_type,
- (r==0) ? harq_process->F : 0,
- &phy_vars_ue->dlsch_tc_init_stats,
- &phy_vars_ue->dlsch_tc_alpha_stats,
- &phy_vars_ue->dlsch_tc_beta_stats,
- &phy_vars_ue->dlsch_tc_gamma_stats,
- &phy_vars_ue->dlsch_tc_ext_stats,
- &phy_vars_ue->dlsch_tc_intl1_stats,
- &phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
-
-#if UE_TIMING_TRACE
- stop_meas(dlsch_turbo_decoding_stats);
-#endif
- }
-#else
- if ((harq_process->C == 1) ||
- ((r==harq_process->C-1) && (skipped_last==0))) { // last segment with odd number of segments
-
-#if UE_TIMING_TRACE
- start_meas(dlsch_turbo_decoding_stats);
-#endif
- ret = tc
- (&harq_process->d[r][96],
- harq_process->c[r],
- Kr,
- f1f2mat_old[iind*2],
- f1f2mat_old[(iind*2)+1],
- dlsch->max_turbo_iterations,
- crc_type,
- (r==0) ? harq_process->F : 0,
- &phy_vars_ue->dlsch_tc_init_stats,
- &phy_vars_ue->dlsch_tc_alpha_stats,
- &phy_vars_ue->dlsch_tc_beta_stats,
- &phy_vars_ue->dlsch_tc_gamma_stats,
- &phy_vars_ue->dlsch_tc_ext_stats,
- &phy_vars_ue->dlsch_tc_intl1_stats,
- &phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
- #if UE_TIMING_TRACE
- stop_meas(dlsch_turbo_decoding_stats);
-#endif
- // printf("single decode, exit\n");
- // exit(-1);
- }
- else {
- // we can merge code segments
- if ((skipped_last == 0) && (rC-1)) {
- skipped_last = 1;
- Kr_last = Kr;
- }
- else {
- skipped_last=0;
-
- if (Kr_last == Kr) { // decode 2 code segments with AVX2 version
-#ifdef DEBUG_DLSCH_DECODING
- printf("single decoding segment %d (%p)\n",r-1,&harq_process->d[r-1][96]);
-#endif
-#if UE_TIMING_TRACE
- start_meas(dlsch_turbo_decoding_stats);
-#endif
-#ifdef DEBUG_DLSCH_DECODING
- printf("double decoding segments %d,%d (%p,%p)\n",r-1,r,&harq_process->d[r-1][96],&harq_process->d[r][96]);
-#endif
- ret = tc_2cw
- (&harq_process->d[r-1][96],
- &harq_process->d[r][96],
- harq_process->c[r-1],
- harq_process->c[r],
- Kr,
- f1f2mat_old[iind*2],
- f1f2mat_old[(iind*2)+1],
- dlsch->max_turbo_iterations,
- crc_type,
- (r==0) ? harq_process->F : 0,
- &phy_vars_ue->dlsch_tc_init_stats,
- &phy_vars_ue->dlsch_tc_alpha_stats,
- &phy_vars_ue->dlsch_tc_beta_stats,
- &phy_vars_ue->dlsch_tc_gamma_stats,
- &phy_vars_ue->dlsch_tc_ext_stats,
- &phy_vars_ue->dlsch_tc_intl1_stats,
- &phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
- /*
- ret = tc
- (&harq_process->d[r-1][96],
- harq_process->c[r-1],
- Kr_last,
- f1f2mat_old[iind*2],
- f1f2mat_old[(iind*2)+1],
- dlsch->max_turbo_iterations,
- crc_type,
- (r==0) ? harq_process->F : 0,
- &phy_vars_ue->dlsch_tc_init_stats,
- &phy_vars_ue->dlsch_tc_alpha_stats,
- &phy_vars_ue->dlsch_tc_beta_stats,
- &phy_vars_ue->dlsch_tc_gamma_stats,
- &phy_vars_ue->dlsch_tc_ext_stats,
- &phy_vars_ue->dlsch_tc_intl1_stats,
- &phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
-
- exit(-1);*/
-#if UE_TIMING_TRACE
- stop_meas(dlsch_turbo_decoding_stats);
-#endif
- }
- else { // Kr_last != Kr
-#if UE_TIMING_TRACE
- start_meas(dlsch_turbo_decoding_stats);
-#endif
- ret = tc
- (&harq_process->d[r-1][96],
- harq_process->c[r-1],
- Kr_last,
- f1f2mat_old[iind*2],
- f1f2mat_old[(iind*2)+1],
- dlsch->max_turbo_iterations,
- crc_type,
- (r==0) ? harq_process->F : 0,
- &phy_vars_ue->dlsch_tc_init_stats,
- &phy_vars_ue->dlsch_tc_alpha_stats,
- &phy_vars_ue->dlsch_tc_beta_stats,
- &phy_vars_ue->dlsch_tc_gamma_stats,
- &phy_vars_ue->dlsch_tc_ext_stats,
- &phy_vars_ue->dlsch_tc_intl1_stats,
- &phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
-#if UE_TIMING_TRACE
- stop_meas(dlsch_turbo_decoding_stats);
-
- start_meas(dlsch_turbo_decoding_stats);
-#endif
-
- ret = tc
- (&harq_process->d[r][96],
- harq_process->c[r],
- Kr,
- f1f2mat_old[iind*2],
- f1f2mat_old[(iind*2)+1],
- dlsch->max_turbo_iterations,
- crc_type,
- (r==0) ? harq_process->F : 0,
- &phy_vars_ue->dlsch_tc_init_stats,
- &phy_vars_ue->dlsch_tc_alpha_stats,
- &phy_vars_ue->dlsch_tc_beta_stats,
- &phy_vars_ue->dlsch_tc_gamma_stats,
- &phy_vars_ue->dlsch_tc_ext_stats,
- &phy_vars_ue->dlsch_tc_intl1_stats,
- &phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
-
-#if UE_TIMING_TRACE
-
- stop_meas(dlsch_turbo_decoding_stats);
-
- /*printf("Segmentation: C %d r %d, dlsch_rate_unmatching_stats %5.3f dlsch_deinterleaving_stats %5.3f dlsch_turbo_decoding_stats %5.3f \n",
- harq_process->C,
- r,
- dlsch_rate_unmatching_stats->p_time/(cpuf*1000.0),
- dlsch_deinterleaving_stats->p_time/(cpuf*1000.0),
- dlsch_turbo_decoding_stats->p_time/(cpuf*1000.0));*/
-#endif
- }
- }
- }
-#endif
-
-
- if ((err_flag == 0) && (ret>=(1+dlsch->max_turbo_iterations))) {// a Code segment is in error so break;
- LOG_D(PHY,"AbsSubframe %d.%d CRC failed, segment %d/%d \n",frame%1024,subframe,r,harq_process->C-1);
- err_flag = 1;
- }
- }
-
- int32_t frame_rx_prev = frame;
- int32_t subframe_rx_prev = subframe - 1;
- if (subframe_rx_prev < 0) {
- frame_rx_prev--;
- subframe_rx_prev += 10;
- }
- frame_rx_prev = frame_rx_prev%1024;
-
- if (err_flag == 1) {
-#if UE_DEBUG_TRACE
- LOG_I(PHY,"[UE %d] DLSCH: Setting NAK for SFN/SF %d/%d (pid %d, status %d, round %d, TBS %d, mcs %d) Kr %d r %d harq_process->round %d\n",
- phy_vars_ue->Mod_id, frame, subframe, harq_pid,harq_process->status, harq_process->round,harq_process->TBS,harq_process->mcs,Kr,r,harq_process->round);
-#endif
- dlsch->harq_ack[subframe].ack = 0;
- dlsch->harq_ack[subframe].harq_id = harq_pid;
- dlsch->harq_ack[subframe].send_harq_status = 1;
- harq_process->errors[harq_process->round]++;
- harq_process->round++;
-
-
- // printf("Rate: [UE %d] DLSCH: Setting NACK for subframe %d (pid %d, round %d)\n",phy_vars_ue->Mod_id,subframe,harq_pid,harq_process->round);
- if (harq_process->round >= dlsch->Mdlharq) {
- harq_process->status = SCH_IDLE;
- harq_process->round = 0;
- }
- if(is_crnti)
- {
- LOG_D(PHY,"[UE %d] DLSCH: Setting NACK for subframe %d (pid %d, pid status %d, round %d/Max %d, TBS %d)\n",
- phy_vars_ue->Mod_id,subframe,harq_pid,harq_process->status,harq_process->round,dlsch->Mdlharq,harq_process->TBS);
- }
-
- return((1+dlsch->max_turbo_iterations));
- } else {
-#if UE_DEBUG_TRACE
- LOG_I(PHY,"[UE %d] DLSCH: Setting ACK for subframe %d TBS %d mcs %d nb_rb %d\n",
- phy_vars_ue->Mod_id,subframe,harq_process->TBS,harq_process->mcs,harq_process->nb_rb);
-#endif
-
- harq_process->status = SCH_IDLE;
- harq_process->round = 0;
- dlsch->harq_ack[subframe].ack = 1;
- dlsch->harq_ack[subframe].harq_id = harq_pid;
- dlsch->harq_ack[subframe].send_harq_status = 1;
- //LOG_I(PHY,"[UE %d] DLSCH: Setting ACK for SFN/SF %d/%d (pid %d, status %d, round %d, TBS %d, mcs %d)\n",
- // phy_vars_ue->Mod_id, frame, subframe, harq_pid, harq_process->status, harq_process->round,harq_process->TBS,harq_process->mcs);
-
- if(is_crnti)
- {
- LOG_D(PHY,"[UE %d] DLSCH: Setting ACK for subframe %d (pid %d, round %d, TBS %d)\n",phy_vars_ue->Mod_id,subframe,harq_pid,harq_process->round,harq_process->TBS);
- }
- //LOG_D(PHY,"[UE %d] DLSCH: Setting ACK for subframe %d (pid %d, round %d)\n",phy_vars_ue->Mod_id,subframe,harq_pid,harq_process->round);
-
- }
-
- // Reassembly of Transport block here
- offset = 0;
-
- /*
- printf("harq_pid %d\n",harq_pid);
- printf("F %d, Fbytes %d\n",harq_process->F,harq_process->F>>3);
- printf("C %d\n",harq_process->C);
- */
- for (r=0; rC; r++) {
- if (rCminus)
- Kr = harq_process->Kminus;
- else
- Kr = harq_process->Kplus;
-
- Kr_bytes = Kr>>3;
-
- // printf("Segment %d : Kr= %d bytes\n",r,Kr_bytes);
- if (r==0) {
- memcpy(harq_process->b,
- &harq_process->c[0][(harq_process->F>>3)],
- Kr_bytes - (harq_process->F>>3)- ((harq_process->C>1)?3:0));
- offset = Kr_bytes - (harq_process->F>>3) - ((harq_process->C>1)?3:0);
- // printf("copied %d bytes to b sequence (harq_pid %d)\n",
- // Kr_bytes - (harq_process->F>>3),harq_pid);
- // printf("b[0] = %x,c[%d] = %x\n",
- // harq_process->b[0],
- // harq_process->F>>3,
- // harq_process->c[0][(harq_process->F>>3)]);
- } else {
- memcpy(harq_process->b+offset,
- harq_process->c[r],
- Kr_bytes- ((harq_process->C>1)?3:0));
- offset += (Kr_bytes - ((harq_process->C>1)?3:0));
- }
- }
-
- dlsch->last_iteration_cnt = ret;
-
- return(ret);
-}
-
diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
deleted file mode 100644
index 6284f279d8..0000000000
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c
+++ /dev/null
@@ -1,6155 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- * contact@openairinterface.org
- */
-
-/*! \file PHY/LTE_TRANSPORT/dlsch_demodulation.c
- * \brief Top-level routines for demodulating the PDSCH physical channel from 36-211, V8.6 2009-03
- * \author R. Knopp, F. Kaltenberger,A. Bhamri, S. Aubert, X. Xiang
- * \date 2011
- * \version 0.1
- * \company Eurecom
- * \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr,ankit.bhamri@eurecom.fr,sebastien.aubert@eurecom.fr
- * \note
- * \warning
- */
-//#include "PHY/defs.h"
-#include "PHY/extern.h"
-#include "SCHED/defs.h"
-#include "defs.h"
-#include "extern.h"
-#include "PHY/sse_intrin.h"
-#include "T.h"
-
-#define NOCYGWIN_STATIC
-
-/* dynamic shift for LLR computation for TM3/4
- * set as command line argument, see lte-softmodem.c
- * default value: 0
- */
-int16_t dlsch_demod_shift = 0;
-int16_t interf_unaw_shift = 13;
-
-//#define DEBUG_HARQ
-
-#define DEBUG_PHY 1
-//#define DEBUG_DLSCH_DEMOD 1
-
-//#define DISABLE_LOG_X
-
-// [MCS][i_mod (0,1,2) = (2,4,6)]
-unsigned char offset_mumimo_llr_drange_fix=0;
-//inferference-free case
-unsigned char interf_unaw_shift_tm4_mcs[29]={5, 3, 4, 3, 3, 2, 1, 1, 2, 0, 1, 1, 1, 1, 0, 0,
- 1, 1, 1, 1, 0, 2, 1, 0, 1, 0, 1, 0, 0} ;
-unsigned char interf_unaw_shift_tm1_mcs[29]={5, 5, 4, 3, 3, 3, 2, 2, 4, 4, 2, 3, 3, 3, 1, 1,
- 0, 1, 1, 2, 5, 4, 4, 6, 5, 1, 0, 5, 6} ; // mcs 21, 26, 28 seem to be errorneous
-
-/*
-//original values from sebastion + same hand tuning
-unsigned char offset_mumimo_llr_drange[29][3]={{8,8,8},{7,7,7},{7,7,7},{7,7,7},{6,6,6},{6,6,6},{6,6,6},{5,5,5},{4,4,4},{1,2,4}, // QPSK
-{5,5,4},{5,5,5},{5,5,5},{3,3,3},{2,2,2},{2,2,2},{2,2,2}, // 16-QAM
-{2,2,1},{3,3,3},{3,3,3},{3,3,1},{2,2,2},{2,2,2},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}; //64-QAM
-*/
- /*
- //first optimization try
- unsigned char offset_mumimo_llr_drange[29][3]={{7, 8, 7},{6, 6, 7},{6, 6, 7},{6, 6, 6},{5, 6, 6},{5, 5, 6},{5, 5, 6},{4, 5, 4},{4, 3, 4},{3, 2, 2},{6, 5, 5},{5, 4, 4},{5, 5, 4},{3, 3, 2},{2, 2, 1},{2, 1, 1},{2, 2, 2},{3, 3, 3},{3, 3, 2},{3, 3, 2},{3, 2, 1},{2, 2, 2},{2, 2, 2},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0}};
- */
- //second optimization try
- /*
- unsigned char offset_mumimo_llr_drange[29][3]={{5, 8, 7},{4, 6, 8},{3, 6, 7},{7, 7, 6},{4, 7, 8},{4, 7, 4},{6, 6, 6},{3, 6, 6},{3, 6, 6},{1, 3, 4},{1, 1, 0},{3, 3, 2},{3, 4, 1},{4, 0, 1},{4, 2, 2},{3, 1, 2},{2, 1, 0},{2, 1, 1},{1, 0, 1},{1, 0, 1},{0, 0, 0},{1, 0, 0},{0, 0, 0},{0, 1, 0},{1, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0}}; w
- */
-unsigned char offset_mumimo_llr_drange[29][3]= {{0, 6, 5},{0, 4, 5},{0, 4, 5},{0, 5, 4},{0, 5, 6},{0, 5, 3},{0, 4, 4},{0, 4, 4},{0, 3, 3},{0, 1, 2},{1, 1, 0},{1, 3, 2},{3, 4, 1},{2, 0, 0},{2, 2, 2},{1, 1, 1},{2, 1, 0},{2, 1, 1},{1, 0, 1},{1, 0, 1},{0, 0, 0},{1, 0, 0},{0, 0, 0},{0, 1, 0},{1, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0}};
-
-
-extern void print_shorts(char *s,int16_t *x);
-
-
-int rx_pdsch(PHY_VARS_UE *ue,
- PDSCH_t type,
- unsigned char eNB_id,
- unsigned char eNB_id_i, //if this == ue->n_connected_eNB, we assume MU interference
- uint32_t frame,
- uint8_t subframe,
- unsigned char symbol,
- unsigned char first_symbol_flag,
- RX_type_t rx_type,
- unsigned char i_mod,
- unsigned char harq_pid)
-{
-
- LTE_UE_COMMON *common_vars = &ue->common_vars;
- LTE_UE_PDSCH **pdsch_vars;
- LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
- PHY_MEASUREMENTS *measurements = &ue->measurements;
- LTE_UE_DLSCH_t **dlsch;
-
- int avg[4];
- int avg_0[2];
- int avg_1[2];
-
-#if UE_TIMING_TRACE
- uint8_t slot = 0;
-#endif
-
- unsigned char aatx,aarx;
-
- unsigned short nb_rb = 0, round;
- int avgs = 0, rb;
- LTE_DL_UE_HARQ_t *dlsch0_harq,*dlsch1_harq = 0;
-
- uint8_t beamforming_mode;
- uint32_t *rballoc;
-
- int32_t **rxdataF_comp_ptr;
- int32_t **dl_ch_mag_ptr;
- int32_t codeword_TB0 = -1;
- int32_t codeword_TB1 = -1;
-
-
-
- switch (type) {
- case SI_PDSCH:
- pdsch_vars = &ue->pdsch_vars_SI[eNB_id];
- dlsch = &ue->dlsch_SI[eNB_id];
- dlsch0_harq = dlsch[0]->harq_processes[harq_pid];
- beamforming_mode = 0;
- break;
-
- case RA_PDSCH:
- pdsch_vars = &ue->pdsch_vars_ra[eNB_id];
- dlsch = &ue->dlsch_ra[eNB_id];
- dlsch0_harq = dlsch[0]->harq_processes[harq_pid];
- beamforming_mode = 0;
- break;
-
- case PDSCH:
- pdsch_vars = ue->pdsch_vars[ue->current_thread_id[subframe]];
- dlsch = ue->dlsch[ue->current_thread_id[subframe]][eNB_id];
- //printf("status TB0 = %d, status TB1 = %d \n", dlsch[0]->harq_processes[harq_pid]->status, dlsch[1]->harq_processes[harq_pid]->status);
- LOG_D(PHY,"AbsSubframe %d.%d / Sym %d harq_pid %d, harq status %d.%d \n",
- frame,subframe,symbol,harq_pid,
- dlsch[0]->harq_processes[harq_pid]->status,
- dlsch[1]->harq_processes[harq_pid]->status);
-
- if ((dlsch[0]->harq_processes[harq_pid]->status == ACTIVE) &&
- (dlsch[1]->harq_processes[harq_pid]->status == ACTIVE)){
- codeword_TB0 = dlsch[0]->harq_processes[harq_pid]->codeword;
- codeword_TB1 = dlsch[1]->harq_processes[harq_pid]->codeword;
- dlsch0_harq = dlsch[codeword_TB0]->harq_processes[harq_pid];
- dlsch1_harq = dlsch[codeword_TB1]->harq_processes[harq_pid];
-#ifdef DEBUG_HARQ
- printf("[DEMOD] I am assuming both TBs are active\n");
-#endif
- }
- else if ((dlsch[0]->harq_processes[harq_pid]->status == ACTIVE) &&
- (dlsch[1]->harq_processes[harq_pid]->status != ACTIVE) ) {
- codeword_TB0 = dlsch[0]->harq_processes[harq_pid]->codeword;
- dlsch0_harq = dlsch[0]->harq_processes[harq_pid];
- dlsch1_harq = NULL;
- codeword_TB1 = -1;
-#ifdef DEBUG_HARQ
- printf("[DEMOD] I am assuming only TB0 is active\n");
-#endif
- }
- else if ((dlsch[0]->harq_processes[harq_pid]->status != ACTIVE) &&
- (dlsch[1]->harq_processes[harq_pid]->status == ACTIVE) ){
- codeword_TB1 = dlsch[1]->harq_processes[harq_pid]->codeword;
- dlsch0_harq = dlsch[1]->harq_processes[harq_pid];
- dlsch1_harq = NULL;
- codeword_TB0 = -1;
-#ifdef DEBUG_HARQ
- printf("[DEMOD] I am assuming only TB1 is active, it is in cw %d\n", dlsch0_harq->codeword);
-#endif
- }
- else {
- LOG_E(PHY,"[UE][FATAL] Frame %d subframe %d: no active DLSCH\n",ue->proc.proc_rxtx[0].frame_rx,subframe);
- return(-1);
- }
- beamforming_mode = ue->transmission_mode[eNB_id]<7?0:ue->transmission_mode[eNB_id];
- break;
-
- default:
- LOG_E(PHY,"[UE][FATAL] Frame %d subframe %d: Unknown PDSCH format %d\n",ue->proc.proc_rxtx[0].frame_rx,subframe,type);
- return(-1);
- break;
- }
-#ifdef DEBUG_HARQ
- printf("[DEMOD] MIMO mode = %d\n", dlsch0_harq->mimo_mode);
- printf("[DEMOD] cw for TB0 = %d, cw for TB1 = %d\n", codeword_TB0, codeword_TB1);
-#endif
-
- DevAssert(dlsch0_harq);
- round = dlsch0_harq->round;
- //printf("round = %d\n", round);
-
- if (eNB_id > 2) {
- LOG_W(PHY,"dlsch_demodulation.c: Illegal eNB_id %d\n",eNB_id);
- return(-1);
- }
-
- if (!common_vars) {
- LOG_W(PHY,"dlsch_demodulation.c: Null common_vars\n");
- return(-1);
- }
-
- if (!dlsch[0]) {
- LOG_W(PHY,"dlsch_demodulation.c: Null dlsch_ue pointer\n");
- return(-1);
- }
-
- if (!pdsch_vars) {
- LOG_W(PHY,"dlsch_demodulation.c: Null pdsch_vars pointer\n");
- return(-1);
- }
-
- if (!frame_parms) {
- LOG_W(PHY,"dlsch_demodulation.c: Null frame_parms\n");
- return(-1);
- }
-
- if (((frame_parms->Ncp == NORMAL) && (symbol>=7)) ||
- ((frame_parms->Ncp == EXTENDED) && (symbol>=6)))
- rballoc = dlsch0_harq->rb_alloc_odd;
- else
- rballoc = dlsch0_harq->rb_alloc_even;
-
-
- if (dlsch0_harq->mimo_mode>DUALSTREAM_PUSCH_PRECODING) {
- LOG_E(PHY,"This transmission mode is not yet supported!\n");
- return(-1);
- }
-
-
- if ((dlsch0_harq->mimo_mode==LARGE_CDD) || ((dlsch0_harq->mimo_mode>=DUALSTREAM_UNIFORM_PRECODING1) && (dlsch0_harq->mimo_mode<=DUALSTREAM_PUSCH_PRECODING))) {
- DevAssert(dlsch1_harq);
- if (eNB_id!=eNB_id_i) {
- LOG_E(PHY,"TM3/TM4 requires to set eNB_id==eNB_id_i!\n");
- return(-1);
- }
- }
-
-#if UE_TIMING_TRACE
- if(symbol > ue->frame_parms.symbols_per_tti>>1)
- {
- slot = 1;
- }
-#endif
-
-#ifdef DEBUG_HARQ
- printf("Demod dlsch0_harq->pmi_alloc %d\n", dlsch0_harq->pmi_alloc);
-#endif
-
- if (frame_parms->nb_antenna_ports_eNB>1 && beamforming_mode==0) {
-#ifdef DEBUG_DLSCH_MOD
- LOG_I(PHY,"dlsch: using pmi %x (%p), rb_alloc %x\n",pmi2hex_2Ar1(dlsch0_harq->pmi_alloc),dlsch[0],dlsch0_harq->rb_alloc_even[0]);
-#endif
-
-#if UE_TIMING_TRACE
- start_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#endif
- nb_rb = dlsch_extract_rbs_dual(common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF,
- common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id],
- pdsch_vars[eNB_id]->rxdataF_ext,
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- dlsch0_harq->pmi_alloc,
- pdsch_vars[eNB_id]->pmi_ext,
- rballoc,
- symbol,
- subframe,
- ue->high_speed_flag,
- frame_parms,
- dlsch0_harq->mimo_mode);
-#ifdef DEBUG_DLSCH_MOD
- printf("dlsch: using pmi %lx, rb_alloc %x, pmi_ext ",pmi2hex_2Ar1(dlsch0_harq->pmi_alloc),*rballoc);
- for (rb=0;rbpmi_ext[rb]);
- printf("\n");
-#endif
-
- if (rx_type >= rx_IC_single_stream) {
- if (eNB_id_in_connected_eNB) // we are in TM5
- nb_rb = dlsch_extract_rbs_dual(common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF,
- common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id_i],
- pdsch_vars[eNB_id_i]->rxdataF_ext,
- pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- dlsch0_harq->pmi_alloc,
- pdsch_vars[eNB_id_i]->pmi_ext,
- rballoc,
- symbol,
- subframe,
- ue->high_speed_flag,
- frame_parms,
- dlsch0_harq->mimo_mode);
- else
- nb_rb = dlsch_extract_rbs_dual(common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF,
- common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id],
- pdsch_vars[eNB_id_i]->rxdataF_ext,
- pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- dlsch0_harq->pmi_alloc,
- pdsch_vars[eNB_id_i]->pmi_ext,
- rballoc,
- symbol,
- subframe,
- ue->high_speed_flag,
- frame_parms,
- dlsch0_harq->mimo_mode);
- }
- } else if (beamforming_mode==0) { //else if nb_antennas_ports_eNB==1 && beamforming_mode == 0
- nb_rb = dlsch_extract_rbs_single(common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF,
- common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id],
- pdsch_vars[eNB_id]->rxdataF_ext,
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- dlsch0_harq->pmi_alloc,
- pdsch_vars[eNB_id]->pmi_ext,
- rballoc,
- symbol,
- subframe,
- ue->high_speed_flag,
- frame_parms);
-
- if (rx_type==rx_IC_single_stream) {
- if (eNB_id_in_connected_eNB)
- nb_rb = dlsch_extract_rbs_single(common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF,
- common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id_i],
- pdsch_vars[eNB_id_i]->rxdataF_ext,
- pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- dlsch0_harq->pmi_alloc,
- pdsch_vars[eNB_id_i]->pmi_ext,
- rballoc,
- symbol,
- subframe,
- ue->high_speed_flag,
- frame_parms);
- else
- nb_rb = dlsch_extract_rbs_single(common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF,
- common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id],
- pdsch_vars[eNB_id_i]->rxdataF_ext,
- pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- dlsch0_harq->pmi_alloc,
- pdsch_vars[eNB_id_i]->pmi_ext,
- rballoc,
- symbol,
- subframe,
- ue->high_speed_flag,
- frame_parms);
- }
- } else if (beamforming_mode==7) { //else if beamforming_mode == 7
- nb_rb = dlsch_extract_rbs_TM7(common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF,
- pdsch_vars[eNB_id]->dl_bf_ch_estimates,
- pdsch_vars[eNB_id]->rxdataF_ext,
- pdsch_vars[eNB_id]->dl_bf_ch_estimates_ext,
- rballoc,
- symbol,
- subframe,
- ue->high_speed_flag,
- frame_parms);
-
- } else if(beamforming_mode>7) {
- LOG_W(PHY,"dlsch_demodulation: beamforming mode not supported yet.\n");
- }
-
- //printf("nb_rb = %d, eNB_id %d\n",nb_rb,eNB_id);
- if (nb_rb==0) {
- // LOG_D(PHY,"dlsch_demodulation.c: nb_rb=0\n");
- return(-1);
- }
-
-
-#if UE_TIMING_TRACE
- stop_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#if DISABLE_LOG_X
- printf("[AbsSFN %d.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f \n",frame,subframe,slot,
- symbol,ue->high_speed_flag,type,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#else
- LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d Flag %d type %d: Pilot/Data extraction %5.2f \n",frame,subframe,slot,symbol,
- ue->high_speed_flag,type,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#endif
-#endif
-
-
-#if UE_TIMING_TRACE
- start_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#endif
- aatx = frame_parms->nb_antenna_ports_eNB;
- aarx = frame_parms->nb_antennas_rx;
-
- dlsch_scale_channel(pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- frame_parms,
- dlsch,
- symbol,
- nb_rb);
-
- if ((dlsch0_harq->mimo_moden_connected_eNB) &&
- (dlsch0_harq->dl_power_off==0)
- ) // TM5 two-user
- {
- dlsch_scale_channel(pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- frame_parms,
- dlsch,
- symbol,
- nb_rb);
- }
-
-#if UE_TIMING_TRACE
- stop_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#if DISABLE_LOG_X
- printf("[AbsSFN %d.%d] Slot%d Symbol %d: Channel Scale %5.2f \n",frame,subframe,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#else
- LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d: Channel Scale %5.2f \n",frame,subframe,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#endif
-#endif
-
-#if UE_TIMING_TRACE
- start_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#endif
- if (first_symbol_flag==1) {
- if (beamforming_mode==0){
- if (dlsch0_harq->mimo_modedl_ch_estimates_ext,
- frame_parms,
- avg,
- symbol,
- nb_rb);
- avgs = 0;
- for (aatx=0;aatxnb_antenna_ports_eNB;aatx++)
- for (aarx=0;aarxnb_antennas_rx;aarx++)
- avgs = cmax(avgs,avg[(aatx<<1)+aarx]);
-
- pdsch_vars[eNB_id]->log2_maxh = (log2_approx(avgs)/2)+1;
- }
- else if ((dlsch0_harq->mimo_mode == LARGE_CDD) ||
- ((dlsch0_harq->mimo_mode >=DUALSTREAM_UNIFORM_PRECODING1) &&
- (dlsch0_harq->mimo_mode <=DUALSTREAM_PUSCH_PRECODING)))
- {
- dlsch_channel_level_TM34(pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- frame_parms,
- pdsch_vars[eNB_id]->pmi_ext,
- avg_0,
- avg_1,
- symbol,
- nb_rb,
- dlsch0_harq->mimo_mode);
-
- LOG_D(PHY,"Channel Level TM34 avg_0 %d, avg_1 %d, rx_type %d, rx_standard %d, dlsch_demod_shift %d \n", avg_0[0],
- avg_1[0], rx_type, rx_standard, dlsch_demod_shift);
- if (rx_type>rx_standard) {
- avg_0[0] = (log2_approx(avg_0[0])/2) + dlsch_demod_shift;// + 2 ;//+ 4;
- avg_1[0] = (log2_approx(avg_1[0])/2) + dlsch_demod_shift;// + 2 ;//+ 4;
- pdsch_vars[eNB_id]->log2_maxh0 = cmax(avg_0[0],0);
- pdsch_vars[eNB_id]->log2_maxh1 = cmax(avg_1[0],0);
- // printf("dlsch_demod_shift %d\n", dlsch_demod_shift);
- }
- else {
- avg_0[0] = (log2_approx(avg_0[0])/2) - 13 + interf_unaw_shift;
- avg_1[0] = (log2_approx(avg_1[0])/2) - 13 + interf_unaw_shift;
- pdsch_vars[eNB_id]->log2_maxh0 = cmax(avg_0[0],0);
- pdsch_vars[eNB_id]->log2_maxh1 = cmax(avg_1[0],0);
- }
- }
- else if (dlsch0_harq->mimo_moden_connected_eNB) && (dlsch0_harq->dl_power_off==0)) {
- dlsch_channel_level_TM56(pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- frame_parms,
- pdsch_vars[eNB_id]->pmi_ext,
- avg,
- symbol,
- nb_rb);
- avg[0] = log2_approx(avg[0]) - 13 + offset_mumimo_llr_drange[dlsch0_harq->mcs][(i_mod>>1)-1];
- pdsch_vars[eNB_id]->log2_maxh = cmax(avg[0],0);
-
- }
- else if (dlsch0_harq->dl_power_off==1) { //TM6
-
- dlsch_channel_level(pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- frame_parms,
- avg,
- symbol,
- nb_rb);
-
- avgs = 0;
- for (aatx=0;aatxnb_antenna_ports_eNB;aatx++)
- for (aarx=0;aarxnb_antennas_rx;aarx++)
- avgs = cmax(avgs,avg[(aatx<<1)+aarx]);
-
- pdsch_vars[eNB_id]->log2_maxh = (log2_approx(avgs)/2) + 1;
- pdsch_vars[eNB_id]->log2_maxh++;
-
- }
- }
-
- }
- else if (beamforming_mode==7)
- dlsch_channel_level_TM7(pdsch_vars[eNB_id]->dl_bf_ch_estimates_ext,
- frame_parms,
- avg,
- symbol,
- nb_rb);
-#ifdef UE_DEBUG_TRACE
- LOG_D(PHY,"[DLSCH] AbsSubframe %d.%d log2_maxh = %d [log2_maxh0 %d log2_maxh1 %d] (%d,%d)\n",
- frame%1024,subframe, pdsch_vars[eNB_id]->log2_maxh,
- pdsch_vars[eNB_id]->log2_maxh0,
- pdsch_vars[eNB_id]->log2_maxh1,
- avg[0],avgs);
- //LOG_D(PHY,"[DLSCH] mimo_mode = %d\n", dlsch0_harq->mimo_mode);
-#endif
-
- //wait until pdcch is decoded
- //proc->channel_level = 1;
- }
-
- /*
- uint32_t wait = 0;
- while(proc->channel_level == 0)
- {
- usleep(1);
- wait++;
- }
- */
-
-#if T_TRACER
- if (type == PDSCH)
- {
- T(T_UE_PHY_PDSCH_ENERGY, T_INT(eNB_id), T_INT(frame%1024), T_INT(subframe),
- T_INT(avg[0]), T_INT(avg[1]), T_INT(avg[2]), T_INT(avg[3]));
- }
-#endif
-
-#if UE_TIMING_TRACE
- stop_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#if DISABLE_LOG_X
- printf("[AbsSFN %d.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f \n",frame,subframe,slot,symbol,first_symbol_flag,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#else
- LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d first_symbol_flag %d: Channel Level %5.2f \n",frame,subframe,slot,symbol,first_symbol_flag,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#endif
-#endif
-
-
-#if UE_TIMING_TRACE
- start_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#endif
-// Now channel compensation
- if (dlsch0_harq->mimo_moderxdataF_ext,
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- (aatx>1) ? pdsch_vars[eNB_id]->rho : NULL,
- frame_parms,
- symbol,
- first_symbol_flag,
- dlsch0_harq->Qm,
- nb_rb,
- pdsch_vars[eNB_id]->log2_maxh,
- measurements); // log2_maxh+I0_shift
- /*if (symbol == 5) {
- write_output("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);
- } */
- if ((rx_type==rx_IC_single_stream) &&
- (eNB_id_in_connected_eNB)) {
- dlsch_channel_compensation(pdsch_vars[eNB_id_i]->rxdataF_ext,
- pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id_i]->dl_ch_mag0,
- pdsch_vars[eNB_id_i]->dl_ch_magb0,
- pdsch_vars[eNB_id_i]->rxdataF_comp0,
- (aatx>1) ? pdsch_vars[eNB_id_i]->rho : NULL,
- frame_parms,
- symbol,
- first_symbol_flag,
- i_mod,
- nb_rb,
- pdsch_vars[eNB_id]->log2_maxh,
- measurements); // log2_maxh+I0_shift
-#ifdef DEBUG_PHY
- if (symbol == 5) {
- write_output("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);
- write_output("rxF_comp_i.m","rxF_c_i",&pdsch_vars[eNB_id_i]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);
- }
-#endif
-
- dlsch_dual_stream_correlation(frame_parms,
- symbol,
- nb_rb,
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->log2_maxh);
- }
- } else if ((dlsch0_harq->mimo_mode == LARGE_CDD) || ((dlsch0_harq->mimo_mode >=DUALSTREAM_UNIFORM_PRECODING1) &&
- (dlsch0_harq->mimo_mode <=DUALSTREAM_PUSCH_PRECODING))){
- dlsch_channel_compensation_TM34(frame_parms,
- pdsch_vars[eNB_id],
- measurements,
- eNB_id,
- symbol,
- dlsch0_harq->Qm,
- dlsch1_harq->Qm,
- harq_pid,
- dlsch0_harq->round,
- dlsch0_harq->mimo_mode,
- nb_rb,
- pdsch_vars[eNB_id]->log2_maxh0,
- pdsch_vars[eNB_id]->log2_maxh1);
- /* if (symbol == 5) {
- write_output("rxF_comp_d00.m","rxF_c_d00",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM
- write_output("rxF_comp_d01.m","rxF_c_d01",&pdsch_vars[eNB_id]->rxdataF_comp0[1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0
- write_output("rxF_comp_d10.m","rxF_c_d10",&pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0
- write_output("rxF_comp_d11.m","rxF_c_d11",&pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be QAM
- } */
- // compute correlation between signal and interference channels (rho12 and rho21)
- dlsch_dual_stream_correlation(frame_parms, // this is doing h11'*h12 and h21'*h22
- symbol,
- nb_rb,
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- &(pdsch_vars[eNB_id]->dl_ch_estimates_ext[2]),
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->log2_maxh0);
- //printf("rho stream1 =%d\n", &pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round] );
- //to be optimized (just take complex conjugate)
- dlsch_dual_stream_correlation(frame_parms, // this is doing h12'*h11 and h22'*h21
- symbol,
- nb_rb,
- &(pdsch_vars[eNB_id]->dl_ch_estimates_ext[2]),
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->log2_maxh1);
- // printf("rho stream2 =%d\n",&pdsch_vars[eNB_id]->dl_ch_rho2_ext );
- //printf("TM3 log2_maxh : %d\n",pdsch_vars[eNB_id]->log2_maxh);
- /* if (symbol == 5) {
- write_output("rho0_0.m","rho0_0",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM
- write_output("rho2_0.m","rho2_0",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0
- write_output("rho0_1.m.m","rho0_1",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0
- write_output("rho2_1.m","rho2_1",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[1][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be QAM
- } */
-
- } else if (dlsch0_harq->mimo_moden_connected_eNB) && (dlsch0_harq->dl_power_off==0)) {
- dlsch_channel_compensation_TM56(pdsch_vars[eNB_id]->rxdataF_ext,
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- pdsch_vars[eNB_id]->pmi_ext,
- frame_parms,
- measurements,
- eNB_id,
- symbol,
- dlsch0_harq->Qm,
- nb_rb,
- pdsch_vars[eNB_id]->log2_maxh,
- dlsch0_harq->dl_power_off);
-
- for (rb=0; rbpmi_ext[rb]) {
- case 0:
- pdsch_vars[eNB_id_i]->pmi_ext[rb]=1;
- break;
- case 1:
- pdsch_vars[eNB_id_i]->pmi_ext[rb]=0;
- break;
- case 2:
- pdsch_vars[eNB_id_i]->pmi_ext[rb]=3;
- break;
- case 3:
- pdsch_vars[eNB_id_i]->pmi_ext[rb]=2;
- break;
- }
- // if (rb==0)
- // printf("pmi %d, pmi_i %d\n",pdsch_vars[eNB_id]->pmi_ext[rb],pdsch_vars[eNB_id_i]->pmi_ext[rb]);
- }
- dlsch_channel_compensation_TM56(pdsch_vars[eNB_id_i]->rxdataF_ext,
- pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id_i]->dl_ch_mag0,
- pdsch_vars[eNB_id_i]->dl_ch_magb0,
- pdsch_vars[eNB_id_i]->rxdataF_comp0,
- pdsch_vars[eNB_id_i]->pmi_ext,
- frame_parms,
- measurements,
- eNB_id_i,
- symbol,
- i_mod,
- nb_rb,
- pdsch_vars[eNB_id]->log2_maxh,
- dlsch0_harq->dl_power_off);
-#ifdef DEBUG_PHY
- if (symbol==5) {
- write_output("rxF_comp_d.m","rxF_c_d",&pdsch_vars[eNB_id]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);
- write_output("rxF_comp_i.m","rxF_c_i",&pdsch_vars[eNB_id_i]->rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);
- }
-#endif
- dlsch_dual_stream_correlation(frame_parms,
- symbol,
- nb_rb,
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id_i]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->log2_maxh);
- } else if (dlsch0_harq->dl_power_off==1) {
- dlsch_channel_compensation_TM56(pdsch_vars[eNB_id]->rxdataF_ext,
- pdsch_vars[eNB_id]->dl_ch_estimates_ext,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- pdsch_vars[eNB_id]->pmi_ext,
- frame_parms,
- measurements,
- eNB_id,
- symbol,
- dlsch0_harq->Qm,
- nb_rb,
- pdsch_vars[eNB_id]->log2_maxh,
- 1);
-
- }
-
-
- } else if (dlsch0_harq->mimo_mode==TM7) { //TM7
-
- dlsch_channel_compensation(pdsch_vars[eNB_id]->rxdataF_ext,
- pdsch_vars[eNB_id]->dl_bf_ch_estimates_ext,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- (aatx>1) ? pdsch_vars[eNB_id]->rho : NULL,
- frame_parms,
- symbol,
- first_symbol_flag,
- get_Qm(dlsch0_harq->mcs),
- nb_rb,
- //9,
- pdsch_vars[eNB_id]->log2_maxh,
- measurements); // log2_maxh+I0_shift
- }
-
-#if UE_TIMING_TRACE
- stop_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#if DISABLE_LOG_X
- printf("[AbsSFN %d.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f \n",frame,subframe,slot,symbol,pdsch_vars[eNB_id]->log2_maxh,proc->channel_level,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#else
- LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d log2_maxh %d channel_level %d: Channel Comp %5.2f \n",frame,subframe,slot,symbol,pdsch_vars[eNB_id]->log2_maxh,proc->channel_level,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#endif
-#endif
-// MRC
-#if UE_TIMING_TRACE
- start_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#endif
-
- if (frame_parms->nb_antennas_rx > 1) {
- if ((dlsch0_harq->mimo_mode == LARGE_CDD) ||
- ((dlsch0_harq->mimo_mode >=DUALSTREAM_UNIFORM_PRECODING1) &&
- (dlsch0_harq->mimo_mode <=DUALSTREAM_PUSCH_PRECODING))){ // TM3 or TM4
- if (frame_parms->nb_antenna_ports_eNB == 2) {
- dlsch_detection_mrc_TM34(frame_parms,
- pdsch_vars[eNB_id],
- harq_pid,
- dlsch0_harq->round,
- symbol,
- nb_rb,
- 1);
- /* if (symbol == 5) {
- write_output("rho0_mrc.m","rho0_0",&pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round][0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);// should be QAM
- write_output("rho2_mrc.m","rho2_0",&pdsch_vars[eNB_id]->dl_ch_rho2_ext[0][symbol*frame_parms->N_RB_DL*12],frame_parms->N_RB_DL*12,1,1);//should be almost 0
- } */
- }
- } else {
- dlsch_detection_mrc(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- pdsch_vars[eNB_id_i]->rxdataF_comp0,
- pdsch_vars[eNB_id]->rho,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- pdsch_vars[eNB_id_i]->dl_ch_mag0,
- pdsch_vars[eNB_id_i]->dl_ch_magb0,
- symbol,
- nb_rb,
- rx_type==rx_IC_single_stream);
- }
- }
- // printf("Combining");
- if ((dlsch0_harq->mimo_mode == SISO) ||
- ((dlsch0_harq->mimo_mode >= UNIFORM_PRECODING11) &&
- (dlsch0_harq->mimo_mode <= PUSCH_PRECODING0)) ||
- (dlsch0_harq->mimo_mode == TM7)) {
- /*
- dlsch_siso(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp,
- pdsch_vars[eNB_id_i]->rxdataF_comp,
- symbol,
- nb_rb);
- */
- } else if (dlsch0_harq->mimo_mode == ALAMOUTI) {
- dlsch_alamouti(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- symbol,
- nb_rb);
- }
-
- // printf("LLR");
- if ((dlsch0_harq->mimo_mode == LARGE_CDD) ||
- ((dlsch0_harq->mimo_mode >=DUALSTREAM_UNIFORM_PRECODING1) &&
- (dlsch0_harq->mimo_mode <=DUALSTREAM_PUSCH_PRECODING))) {
- rxdataF_comp_ptr = pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round];
- dl_ch_mag_ptr = pdsch_vars[eNB_id]->dl_ch_mag1[harq_pid][round];
- }
- else {
- rxdataF_comp_ptr = pdsch_vars[eNB_id_i]->rxdataF_comp0;
- dl_ch_mag_ptr = pdsch_vars[eNB_id_i]->dl_ch_mag0;
- //i_mod should have been passed as a parameter
- }
-
-#if UE_TIMING_TRACE
- stop_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#if DISABLE_LOG_X
- printf("[AbsSFN %d.%d] Slot%d Symbol %d: Channel Combine %5.2f \n",frame,subframe,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#else
- LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d: Channel Combine %5.2f \n",frame,subframe,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#endif
-#endif
-
-#if UE_TIMING_TRACE
- start_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#endif
- //printf("LLR dlsch0_harq->Qm %d rx_type %d cw0 %d cw1 %d symbol %d \n",dlsch0_harq->Qm,rx_type,codeword_TB0,codeword_TB1,symbol);
- // compute LLRs
- // -> // compute @pointer where llrs should filled for this ofdm-symbol
- int8_t *pllr_symbol_cw0;
- int8_t *pllr_symbol_cw1;
- uint32_t llr_offset_symbol;
- llr_offset_symbol = pdsch_vars[eNB_id]->llr_offset[symbol];
- pllr_symbol_cw0 = (int8_t*)pdsch_vars[eNB_id]->llr[0];
- pllr_symbol_cw1 = (int8_t*)pdsch_vars[eNB_id]->llr[1];
- pllr_symbol_cw0 += llr_offset_symbol;
- pllr_symbol_cw1 += llr_offset_symbol;
-
- LOG_I(PHY,"compute LLRs [AbsSubframe %d.%d-%d] NbRB %d Qm %d LLRs-Length %d LLR-Offset %d @LLR Buff %p @LLR Buff(symb) %p\n",
- frame, subframe,symbol,
- nb_rb,dlsch0_harq->Qm,
- pdsch_vars[eNB_id]->llr_length[symbol],
- pdsch_vars[eNB_id]->llr_offset[symbol],
- (int16_t*)pdsch_vars[eNB_id]->llr[0],
- pllr_symbol_cw0);
-
- switch (dlsch0_harq->Qm) {
- case 2 :
- if ((rx_type==rx_standard) || (codeword_TB1 == -1)) {
-
-
- dlsch_qpsk_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- (int16_t*)pllr_symbol_cw0,
- symbol,
- first_symbol_flag,
- nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,2,subframe,symbol),
- beamforming_mode);
-
- } else if (codeword_TB0 == -1){
-
- dlsch_qpsk_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- (int16_t*)pllr_symbol_cw1,
- symbol,
- first_symbol_flag,
- nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,2,subframe,symbol),
- beamforming_mode);
- }
- else if (rx_type >= rx_IC_single_stream) {
- if (dlsch1_harq->Qm == 2) {
- dlsch_qpsk_qpsk_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->llr[0],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,2,subframe,symbol),
- pdsch_vars[eNB_id]->llr128);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_qpsk_qpsk_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->llr[1],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,2,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream);
- }
- }
- else if (dlsch1_harq->Qm == 4) {
- dlsch_qpsk_16qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,//i
- dl_ch_mag_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->llr[0],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,2,subframe,symbol),
- pdsch_vars[eNB_id]->llr128);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_16qam_qpsk_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,//i
- dl_ch_mag_ptr,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->llr[1],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream);
- }
- }
- else {
- dlsch_qpsk_64qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,//i
- dl_ch_mag_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->llr[0],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,2,subframe,symbol),
- pdsch_vars[eNB_id]->llr128);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_64qam_qpsk_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,//i
- dl_ch_mag_ptr,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->llr[1],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream);
- }
- }
- }
- break;
- case 4 :
- if ((rx_type==rx_standard ) || (codeword_TB1 == -1)) {
- dlsch_16qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- pdsch_vars[eNB_id]->llr[0],
- pdsch_vars[eNB_id]->dl_ch_mag0,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128,
- beamforming_mode);
- } else if (codeword_TB0 == -1){
- dlsch_16qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- pdsch_vars[eNB_id]->llr[1],
- pdsch_vars[eNB_id]->dl_ch_mag0,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream,
- beamforming_mode);
- }
- else if (rx_type >= rx_IC_single_stream) {
- if (dlsch1_harq->Qm == 2) {
- dlsch_16qam_qpsk_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->llr[0],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_qpsk_16qam_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,//i
- pdsch_vars[eNB_id]->dl_ch_mag0,//i
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->llr[1],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,2,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream);
- }
- }
- else if (dlsch1_harq->Qm == 4) {
- dlsch_16qam_16qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_mag0,
- dl_ch_mag_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->llr[0],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_16qam_16qam_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,//i
- dl_ch_mag_ptr,
- pdsch_vars[eNB_id]->dl_ch_mag0,//i
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->llr[1],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream);
- }
- }
- else {
- dlsch_16qam_64qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_mag0,
- dl_ch_mag_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->llr[0],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_64qam_16qam_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- dl_ch_mag_ptr,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->llr[1],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream);
- }
- }
- }
- break;
- case 6 :
- if ((rx_type==rx_standard) || (codeword_TB1 == -1)) {
- dlsch_64qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- (int16_t*)pllr_symbol_cw0,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr_offset[symbol],
- beamforming_mode);
- } else if (codeword_TB0 == -1){
- dlsch_64qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- (int16_t*)pllr_symbol_cw1,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr_offset[symbol],
- beamforming_mode);
- }
- else if (rx_type >= rx_IC_single_stream) {
- if (dlsch1_harq->Qm == 2) {
- dlsch_64qam_qpsk_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->llr[0],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr128);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_qpsk_64qam_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,//i
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->llr[1],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,2,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream);
- }
- }
- else if (dlsch1_harq->Qm == 4) {
- dlsch_64qam_16qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_mag0,
- dl_ch_mag_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- pdsch_vars[eNB_id]->llr[0],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr128);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_16qam_64qam_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,//i
- dl_ch_mag_ptr,
- pdsch_vars[eNB_id]->dl_ch_mag0,//i
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- pdsch_vars[eNB_id]->llr[1],
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128_2ndstream);
- }
- }
- else {
- dlsch_64qam_64qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- rxdataF_comp_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_mag0,
- dl_ch_mag_ptr,//i
- pdsch_vars[eNB_id]->dl_ch_rho2_ext,
- (int16_t*)pllr_symbol_cw0,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr_offset[symbol]);
- if (rx_type==rx_IC_dual_stream) {
- dlsch_64qam_64qam_llr(frame_parms,
- rxdataF_comp_ptr,
- pdsch_vars[eNB_id]->rxdataF_comp0,//i
- dl_ch_mag_ptr,
- pdsch_vars[eNB_id]->dl_ch_mag0,//i
- pdsch_vars[eNB_id]->dl_ch_rho_ext[harq_pid][round],
- (int16_t*)pllr_symbol_cw1,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch1_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr_offset[symbol]);
- }
- }
- }
- break;
- default:
- LOG_W(PHY,"rx_dlsch.c : Unknown mod_order!!!!\n");
- return(-1);
- break;
- }
- if (dlsch1_harq) {
- switch (get_Qm(dlsch1_harq->mcs)) {
- case 2 :
- if (rx_type==rx_standard) {
- dlsch_qpsk_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- (int16_t*)pllr_symbol_cw0,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,2,subframe,symbol),
- beamforming_mode);
- }
- break;
- case 4:
- if (rx_type==rx_standard) {
- dlsch_16qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- pdsch_vars[eNB_id]->llr[0],
- pdsch_vars[eNB_id]->dl_ch_mag0,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,4,subframe,symbol),
- pdsch_vars[eNB_id]->llr128,
- beamforming_mode);
- }
- break;
- case 6 :
- if (rx_type==rx_standard) {
- dlsch_64qam_llr(frame_parms,
- pdsch_vars[eNB_id]->rxdataF_comp0,
- (int16_t*)pllr_symbol_cw0,
- pdsch_vars[eNB_id]->dl_ch_mag0,
- pdsch_vars[eNB_id]->dl_ch_magb0,
- symbol,first_symbol_flag,nb_rb,
- adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,6,subframe,symbol),
- pdsch_vars[eNB_id]->llr_offset[symbol],
- beamforming_mode);
- }
- break;
- default:
- LOG_W(PHY,"rx_dlsch.c : Unknown mod_order!!!!\n");
- return(-1);
- break;
- }
- }
-
-#if UE_TIMING_TRACE
- stop_meas(&ue->generic_stat_bis[ue->current_thread_id[subframe]][slot]);
-#if DISABLE_LOG_X
- printf("[AbsSFN %d.%d] Slot%d Symbol %d: LLR Computation %5.2f \n",frame,subframe,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#else
- LOG_I(PHY, "[AbsSFN %d.%d] Slot%d Symbol %d: LLR Computation %5.2f \n",frame,subframe,slot,symbol,ue->generic_stat_bis[ue->current_thread_id[subframe]][slot].p_time/(cpuf*1000.0));
-#endif
-#endif
-// Please keep it: useful for debugging
-#if 0
- if( (symbol == 13) && (subframe==0) && (dlsch0_harq->Qm == 6) /*&& (nb_rb==25)*/)
- {
- LOG_E(PHY,"Dump Phy Chan Est \n");
- if(1)
- {
-#if 1
- write_output("rxdataF0.m" , "rxdataF0", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1);
- //write_output("rxdataF1.m" , "rxdataF1", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].rxdataF[0][0],14*frame_parms->ofdm_symbol_size,1,1);
- write_output("dl_ch_estimates00.m", "dl_ch_estimates00", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][0][0],14*frame_parms->ofdm_symbol_size,1,1);
- //write_output("dl_ch_estimates01.m", "dl_ch_estimates01", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][1][0],14*frame_parms->ofdm_symbol_size,1,1);
- //write_output("dl_ch_estimates10.m", "dl_ch_estimates10", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][2][0],14*frame_parms->ofdm_symbol_size,1,1);
- //write_output("dl_ch_estimates11.m", "dl_ch_estimates11", &common_vars->common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id][3][0],14*frame_parms->ofdm_symbol_size,1,1);
-
-
- //write_output("rxdataF_ext00.m" , "rxdataF_ext00", &pdsch_vars[eNB_id]->rxdataF_ext[0][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("rxdataF_ext01.m" , "rxdataF_ext01", &pdsch_vars[eNB_id]->rxdataF_ext[1][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("rxdataF_ext10.m" , "rxdataF_ext10", &pdsch_vars[eNB_id]->rxdataF_ext[2][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("rxdataF_ext11.m" , "rxdataF_ext11", &pdsch_vars[eNB_id]->rxdataF_ext[3][0],14*frame_parms->N_RB_DL*12,1,1);
- write_output("dl_ch_estimates_ext00.m", "dl_ch_estimates_ext00", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[0][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("dl_ch_estimates_ext01.m", "dl_ch_estimates_ext01", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[1][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("dl_ch_estimates_ext10.m", "dl_ch_estimates_ext10", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[2][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("dl_ch_estimates_ext11.m", "dl_ch_estimates_ext11", &pdsch_vars[eNB_id]->dl_ch_estimates_ext[3][0],14*frame_parms->N_RB_DL*12,1,1);
- write_output("rxdataF_comp00.m","rxdataF_comp00", &pdsch_vars[eNB_id]->rxdataF_comp0[0][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("rxdataF_comp01.m","rxdataF_comp01", &pdsch_vars[eNB_id]->rxdataF_comp0[1][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("rxdataF_comp10.m","rxdataF_comp10", &pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][0][0],14*frame_parms->N_RB_DL*12,1,1);
- //write_output("rxdataF_comp11.m","rxdataF_comp11", &pdsch_vars[eNB_id]->rxdataF_comp1[harq_pid][round][1][0],14*frame_parms->N_RB_DL*12,1,1);
-#endif
- write_output("llr0.m","llr0", &pdsch_vars[eNB_id]->llr[0][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
- //write_output("llr1.m","llr1", &pdsch_vars[eNB_id]->llr[1][0],(14*nb_rb*12*dlsch1_harq->Qm) - 4*(nb_rb*4*dlsch1_harq->Qm),1,0);
-
-
- AssertFatal(0," ");
- }
-
- }
-#endif
-
- T(T_UE_PHY_PDSCH_IQ, T_INT(eNB_id), T_INT(frame%1024),
- T_INT(subframe), T_INT(nb_rb),
- T_INT(frame_parms->N_RB_UL), T_INT(frame_parms->symbols_per_tti),
- T_BUFFER(&pdsch_vars[eNB_id]->rxdataF_comp0[eNB_id][0],
- 2 * /* ulsch[UE_id]->harq_processes[harq_pid]->nb_rb */ frame_parms->N_RB_UL *12*frame_parms->symbols_per_tti*2));
-
- return 0;
-}
-
-//==============================================================================================
-// Pre-processing for LLR computation
-//==============================================================================================
-
-void dlsch_channel_compensation(int **rxdataF_ext,
- int **dl_ch_estimates_ext,
- int **dl_ch_mag,
- int **dl_ch_magb,
- int **rxdataF_comp,
- int **rho,
- LTE_DL_FRAME_PARMS *frame_parms,
- unsigned char symbol,
- uint8_t first_symbol_flag,
- unsigned char mod_order,
- unsigned short nb_rb,
- unsigned char output_shift,
- PHY_MEASUREMENTS *measurements)
-{
-
-#if defined(__i386) || defined(__x86_64)
-
- unsigned short rb;
- unsigned char aatx,aarx,symbol_mod,pilots=0;
- __m128i *dl_ch128,*dl_ch128_2,*dl_ch_mag128,*dl_ch_mag128b,*rxdataF128,*rxdataF_comp128,*rho128;
- __m128i mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3,QAM_amp128,QAM_amp128b;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) {
-
- if (frame_parms->nb_antenna_ports_eNB==1) // 10 out of 12 so don't reduce size
- nb_rb=1+(5*nb_rb/6);
- else
- pilots=1;
- }
-
- for (aatx=0; aatxnb_antenna_ports_eNB; aatx++) {
- if (mod_order == 4) {
- QAM_amp128 = _mm_set1_epi16(QAM16_n1); // 2/sqrt(10)
- QAM_amp128b = _mm_setzero_si128();
- } else if (mod_order == 6) {
- QAM_amp128 = _mm_set1_epi16(QAM64_n1); //
- QAM_amp128b = _mm_set1_epi16(QAM64_n2);
- }
-
- // printf("comp: rxdataF_comp %p, symbol %d\n",rxdataF_comp[0],symbol);
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
- dl_ch128 = (__m128i *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128 = (__m128i *)&dl_ch_mag[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128b = (__m128i *)&dl_ch_magb[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128 = (__m128i *)&rxdataF_comp[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
-
-
- for (rb=0; rb2) {
- // get channel amplitude if not QPSK
-
- mmtmpD0 = _mm_madd_epi16(dl_ch128[0],dl_ch128[0]);
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
-
- mmtmpD1 = _mm_madd_epi16(dl_ch128[1],dl_ch128[1]);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
-
- mmtmpD0 = _mm_packs_epi32(mmtmpD0,mmtmpD1);
-
- // store channel magnitude here in a new field of dlsch
-
- dl_ch_mag128[0] = _mm_unpacklo_epi16(mmtmpD0,mmtmpD0);
- dl_ch_mag128b[0] = dl_ch_mag128[0];
- dl_ch_mag128[0] = _mm_mulhi_epi16(dl_ch_mag128[0],QAM_amp128);
- dl_ch_mag128[0] = _mm_slli_epi16(dl_ch_mag128[0],1);
- //print_ints("Re(ch):",(int16_t*)&mmtmpD0);
- //print_shorts("QAM_amp:",(int16_t*)&QAM_amp128);
- //print_shorts("mag:",(int16_t*)&dl_ch_mag128[0]);
- dl_ch_mag128[1] = _mm_unpackhi_epi16(mmtmpD0,mmtmpD0);
- dl_ch_mag128b[1] = dl_ch_mag128[1];
- dl_ch_mag128[1] = _mm_mulhi_epi16(dl_ch_mag128[1],QAM_amp128);
- dl_ch_mag128[1] = _mm_slli_epi16(dl_ch_mag128[1],1);
-
- if (pilots==0) {
- mmtmpD0 = _mm_madd_epi16(dl_ch128[2],dl_ch128[2]);
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
- mmtmpD1 = _mm_packs_epi32(mmtmpD0,mmtmpD0);
-
- dl_ch_mag128[2] = _mm_unpacklo_epi16(mmtmpD1,mmtmpD1);
- dl_ch_mag128b[2] = dl_ch_mag128[2];
-
- dl_ch_mag128[2] = _mm_mulhi_epi16(dl_ch_mag128[2],QAM_amp128);
- dl_ch_mag128[2] = _mm_slli_epi16(dl_ch_mag128[2],1);
- }
-
- dl_ch_mag128b[0] = _mm_mulhi_epi16(dl_ch_mag128b[0],QAM_amp128b);
- dl_ch_mag128b[0] = _mm_slli_epi16(dl_ch_mag128b[0],1);
-
-
- dl_ch_mag128b[1] = _mm_mulhi_epi16(dl_ch_mag128b[1],QAM_amp128b);
- dl_ch_mag128b[1] = _mm_slli_epi16(dl_ch_mag128b[1],1);
-
- if (pilots==0) {
- dl_ch_mag128b[2] = _mm_mulhi_epi16(dl_ch_mag128b[2],QAM_amp128b);
- dl_ch_mag128b[2] = _mm_slli_epi16(dl_ch_mag128b[2],1);
- }
- }
-
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch128[0],rxdataF128[0]);
- // print_ints("re",&mmtmpD0);
-
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch128[0],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)&conjugate[0]);
- // print_ints("im",&mmtmpD1);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[0]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
- // print_ints("re(shift)",&mmtmpD0);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
- // print_ints("im(shift)",&mmtmpD1);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
- // print_ints("c0",&mmtmpD2);
- // print_ints("c1",&mmtmpD3);
- rxdataF_comp128[0] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128);
- // print_shorts("ch:",dl_ch128);
- // print_shorts("pack:",rxdataF_comp128);
-
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch128[1],rxdataF128[1]);
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch128[1],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[1]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
- rxdataF_comp128[1] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128+1);
- // print_shorts("ch:",dl_ch128+1);
- // print_shorts("pack:",rxdataF_comp128+1);
-
- if (pilots==0) {
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch128[2],rxdataF128[2]);
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch128[2],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[2]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
- rxdataF_comp128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128+2);
- // print_shorts("ch:",dl_ch128+2);
- // print_shorts("pack:",rxdataF_comp128+2);
-
- dl_ch128+=3;
- dl_ch_mag128+=3;
- dl_ch_mag128b+=3;
- rxdataF128+=3;
- rxdataF_comp128+=3;
- } else { // we have a smaller PDSCH in symbols with pilots so skip last group of 4 REs and increment less
- dl_ch128+=2;
- dl_ch_mag128+=2;
- dl_ch_mag128b+=2;
- rxdataF128+=2;
- rxdataF_comp128+=2;
- }
-
- }
- }
- }
-
- if (rho) {
-
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- rho128 = (__m128i *)&rho[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch128_2 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0; rbrx_correlation[0][aarx] = signal_energy(&rho[aarx][symbol*frame_parms->N_RB_DL*12],rb*12);
- }
- }
- }
-
- _mm_empty();
- _m_empty();
-
-#elif defined(__arm__)
-
-
- unsigned short rb;
- unsigned char aatx,aarx,symbol_mod,pilots=0;
-
- int16x4_t *dl_ch128,*dl_ch128_2,*rxdataF128;
- int32x4_t mmtmpD0,mmtmpD1,mmtmpD0b,mmtmpD1b;
- int16x8_t *dl_ch_mag128,*dl_ch_mag128b,mmtmpD2,mmtmpD3,mmtmpD4;
- int16x8_t QAM_amp128,QAM_amp128b;
- int16x4x2_t *rxdataF_comp128,*rho128;
-
- int16_t conj[4]__attribute__((aligned(16))) = {1,-1,1,-1};
- int32x4_t output_shift128 = vmovq_n_s32(-(int32_t)output_shift);
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) {
- if (frame_parms->nb_antenna_ports_eNB==1) { // 10 out of 12 so don't reduce size
- nb_rb=1+(5*nb_rb/6);
- }
- else {
- pilots=1;
- }
- }
-
- for (aatx=0; aatxnb_antenna_ports_eNB; aatx++) {
- if (mod_order == 4) {
- QAM_amp128 = vmovq_n_s16(QAM16_n1); // 2/sqrt(10)
- QAM_amp128b = vmovq_n_s16(0);
- } else if (mod_order == 6) {
- QAM_amp128 = vmovq_n_s16(QAM64_n1); //
- QAM_amp128b = vmovq_n_s16(QAM64_n2);
- }
- // printf("comp: rxdataF_comp %p, symbol %d\n",rxdataF_comp[0],symbol);
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- dl_ch128 = (int16x4_t*)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128 = (int16x8_t*)&dl_ch_mag[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128b = (int16x8_t*)&dl_ch_magb[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF128 = (int16x4_t*)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128 = (int16x4x2_t*)&rxdataF_comp[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0; rb2) {
- // get channel amplitude if not QPSK
- mmtmpD0 = vmull_s16(dl_ch128[0], dl_ch128[0]);
- // mmtmpD0 = [ch0*ch0,ch1*ch1,ch2*ch2,ch3*ch3];
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- // mmtmpD0 = [ch0*ch0 + ch1*ch1,ch0*ch0 + ch1*ch1,ch2*ch2 + ch3*ch3,ch2*ch2 + ch3*ch3]>>output_shift128 on 32-bits
- mmtmpD1 = vmull_s16(dl_ch128[1], dl_ch128[1]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD2 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- // mmtmpD2 = [ch0*ch0 + ch1*ch1,ch0*ch0 + ch1*ch1,ch2*ch2 + ch3*ch3,ch2*ch2 + ch3*ch3,ch4*ch4 + ch5*ch5,ch4*ch4 + ch5*ch5,ch6*ch6 + ch7*ch7,ch6*ch6 + ch7*ch7]>>output_shift128 on 16-bits
- mmtmpD0 = vmull_s16(dl_ch128[2], dl_ch128[2]);
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- mmtmpD1 = vmull_s16(dl_ch128[3], dl_ch128[3]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD3 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- if (pilots==0) {
- mmtmpD0 = vmull_s16(dl_ch128[4], dl_ch128[4]);
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- mmtmpD1 = vmull_s16(dl_ch128[5], dl_ch128[5]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD4 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- }
-
- dl_ch_mag128b[0] = vqdmulhq_s16(mmtmpD2,QAM_amp128b);
- dl_ch_mag128b[1] = vqdmulhq_s16(mmtmpD3,QAM_amp128b);
- dl_ch_mag128[0] = vqdmulhq_s16(mmtmpD2,QAM_amp128);
- dl_ch_mag128[1] = vqdmulhq_s16(mmtmpD3,QAM_amp128);
-
- if (pilots==0) {
- dl_ch_mag128b[2] = vqdmulhq_s16(mmtmpD4,QAM_amp128b);
- dl_ch_mag128[2] = vqdmulhq_s16(mmtmpD4,QAM_amp128);
- }
- }
-
- mmtmpD0 = vmull_s16(dl_ch128[0], rxdataF128[0]);
- //mmtmpD0 = [Re(ch[0])Re(rx[0]) Im(ch[0])Im(ch[0]) Re(ch[1])Re(rx[1]) Im(ch[1])Im(ch[1])]
- mmtmpD1 = vmull_s16(dl_ch128[1], rxdataF128[1]);
- //mmtmpD1 = [Re(ch[2])Re(rx[2]) Im(ch[2])Im(ch[2]) Re(ch[3])Re(rx[3]) Im(ch[3])Im(ch[3])]
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
- //mmtmpD0 = [Re(ch[0])Re(rx[0])+Im(ch[0])Im(ch[0]) Re(ch[1])Re(rx[1])+Im(ch[1])Im(ch[1]) Re(ch[2])Re(rx[2])+Im(ch[2])Im(ch[2]) Re(ch[3])Re(rx[3])+Im(ch[3])Im(ch[3])]
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch128[0],*(int16x4_t*)conj)), rxdataF128[0]);
- //mmtmpD0 = [-Im(ch[0])Re(rx[0]) Re(ch[0])Im(rx[0]) -Im(ch[1])Re(rx[1]) Re(ch[1])Im(rx[1])]
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch128[1],*(int16x4_t*)conj)), rxdataF128[1]);
- //mmtmpD0 = [-Im(ch[2])Re(rx[2]) Re(ch[2])Im(rx[2]) -Im(ch[3])Re(rx[3]) Re(ch[3])Im(rx[3])]
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
- //mmtmpD1 = [-Im(ch[0])Re(rx[0])+Re(ch[0])Im(rx[0]) -Im(ch[1])Re(rx[1])+Re(ch[1])Im(rx[1]) -Im(ch[2])Re(rx[2])+Re(ch[2])Im(rx[2]) -Im(ch[3])Re(rx[3])+Re(ch[3])Im(rx[3])]
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp128[0] = vzip_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- mmtmpD0 = vmull_s16(dl_ch128[2], rxdataF128[2]);
- mmtmpD1 = vmull_s16(dl_ch128[3], rxdataF128[3]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch128[2],*(int16x4_t*)conj)), rxdataF128[2]);
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch128[3],*(int16x4_t*)conj)), rxdataF128[3]);
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp128[1] = vzip_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- if (pilots==0) {
- mmtmpD0 = vmull_s16(dl_ch128[4], rxdataF128[4]);
- mmtmpD1 = vmull_s16(dl_ch128[5], rxdataF128[5]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch128[4],*(int16x4_t*)conj)), rxdataF128[4]);
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch128[5],*(int16x4_t*)conj)), rxdataF128[5]);
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
-
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp128[2] = vzip_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
-
- dl_ch128+=6;
- dl_ch_mag128+=3;
- dl_ch_mag128b+=3;
- rxdataF128+=6;
- rxdataF_comp128+=3;
-
- } else { // we have a smaller PDSCH in symbols with pilots so skip last group of 4 REs and increment less
- dl_ch128+=4;
- dl_ch_mag128+=2;
- dl_ch_mag128b+=2;
- rxdataF128+=4;
- rxdataF_comp128+=2;
- }
- }
- }
- }
-
- if (rho) {
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- rho128 = (int16x4x2_t*)&rho[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch128 = (int16x4_t*)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch128_2 = (int16x4_t*)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
- for (rb=0; rbrx_correlation[0][aarx] = signal_energy(&rho[aarx][symbol*frame_parms->N_RB_DL*12],rb*12);
- }
- }
- }
-#endif
-}
-
-#if defined(__x86_64__) || defined(__i386__)
-
-void prec2A_TM56_128(unsigned char pmi,__m128i *ch0,__m128i *ch1)
-{
-
- __m128i amp;
- amp = _mm_set1_epi16(ONE_OVER_SQRT2_Q15);
-
- switch (pmi) {
-
- case 0 : // +1 +1
- // print_shorts("phase 0 :ch0",ch0);
- // print_shorts("phase 0 :ch1",ch1);
- ch0[0] = _mm_adds_epi16(ch0[0],ch1[0]);
- break;
-
- case 1 : // +1 -1
- // print_shorts("phase 1 :ch0",ch0);
- // print_shorts("phase 1 :ch1",ch1);
- ch0[0] = _mm_subs_epi16(ch0[0],ch1[0]);
- // print_shorts("phase 1 :ch0-ch1",ch0);
- break;
-
- case 2 : // +1 +j
- ch1[0] = _mm_sign_epi16(ch1[0],*(__m128i*)&conjugate[0]);
- ch1[0] = _mm_shufflelo_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
- ch1[0] = _mm_shufflehi_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
- ch0[0] = _mm_subs_epi16(ch0[0],ch1[0]);
-
- break; // +1 -j
-
- case 3 :
- ch1[0] = _mm_sign_epi16(ch1[0],*(__m128i*)&conjugate[0]);
- ch1[0] = _mm_shufflelo_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
- ch1[0] = _mm_shufflehi_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
- ch0[0] = _mm_adds_epi16(ch0[0],ch1[0]);
- break;
- }
-
- ch0[0] = _mm_mulhi_epi16(ch0[0],amp);
- ch0[0] = _mm_slli_epi16(ch0[0],1);
-
- _mm_empty();
- _m_empty();
-}
-#elif defined(__arm__)
-void prec2A_TM56_128(unsigned char pmi,__m128i *ch0,__m128i *ch1) {
-
- // sqrt(2) is already taken into account in computation sqrt_rho_a, sqrt_rho_b,
- //so removed it
-
- //__m128i amp;
- //amp = _mm_set1_epi16(ONE_OVER_SQRT2_Q15);
-
- switch (pmi) {
-
- case 0 : // +1 +1
- // print_shorts("phase 0 :ch0",ch0);
- // print_shorts("phase 0 :ch1",ch1);
- ch0[0] = _mm_adds_epi16(ch0[0],ch1[0]);
- break;
- case 1 : // +1 -1
- // print_shorts("phase 1 :ch0",ch0);
- // print_shorts("phase 1 :ch1",ch1);
- ch0[0] = _mm_subs_epi16(ch0[0],ch1[0]);
- // print_shorts("phase 1 :ch0-ch1",ch0);
- break;
- case 2 : // +1 +j
- ch1[0] = _mm_sign_epi16(ch1[0],*(__m128i*)&conjugate[0]);
- ch1[0] = _mm_shufflelo_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
- ch1[0] = _mm_shufflehi_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
- ch0[0] = _mm_subs_epi16(ch0[0],ch1[0]);
-
- break; // +1 -j
- case 3 :
- ch1[0] = _mm_sign_epi16(ch1[0],*(__m128i*)&conjugate[0]);
- ch1[0] = _mm_shufflelo_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
- ch1[0] = _mm_shufflehi_epi16(ch1[0],_MM_SHUFFLE(2,3,0,1));
- ch0[0] = _mm_adds_epi16(ch0[0],ch1[0]);
- break;
- }
-
- //ch0[0] = _mm_mulhi_epi16(ch0[0],amp);
- //ch0[0] = _mm_slli_epi16(ch0[0],1);
-
- _mm_empty();
- _m_empty();
-}
-#endif
-// precoding is stream 0 .5(1,1) .5(1,-1) .5(1,1) .5(1,-1)
-// stream 1 .5(1,-1) .5(1,1) .5(1,-1) .5(1,1)
-// store "precoded" channel for stream 0 in ch0, stream 1 in ch1
-
-short TM3_prec[8]__attribute__((aligned(16))) = {1,1,-1,-1,1,1,-1,-1} ;
-
-void prec2A_TM3_128(__m128i *ch0,__m128i *ch1) {
-
- __m128i amp = _mm_set1_epi16(ONE_OVER_SQRT2_Q15);
-
- __m128i tmp0,tmp1;
-
- //_mm_mulhi_epi16
- // print_shorts("prec2A_TM3 ch0 (before):",ch0);
- // print_shorts("prec2A_TM3 ch1 (before):",ch1);
-
- tmp0 = ch0[0];
- tmp1 = _mm_sign_epi16(ch1[0],((__m128i*)&TM3_prec)[0]);
- // print_shorts("prec2A_TM3 ch1*s (mid):",(__m128i*)TM3_prec);
-
- ch0[0] = _mm_adds_epi16(ch0[0],tmp1);
- ch1[0] = _mm_subs_epi16(tmp0,tmp1);
-
- ch0[0] = _mm_mulhi_epi16(ch0[0],amp);
- ch0[0] = _mm_slli_epi16(ch0[0],1);
-
- ch1[0] = _mm_mulhi_epi16(ch1[0],amp);
- ch1[0] = _mm_slli_epi16(ch1[0],1);
-
- // print_shorts("prec2A_TM3 ch0 (mid):",&tmp0);
- // print_shorts("prec2A_TM3 ch1 (mid):",ch1);
-
- //ch0[0] = _mm_mulhi_epi16(ch0[0],amp);
- //ch0[0] = _mm_slli_epi16(ch0[0],1);
- //ch1[0] = _mm_mulhi_epi16(ch1[0],amp);
- //ch1[0] = _mm_slli_epi16(ch1[0],1);
-
- //ch0[0] = _mm_srai_epi16(ch0[0],1);
- //ch1[0] = _mm_srai_epi16(ch1[0],1);
-
- // print_shorts("prec2A_TM3 ch0 (after):",ch0);
- // print_shorts("prec2A_TM3 ch1 (after):",ch1);
-
- _mm_empty();
- _m_empty();
-}
-
-// pmi = 0 => stream 0 (1,1), stream 1 (1,-1)
-// pmi = 1 => stream 0 (1,j), stream 2 (1,-j)
-
-void prec2A_TM4_128(int pmi,__m128i *ch0,__m128i *ch1) {
-
-// sqrt(2) is already taken into account in computation sqrt_rho_a, sqrt_rho_b,
-//so divide by 2 is replaced by divide by sqrt(2).
-
- // printf ("demod pmi=%d\n", pmi);
- __m128i amp;
- amp = _mm_set1_epi16(ONE_OVER_SQRT2_Q15);
- __m128i tmp0,tmp1;
-
- // print_shorts("prec2A_TM4 ch0 (before):",ch0);
- // print_shorts("prec2A_TM4 ch1 (before):",ch1);
-
- if (pmi == 0) { //[1 1;1 -1]
- tmp0 = ch0[0];
- tmp1 = ch1[0];
- ch0[0] = _mm_adds_epi16(tmp0,tmp1);
- ch1[0] = _mm_subs_epi16(tmp0,tmp1);
- }
- else { //ch0+j*ch1 ch0-j*ch1
- tmp0 = ch0[0];
- tmp1 = _mm_sign_epi16(ch1[0],*(__m128i*)&conjugate[0]);
- tmp1 = _mm_shufflelo_epi16(tmp1,_MM_SHUFFLE(2,3,0,1));
- tmp1 = _mm_shufflehi_epi16(tmp1,_MM_SHUFFLE(2,3,0,1));
- ch0[0] = _mm_subs_epi16(tmp0,tmp1);
- ch1[0] = _mm_add_epi16(tmp0,tmp1);
- }
-
- //print_shorts("prec2A_TM4 ch0 (middle):",ch0);
- //print_shorts("prec2A_TM4 ch1 (middle):",ch1);
-
- ch0[0] = _mm_mulhi_epi16(ch0[0],amp);
- ch0[0] = _mm_slli_epi16(ch0[0],1);
- ch1[0] = _mm_mulhi_epi16(ch1[0],amp);
- ch1[0] = _mm_slli_epi16(ch1[0],1);
-
-
- // ch0[0] = _mm_srai_epi16(ch0[0],1); //divide by 2
- // ch1[0] = _mm_srai_epi16(ch1[0],1); //divide by 2
- //print_shorts("prec2A_TM4 ch0 (end):",ch0);
- //print_shorts("prec2A_TM4 ch1 (end):",ch1);
- _mm_empty();
- _m_empty();
- // print_shorts("prec2A_TM4 ch0 (end):",ch0);
- //print_shorts("prec2A_TM4 ch1 (end):",ch1);
-}
-
-void dlsch_channel_compensation_TM56(int **rxdataF_ext,
- int **dl_ch_estimates_ext,
- int **dl_ch_mag,
- int **dl_ch_magb,
- int **rxdataF_comp,
- unsigned char *pmi_ext,
- LTE_DL_FRAME_PARMS *frame_parms,
- PHY_MEASUREMENTS *measurements,
- int eNB_id,
- unsigned char symbol,
- unsigned char mod_order,
- unsigned short nb_rb,
- unsigned char output_shift,
- unsigned char dl_power_off)
-{
-
-#if defined(__x86_64__) || defined(__i386__)
-
- unsigned short rb,Nre;
- __m128i *dl_ch0_128,*dl_ch1_128,*dl_ch_mag128,*dl_ch_mag128b,*rxdataF128,*rxdataF_comp128;
- unsigned char aarx=0,symbol_mod,pilots=0;
- int precoded_signal_strength=0;
- __m128i mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3,QAM_amp128,QAM_amp128b;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp)))
- pilots=1;
-
-
- //printf("comp prec: symbol %d, pilots %d\n",symbol, pilots);
-
- if (mod_order == 4) {
- QAM_amp128 = _mm_set1_epi16(QAM16_n1);
- QAM_amp128b = _mm_setzero_si128();
- } else if (mod_order == 6) {
- QAM_amp128 = _mm_set1_epi16(QAM64_n1);
- QAM_amp128b = _mm_set1_epi16(QAM64_n2);
- }
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
- dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
-
-
- dl_ch_mag128 = (__m128i *)&dl_ch_mag[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128b = (__m128i *)&dl_ch_magb[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128 = (__m128i *)&rxdataF_comp[aarx][symbol*frame_parms->N_RB_DL*12];
-
-
- for (rb=0; rb%d\n",rb,pmi_ext[rb]);
-#endif
- prec2A_TM56_128(pmi_ext[rb],&dl_ch0_128[0],&dl_ch1_128[0]);
- prec2A_TM56_128(pmi_ext[rb],&dl_ch0_128[1],&dl_ch1_128[1]);
-
- if (pilots==0) {
-
- prec2A_TM56_128(pmi_ext[rb],&dl_ch0_128[2],&dl_ch1_128[2]);
- }
-
- if (mod_order>2) {
- // get channel amplitude if not QPSK
-
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[0],dl_ch0_128[0]);
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
-
- mmtmpD1 = _mm_madd_epi16(dl_ch0_128[1],dl_ch0_128[1]);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
-
- mmtmpD0 = _mm_packs_epi32(mmtmpD0,mmtmpD1);
-
- dl_ch_mag128[0] = _mm_unpacklo_epi16(mmtmpD0,mmtmpD0);
- dl_ch_mag128b[0] = dl_ch_mag128[0];
- dl_ch_mag128[0] = _mm_mulhi_epi16(dl_ch_mag128[0],QAM_amp128);
- dl_ch_mag128[0] = _mm_slli_epi16(dl_ch_mag128[0],1);
-
-
- //print_shorts("dl_ch_mag128[0]=",&dl_ch_mag128[0]);
-
- //print_shorts("dl_ch_mag128[0]=",&dl_ch_mag128[0]);
-
- dl_ch_mag128[1] = _mm_unpackhi_epi16(mmtmpD0,mmtmpD0);
- dl_ch_mag128b[1] = dl_ch_mag128[1];
- dl_ch_mag128[1] = _mm_mulhi_epi16(dl_ch_mag128[1],QAM_amp128);
- dl_ch_mag128[1] = _mm_slli_epi16(dl_ch_mag128[1],1);
-
- if (pilots==0) {
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[2],dl_ch0_128[2]);
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
-
- mmtmpD1 = _mm_packs_epi32(mmtmpD0,mmtmpD0);
-
- dl_ch_mag128[2] = _mm_unpacklo_epi16(mmtmpD1,mmtmpD1);
- dl_ch_mag128b[2] = dl_ch_mag128[2];
-
- dl_ch_mag128[2] = _mm_mulhi_epi16(dl_ch_mag128[2],QAM_amp128);
- dl_ch_mag128[2] = _mm_slli_epi16(dl_ch_mag128[2],1);
- }
-
- dl_ch_mag128b[0] = _mm_mulhi_epi16(dl_ch_mag128b[0],QAM_amp128b);
- dl_ch_mag128b[0] = _mm_slli_epi16(dl_ch_mag128b[0],1);
-
- //print_shorts("dl_ch_mag128b[0]=",&dl_ch_mag128b[0]);
-
- dl_ch_mag128b[1] = _mm_mulhi_epi16(dl_ch_mag128b[1],QAM_amp128b);
- dl_ch_mag128b[1] = _mm_slli_epi16(dl_ch_mag128b[1],1);
-
- if (pilots==0) {
- dl_ch_mag128b[2] = _mm_mulhi_epi16(dl_ch_mag128b[2],QAM_amp128b);
- dl_ch_mag128b[2] = _mm_slli_epi16(dl_ch_mag128b[2],1);
-
- }
- }
-
- // MF multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[0],rxdataF128[0]);
- // print_ints("re",&mmtmpD0);
-
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch0_128[0],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)&conjugate[0]);
-
- // print_ints("im",&mmtmpD1);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[0]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
- // print_ints("re(shift)",&mmtmpD0);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
- // print_ints("im(shift)",&mmtmpD1);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
- // print_ints("c0",&mmtmpD2);
- // print_ints("c1",&mmtmpD3);
- rxdataF_comp128[0] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128);
- // print_shorts("ch:",dl_ch128);
- // print_shorts("pack:",rxdataF_comp128);
-
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[1],rxdataF128[1]);
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch0_128[1],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[1]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
- rxdataF_comp128[1] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128+1);
- // print_shorts("ch:",dl_ch128+1);
- // print_shorts("pack:",rxdataF_comp128+1);
-
- if (pilots==0) {
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[2],rxdataF128[2]);
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch0_128[2],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[2]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
- rxdataF_comp128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128+2);
- // print_shorts("ch:",dl_ch128+2);
- // print_shorts("pack:",rxdataF_comp128+2);
-
- dl_ch0_128+=3;
- dl_ch1_128+=3;
- dl_ch_mag128+=3;
- dl_ch_mag128b+=3;
- rxdataF128+=3;
- rxdataF_comp128+=3;
- } else {
- dl_ch0_128+=2;
- dl_ch1_128+=2;
- dl_ch_mag128+=2;
- dl_ch_mag128b+=2;
- rxdataF128+=2;
- rxdataF_comp128+=2;
- }
- }
-
- Nre = (pilots==0) ? 12 : 8;
-
- precoded_signal_strength += ((signal_energy_nodc(&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*Nre],
- (nb_rb*Nre))) - (measurements->n0_power[aarx]));
- } // rx_antennas
-
- measurements->precoded_cqi_dB[eNB_id][0] = dB_fixed2(precoded_signal_strength,measurements->n0_power_tot);
-
- //printf("eNB_id %d, symbol %d: precoded CQI %d dB\n",eNB_id,symbol,
- // measurements->precoded_cqi_dB[eNB_id][0]);
-
-#elif defined(__arm__)
-
- uint32_t rb,Nre;
- uint32_t aarx,symbol_mod,pilots=0;
-
- int16x4_t *dl_ch0_128,*dl_ch1_128,*rxdataF128;
- int16x8_t *dl_ch0_128b,*dl_ch1_128b;
- int32x4_t mmtmpD0,mmtmpD1,mmtmpD0b,mmtmpD1b;
- int16x8_t *dl_ch_mag128,*dl_ch_mag128b,mmtmpD2,mmtmpD3,mmtmpD4,*rxdataF_comp128;
- int16x8_t QAM_amp128,QAM_amp128b;
-
- int16_t conj[4]__attribute__((aligned(16))) = {1,-1,1,-1};
- int32x4_t output_shift128 = vmovq_n_s32(-(int32_t)output_shift);
- int32_t precoded_signal_strength=0;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) {
- if (frame_parms->nb_antenna_ports_eNB==1) // 10 out of 12 so don't reduce size
- { nb_rb=1+(5*nb_rb/6); }
-
- else
- { pilots=1; }
- }
-
-
- if (mod_order == 4) {
- QAM_amp128 = vmovq_n_s16(QAM16_n1); // 2/sqrt(10)
- QAM_amp128b = vmovq_n_s16(0);
-
- } else if (mod_order == 6) {
- QAM_amp128 = vmovq_n_s16(QAM64_n1); //
- QAM_amp128b = vmovq_n_s16(QAM64_n2);
- }
-
- // printf("comp: rxdataF_comp %p, symbol %d\n",rxdataF_comp[0],symbol);
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
-
-
- dl_ch0_128 = (int16x4_t*)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch1_128 = (int16x4_t*)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch0_128b = (int16x8_t*)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch1_128b = (int16x8_t*)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128 = (int16x8_t*)&dl_ch_mag[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128b = (int16x8_t*)&dl_ch_magb[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF128 = (int16x4_t*)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128 = (int16x8_t*)&rxdataF_comp[aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0; rb%d\n",rb,pmi_ext[rb]);
-#endif
- prec2A_TM56_128(pmi_ext[rb],&dl_ch0_128b[0],&dl_ch1_128b[0]);
- prec2A_TM56_128(pmi_ext[rb],&dl_ch0_128b[1],&dl_ch1_128b[1]);
-
- if (pilots==0) {
- prec2A_TM56_128(pmi_ext[rb],&dl_ch0_128b[2],&dl_ch1_128b[2]);
- }
-
- if (mod_order>2) {
- // get channel amplitude if not QPSK
- mmtmpD0 = vmull_s16(dl_ch0_128[0], dl_ch0_128[0]);
- // mmtmpD0 = [ch0*ch0,ch1*ch1,ch2*ch2,ch3*ch3];
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- // mmtmpD0 = [ch0*ch0 + ch1*ch1,ch0*ch0 + ch1*ch1,ch2*ch2 + ch3*ch3,ch2*ch2 + ch3*ch3]>>output_shift128 on 32-bits
- mmtmpD1 = vmull_s16(dl_ch0_128[1], dl_ch0_128[1]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD2 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- // mmtmpD2 = [ch0*ch0 + ch1*ch1,ch0*ch0 + ch1*ch1,ch2*ch2 + ch3*ch3,ch2*ch2 + ch3*ch3,ch4*ch4 + ch5*ch5,ch4*ch4 + ch5*ch5,ch6*ch6 + ch7*ch7,ch6*ch6 + ch7*ch7]>>output_shift128 on 16-bits
- mmtmpD0 = vmull_s16(dl_ch0_128[2], dl_ch0_128[2]);
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- mmtmpD1 = vmull_s16(dl_ch0_128[3], dl_ch0_128[3]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD3 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- if (pilots==0) {
- mmtmpD0 = vmull_s16(dl_ch0_128[4], dl_ch0_128[4]);
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- mmtmpD1 = vmull_s16(dl_ch0_128[5], dl_ch0_128[5]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD4 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
-
- }
-
- dl_ch_mag128b[0] = vqdmulhq_s16(mmtmpD2,QAM_amp128b);
- dl_ch_mag128b[1] = vqdmulhq_s16(mmtmpD3,QAM_amp128b);
- dl_ch_mag128[0] = vqdmulhq_s16(mmtmpD2,QAM_amp128);
- dl_ch_mag128[1] = vqdmulhq_s16(mmtmpD3,QAM_amp128);
-
-
- if (pilots==0) {
- dl_ch_mag128b[2] = vqdmulhq_s16(mmtmpD4,QAM_amp128b);
- dl_ch_mag128[2] = vqdmulhq_s16(mmtmpD4,QAM_amp128);
- }
- }
- mmtmpD0 = vmull_s16(dl_ch0_128[0], rxdataF128[0]);
- //mmtmpD0 = [Re(ch[0])Re(rx[0]) Im(ch[0])Im(ch[0]) Re(ch[1])Re(rx[1]) Im(ch[1])Im(ch[1])]
- mmtmpD1 = vmull_s16(dl_ch0_128[1], rxdataF128[1]);
- //mmtmpD1 = [Re(ch[2])Re(rx[2]) Im(ch[2])Im(ch[2]) Re(ch[3])Re(rx[3]) Im(ch[3])Im(ch[3])]
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
- //mmtmpD0 = [Re(ch[0])Re(rx[0])+Im(ch[0])Im(ch[0]) Re(ch[1])Re(rx[1])+Im(ch[1])Im(ch[1]) Re(ch[2])Re(rx[2])+Im(ch[2])Im(ch[2]) Re(ch[3])Re(rx[3])+Im(ch[3])Im(ch[3])]
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[0],*(int16x4_t*)conj)), rxdataF128[0]);
- //mmtmpD0 = [-Im(ch[0])Re(rx[0]) Re(ch[0])Im(rx[0]) -Im(ch[1])Re(rx[1]) Re(ch[1])Im(rx[1])]
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[1],*(int16x4_t*)conj)), rxdataF128[1]);
- //mmtmpD0 = [-Im(ch[2])Re(rx[2]) Re(ch[2])Im(rx[2]) -Im(ch[3])Re(rx[3]) Re(ch[3])Im(rx[3])]
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
- //mmtmpD1 = [-Im(ch[0])Re(rx[0])+Re(ch[0])Im(rx[0]) -Im(ch[1])Re(rx[1])+Re(ch[1])Im(rx[1]) -Im(ch[2])Re(rx[2])+Re(ch[2])Im(rx[2]) -Im(ch[3])Re(rx[3])+Re(ch[3])Im(rx[3])]
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp128[0] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- mmtmpD0 = vmull_s16(dl_ch0_128[2], rxdataF128[2]);
- mmtmpD1 = vmull_s16(dl_ch0_128[3], rxdataF128[3]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[2],*(int16x4_t*)conj)), rxdataF128[2]);
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[3],*(int16x4_t*)conj)), rxdataF128[3]);
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp128[1] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- if (pilots==0) {
- mmtmpD0 = vmull_s16(dl_ch0_128[4], rxdataF128[4]);
- mmtmpD1 = vmull_s16(dl_ch0_128[5], rxdataF128[5]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[4],*(int16x4_t*)conj)), rxdataF128[4]);
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[5],*(int16x4_t*)conj)), rxdataF128[5]);
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
-
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp128[2] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
-
- dl_ch0_128+=6;
- dl_ch1_128+=6;
- dl_ch_mag128+=3;
- dl_ch_mag128b+=3;
- rxdataF128+=6;
- rxdataF_comp128+=3;
-
- } else { // we have a smaller PDSCH in symbols with pilots so skip last group of 4 REs and increment less
- dl_ch0_128+=4;
- dl_ch1_128+=4;
- dl_ch_mag128+=2;
- dl_ch_mag128b+=2;
- rxdataF128+=4;
- rxdataF_comp128+=2;
- }
- }
-
- Nre = (pilots==0) ? 12 : 8;
-
-
- precoded_signal_strength += ((signal_energy_nodc(&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*Nre],
-
- (nb_rb*Nre))) - (measurements->n0_power[aarx]));
- // rx_antennas
- }
- measurements->precoded_cqi_dB[eNB_id][0] = dB_fixed2(precoded_signal_strength,measurements->n0_power_tot);
-
- //printf("eNB_id %d, symbol %d: precoded CQI %d dB\n",eNB_id,symbol,
- // measurements->precoded_cqi_dB[eNB_id][0]);
-
-#endif
- _mm_empty();
- _m_empty();
-}
-
-void dlsch_channel_compensation_TM34(LTE_DL_FRAME_PARMS *frame_parms,
- LTE_UE_PDSCH *pdsch_vars,
- PHY_MEASUREMENTS *measurements,
- int eNB_id,
- unsigned char symbol,
- unsigned char mod_order0,
- unsigned char mod_order1,
- int harq_pid,
- int round,
- MIMO_mode_t mimo_mode,
- unsigned short nb_rb,
- unsigned char output_shift0,
- unsigned char output_shift1) {
-
-#if defined(__x86_64__) || defined(__i386__)
-
- unsigned short rb,Nre;
- __m128i *dl_ch0_128,*dl_ch1_128,*dl_ch_mag0_128,*dl_ch_mag1_128,*dl_ch_mag0_128b,*dl_ch_mag1_128b,*rxdataF128,*rxdataF_comp0_128,*rxdataF_comp1_128;
- unsigned char aarx=0,symbol_mod,pilots=0;
- int precoded_signal_strength0=0,precoded_signal_strength1=0;
- int rx_power_correction;
-
- int **rxdataF_ext = pdsch_vars->rxdataF_ext;
- int **dl_ch_estimates_ext = pdsch_vars->dl_ch_estimates_ext;
- int **dl_ch_mag0 = pdsch_vars->dl_ch_mag0;
- int **dl_ch_mag1 = pdsch_vars->dl_ch_mag1[harq_pid][round];
- int **dl_ch_magb0 = pdsch_vars->dl_ch_magb0;
- int **dl_ch_magb1 = pdsch_vars->dl_ch_magb1[harq_pid][round];
- int **rxdataF_comp0 = pdsch_vars->rxdataF_comp0;
- int **rxdataF_comp1 = pdsch_vars->rxdataF_comp1[harq_pid][round];
- unsigned char *pmi_ext = pdsch_vars->pmi_ext;
- __m128i mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3,QAM_amp0_128,QAM_amp0_128b,QAM_amp1_128,QAM_amp1_128b;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp)))
- pilots=1;
-
- rx_power_correction = 1;
-
- // printf("comp prec: symbol %d, pilots %d\n",symbol, pilots);
-
- if (mod_order0 == 4) {
- QAM_amp0_128 = _mm_set1_epi16(QAM16_n1);
- QAM_amp0_128b = _mm_setzero_si128();
- } else if (mod_order0 == 6) {
- QAM_amp0_128 = _mm_set1_epi16(QAM64_n1);
- QAM_amp0_128b = _mm_set1_epi16(QAM64_n2);
- }
-
- if (mod_order1 == 4) {
- QAM_amp1_128 = _mm_set1_epi16(QAM16_n1);
- QAM_amp1_128b = _mm_setzero_si128();
- } else if (mod_order1 == 6) {
- QAM_amp1_128 = _mm_set1_epi16(QAM64_n1);
- QAM_amp1_128b = _mm_set1_epi16(QAM64_n2);
- }
-
- for (aarx=0;aarxnb_antennas_rx;aarx++) {
-
- /* if (aarx==0) {
- output_shift=output_shift0;
- }
- else {
- output_shift=output_shift1;
- } */
-
- // printf("antenna %d\n", aarx);
- // printf("symbol %d, rx antenna %d\n", symbol, aarx);
-
- dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; // this is h11
- dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12]; // this is h12
-
-
- dl_ch_mag0_128 = (__m128i *)&dl_ch_mag0[aarx][symbol*frame_parms->N_RB_DL*12]; //responsible for x1
- dl_ch_mag0_128b = (__m128i *)&dl_ch_magb0[aarx][symbol*frame_parms->N_RB_DL*12];//responsible for x1
- dl_ch_mag1_128 = (__m128i *)&dl_ch_mag1[aarx][symbol*frame_parms->N_RB_DL*12]; //responsible for x2. always coming from tx2
- dl_ch_mag1_128b = (__m128i *)&dl_ch_magb1[aarx][symbol*frame_parms->N_RB_DL*12]; //responsible for x2. always coming from tx2
- rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12]; //received signal on antenna of interest h11*x1+h12*x2
- rxdataF_comp0_128 = (__m128i *)&rxdataF_comp0[aarx][symbol*frame_parms->N_RB_DL*12]; //result of multipl with MF x1 on antenna of interest
- rxdataF_comp1_128 = (__m128i *)&rxdataF_comp1[aarx][symbol*frame_parms->N_RB_DL*12]; //result of multipl with MF x2 on antenna of interest
-
- for (rb=0; rb2) {
- // get channel amplitude if not QPSK
-
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[0],dl_ch0_128[0]);
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift0);
-
- mmtmpD1 = _mm_madd_epi16(dl_ch0_128[1],dl_ch0_128[1]);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift0);
-
- mmtmpD0 = _mm_packs_epi32(mmtmpD0,mmtmpD1);
-
- dl_ch_mag0_128[0] = _mm_unpacklo_epi16(mmtmpD0,mmtmpD0);
- dl_ch_mag0_128b[0] = dl_ch_mag0_128[0];
- dl_ch_mag0_128[0] = _mm_mulhi_epi16(dl_ch_mag0_128[0],QAM_amp0_128);
- dl_ch_mag0_128[0] = _mm_slli_epi16(dl_ch_mag0_128[0],1);
-
- // print_shorts("dl_ch_mag0_128[0]=",&dl_ch_mag0_128[0]);
-
-
- dl_ch_mag0_128[1] = _mm_unpackhi_epi16(mmtmpD0,mmtmpD0);
- dl_ch_mag0_128b[1] = dl_ch_mag0_128[1];
- dl_ch_mag0_128[1] = _mm_mulhi_epi16(dl_ch_mag0_128[1],QAM_amp0_128);
- dl_ch_mag0_128[1] = _mm_slli_epi16(dl_ch_mag0_128[1],1);
-
- if (pilots==0) {
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[2],dl_ch0_128[2]);
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift0);
-
- mmtmpD1 = _mm_packs_epi32(mmtmpD0,mmtmpD0);
-
- dl_ch_mag0_128[2] = _mm_unpacklo_epi16(mmtmpD1,mmtmpD1);
- dl_ch_mag0_128b[2] = dl_ch_mag0_128[2];
-
- dl_ch_mag0_128[2] = _mm_mulhi_epi16(dl_ch_mag0_128[2],QAM_amp0_128);
- dl_ch_mag0_128[2] = _mm_slli_epi16(dl_ch_mag0_128[2],1);
- }
-
- dl_ch_mag0_128b[0] = _mm_mulhi_epi16(dl_ch_mag0_128b[0],QAM_amp0_128b);
- dl_ch_mag0_128b[0] = _mm_slli_epi16(dl_ch_mag0_128b[0],1);
-
- // print_shorts("dl_ch_mag0_128b[0]=",&dl_ch_mag0_128b[0]);
-
- dl_ch_mag0_128b[1] = _mm_mulhi_epi16(dl_ch_mag0_128b[1],QAM_amp0_128b);
- dl_ch_mag0_128b[1] = _mm_slli_epi16(dl_ch_mag0_128b[1],1);
-
- if (pilots==0) {
- dl_ch_mag0_128b[2] = _mm_mulhi_epi16(dl_ch_mag0_128b[2],QAM_amp0_128b);
- dl_ch_mag0_128b[2] = _mm_slli_epi16(dl_ch_mag0_128b[2],1);
- }
- }
-
- if (mod_order1>2) {
- // get channel amplitude if not QPSK
-
- mmtmpD0 = _mm_madd_epi16(dl_ch1_128[0],dl_ch1_128[0]);
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift1);
-
- mmtmpD1 = _mm_madd_epi16(dl_ch1_128[1],dl_ch1_128[1]);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift1);
-
- mmtmpD0 = _mm_packs_epi32(mmtmpD0,mmtmpD1);
-
- dl_ch_mag1_128[0] = _mm_unpacklo_epi16(mmtmpD0,mmtmpD0);
- dl_ch_mag1_128b[0] = dl_ch_mag1_128[0];
- dl_ch_mag1_128[0] = _mm_mulhi_epi16(dl_ch_mag1_128[0],QAM_amp1_128);
- dl_ch_mag1_128[0] = _mm_slli_epi16(dl_ch_mag1_128[0],1);
-
- // print_shorts("dl_ch_mag1_128[0]=",&dl_ch_mag1_128[0]);
-
- dl_ch_mag1_128[1] = _mm_unpackhi_epi16(mmtmpD0,mmtmpD0);
- dl_ch_mag1_128b[1] = dl_ch_mag1_128[1];
- dl_ch_mag1_128[1] = _mm_mulhi_epi16(dl_ch_mag1_128[1],QAM_amp1_128);
- dl_ch_mag1_128[1] = _mm_slli_epi16(dl_ch_mag1_128[1],1);
-
- if (pilots==0) {
- mmtmpD0 = _mm_madd_epi16(dl_ch1_128[2],dl_ch1_128[2]);
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift1);
-
- mmtmpD1 = _mm_packs_epi32(mmtmpD0,mmtmpD0);
-
- dl_ch_mag1_128[2] = _mm_unpacklo_epi16(mmtmpD1,mmtmpD1);
- dl_ch_mag1_128b[2] = dl_ch_mag1_128[2];
-
- dl_ch_mag1_128[2] = _mm_mulhi_epi16(dl_ch_mag1_128[2],QAM_amp1_128);
- dl_ch_mag1_128[2] = _mm_slli_epi16(dl_ch_mag1_128[2],1);
- }
-
- dl_ch_mag1_128b[0] = _mm_mulhi_epi16(dl_ch_mag1_128b[0],QAM_amp1_128b);
- dl_ch_mag1_128b[0] = _mm_slli_epi16(dl_ch_mag1_128b[0],1);
-
- // print_shorts("dl_ch_mag1_128b[0]=",&dl_ch_mag1_128b[0]);
-
- dl_ch_mag1_128b[1] = _mm_mulhi_epi16(dl_ch_mag1_128b[1],QAM_amp1_128b);
- dl_ch_mag1_128b[1] = _mm_slli_epi16(dl_ch_mag1_128b[1],1);
-
- if (pilots==0) {
- dl_ch_mag1_128b[2] = _mm_mulhi_epi16(dl_ch_mag1_128b[2],QAM_amp1_128b);
- dl_ch_mag1_128b[2] = _mm_slli_epi16(dl_ch_mag1_128b[2],1);
- }
- }
-
- // layer 0
- // MF multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[0],rxdataF128[0]);
- // print_ints("re",&mmtmpD0);
-
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch0_128[0],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)&conjugate[0]);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[0]);
- // print_ints("im",&mmtmpD1);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift0);
- // printf("Shift: %d\n",output_shift);
- // print_ints("re(shift)",&mmtmpD0);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift0);
- // print_ints("im(shift)",&mmtmpD1);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
- // print_ints("c0",&mmtmpD2);
- // print_ints("c1",&mmtmpD3);
- rxdataF_comp0_128[0] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
-
- // print_shorts("rx:",rxdataF128);
- // print_shorts("ch:",dl_ch0_128);
- // print_shorts("pack:",rxdataF_comp0_128);
-
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[1],rxdataF128[1]);
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch0_128[1],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[1]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift0);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift0);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
- rxdataF_comp0_128[1] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128+1);
- // print_shorts("ch:",dl_ch0_128+1);
- // print_shorts("pack:",rxdataF_comp0_128+1);
-
- if (pilots==0) {
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch0_128[2],rxdataF128[2]);
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch0_128[2],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[2]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift0);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift0);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
- rxdataF_comp0_128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128+2);
- // print_shorts("ch:",dl_ch0_128+2);
- // print_shorts("pack:",rxdataF_comp0_128+2);
-
- }
-
-
- // layer 1
- // MF multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch1_128[0],rxdataF128[0]);
- // print_ints("re",&mmtmpD0);
-
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch1_128[0],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)&conjugate[0]);
- // print_ints("im",&mmtmpD1);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[0]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift1);
- // print_ints("re(shift)",&mmtmpD0);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift1);
- // print_ints("im(shift)",&mmtmpD1);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
- // print_ints("c0",&mmtmpD2);
- // print_ints("c1",&mmtmpD3);
- rxdataF_comp1_128[0] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128);
- // print_shorts("ch:",dl_ch1_128);
- // print_shorts("pack:",rxdataF_comp1_128);
-
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch1_128[1],rxdataF128[1]);
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch1_128[1],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[1]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift1);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift1);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
- rxdataF_comp1_128[1] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128+1);
- // print_shorts("ch:",dl_ch1_128+1);
- // print_shorts("pack:",rxdataF_comp1_128+1);
-
- if (pilots==0) {
- // multiply by conjugated channel
- mmtmpD0 = _mm_madd_epi16(dl_ch1_128[2],rxdataF128[2]);
- // mmtmpD0 contains real part of 4 consecutive outputs (32-bit)
- mmtmpD1 = _mm_shufflelo_epi16(dl_ch1_128[2],_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_shufflehi_epi16(mmtmpD1,_MM_SHUFFLE(2,3,0,1));
- mmtmpD1 = _mm_sign_epi16(mmtmpD1,*(__m128i*)conjugate);
- mmtmpD1 = _mm_madd_epi16(mmtmpD1,rxdataF128[2]);
- // mmtmpD1 contains imag part of 4 consecutive outputs (32-bit)
- mmtmpD0 = _mm_srai_epi32(mmtmpD0,output_shift1);
- mmtmpD1 = _mm_srai_epi32(mmtmpD1,output_shift1);
- mmtmpD2 = _mm_unpacklo_epi32(mmtmpD0,mmtmpD1);
- mmtmpD3 = _mm_unpackhi_epi32(mmtmpD0,mmtmpD1);
-
- rxdataF_comp1_128[2] = _mm_packs_epi32(mmtmpD2,mmtmpD3);
- // print_shorts("rx:",rxdataF128+2);
- // print_shorts("ch:",dl_ch1_128+2);
- // print_shorts("pack:",rxdataF_comp1_128+2);
-
- dl_ch0_128+=3;
- dl_ch1_128+=3;
- dl_ch_mag0_128+=3;
- dl_ch_mag1_128+=3;
- dl_ch_mag0_128b+=3;
- dl_ch_mag1_128b+=3;
- rxdataF128+=3;
- rxdataF_comp0_128+=3;
- rxdataF_comp1_128+=3;
- }
- else {
- dl_ch0_128+=2;
- dl_ch1_128+=2;
- dl_ch_mag0_128+=2;
- dl_ch_mag1_128+=2;
- dl_ch_mag0_128b+=2;
- dl_ch_mag1_128b+=2;
- rxdataF128+=2;
- rxdataF_comp0_128+=2;
- rxdataF_comp1_128+=2;
- }
-
- } // rb loop
- Nre = (pilots==0) ? 12 : 8;
-
- precoded_signal_strength0 += ((signal_energy_nodc(&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*Nre],
- (nb_rb*Nre))*rx_power_correction) - (measurements->n0_power[aarx]));
-
- precoded_signal_strength1 += ((signal_energy_nodc(&dl_ch_estimates_ext[aarx+2][symbol*frame_parms->N_RB_DL*Nre],
- (nb_rb*Nre))*rx_power_correction) - (measurements->n0_power[aarx]));
- } // rx_antennas
-
- measurements->precoded_cqi_dB[eNB_id][0] = dB_fixed2(precoded_signal_strength0,measurements->n0_power_tot);
- measurements->precoded_cqi_dB[eNB_id][1] = dB_fixed2(precoded_signal_strength1,measurements->n0_power_tot);
-
- // printf("eNB_id %d, symbol %d: precoded CQI %d dB\n",eNB_id,symbol,
- // measurements->precoded_cqi_dB[eNB_id][0]);
-
- _mm_empty();
- _m_empty();
-
- #elif defined(__arm__)
-
- unsigned short rb,Nre;
- unsigned char aarx,symbol_mod,pilots=0;
- int precoded_signal_strength0=0,precoded_signal_strength1=0, rx_power_correction;
- int16x4_t *dl_ch0_128,*rxdataF128;
- int16x4_t *dl_ch1_128;
- int16x8_t *dl_ch0_128b,*dl_ch1_128b;
-
- int32x4_t mmtmpD0,mmtmpD1,mmtmpD0b,mmtmpD1b;
- int16x8_t *dl_ch_mag0_128,*dl_ch_mag0_128b,*dl_ch_mag1_128,*dl_ch_mag1_128b,mmtmpD2,mmtmpD3,mmtmpD4,*rxdataF_comp0_128,*rxdataF_comp1_128;
- int16x8_t QAM_amp0_128,QAM_amp0_128b,QAM_amp1_128,QAM_amp1_128b;
- int32x4_t output_shift128 = vmovq_n_s32(-(int32_t)output_shift);
-
- int **rxdataF_ext = pdsch_vars->rxdataF_ext;
- int **dl_ch_estimates_ext = pdsch_vars->dl_ch_estimates_ext;
- int **dl_ch_mag0 = pdsch_vars->dl_ch_mag0;
- int **dl_ch_mag1 = pdsch_vars->dl_ch_mag1[harq_pid][round];
- int **dl_ch_magb0 = pdsch_vars->dl_ch_magb0;
- int **dl_ch_magb1 = pdsch_vars->dl_ch_magb1[harq_pid][round];
- int **rxdataF_comp0 = pdsch_vars->rxdataF_comp0;
- int **rxdataF_comp1 = pdsch_vars->rxdataF_comp1[harq_pid][round];
-
- int16_t conj[4]__attribute__((aligned(16))) = {1,-1,1,-1};
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) {
- if (frame_parms->nb_antenna_ports_eNB==1) // 10 out of 12 so don't reduce size
- { nb_rb=1+(5*nb_rb/6); }
-
- else
- { pilots=1; }
- }
-
- rx_power_correction=1;
-
- if (mod_order0 == 4) {
- QAM_amp0_128 = vmovq_n_s16(QAM16_n1); // 2/sqrt(10)
- QAM_amp0_128b = vmovq_n_s16(0);
-
- } else if (mod_order0 == 6) {
- QAM_amp0_128 = vmovq_n_s16(QAM64_n1); //
- QAM_amp0_128b = vmovq_n_s16(QAM64_n2);
- }
-
- if (mod_order1 == 4) {
- QAM_amp1_128 = vmovq_n_s16(QAM16_n1); // 2/sqrt(10)
- QAM_amp1_128b = vmovq_n_s16(0);
-
- } else if (mod_order1 == 6) {
- QAM_amp1_128 = vmovq_n_s16(QAM64_n1); //
- QAM_amp1_128b = vmovq_n_s16(QAM64_n2);
- }
-
- // printf("comp: rxdataF_comp %p, symbol %d\n",rxdataF_comp[0],symbol);
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
-
-
- dl_ch0_128 = (int16x4_t*)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch1_128 = (int16x4_t*)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch0_128b = (int16x8_t*)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch1_128b = (int16x8_t*)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag0_128 = (int16x8_t*)&dl_ch_mag0[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag0_128b = (int16x8_t*)&dl_ch_magb0[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag1_128 = (int16x8_t*)&dl_ch_mag1[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag1_128b = (int16x8_t*)&dl_ch_magb1[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF128 = (int16x4_t*)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp0_128 = (int16x8_t*)&rxdataF_comp0[aarx][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp1_128 = (int16x8_t*)&rxdataF_comp1[aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0; rb2) {
- // get channel amplitude if not QPSK
- mmtmpD0 = vmull_s16(dl_ch0_128[0], dl_ch0_128[0]);
- // mmtmpD0 = [ch0*ch0,ch1*ch1,ch2*ch2,ch3*ch3];
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- // mmtmpD0 = [ch0*ch0 + ch1*ch1,ch0*ch0 + ch1*ch1,ch2*ch2 + ch3*ch3,ch2*ch2 + ch3*ch3]>>output_shift128 on 32-bits
- mmtmpD1 = vmull_s16(dl_ch0_128[1], dl_ch0_128[1]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD2 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- // mmtmpD2 = [ch0*ch0 + ch1*ch1,ch0*ch0 + ch1*ch1,ch2*ch2 + ch3*ch3,ch2*ch2 + ch3*ch3,ch4*ch4 + ch5*ch5,ch4*ch4 + ch5*ch5,ch6*ch6 + ch7*ch7,ch6*ch6 + ch7*ch7]>>output_shift128 on 16-bits
- mmtmpD0 = vmull_s16(dl_ch0_128[2], dl_ch0_128[2]);
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- mmtmpD1 = vmull_s16(dl_ch0_128[3], dl_ch0_128[3]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD3 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- if (pilots==0) {
- mmtmpD0 = vmull_s16(dl_ch0_128[4], dl_ch0_128[4]);
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- mmtmpD1 = vmull_s16(dl_ch0_128[5], dl_ch0_128[5]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD4 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
-
- }
-
- dl_ch_mag0_128b[0] = vqdmulhq_s16(mmtmpD2,QAM_amp0_128b);
- dl_ch_mag0_128b[1] = vqdmulhq_s16(mmtmpD3,QAM_amp0_128b);
- dl_ch_mag0_128[0] = vqdmulhq_s16(mmtmpD2,QAM_amp0_128);
- dl_ch_mag0_128[1] = vqdmulhq_s16(mmtmpD3,QAM_amp0_128);
-
-
- if (pilots==0) {
- dl_ch_mag0_128b[2] = vqdmulhq_s16(mmtmpD4,QAM_amp0_128b);
- dl_ch_mag0_128[2] = vqdmulhq_s16(mmtmpD4,QAM_amp0_128);
- }
- }
-
- if (mod_order1>2) {
- // get channel amplitude if not QPSK
- mmtmpD0 = vmull_s16(dl_ch1_128[0], dl_ch1_128[0]);
- // mmtmpD0 = [ch0*ch0,ch1*ch1,ch2*ch2,ch3*ch3];
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- // mmtmpD0 = [ch0*ch0 + ch1*ch1,ch0*ch0 + ch1*ch1,ch2*ch2 + ch3*ch3,ch2*ch2 + ch3*ch3]>>output_shift128 on 32-bits
- mmtmpD1 = vmull_s16(dl_ch1_128[1], dl_ch1_128[1]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD2 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- // mmtmpD2 = [ch0*ch0 + ch1*ch1,ch0*ch0 + ch1*ch1,ch2*ch2 + ch3*ch3,ch2*ch2 + ch3*ch3,ch4*ch4 + ch5*ch5,ch4*ch4 + ch5*ch5,ch6*ch6 + ch7*ch7,ch6*ch6 + ch7*ch7]>>output_shift128 on 16-bits
- mmtmpD0 = vmull_s16(dl_ch1_128[2], dl_ch1_128[2]);
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- mmtmpD1 = vmull_s16(dl_ch1_128[3], dl_ch1_128[3]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD3 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- if (pilots==0) {
- mmtmpD0 = vmull_s16(dl_ch1_128[4], dl_ch1_128[4]);
- mmtmpD0 = vqshlq_s32(vqaddq_s32(mmtmpD0,vrev64q_s32(mmtmpD0)),output_shift128);
- mmtmpD1 = vmull_s16(dl_ch1_128[5], dl_ch1_128[5]);
- mmtmpD1 = vqshlq_s32(vqaddq_s32(mmtmpD1,vrev64q_s32(mmtmpD1)),output_shift128);
- mmtmpD4 = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
-
- }
-
- dl_ch_mag1_128b[0] = vqdmulhq_s16(mmtmpD2,QAM_amp1_128b);
- dl_ch_mag1_128b[1] = vqdmulhq_s16(mmtmpD3,QAM_amp1_128b);
- dl_ch_mag1_128[0] = vqdmulhq_s16(mmtmpD2,QAM_amp1_128);
- dl_ch_mag1_128[1] = vqdmulhq_s16(mmtmpD3,QAM_amp1_128);
-
-
- if (pilots==0) {
- dl_ch_mag1_128b[2] = vqdmulhq_s16(mmtmpD4,QAM_amp1_128b);
- dl_ch_mag1_128[2] = vqdmulhq_s16(mmtmpD4,QAM_amp1_128);
- }
- }
-
- mmtmpD0 = vmull_s16(dl_ch0_128[0], rxdataF128[0]);
- //mmtmpD0 = [Re(ch[0])Re(rx[0]) Im(ch[0])Im(ch[0]) Re(ch[1])Re(rx[1]) Im(ch[1])Im(ch[1])]
- mmtmpD1 = vmull_s16(dl_ch0_128[1], rxdataF128[1]);
- //mmtmpD1 = [Re(ch[2])Re(rx[2]) Im(ch[2])Im(ch[2]) Re(ch[3])Re(rx[3]) Im(ch[3])Im(ch[3])]
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
- //mmtmpD0 = [Re(ch[0])Re(rx[0])+Im(ch[0])Im(ch[0]) Re(ch[1])Re(rx[1])+Im(ch[1])Im(ch[1]) Re(ch[2])Re(rx[2])+Im(ch[2])Im(ch[2]) Re(ch[3])Re(rx[3])+Im(ch[3])Im(ch[3])]
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[0],*(int16x4_t*)conj)), rxdataF128[0]);
- //mmtmpD0 = [-Im(ch[0])Re(rx[0]) Re(ch[0])Im(rx[0]) -Im(ch[1])Re(rx[1]) Re(ch[1])Im(rx[1])]
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[1],*(int16x4_t*)conj)), rxdataF128[1]);
- //mmtmpD0 = [-Im(ch[2])Re(rx[2]) Re(ch[2])Im(rx[2]) -Im(ch[3])Re(rx[3]) Re(ch[3])Im(rx[3])]
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
- //mmtmpD1 = [-Im(ch[0])Re(rx[0])+Re(ch[0])Im(rx[0]) -Im(ch[1])Re(rx[1])+Re(ch[1])Im(rx[1]) -Im(ch[2])Re(rx[2])+Re(ch[2])Im(rx[2]) -Im(ch[3])Re(rx[3])+Re(ch[3])Im(rx[3])]
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp0_128[0] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- mmtmpD0 = vmull_s16(dl_ch0_128[2], rxdataF128[2]);
- mmtmpD1 = vmull_s16(dl_ch0_128[3], rxdataF128[3]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[2],*(int16x4_t*)conj)), rxdataF128[2]);
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[3],*(int16x4_t*)conj)), rxdataF128[3]);
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp0_128[1] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- // second stream
- mmtmpD0 = vmull_s16(dl_ch1_128[0], rxdataF128[0]);
- mmtmpD1 = vmull_s16(dl_ch1_128[1], rxdataF128[1]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[0],*(int16x4_t*)conj)), rxdataF128[0]);
-
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[1],*(int16x4_t*)conj)), rxdataF128[1]);
- //mmtmpD0 = [-Im(ch[2])Re(rx[2]) Re(ch[2])Im(rx[2]) -Im(ch[3])Re(rx[3]) Re(ch[3])Im(rx[3])]
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
- //mmtmpD1 = [-Im(ch[0])Re(rx[0])+Re(ch[0])Im(rx[0]) -Im(ch[1])Re(rx[1])+Re(ch[1])Im(rx[1]) -Im(ch[2])Re(rx[2])+Re(ch[2])Im(rx[2]) -Im(ch[3])Re(rx[3])+Re(ch[3])Im(rx[3])]
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp1_128[0] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- mmtmpD0 = vmull_s16(dl_ch1_128[2], rxdataF128[2]);
- mmtmpD1 = vmull_s16(dl_ch1_128[3], rxdataF128[3]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[2],*(int16x4_t*)conj)), rxdataF128[2]);
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[3],*(int16x4_t*)conj)), rxdataF128[3]);
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp1_128[1] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
-
- if (pilots==0) {
- mmtmpD0 = vmull_s16(dl_ch0_128[4], rxdataF128[4]);
- mmtmpD1 = vmull_s16(dl_ch0_128[5], rxdataF128[5]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[4],*(int16x4_t*)conj)), rxdataF128[4]);
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch0_128[5],*(int16x4_t*)conj)), rxdataF128[5]);
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
-
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp0_128[2] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- mmtmpD0 = vmull_s16(dl_ch1_128[4], rxdataF128[4]);
- mmtmpD1 = vmull_s16(dl_ch1_128[5], rxdataF128[5]);
- mmtmpD0 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0),vget_high_s32(mmtmpD0)),
- vpadd_s32(vget_low_s32(mmtmpD1),vget_high_s32(mmtmpD1)));
-
- mmtmpD0b = vmull_s16(vrev32_s16(vmul_s16(dl_ch1_128[4],*(int16x4_t*)conj)), rxdataF128[4]);
- mmtmpD1b = vmull_s16(vrev32_s16(vmul_s16(dl_ch1_128[5],*(int16x4_t*)conj)), rxdataF128[5]);
- mmtmpD1 = vcombine_s32(vpadd_s32(vget_low_s32(mmtmpD0b),vget_high_s32(mmtmpD0b)),
- vpadd_s32(vget_low_s32(mmtmpD1b),vget_high_s32(mmtmpD1b)));
-
-
- mmtmpD0 = vqshlq_s32(mmtmpD0,output_shift128);
- mmtmpD1 = vqshlq_s32(mmtmpD1,output_shift128);
- rxdataF_comp1_128[2] = vcombine_s16(vmovn_s32(mmtmpD0),vmovn_s32(mmtmpD1));
- }
- }
-
-
-
- Nre = (pilots==0) ? 12 : 8;
-
- // rx_antennas
- }
-
-
- Nre = (pilots==0) ? 12 : 8;
-
- precoded_signal_strength0 += ((signal_energy_nodc(&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*Nre],
- (nb_rb*Nre))*rx_power_correction) - (measurements->n0_power[aarx]));
- precoded_signal_strength1 += ((signal_energy_nodc(&dl_ch_estimates_ext[aarx+2][symbol*frame_parms->N_RB_DL*Nre],
- (nb_rb*Nre))*rx_power_correction) - (measurements->n0_power[aarx]));
-
- measurements->precoded_cqi_dB[eNB_id][0] = dB_fixed2(precoded_signal_strength0,measurements->n0_power_tot);
- measurements->precoded_cqi_dB[eNB_id][1] = dB_fixed2(precoded_signal_strength1,measurements->n0_power_tot);
-
-#endif
-}
-
-
-void dlsch_dual_stream_correlation(LTE_DL_FRAME_PARMS *frame_parms,
- unsigned char symbol,
- unsigned short nb_rb,
- int **dl_ch_estimates_ext,
- int **dl_ch_estimates_ext_i,
- int **dl_ch_rho_ext,
- unsigned char output_shift)
-{
-
-#if defined(__x86_64__)||defined(__i386__)
-
- unsigned short rb;
- __m128i *dl_ch128,*dl_ch128i,*dl_ch_rho128,mmtmpD0,mmtmpD1,mmtmpD2,mmtmpD3;
- unsigned char aarx,symbol_mod,pilots=0;
-
- // printf("dlsch_dual_stream_correlation: symbol %d\n",symbol);
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) {
- pilots=1;
- }
-
- // printf("Dual stream correlation (%p)\n",dl_ch_estimates_ext_i);
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
-
-
- //printf ("antenna %d", aarx);
- dl_ch128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
-
- if (dl_ch_estimates_ext_i == NULL) // TM3/4
- dl_ch128i = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
- else
- dl_ch128i = (__m128i *)&dl_ch_estimates_ext_i[aarx][symbol*frame_parms->N_RB_DL*12];
-
- dl_ch_rho128 = (__m128i *)&dl_ch_rho_ext[aarx][symbol*frame_parms->N_RB_DL*12];
-
-
- for (rb=0; rb=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) {
- pilots=1;
- }
-
- // printf("Dual stream correlation (%p)\n",dl_ch_estimates_ext_i);
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
- if (aarx==0) {
- output_shift=output_shift0;
- }
- else {
- output_shift=output_shift1;
- }
-
- //printf ("antenna %d", aarx);
- dl_ch128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
-
- if (dl_ch_estimates_ext_i == NULL) // TM3/4
- dl_ch128i = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
- else
- dl_ch128i = (__m128i *)&dl_ch_estimates_ext_i[aarx][symbol*frame_parms->N_RB_DL*12];
-
- dl_ch_rho128 = (__m128i *)&dl_ch_rho_ext[aarx][symbol*frame_parms->N_RB_DL*12];
-
-
- for (rb=0; rbnb_antennas_rx>1) {
-
- for (aatx=0; aatxnb_antenna_ports_eNB; aatx++) {
-
- rxdataF_comp128_0 = (__m128i *)&rxdataF_comp[(aatx<<1)][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_1 = (__m128i *)&rxdataF_comp[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_0 = (__m128i *)&dl_ch_mag[(aatx<<1)][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_1 = (__m128i *)&dl_ch_mag[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_0b = (__m128i *)&dl_ch_magb[(aatx<<1)][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_1b = (__m128i *)&dl_ch_magb[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12];
-
- // MRC on each re of rb, both on MF output and magnitude (for 16QAM/64QAM llr computation)
- for (i=0;iN_RB_DL*12];
- rho128_1 = (__m128i *) &rho[1][symbol*frame_parms->N_RB_DL*12];
- for (i=0;iN_RB_DL*12];
- rho128_i1 = (__m128i *) &rho_i[1][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_i0 = (__m128i *)&rxdataF_comp_i[0][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_i1 = (__m128i *)&rxdataF_comp_i[1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i0 = (__m128i *)&dl_ch_mag_i[0][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i1 = (__m128i *)&dl_ch_mag_i[1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i0b = (__m128i *)&dl_ch_magb_i[0][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i1b = (__m128i *)&dl_ch_magb_i[1][symbol*frame_parms->N_RB_DL*12];
-
- for (i=0; inb_antennas_rx>1) {
-
- for (aatx=0; aatxnb_antenna_ports_eNB; aatx++) {
-
- rxdataF_comp128_0 = (int16x8_t *)&rxdataF_comp[(aatx<<1)][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_1 = (int16x8_t *)&rxdataF_comp[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_0 = (int16x8_t *)&dl_ch_mag[(aatx<<1)][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_1 = (int16x8_t *)&dl_ch_mag[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_0b = (int16x8_t *)&dl_ch_magb[(aatx<<1)][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_1b = (int16x8_t *)&dl_ch_magb[(aatx<<1)+1][symbol*frame_parms->N_RB_DL*12];
-
- // MRC on each re of rb, both on MF output and magnitude (for 16QAM/64QAM llr computation)
- for (i=0; iN_RB_DL*12];
- rho128_1 = (int16x8_t *) &rho[1][symbol*frame_parms->N_RB_DL*12];
-
- for (i=0; iN_RB_DL*12];
- rho128_i1 = (int16x8_t *) &rho_i[1][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_i0 = (int16x8_t *)&rxdataF_comp_i[0][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_i1 = (int16x8_t *)&rxdataF_comp_i[1][symbol*frame_parms->N_RB_DL*12];
-
- dl_ch_mag128_i0 = (int16x8_t *)&dl_ch_mag_i[0][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i1 = (int16x8_t *)&dl_ch_mag_i[1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i0b = (int16x8_t *)&dl_ch_magb_i[0][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i1b = (int16x8_t *)&dl_ch_magb_i[1][symbol*frame_parms->N_RB_DL*12];
-
- for (i=0; irxdataF_comp0;
- int **rxdataF_comp1 = pdsch_vars->rxdataF_comp1[harq_pid][round];
- int **dl_ch_rho_ext = pdsch_vars->dl_ch_rho_ext[harq_pid][round]; //for second stream
- int **dl_ch_rho2_ext = pdsch_vars->dl_ch_rho2_ext;
- int **dl_ch_mag0 = pdsch_vars->dl_ch_mag0;
- int **dl_ch_mag1 = pdsch_vars->dl_ch_mag1[harq_pid][round];
- int **dl_ch_magb0 = pdsch_vars->dl_ch_magb0;
- int **dl_ch_magb1 = pdsch_vars->dl_ch_magb1[harq_pid][round];
-
- if (frame_parms->nb_antennas_rx>1) {
-
- rxdataF_comp128_0 = (__m128i *)&rxdataF_comp0[0][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_1 = (__m128i *)&rxdataF_comp0[1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_0 = (__m128i *)&dl_ch_mag0[0][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_1 = (__m128i *)&dl_ch_mag0[1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_0b = (__m128i *)&dl_ch_magb0[0][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_1b = (__m128i *)&dl_ch_magb0[1][symbol*frame_parms->N_RB_DL*12];
-
- // MRC on each re of rb, both on MF output and magnitude (for 16QAM/64QAM llr computation)
- for (i=0;iN_RB_DL*12];
- rho128_1 = (__m128i *) &dl_ch_rho2_ext[1][symbol*frame_parms->N_RB_DL*12];
- for (i=0;iN_RB_DL*12];
- rho128_i1 = (__m128i *) &dl_ch_rho_ext[1][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_i0 = (__m128i *)&rxdataF_comp1[0][symbol*frame_parms->N_RB_DL*12];
- rxdataF_comp128_i1 = (__m128i *)&rxdataF_comp1[1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i0 = (__m128i *)&dl_ch_mag1[0][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i1 = (__m128i *)&dl_ch_mag1[1][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i0b = (__m128i *)&dl_ch_magb1[0][symbol*frame_parms->N_RB_DL*12];
- dl_ch_mag128_i1b = (__m128i *)&dl_ch_magb1[1][symbol*frame_parms->N_RB_DL*12];
- for (i=0;i=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) {
- if (frame_parms->nb_antenna_ports_eNB==1) // 10 out of 12 so don't reduce size
- nb_rb=1+(5*nb_rb/6);
- else
- pilots=1;
- }
-
- // Determine scaling amplitude based the symbol
-
- ch_amp = ((pilots) ? (dlsch_ue[0]->sqrt_rho_b) : (dlsch_ue[0]->sqrt_rho_a));
-
- LOG_D(PHY,"Scaling PDSCH Chest in OFDM symbol %d by %d, pilots %d nb_rb %d NCP %d symbol %d\n",symbol_mod,ch_amp,pilots,nb_rb,frame_parms->Ncp,symbol);
- // printf("Scaling PDSCH Chest in OFDM symbol %d by %d\n",symbol_mod,ch_amp);
-
- ch_amp128 = _mm_set1_epi16(ch_amp); // Q3.13
-
- for (aatx=0; aatxnb_antenna_ports_eNB; aatx++) {
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
- dl_ch128=(__m128i *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0;rb=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1))
- nre=8;
- else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB==1))
- nre=10;
- else
- nre=12;
-
- //nb_rb*nre = y * 2^x
- int16_t x = factor2(nb_rb*nre);
- int16_t y = (nb_rb*nre)>>x;
- //printf("nb_rb*nre = %d = %d * 2^(%d)\n",nb_rb*nre,y,x);
-
- for (aatx=0; aatxnb_antenna_ports_eNB; aatx++)
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- //clear average level
- avg128D = _mm_setzero_si128();
- // 5 is always a symbol with no pilots for both normal and extended prefix
-
- dl_ch128=(__m128i *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0;rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) {
- dl_ch128+=2;
- }
- else {
- avg128D = _mm_add_epi32(avg128D,_mm_srai_epi16(_mm_madd_epi16(dl_ch128[2],dl_ch128[2]),x));
- //avg128D = _mm_add_epi32(avg128D,_mm_madd_epi16(dl_ch128[2],_mm_srai_epi16(_mm_mulhi_epi16(dl_ch128[2], coeff128),15)));
- dl_ch128+=3;
- }
- /*
- if (rb==0) {
- print_shorts("dl_ch128",&dl_ch128[0]);
- print_shorts("dl_ch128",&dl_ch128[1]);
- print_shorts("dl_ch128",&dl_ch128[2]);
- }
- */
- }
-
- avg[(aatx<<1)+aarx] =(((int32_t*)&avg128D)[0] +
- ((int32_t*)&avg128D)[1] +
- ((int32_t*)&avg128D)[2] +
- ((int32_t*)&avg128D)[3])/y;
- // printf("Channel level : %d\n",avg[(aatx<<1)+aarx]);
- }
-
- _mm_empty();
- _m_empty();
-
-#elif defined(__arm__)
-
- short rb;
- unsigned char aatx,aarx,nre=12,symbol_mod;
- int32x4_t avg128D;
- int16x4_t *dl_ch128;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- for (aatx=0; aatxnb_antenna_ports_eNB; aatx++)
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- //clear average level
- avg128D = vdupq_n_s32(0);
- // 5 is always a symbol with no pilots for both normal and extended prefix
-
- dl_ch128=(int16x4_t *)&dl_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0; rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) {
- dl_ch128+=4;
- } else {
- avg128D = vqaddq_s32(avg128D,vmull_s16(dl_ch128[4],dl_ch128[4]));
- avg128D = vqaddq_s32(avg128D,vmull_s16(dl_ch128[5],dl_ch128[5]));
- dl_ch128+=6;
- }
-
- /*
- if (rb==0) {
- print_shorts("dl_ch128",&dl_ch128[0]);
- print_shorts("dl_ch128",&dl_ch128[1]);
- print_shorts("dl_ch128",&dl_ch128[2]);
- }
- */
- }
-
-
- if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1))
- nre=8;
- else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB==1))
- nre=10;
- else
- nre=12;
-
- avg[(aatx<<1)+aarx] = (((int32_t*)&avg128D)[0] +
- ((int32_t*)&avg128D)[1] +
- ((int32_t*)&avg128D)[2] +
- ((int32_t*)&avg128D)[3])/(nb_rb*nre);
-
- // printf("Channel level : %d\n",avg[(aatx<<1)+aarx]);
- }
-
-
-#endif
-}
-
-//compute average channel_level of effective (precoded) channel
-
-//compute average channel_level of effective (precoded) channel
-void dlsch_channel_level_TM34(int **dl_ch_estimates_ext,
- LTE_DL_FRAME_PARMS *frame_parms,
- unsigned char *pmi_ext,
- int *avg_0,
- int *avg_1,
- uint8_t symbol,
- unsigned short nb_rb,
- MIMO_mode_t mimo_mode){
-
-#if defined(__x86_64__)||defined(__i386__)
-
-
- short rb;
- unsigned char aarx,nre=12,symbol_mod;
- __m128i *dl_ch0_128,*dl_ch1_128, dl_ch0_128_tmp, dl_ch1_128_tmp, avg_0_128D, avg_1_128D;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- //clear average level
- // avg_0_128D = _mm_setzero_si128();
- // avg_1_128D = _mm_setzero_si128();
- avg_0[0] = 0;
- avg_0[1] = 0;
- avg_1[0] = 0;
- avg_1[1] = 0;
- // 5 is always a symbol with no pilots for both normal and extended prefix
-
- if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1))
- nre=8;
- else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB==1))
- nre=10;
- else
- nre=12;
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
-
- avg_0_128D = _mm_setzero_si128();
- avg_1_128D = _mm_setzero_si128();
- for (rb=0; rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) {
- dl_ch0_128+=2;
- dl_ch1_128+=2;
- }
- else {
- dl_ch0_128_tmp = _mm_load_si128(&dl_ch0_128[2]);
- dl_ch1_128_tmp = _mm_load_si128(&dl_ch1_128[2]);
-
- if (mimo_mode==LARGE_CDD)
- prec2A_TM3_128(&dl_ch0_128_tmp,&dl_ch1_128_tmp);
- else if (mimo_mode==DUALSTREAM_UNIFORM_PRECODING1)
- prec2A_TM4_128(0,&dl_ch0_128_tmp,&dl_ch1_128_tmp);
- else if (mimo_mode==DUALSTREAM_UNIFORM_PRECODINGj)
- prec2A_TM4_128(1,&dl_ch0_128_tmp,&dl_ch1_128_tmp);
- else if (mimo_mode==DUALSTREAM_PUSCH_PRECODING)
- prec2A_TM4_128(pmi_ext[rb],&dl_ch0_128_tmp,&dl_ch1_128_tmp);
- // mmtmpD2 = _mm_madd_epi16(dl_ch0_128_tmp,dl_ch0_128_tmp);
-
- avg_1_128D = _mm_add_epi32(avg_1_128D,_mm_madd_epi16(dl_ch1_128_tmp,dl_ch1_128_tmp));
- avg_0_128D = _mm_add_epi32(avg_0_128D,_mm_madd_epi16(dl_ch0_128_tmp,dl_ch0_128_tmp));
-
- dl_ch0_128+=3;
- dl_ch1_128+=3;
- }
- }
-
-
- avg_0[aarx] = (((int*)&avg_0_128D)[0])/(nb_rb*nre) +
- (((int*)&avg_0_128D)[1])/(nb_rb*nre) +
- (((int*)&avg_0_128D)[2])/(nb_rb*nre) +
- (((int*)&avg_0_128D)[3])/(nb_rb*nre);
- // printf("From Chan_level aver stream 0 %d =%d\n", aarx, avg_0[aarx]);
-
- avg_1[aarx] = (((int*)&avg_1_128D)[0])/(nb_rb*nre) +
- (((int*)&avg_1_128D)[1])/(nb_rb*nre) +
- (((int*)&avg_1_128D)[2])/(nb_rb*nre) +
- (((int*)&avg_1_128D)[3])/(nb_rb*nre);
- // printf("From Chan_level aver stream 1 %d =%d\n", aarx, avg_1[aarx]);
- }
-//avg_0[0] = max(avg_0[0],avg_0[1]);
-//avg_1[0] = max(avg_1[0],avg_1[1]);
-//avg_0[0]= max(avg_0[0], avg_1[0]);
-
- avg_0[0] = avg_0[0] + avg_0[1];
- // printf("From Chan_level aver stream 0 final =%d\n", avg_0[0]);
- avg_1[0] = avg_1[0] + avg_1[1];
- // printf("From Chan_level aver stream 1 final =%d\n", avg_1[0]);
- avg_0[0] = min (avg_0[0], avg_1[0]);
- avg_1[0] = avg_0[0];
-
- _mm_empty();
- _m_empty();
-
-#elif defined(__arm__)
-
-#endif
-}
-
-
-
-/*void dlsch_channel_level_TM34(int **dl_ch_estimates_ext,
- LTE_DL_FRAME_PARMS *frame_parms,
- int *avg,
- uint8_t symbol,
- unsigned short nb_rb,
- MIMO_mode_t mimo_mode){
-
-#if defined(__x86_64__)||defined(__i386__)
-
-
- short rb;
- unsigned char aarx,nre=12,symbol_mod;
- __m128i *dl_ch0_128,*dl_ch1_128, dl_ch0_128_tmp, dl_ch1_128_tmp,avg128D;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- //clear average level
- avg128D = _mm_setzero_si128();
- avg[0] = 0;
- avg[1] = 0;
- // 5 is always a symbol with no pilots for both normal and extended prefix
-
- if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1))
- nre=8;
- else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB==1))
- nre=10;
- else
- nre=12;
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0; rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) {
- dl_ch0_128+=2;
- dl_ch1_128+=2;
- }
- else {
- dl_ch0_128_tmp = _mm_load_si128(&dl_ch0_128[2]);
- dl_ch1_128_tmp = _mm_load_si128(&dl_ch1_128[2]);
-
- if (mimo_mode==LARGE_CDD)
- prec2A_TM3_128(&dl_ch0_128_tmp,&dl_ch1_128_tmp);
- else if (mimo_mode==DUALSTREAM_UNIFORM_PRECODING1)
- prec2A_TM4_128(0,&dl_ch0_128_tmp,&dl_ch1_128_tmp);
- else if (mimo_mode==DUALSTREAM_UNIFORM_PRECODINGj)
- prec2A_TM4_128(1,&dl_ch0_128_tmp,&dl_ch1_128_tmp);
-
- // mmtmpD2 = _mm_madd_epi16(dl_ch0_128_tmp,dl_ch0_128_tmp);
- avg128D = _mm_add_epi32(avg128D,_mm_madd_epi16(dl_ch0_128_tmp,dl_ch0_128_tmp));
-
- dl_ch0_128+=3;
- dl_ch1_128+=3;
- }
- }
-
- avg[aarx] = (((int*)&avg128D)[0])/(nb_rb*nre) +
- (((int*)&avg128D)[1])/(nb_rb*nre) +
- (((int*)&avg128D)[2])/(nb_rb*nre) +
- (((int*)&avg128D)[3])/(nb_rb*nre);
- }
-
- // choose maximum of the 2 effective channels
- avg[0] = cmax(avg[0],avg[1]);
-
- _mm_empty();
- _m_empty();
-
-#elif defined(__arm__)
-
-#endif
-}*/
-
-//compute average channel_level of effective (precoded) channel
-void dlsch_channel_level_TM56(int **dl_ch_estimates_ext,
- LTE_DL_FRAME_PARMS *frame_parms,
- unsigned char *pmi_ext,
- int *avg,
- uint8_t symbol,
- unsigned short nb_rb)
-{
-
-#if defined(__x86_64__)||defined(__i386__)
-
- short rb;
- unsigned char aarx,nre=12,symbol_mod;
- __m128i *dl_ch0_128,*dl_ch1_128, dl_ch0_128_tmp, dl_ch1_128_tmp,avg128D;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- //clear average level
- avg128D = _mm_setzero_si128();
- avg[0] = 0;
- avg[1] = 0;
- // 5 is always a symbol with no pilots for both normal and extended prefix
-
- if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1))
- nre=8;
- else if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1)))&&(frame_parms->nb_antenna_ports_eNB==1))
- nre=10;
- else
- nre=12;
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
- dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0; rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) {
- dl_ch0_128+=2;
- dl_ch1_128+=2;
- }
- else {
- dl_ch0_128_tmp = _mm_load_si128(&dl_ch0_128[2]);
- dl_ch1_128_tmp = _mm_load_si128(&dl_ch1_128[2]);
-
- prec2A_TM56_128(pmi_ext[rb],&dl_ch0_128_tmp,&dl_ch1_128_tmp);
- // mmtmpD2 = _mm_madd_epi16(dl_ch0_128_tmp,dl_ch0_128_tmp);
- avg128D = _mm_add_epi32(avg128D,_mm_madd_epi16(dl_ch0_128_tmp,dl_ch0_128_tmp));
-
- dl_ch0_128+=3;
- dl_ch1_128+=3;
- }
- }
-
- avg[aarx] = (((int*)&avg128D)[0])/(nb_rb*nre) +
- (((int*)&avg128D)[1])/(nb_rb*nre) +
- (((int*)&avg128D)[2])/(nb_rb*nre) +
- (((int*)&avg128D)[3])/(nb_rb*nre);
- }
-
- // choose maximum of the 2 effective channels
- avg[0] = cmax(avg[0],avg[1]);
-
- _mm_empty();
- _m_empty();
-
-#elif defined(__arm__)
-
-
-#endif
-}
-
-//compute average channel_level for TM7
-void dlsch_channel_level_TM7(int **dl_bf_ch_estimates_ext,
- LTE_DL_FRAME_PARMS *frame_parms,
- int *avg,
- uint8_t symbol,
- unsigned short nb_rb)
-{
-
-#if defined(__x86_64__)||defined(__i386__)
-
- short rb;
- unsigned char aatx,aarx,nre=12,symbol_mod;
- __m128i *dl_ch128,avg128D;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- for (aatx=0; aatxnb_antenna_ports_eNB; aatx++)
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
- //clear average level
- avg128D = _mm_setzero_si128();
- // 5 is always a symbol with no pilots for both normal and extended prefix
-
- dl_ch128=(__m128i *)&dl_bf_ch_estimates_ext[(aatx<<1)+aarx][symbol*frame_parms->N_RB_DL*12];
-
- for (rb=0; rbNcp-1)))&&(frame_parms->nb_antenna_ports_eNB!=1)) {
- dl_ch128+=2;
- } else {
- avg128D = _mm_add_epi32(avg128D,_mm_madd_epi16(dl_ch128[2],dl_ch128[2]));
- dl_ch128+=3;
- }
-
- /*
- if (rb==0) {
- print_shorts("dl_ch128",&dl_ch128[0]);
- print_shorts("dl_ch128",&dl_ch128[1]);
- print_shorts("dl_ch128",&dl_ch128[2]);
- }
- */
- }
-
- if (((symbol_mod == 0) || (symbol_mod == (frame_parms->Ncp-1))))
- nre=10;
- else if ((frame_parms->Ncp==0) && (symbol==3 || symbol==6 || symbol==9 || symbol==12))
- nre=9;
- else if ((frame_parms->Ncp==1) && (symbol==4 || symbol==7 || symbol==9))
- nre=8;
- else
- nre=12;
-
- avg[(aatx<<1)+aarx] = (((int*)&avg128D)[0] +
- ((int*)&avg128D)[1] +
- ((int*)&avg128D)[2] +
- ((int*)&avg128D)[3])/(nb_rb*nre);
-
- // printf("Channel level : %d\n",avg[(aatx<<1)+aarx]);
- }
-
- _mm_empty();
- _m_empty();
-
-#elif defined(__arm__)
-
-#endif
-}
-//#define ONE_OVER_2_Q15 16384
-void dlsch_alamouti(LTE_DL_FRAME_PARMS *frame_parms,
- int **rxdataF_comp,
- int **dl_ch_mag,
- int **dl_ch_magb,
- unsigned char symbol,
- unsigned short nb_rb)
-{
-
-#if defined(__x86_64__)||defined(__i386__)
-
- short *rxF0,*rxF1;
- __m128i *ch_mag0,*ch_mag1,*ch_mag0b,*ch_mag1b, *rxF0_128;
- unsigned char rb,re;
- int jj = (symbol*frame_parms->N_RB_DL*12);
- uint8_t symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
- uint8_t pilots = ((symbol_mod==0)||(symbol_mod==(4-frame_parms->Ncp))) ? 1 : 0;
- rxF0_128 = (__m128i*) &rxdataF_comp[0][jj];
-
- //amp = _mm_set1_epi16(ONE_OVER_2_Q15);
-
-
- // printf("Doing alamouti!\n");
- rxF0 = (short*)&rxdataF_comp[0][jj]; //tx antenna 0 h0*y
- rxF1 = (short*)&rxdataF_comp[2][jj]; //tx antenna 1 h1*y
- ch_mag0 = (__m128i *)&dl_ch_mag[0][jj];
- ch_mag1 = (__m128i *)&dl_ch_mag[2][jj];
- ch_mag0b = (__m128i *)&dl_ch_magb[0][jj];
- ch_mag1b = (__m128i *)&dl_ch_magb[2][jj];
-
- for (rb=0; rb=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
- pilots = ((symbol_mod==0)||(symbol_mod==(4-frame_parms->Ncp))) ? 1 : 0;
- l=symbol;
- nsymb = (frame_parms->Ncp==NORMAL) ? 14:12;
-
- if (frame_parms->frame_type == TDD) { // TDD
- sss_symb = nsymb-1;
- pss_symb = 2;
- } else {
- sss_symb = (nsymb>>1)-2;
- pss_symb = (nsymb>>1)-1;
- }
-
- if (symbol_mod==(4-frame_parms->Ncp))
- poffset=3;
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
- if (high_speed_flag == 1)
- dl_ch0 = &dl_ch_estimates[aarx][5+(symbol*(frame_parms->ofdm_symbol_size))];
- else
- dl_ch0 = &dl_ch_estimates[aarx][5];
-
- dl_ch0_ext = &dl_ch_estimates_ext[aarx][symbol*(frame_parms->N_RB_DL*12)];
-
- rxF_ext = &rxdataF_ext[aarx][symbol*(frame_parms->N_RB_DL*12)];
- rxF = &rxdataF[aarx][(frame_parms->first_carrier_offset + (symbol*(frame_parms->ofdm_symbol_size)))];
-
- if ((frame_parms->N_RB_DL&1) == 0) // even number of RBs
-
- for (rb=0;rbN_RB_DL;rb++) {
-
- if (rb < 32)
- rb_alloc_ind = (rb_alloc[0]>>rb) & 1;
- else if (rb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(rb-32)) & 1;
- else if (rb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(rb-64)) & 1;
- else if (rb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(rb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
- if (rb_alloc_ind == 1)
- nb_rb++;
-
- // For second half of RBs skip DC carrier
- if (rb==(frame_parms->N_RB_DL>>1)) {
- rxF = &rxdataF[aarx][(1 + (symbol*(frame_parms->ofdm_symbol_size)))];
- //dl_ch0++;
- }
-
- // PBCH
- if ((subframe==0) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=nsymb>>1) && (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- }
-
- //SSS
- if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb) ) {
- rb_alloc_ind = 0;
- }
-
-
- if (frame_parms->frame_type == FDD) {
- //PSS
- if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- if ((frame_parms->frame_type == TDD) &&
- (subframe==6)) { //TDD Subframe 6
- if ((rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- if (rb_alloc_ind==1) {
- *pmi_ext = (pmi>>((rb>>2)<<1))&3;
- memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int));
-
- /*
- printf("rb %d\n",rb);
- for (i=0;i<12;i++)
- printf("(%d %d)",((short *)dl_ch0)[i<<1],((short*)dl_ch0)[1+(i<<1)]);
- printf("\n");
- */
- if (pilots==0) {
- for (i=0; i<12; i++) {
- rxF_ext[i]=rxF[i];
- /*
- printf("%d : (%d,%d)\n",(rxF+i-&rxdataF[aarx][( (symbol*(frame_parms->ofdm_symbol_size)))]),
- ((short*)&rxF[i])[0],((short*)&rxF[i])[1]);*/
- }
-
- dl_ch0_ext+=12;
- rxF_ext+=12;
- } else {
- j=0;
-
- for (i=0; i<12; i++) {
- if ((i!=(frame_parms->nushift+poffset)) &&
- (i!=((frame_parms->nushift+poffset+6)%12))) {
- rxF_ext[j]=rxF[i];
- // printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
- dl_ch0_ext[j++]=dl_ch0[i];
-
- }
- }
-
- dl_ch0_ext+=10;
- rxF_ext+=10;
- }
-
-
- }
-
- dl_ch0+=12;
- rxF+=12;
-
- }
- else { // Odd number of RBs
- for (rb=0; rbN_RB_DL>>1; rb++) {
-#ifdef DEBUG_DLSCH_DEMOD
- printf("dlch_ext %d\n",dl_ch0_ext-&dl_ch_estimates_ext[aarx][0]);
-#endif
- skip_half=0;
-
- if (rb < 32)
- rb_alloc_ind = (rb_alloc[0]>>rb) & 1;
- else if (rb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(rb-32)) & 1;
- else if (rb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(rb-64)) & 1;
- else if (rb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(rb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
- if (rb_alloc_ind == 1)
- nb_rb++;
-
-
- // PBCH
- if ((subframe==0) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- }
-
- //PBCH subframe 0, symbols nsymb>>1 ... nsymb>>1 + 3
- if ((subframe==0) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4)))
- skip_half=1;
- else if ((subframe==0) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4)))
- skip_half=2;
-
- //SSS
-
- if (((subframe==0)||(subframe==5)) &&
- (rb>((frame_parms->N_RB_DL>>1)-3)) &&
- (rb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==sss_symb) ) {
- rb_alloc_ind = 0;
- }
- //SSS
- if (((subframe==0)||(subframe==5)) &&
- (rb==((frame_parms->N_RB_DL>>1)-3)) &&
- (l==sss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) &&
- (rb==((frame_parms->N_RB_DL>>1)+3)) &&
- (l==sss_symb))
- skip_half=2;
-
- //PSS in subframe 0/5 if FDD
- if (frame_parms->frame_type == FDD) { //FDD
-
- if (((subframe==0)||(subframe==5)) &&
- (rb>((frame_parms->N_RB_DL>>1)-3)) &&
- (rb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb))
- skip_half=2;
- }
-
- if ((frame_parms->frame_type == TDD) &&
- (subframe==6)){ //TDD Subframe 6
- if ((rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- if ((rb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb))
- skip_half=1;
- else if ((rb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb))
- skip_half=2;
- }
-
-
- if (rb_alloc_ind==1) {
-
-#ifdef DEBUG_DLSCH_DEMOD
- printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half);
-#endif
- if (pilots==0) {
- // printf("Extracting w/o pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
- if (skip_half==1) {
- memcpy(dl_ch0_ext,dl_ch0,6*sizeof(int));
-
- for (i=0; i<6; i++) {
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- dl_ch0_ext+=6;
- rxF_ext+=6;
- } else if (skip_half==2) {
- memcpy(dl_ch0_ext,dl_ch0+6,6*sizeof(int));
-
- for (i=0; i<6; i++) {
- rxF_ext[i]=rxF[(i+6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- dl_ch0_ext+=6;
- rxF_ext+=6;
- } else {
- memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int));
-
- for (i=0; i<12; i++) {
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- dl_ch0_ext+=12;
- rxF_ext+=12;
- }
- } else {
- // printf("Extracting with pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
- j=0;
-
- if (skip_half==1) {
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- rxF_ext[j]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j++]=dl_ch0[i];
- }
- }
- rxF_ext+=5;
- dl_ch0_ext+=5;
- } else if (skip_half==2) {
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- rxF_ext[j]=rxF[(i+6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j++]=dl_ch0[i+6];
- }
- }
-
- dl_ch0_ext+=5;
- rxF_ext+=5;
- } else {
- for (i=0; i<12; i++) {
- if ((i!=(frame_parms->nushift+poffset)) &&
- (i!=((frame_parms->nushift+poffset+6)%12))) {
- rxF_ext[j]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j++]=dl_ch0[i];
-
- }
- }
-
- dl_ch0_ext+=10;
- rxF_ext+=10;
- }
- }
- }
- dl_ch0+=12;
- rxF+=12;
- } // first half loop
-
-
- // Do middle RB (around DC)
- if (rb < 32)
- rb_alloc_ind = (rb_alloc[0]>>rb) & 1;
- else if (rb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(rb-32)) & 1;
- else if (rb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(rb-64)) & 1;
- else if (rb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(rb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
-
- if (rb_alloc_ind == 1)
- nb_rb++;
-
- // PBCH
-
- if ((subframe==0) &&
- (l>=(nsymb>>1)) &&
- (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- }
-
- //SSS
- if (((subframe==0)||(subframe==5)) && (l==sss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- if (frame_parms->frame_type == FDD) {
- //PSS
- if (((subframe==0)||(subframe==5)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- //PSS
- if ((frame_parms->frame_type == TDD) &&
- (subframe==6) &&
- (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
-
-
- // printf("dlch_ext %d\n",dl_ch0_ext-&dl_ch_estimates_ext[aarx][0]);
- // printf("DC rb %d (%p)\n",rb,rxF);
- if (rb_alloc_ind==1) {
-#ifdef DEBUG_DLSCH_DEMOD
- printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half);
-#endif
- if (pilots==0) {
- for (i=0; i<6; i++) {
- dl_ch0_ext[i]=dl_ch0[i];
- rxF_ext[i]=rxF[i];
- }
-
- rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))];
-
- for (; i<12; i++) {
- dl_ch0_ext[i]=dl_ch0[i];
- rxF_ext[i]=rxF[(1+i-6)];
- }
-
- dl_ch0_ext+=12;
- rxF_ext+=12;
- } else { // pilots==1
- j=0;
-
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- dl_ch0_ext[j]=dl_ch0[i];
- rxF_ext[j++]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("**extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j-1],*(1+(short*)&rxF_ext[j-1]));
-#endif
- }
- }
-
- rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))];
-
- for (; i<12; i++) {
- if (i!=((frame_parms->nushift+6+poffset)%12)) {
- dl_ch0_ext[j]=dl_ch0[i];
- rxF_ext[j++]=rxF[(1+i-6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("**extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j-1],*(1+(short*)&rxF_ext[j-1]));
-#endif
- }
- }
-
- dl_ch0_ext+=10;
- rxF_ext+=10;
- } // symbol_mod==0
- } // rballoc==1
- else {
- rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))];
- }
-
- dl_ch0+=12;
- rxF+=7;
- rb++;
-
- for (;rbN_RB_DL;rb++) {
- // printf("dlch_ext %d\n",dl_ch0_ext-&dl_ch_estimates_ext[aarx][0]);
- // printf("rb %d (%p)\n",rb,rxF);
- skip_half=0;
-
- if (rb < 32)
- rb_alloc_ind = (rb_alloc[0]>>rb) & 1;
- else if (rb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(rb-32)) & 1;
- else if (rb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(rb-64)) & 1;
- else if (rb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(rb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
- if (rb_alloc_ind == 1)
- nb_rb++;
-
- // PBCH
- if ((subframe==0) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=nsymb>>1) && (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- }
- //PBCH subframe 0, symbols nsymb>>1 ... nsymb>>1 + 3
- if ((subframe==0) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4)))
- skip_half=1;
- else if ((subframe==0) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4)))
- skip_half=2;
-
- //SSS
- if (((subframe==0)||(subframe==5)) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb) ) {
- rb_alloc_ind = 0;
- }
- //SSS
- if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l==sss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb))
- skip_half=2;
- if (frame_parms->frame_type == FDD) {
- //PSS
- if (((subframe==0)||(subframe==5)) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- //PSS
-
- if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb))
- skip_half=2;
- }
-
- if ((frame_parms->frame_type == TDD) &&
-
- (subframe==6)) { //TDD Subframe 6
- if ((rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- if ((rb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb))
- skip_half=1;
- else if ((rb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb))
- skip_half=2;
- }
-
- if (rb_alloc_ind==1) {
-#ifdef DEBUG_DLSCH_DEMOD
- printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half);
-#endif
- /*
- printf("rb %d\n",rb);
- for (i=0;i<12;i++)
- printf("(%d %d)",((short *)dl_ch0)[i<<1],((short*)dl_ch0)[1+(i<<1)]);
- printf("\n");
- */
- if (pilots==0) {
- // printf("Extracting w/o pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
- if (skip_half==1) {
- memcpy(dl_ch0_ext,dl_ch0,6*sizeof(int));
-
- for (i=0; i<6; i++) {
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- dl_ch0_ext+=6;
- rxF_ext+=6;
-
- } else if (skip_half==2) {
- memcpy(dl_ch0_ext,dl_ch0+6,6*sizeof(int));
-
- for (i=0; i<6; i++) {
- rxF_ext[i]=rxF[(i+6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- dl_ch0_ext+=6;
- rxF_ext+=6;
-
- } else {
- memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int));
-
- for (i=0; i<12; i++) {
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- dl_ch0_ext+=12;
- rxF_ext+=12;
- }
- } else {
- // printf("Extracting with pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
- j=0;
-
- if (skip_half==1) {
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- rxF_ext[j]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j++]=dl_ch0[i];
- }
- }
-
- dl_ch0_ext+=5;
- rxF_ext+=5;
- } else if (skip_half==2) {
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- rxF_ext[j]=rxF[(i+6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j++]=dl_ch0[i+6];
- }
- }
-
- dl_ch0_ext+=5;
- rxF_ext+=5;
- } else {
- for (i=0; i<12; i++) {
- if ((i!=(frame_parms->nushift+poffset)) &&
- (i!=((frame_parms->nushift+poffset+6)%12))) {
- rxF_ext[j]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j++]=dl_ch0[i];
- }
- }
- dl_ch0_ext+=10;
- rxF_ext+=10;
- }
- } // pilots=0
- }
-
- dl_ch0+=12;
- rxF+=12;
- }
- }
- }
-
-
- return(nb_rb/frame_parms->nb_antennas_rx);
-}
-
-unsigned short dlsch_extract_rbs_dual(int **rxdataF,
- int **dl_ch_estimates,
- int **rxdataF_ext,
- int **dl_ch_estimates_ext,
- unsigned short pmi,
- unsigned char *pmi_ext,
- unsigned int *rb_alloc,
- unsigned char symbol,
- unsigned char subframe,
- uint32_t high_speed_flag,
- LTE_DL_FRAME_PARMS *frame_parms,
- MIMO_mode_t mimo_mode) {
-
- int prb,nb_rb=0;
- int prb_off,prb_off2;
- int rb_alloc_ind,skip_half=0,sss_symb,pss_symb=0,nsymb,l;
- int i,aarx;
- int32_t *dl_ch0,*dl_ch0p,*dl_ch0_ext,*dl_ch1,*dl_ch1p,*dl_ch1_ext,*rxF,*rxF_ext;
- int symbol_mod,pilots=0,j=0;
- unsigned char *pmi_loc;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
- // printf("extract_rbs: symbol_mod %d\n",symbol_mod);
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp)))
- pilots=1;
-
- nsymb = (frame_parms->Ncp==NORMAL) ? 14:12;
- l=symbol;
-
- if (frame_parms->frame_type == TDD) { // TDD
- sss_symb = nsymb-1;
- pss_symb = 2;
- } else {
- sss_symb = (nsymb>>1)-2;
- pss_symb = (nsymb>>1)-1;
- }
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
- if (high_speed_flag==1) {
- dl_ch0 = &dl_ch_estimates[aarx][5+(symbol*(frame_parms->ofdm_symbol_size))];
- dl_ch1 = &dl_ch_estimates[2+aarx][5+(symbol*(frame_parms->ofdm_symbol_size))];
- } else {
- dl_ch0 = &dl_ch_estimates[aarx][5];
- dl_ch1 = &dl_ch_estimates[2+aarx][5];
- }
-
- pmi_loc = pmi_ext;
-
- // pointers to extracted RX signals and channel estimates
- rxF_ext = &rxdataF_ext[aarx][symbol*(frame_parms->N_RB_DL*12)];
- dl_ch0_ext = &dl_ch_estimates_ext[aarx][symbol*(frame_parms->N_RB_DL*12)];
- dl_ch1_ext = &dl_ch_estimates_ext[2+aarx][symbol*(frame_parms->N_RB_DL*12)];
-
- for (prb=0; prbN_RB_DL; prb++) {
- skip_half=0;
-
- if (prb < 32)
- rb_alloc_ind = (rb_alloc[0]>>prb) & 1;
- else if (prb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(prb-32)) & 1;
- else if (prb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(prb-64)) & 1;
- else if (prb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(prb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
- if (rb_alloc_ind == 1)
- nb_rb++;
-
-
- if ((frame_parms->N_RB_DL&1) == 0) { // even number of RBs
-
- // PBCH
- if ((subframe==0) &&
- (prb>=((frame_parms->N_RB_DL>>1)-3)) &&
- (prb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l>=(nsymb>>1)) &&
- (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- // printf("symbol %d / rb %d: skipping PBCH REs\n",symbol,prb);
- }
-
- //SSS
-
- if (((subframe==0)||(subframe==5)) &&
- (prb>=((frame_parms->N_RB_DL>>1)-3)) &&
- (prb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==sss_symb) ) {
- rb_alloc_ind = 0;
- // printf("symbol %d / rb %d: skipping SSS REs\n",symbol,prb);
- }
-
-
-
- //PSS in subframe 0/5 if FDD
- if (frame_parms->frame_type == FDD) { //FDD
- if (((subframe==0)||(subframe==5)) &&
- (prb>=((frame_parms->N_RB_DL>>1)-3)) &&
- (prb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==pss_symb) ) {
- rb_alloc_ind = 0;
- // printf("symbol %d / rb %d: skipping PSS REs\n",symbol,prb);
- }
- }
-
- if ((frame_parms->frame_type == TDD) &&
- (subframe==6)) { //TDD Subframe 6
- if ((prb>=((frame_parms->N_RB_DL>>1)-3)) &&
- (prb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- if (rb_alloc_ind==1) { // PRB is allocated
-
-
-
- prb_off = 12*prb;
- prb_off2 = 1+(12*(prb-(frame_parms->N_RB_DL>>1)));
- dl_ch0p = dl_ch0+(12*prb);
- dl_ch1p = dl_ch1+(12*prb);
- if (prb<(frame_parms->N_RB_DL>>1)){
- rxF = &rxdataF[aarx][prb_off+
- frame_parms->first_carrier_offset +
- (symbol*(frame_parms->ofdm_symbol_size))];
- }
- else {
- rxF = &rxdataF[aarx][prb_off2+
- (symbol*(frame_parms->ofdm_symbol_size))];
- }
-
- /*
- if (mimo_mode <= PUSCH_PRECODING1)
- *pmi_loc = (pmi>>((prb>>2)<<1))&3;
- else
- *pmi_loc=(pmi>>prb)&1;*/
-
- *pmi_loc = get_pmi(frame_parms->N_RB_DL,mimo_mode,pmi,prb);
- pmi_loc++;
-
-
- if (pilots == 0) {
-
- memcpy(dl_ch0_ext,dl_ch0p,12*sizeof(int));
- memcpy(dl_ch1_ext,dl_ch1p,12*sizeof(int));
- memcpy(rxF_ext,rxF,12*sizeof(int));
- dl_ch0_ext +=12;
- dl_ch1_ext +=12;
- rxF_ext +=12;
- } else { // pilots==1
- j=0;
- for (i=0; i<12; i++) {
- if ((i!=frame_parms->nushift) &&
- (i!=frame_parms->nushift+3) &&
- (i!=frame_parms->nushift+6) &&
- (i!=((frame_parms->nushift+9)%12))) {
- rxF_ext[j]=rxF[i];
- // printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
- dl_ch0_ext[j]=dl_ch0p[i];
- dl_ch1_ext[j++]=dl_ch1p[i];
- }
- }
- dl_ch0_ext+=8;
- dl_ch1_ext+=8;
- rxF_ext+=8;
- } // pilots==1
-
- }
- } else { // Odd number of RBs
-
-
- // PBCH
- if ((subframe==0) &&
- (prb>((frame_parms->N_RB_DL>>1)-3)) &&
- (prb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l>=(nsymb>>1)) &&
- (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- // printf("symbol %d / rb %d: skipping PBCH REs\n",symbol,prb);
- }
-
- //SSS
-
- if (((subframe==0)||(subframe==5)) &&
- (prb>((frame_parms->N_RB_DL>>1)-3)) &&
- (prb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==sss_symb) ) {
- rb_alloc_ind = 0;
- // printf("symbol %d / rb %d: skipping SSS REs\n",symbol,prb);
- }
-
-
-
- //PSS in subframe 0/5 if FDD
- if (frame_parms->frame_type == FDD) { //FDD
- if (((subframe==0)||(subframe==5)) &&
- (prb>((frame_parms->N_RB_DL>>1)-3)) &&
- (prb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==pss_symb) ) {
- rb_alloc_ind = 0;
- // printf("symbol %d / rb %d: skipping PSS REs\n",symbol,prb);
- }
- }
-
- if ((frame_parms->frame_type == TDD) &&
- ((subframe==1) || (subframe==6))) { //TDD Subframe 1-6
- if ((prb>((frame_parms->N_RB_DL>>1)-3)) &&
- (prb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- if (rb_alloc_ind == 1) {
- skip_half=0;
-
- //Check if we have to drop half a PRB due to PSS/SSS/PBCH
- // skip_half == 0 means full PRB
- // skip_half == 1 means first half is used (leftmost half-PRB from PSS/SSS/PBCH)
- // skip_half == 2 means second half is used (rightmost half-PRB from PSS/SSS/PBCH)
- //PBCH subframe 0, symbols nsymb>>1 ... nsymb>>1 + 3
- if ((subframe==0) &&
- (prb==((frame_parms->N_RB_DL>>1)-3)) &&
- (l>=(nsymb>>1)) &&
- (l<((nsymb>>1) + 4)))
- skip_half=1;
- else if ((subframe==0) &&
- (prb==((frame_parms->N_RB_DL>>1)+3)) &&
- (l>=(nsymb>>1)) &&
- (l<((nsymb>>1) + 4)))
- skip_half=2;
-
- //SSS
- if (((subframe==0)||(subframe==5)) &&
- (prb==((frame_parms->N_RB_DL>>1)-3)) &&
- (l==sss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) &&
- (prb==((frame_parms->N_RB_DL>>1)+3)) &&
- (l==sss_symb))
- skip_half=2;
-
- //PSS Subframe 0,5
- if (((frame_parms->frame_type == FDD) &&
- (((subframe==0)||(subframe==5)))) || //FDD Subframes 0,5
- ((frame_parms->frame_type == TDD) &&
- (((subframe==1) || (subframe==6))))) { //TDD Subframes 1,6
-
- if ((prb==((frame_parms->N_RB_DL>>1)-3)) &&
- (l==pss_symb))
- skip_half=1;
- else if ((prb==((frame_parms->N_RB_DL>>1)+3)) &&
- (l==pss_symb))
- skip_half=2;
- }
-
-
- prb_off = 12*prb;
- prb_off2 = 7+(12*(prb-(frame_parms->N_RB_DL>>1)-1));
- dl_ch0p = dl_ch0+(12*prb);
- dl_ch1p = dl_ch1+(12*prb);
-
- if (prb<=(frame_parms->N_RB_DL>>1)){
- rxF = &rxdataF[aarx][prb_off+
- frame_parms->first_carrier_offset +
- (symbol*(frame_parms->ofdm_symbol_size))];
- }
- else {
- rxF = &rxdataF[aarx][prb_off2+
- (symbol*(frame_parms->ofdm_symbol_size))];
- }
-#ifdef DEBUG_DLSCH_DEMOD
- printf("symbol %d / rb %d: alloc %d skip_half %d (rxF %p, rxF_ext %p) prb_off (%d,%d)\n",symbol,prb,rb_alloc_ind,skip_half,rxF,rxF_ext,prb_off,prb_off2);
-#endif
- /* if (mimo_mode <= PUSCH_PRECODING1)
- *pmi_loc = (pmi>>((prb>>2)<<1))&3;
- else
- *pmi_loc=(pmi>>prb)&1;
- // printf("symbol_mod %d (pilots %d) rb %d, sb %d, pmi %d (pmi_loc %p,rxF %p, ch00 %p, ch01 %p, rxF_ext %p dl_ch0_ext %p dl_ch1_ext %p)\n",symbol_mod,pilots,prb,prb>>2,*pmi_loc,pmi_loc,rxF,dl_ch0, dl_ch1, rxF_ext,dl_ch0_ext,dl_ch1_ext);
-*/
- *pmi_loc = get_pmi(frame_parms->N_RB_DL,mimo_mode,pmi,prb);
- pmi_loc++;
-
- if (prb != (frame_parms->N_RB_DL>>1)) { // This PRB is not around DC
- if (pilots==0) {
- if (skip_half==1) {
- memcpy(dl_ch0_ext,dl_ch0p,6*sizeof(int32_t));
- memcpy(dl_ch1_ext,dl_ch1p,6*sizeof(int32_t));
- memcpy(rxF_ext,rxF,6*sizeof(int32_t));
-#ifdef DEBUG_DLSCH_DEMOD
- for (i=0;i<6;i++)
- printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- dl_ch0_ext+=6;
- dl_ch1_ext+=6;
- rxF_ext+=6;
- } else if (skip_half==2) {
- memcpy(dl_ch0_ext,dl_ch0p+6,6*sizeof(int32_t));
- memcpy(dl_ch1_ext,dl_ch1p+6,6*sizeof(int32_t));
- memcpy(rxF_ext,rxF+6,6*sizeof(int32_t));
-#ifdef DEBUG_DLSCH_DEMOD
- for (i=0;i<6;i++)
- printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- dl_ch0_ext+=6;
- dl_ch1_ext+=6;
- rxF_ext+=6;
- } else { // skip_half==0
- memcpy(dl_ch0_ext,dl_ch0p,12*sizeof(int32_t));
- memcpy(dl_ch1_ext,dl_ch1p,12*sizeof(int32_t));
- memcpy(rxF_ext,rxF,12*sizeof(int32_t));
-#ifdef DEBUG_DLSCH_DEMOD
- for (i=0;i<12;i++)
- printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- dl_ch0_ext+=12;
- dl_ch1_ext+=12;
- rxF_ext+=12;
- }
- } else { // pilots=1
- j=0;
-
- if (skip_half==1) {
- for (i=0; i<6; i++) {
- if ((i!=frame_parms->nushift) &&
- (i!=((frame_parms->nushift+3)%6))) {
- rxF_ext[j]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("(pilots,skip1)extract rb %d, re %d (%d)=> (%d,%d)\n",prb,i,j,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j]=dl_ch0p[i];
- dl_ch1_ext[j++]=dl_ch1p[i];
- }
- }
- dl_ch0_ext+=4;
- dl_ch1_ext+=4;
- rxF_ext+=4;
- } else if (skip_half==2) {
- for (i=0; i<6; i++) {
- if ((i!=frame_parms->nushift) &&
- (i!=((frame_parms->nushift+3)%6))) {
- rxF_ext[j]=rxF[(i+6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("(pilots,skip2)extract rb %d, re %d (%d) => (%d,%d)\n",prb,i,j,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j]=dl_ch0p[i+6];
- dl_ch1_ext[j++]=dl_ch1p[i+6];
- }
- }
- dl_ch0_ext+=4;
- dl_ch1_ext+=4;
- rxF_ext+=4;
-
- } else { //skip_half==0
- for (i=0; i<12; i++) {
- if ((i!=frame_parms->nushift) &&
- (i!=frame_parms->nushift+3) &&
- (i!=frame_parms->nushift+6) &&
- (i!=((frame_parms->nushift+9)%12))) {
- rxF_ext[j]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("(pilots)extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j] =dl_ch0p[i];
- dl_ch1_ext[j++]=dl_ch1p[i];
- }
- }
- dl_ch0_ext+=8;
- dl_ch1_ext+=8;
- rxF_ext+=8;
- } //skip_half==0
- } //pilots==1
- } else { // Do middle RB (around DC)
-
- if (pilots==0) {
- memcpy(dl_ch0_ext,dl_ch0p,6*sizeof(int32_t));
- memcpy(dl_ch1_ext,dl_ch1p,6*sizeof(int32_t));
- memcpy(rxF_ext,rxF,6*sizeof(int32_t));
-#ifdef DEBUG_DLSCH_DEMOD
- for (i=0; i<6; i++) {
- printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
- }
-#endif
- rxF_ext+=6;
- dl_ch0_ext+=6;
- dl_ch1_ext+=6;
- dl_ch0p+=6;
- dl_ch1p+=6;
-
- rxF = &rxdataF[aarx][1+((symbol*(frame_parms->ofdm_symbol_size)))];
-
- memcpy(dl_ch0_ext,dl_ch0p,6*sizeof(int32_t));
- memcpy(dl_ch1_ext,dl_ch1p,6*sizeof(int32_t));
- memcpy(rxF_ext,rxF,6*sizeof(int32_t));
-#ifdef DEBUG_DLSCH_DEMOD
- for (i=0; i<6; i++) {
- printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
- }
-#endif
- rxF_ext+=6;
- dl_ch0_ext+=6;
- dl_ch1_ext+=6;
- } else { // pilots==1
- j=0;
-
- for (i=0; i<6; i++) {
- if ((i!=frame_parms->nushift) &&
- (i!=((frame_parms->nushift+3)%6))) {
- dl_ch0_ext[j]=dl_ch0p[i];
- dl_ch1_ext[j]=dl_ch1p[i];
- rxF_ext[j++]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("(pilots)extract rb %d, re %d (%d) => (%d,%d)\n",prb,i,j,*(short *)&rxF[i],*(1+(short*)&rxF[i]));
-#endif
- }
- }
- rxF = &rxdataF[aarx][1+symbol*(frame_parms->ofdm_symbol_size)];
-
- for (; i<12; i++) {
- if ((i!=((frame_parms->nushift+6)%12)) &&
- (i!=((frame_parms->nushift+9)%12))) {
- dl_ch0_ext[j]=dl_ch0p[i];
- dl_ch1_ext[j]=dl_ch1p[i];
- rxF_ext[j++]=rxF[i-6];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("(pilots)extract rb %d, re %d (%d) => (%d,%d)\n",prb,i,j,*(short *)&rxF[1+i-6],*(1+(short*)&rxF[1+i-6]));
-#endif
- }
- }
-
- dl_ch0_ext+=8;
- dl_ch1_ext+=8;
- rxF_ext+=8;
- } //pilots==1
- } // if Middle PRB
- } // if odd PRB
- } // if rballoc==1
- } // for prb
- } // for aarx
- return(nb_rb/frame_parms->nb_antennas_rx);
-}
-
-unsigned short dlsch_extract_rbs_TM7(int **rxdataF,
- int **dl_bf_ch_estimates,
- int **rxdataF_ext,
- int **dl_bf_ch_estimates_ext,
- unsigned int *rb_alloc,
- unsigned char symbol,
- unsigned char subframe,
- uint32_t high_speed_flag,
- LTE_DL_FRAME_PARMS *frame_parms)
-{
-
- unsigned short rb,nb_rb=0;
- unsigned char rb_alloc_ind;
- unsigned char i,aarx,l,nsymb,skip_half=0,sss_symb,pss_symb=0;
- int *dl_ch0,*dl_ch0_ext,*rxF,*rxF_ext;
-
- unsigned char symbol_mod,pilots=0,uespec_pilots=0,j=0,poffset=0,uespec_poffset=0;
- int8_t uespec_nushift = frame_parms->Nid_cell%3;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
- pilots = ((symbol_mod==0)||(symbol_mod==(4-frame_parms->Ncp))) ? 1 : 0;
- l=symbol;
- nsymb = (frame_parms->Ncp==NORMAL) ? 14:12;
-
- if (frame_parms->Ncp==0){
- if (symbol==3 || symbol==6 || symbol==9 || symbol==12)
- uespec_pilots = 1;
- } else{
- if (symbol==4 || symbol==7 || symbol==10)
- uespec_pilots = 1;
- }
-
- if (frame_parms->frame_type == TDD) {// TDD
- sss_symb = nsymb-1;
- pss_symb = 2;
- } else {
- sss_symb = (nsymb>>1)-2;
- pss_symb = (nsymb>>1)-1;
- }
-
- if (symbol_mod==(4-frame_parms->Ncp))
- poffset=3;
-
- if ((frame_parms->Ncp==0 && (symbol==6 ||symbol ==12)) || (frame_parms->Ncp==1 && symbol==7))
- uespec_poffset=2;
-
- for (aarx=0; aarxnb_antennas_rx; aarx++) {
-
- if (high_speed_flag == 1)
- dl_ch0 = &dl_bf_ch_estimates[aarx][symbol*(frame_parms->ofdm_symbol_size)];
- else
- dl_ch0 = &dl_bf_ch_estimates[aarx][0];
-
- dl_ch0_ext = &dl_bf_ch_estimates_ext[aarx][symbol*(frame_parms->N_RB_DL*12)];
-
- rxF_ext = &rxdataF_ext[aarx][symbol*(frame_parms->N_RB_DL*12)];
- rxF = &rxdataF[aarx][(frame_parms->first_carrier_offset + (symbol*(frame_parms->ofdm_symbol_size)))];
-
- if ((frame_parms->N_RB_DL&1) == 0) // even number of RBs
- for (rb=0; rbN_RB_DL; rb++) {
-
- if (rb < 32)
- rb_alloc_ind = (rb_alloc[0]>>rb) & 1;
- else if (rb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(rb-32)) & 1;
- else if (rb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(rb-64)) & 1;
- else if (rb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(rb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
- if (rb_alloc_ind == 1)
- nb_rb++;
-
- // For second half of RBs skip DC carrier
- if (rb==(frame_parms->N_RB_DL>>1)) {
- rxF = &rxdataF[aarx][(1 + (symbol*(frame_parms->ofdm_symbol_size)))];
- //dl_ch0++;
- }
-
- // PBCH
- if ((subframe==0) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=nsymb>>1) && (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- }
-
- //SSS
- if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb) ) {
- rb_alloc_ind = 0;
- }
-
-
- if (frame_parms->frame_type == FDD) {
- //PSS
- if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- if ((frame_parms->frame_type == TDD) &&
- (subframe==6)) { //TDD Subframe 6
- if ((rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- if (rb_alloc_ind==1) {
-
- /*
- printf("rb %d\n",rb);
- for (i=0;i<12;i++)
- printf("(%d %d)",((short *)dl_ch0)[i<<1],((short*)dl_ch0)[1+(i<<1)]);
- printf("\n");
- */
- if (pilots==0 && uespec_pilots==0) {
- memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int));
-
- for (i=0; i<12; i++) {
- rxF_ext[i]=rxF[i];
- }
-
- dl_ch0_ext+=12;
- rxF_ext+=12;
- } else if(pilots==1 && uespec_pilots==0) {
- j=0;
-
- for (i=0; i<12; i++) {
- if ((i!=(frame_parms->nushift+poffset)) &&
- (i!=((frame_parms->nushift+poffset+6)%12))) {
- rxF_ext[j]=rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
- }
- }
-
- dl_ch0_ext+=10;
- rxF_ext+=10;
-
- } else if (pilots==0 && uespec_pilots==1) {
- j=0;
-
-
- for (i=0; i<12; i++){
- if (frame_parms->Ncp==0){
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- rxF_ext[j] = rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
- }
- } else{
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- rxF_ext[j] = rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
- }
- }
-
- }
-
- dl_ch0_ext+=9-frame_parms->Ncp;
- rxF_ext+=9-frame_parms->Ncp;
-
- } else {
- LOG_E(PHY,"dlsch_extract_rbs_TM7(dl_demodulation.c):pilot or ue spec pilot detection error\n");
- exit(-1);
- }
-
- }
-
- dl_ch0+=12;
- rxF+=12;
-
- }
- else { // Odd number of RBs
- for (rb=0; rbN_RB_DL>>1; rb++) {
- skip_half=0;
-
- if (rb < 32)
- rb_alloc_ind = (rb_alloc[0]>>rb) & 1;
- else if (rb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(rb-32)) & 1;
- else if (rb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(rb-64)) & 1;
- else if (rb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(rb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
- if (rb_alloc_ind == 1)
- nb_rb++;
-
- // PBCH
- if ((subframe==0) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- }
-
- //PBCH subframe 0, symbols nsymb>>1 ... nsymb>>1 + 3
- if ((subframe==0) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4)))
- skip_half=1;
- else if ((subframe==0) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4)))
- skip_half=2;
-
- //SSS
-
- if (((subframe==0)||(subframe==5)) &&
- (rb>((frame_parms->N_RB_DL>>1)-3)) &&
- (rb<((frame_parms->N_RB_DL>>1)+3)) &&
- (l==sss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- //SSS
- if (((subframe==0)||(subframe==5)) &&
- (rb==((frame_parms->N_RB_DL>>1)-3)) &&
- (l==sss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) &&
- (rb==((frame_parms->N_RB_DL>>1)+3)) &&
- (l==sss_symb))
- skip_half=2;
-
- //PSS in subframe 0/5 if FDD
- if (frame_parms->frame_type == FDD) { //FDD
- if (((subframe==0)||(subframe==5)) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb))
- skip_half=2;
- }
-
- if ((frame_parms->frame_type == TDD) && ((subframe==1)||(subframe==6))) { //TDD Subframe 1 and 6
- if ((rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- if ((rb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb))
- skip_half=1;
- else if ((rb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb))
- skip_half=2;
- }
-
-
- if (rb_alloc_ind==1) {
-#ifdef DEBUG_DLSCH_DEMOD
- printf("rb %d/symbol %d pilots %d, uespec_pilots %d, (skip_half %d)\n",rb,l,pilots,uespec_pilots,skip_half);
-#endif
-
- if (pilots==0 && uespec_pilots==0) {
- //printf("Extracting w/o pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
-
- if (skip_half==1) {
- memcpy(dl_ch0_ext,dl_ch0,6*sizeof(int));
-
- for (i=0; i<6; i++) {
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
-
- dl_ch0_ext+=6;
- rxF_ext+=6;
- } else if (skip_half==2) {
- memcpy(dl_ch0_ext,dl_ch0+6,6*sizeof(int));
-
- for (i=0; i<6; i++) {
- rxF_ext[i]=rxF[(i+6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
-
- dl_ch0_ext+=6;
- rxF_ext+=6;
- } else {
- memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int));
-
- for (i=0; i<12; i++){
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",symbol,rb,i,*(short *)&rxF[i],*(1+(short*)&rxF[i]));
-#endif
- }
- dl_ch0_ext+=12;
- rxF_ext+=12;
- }
- } else if (pilots==1 && uespec_pilots==0) {
- // printf("Extracting with pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
- j=0;
-
- if (skip_half==1) {
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- rxF_ext[j]=rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
-
- dl_ch0_ext+=5;
- rxF_ext+=5;
- } else if (skip_half==2) {
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- rxF_ext[j]=rxF[(i+6)];
- dl_ch0_ext[j++]=dl_ch0[i+6];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
-
- dl_ch0_ext+=5;
- rxF_ext+=5;
- } else {
- for (i=0; i<12; i++) {
- if ((i!=(frame_parms->nushift+poffset)) &&
- (i!=((frame_parms->nushift+poffset+6)%12))) {
- rxF_ext[j]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j++]=dl_ch0[i];
-
- }
- }
-
- dl_ch0_ext+=10;
- rxF_ext+=10;
- }
- } else if(pilots==0 && uespec_pilots==1){
- //printf("Extracting with uespec pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
- j=0;
-
- if (skip_half==1) {
- if (frame_parms->Ncp==0){
- for (i=0; i<6; i++) {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- rxF_ext[j]=rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- dl_ch0_ext+=6-(uespec_nushift+uespec_poffset<6)-(uespec_nushift+uespec_poffset+4<6)-((uespec_nushift+uespec_poffset+8)%12<6);
- rxF_ext+=6-(uespec_nushift+uespec_poffset<6)-(uespec_nushift+uespec_poffset+4<6)-((uespec_nushift+uespec_poffset+8)%12<6);
-
- } else{
- for (i=0; i<6; i++) {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- rxF_ext[j]=rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- dl_ch0_ext+=4;
- rxF_ext+=4;
- }
-
- } else if (skip_half==2) {
- if(frame_parms->Ncp==0){
- for (i=0; i<6; i++) {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- rxF_ext[j]=rxF[(i+6)];
- dl_ch0_ext[j++]=dl_ch0[i+6];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- dl_ch0_ext+=6-(uespec_nushift+uespec_poffset>6)-(uespec_nushift+uespec_poffset+4>6)-((uespec_nushift+uespec_poffset+8)%12>6);
- rxF_ext+=6-(uespec_nushift+uespec_poffset>6)-(uespec_nushift+uespec_poffset+4>6)-((uespec_nushift+uespec_poffset+8)%12>6);
-
- } else {
- for (i=0; i<6; i++) {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- rxF_ext[j]=rxF[(i+6)];
- dl_ch0_ext[j++]=dl_ch0[i+6];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- dl_ch0_ext+=4;
- rxF_ext+=4;
- }
-
- } else {
-
- for (i=0; i<12; i++){
- if (frame_parms->Ncp==0){
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- rxF_ext[j] = rxF[i];
- dl_ch0_ext[j++] = dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d, j %d => (%d,%d)\n",symbol,rb,i,j-1,*(short *)&dl_ch0[j],*(1+(short*)&dl_ch0[i]));
-#endif
- }
- } else{
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- rxF_ext[j] = rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
-
- }
-
- dl_ch0_ext+=9-frame_parms->Ncp;
- rxF_ext+=9-frame_parms->Ncp;
- }
-
- } else {
- LOG_E(PHY,"dlsch_extract_rbs_TM7(dl_demodulation.c):pilot or ue spec pilot detection error\n");
- exit(-1);
-
- }
- }
-
- dl_ch0+=12;
- rxF+=12;
- } // first half loop
-
-
- // Do middle RB (around DC)
- if (rb < 32)
- rb_alloc_ind = (rb_alloc[0]>>rb) & 1;
- else if (rb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(rb-32)) & 1;
- else if (rb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(rb-64)) & 1;
- else if (rb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(rb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
- if (rb_alloc_ind == 1)
- nb_rb++;
-
- // PBCH
- if ((subframe==0) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- }
-
- //SSS
- if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- if (frame_parms->frame_type == FDD) {
- //PSS
- if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- if ((frame_parms->frame_type == TDD) && ((subframe==1)||(subframe==6))) {
- //PSS
- if ((rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
- }
-
- //printf("dlch_ext %d\n",dl_ch0_ext-&dl_ch_estimates_ext[aarx][0]);
- //printf("DC rb %d (%p)\n",rb,rxF);
- if (rb_alloc_ind==1) {
- //printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half);
- if (pilots==0 && uespec_pilots==0) {
- for (i=0; i<6; i++) {
- dl_ch0_ext[i]=dl_ch0[i];
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
-
- rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))];
-
- for (; i<12; i++) {
- dl_ch0_ext[i]=dl_ch0[i];
- rxF_ext[i]=rxF[(1+i-6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
-
- dl_ch0_ext+=12;
- rxF_ext+=12;
- } else if(pilots==1 && uespec_pilots==0){ // pilots==1
- j=0;
-
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- dl_ch0_ext[j]=dl_ch0[i];
- rxF_ext[j++]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
-
- rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))];
-
- for (; i<12; i++) {
- if (i!=((frame_parms->nushift+6+poffset)%12)) {
- dl_ch0_ext[j]=dl_ch0[i];
- rxF_ext[j++]=rxF[(1+i-6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
-
- dl_ch0_ext+=10;
- rxF_ext+=10;
- } else if(pilots==0 && uespec_pilots==1) {
- j=0;
-
- for (i=0; i<6; i++) {
- if (frame_parms->Ncp==0){
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- dl_ch0_ext[j]=dl_ch0[i];
- rxF_ext[j++] = rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- } else {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- dl_ch0_ext[j]=dl_ch0[i];
- rxF_ext[j++] = rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- }
-
- rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))];
-
- for (; i<12; i++) {
- if (frame_parms->Ncp==0){
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- dl_ch0_ext[j]=dl_ch0[i];
- rxF_ext[j++]=rxF[(1+i-6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- } else {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- dl_ch0_ext[j]=dl_ch0[i];
- rxF_ext[j++] = rxF[(1+i-6)];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- }
-
- dl_ch0_ext+=9-frame_parms->Ncp;
- rxF_ext+=9-frame_parms->Ncp;
-
- }// symbol_mod==0
-
- } // rballoc==1
- else {
- rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))];
- }
-
- dl_ch0+=12;
- rxF+=7;
- rb++;
-
- for (; rbN_RB_DL; rb++) {
- // printf("dlch_ext %d\n",dl_ch0_ext-&dl_ch_estimates_ext[aarx][0]);
- // printf("rb %d (%p)\n",rb,rxF);
- skip_half=0;
-
- if (rb < 32)
- rb_alloc_ind = (rb_alloc[0]>>rb) & 1;
- else if (rb < 64)
- rb_alloc_ind = (rb_alloc[1]>>(rb-32)) & 1;
- else if (rb < 96)
- rb_alloc_ind = (rb_alloc[2]>>(rb-64)) & 1;
- else if (rb < 100)
- rb_alloc_ind = (rb_alloc[3]>>(rb-96)) & 1;
- else
- rb_alloc_ind = 0;
-
- if (rb_alloc_ind==1)
- nb_rb++;
-
- // PBCH
- if ((subframe==0) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=nsymb>>1) && (l<((nsymb>>1) + 4))) {
- rb_alloc_ind = 0;
- }
-
- //PBCH subframe 0, symbols nsymb>>1 ... nsymb>>1 + 3
- if ((subframe==0) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4)))
- skip_half=1;
- else if ((subframe==0) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4)))
- skip_half=2;
-
- //SSS
- if (((subframe==0)||(subframe==5)) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- //SSS
- if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l==sss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb))
- skip_half=2;
-
- //PSS
- if (frame_parms->frame_type == FDD) {
- if (((subframe==0)||(subframe==5)) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb))
- skip_half=1;
- else if (((subframe==0)||(subframe==5)) && (rb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb))
- skip_half=2;
- }
-
- if ((frame_parms->frame_type == TDD) && ((subframe==1)||(subframe==6))) { //TDD Subframe 1 and 6
- if ((rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) {
- rb_alloc_ind = 0;
- }
-
- if ((rb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb))
- skip_half=1;
- else if ((rb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb))
- skip_half=2;
- }
-
- if (rb_alloc_ind==1) {
-#ifdef DEBUG_DLSCH_DEMOD
- printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half);
-#endif
- /*
- printf("rb %d\n",rb);
- for (i=0;i<12;i++)
- printf("(%d %d)",((short *)dl_ch0)[i<<1],((short*)dl_ch0)[1+(i<<1)]);
- printf("\n");
- */
- if (pilots==0 && uespec_pilots==0) {
- //printf("Extracting w/o pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
- if (skip_half==1) {
- memcpy(dl_ch0_ext,dl_ch0,6*sizeof(int));
-
- for (i=0; i<6; i++) {
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
-
- dl_ch0_ext+=6;
- rxF_ext+=6;
-
- } else if (skip_half==2) {
- memcpy(dl_ch0_ext,dl_ch0+6,6*sizeof(int));
-
- for (i=0; i<6; i++) {
- rxF_ext[i]=rxF[i+6];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
-
- dl_ch0_ext+=6;
- rxF_ext+=6;
-
- } else {
- memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int));
- //printf("symbol %d, extract rb %d, => (%d,%d)\n",symbol,rb,*(short *)&dl_ch0[j],*(1+(short*)&dl_ch0[i]));
-
- for (i=0; i<12; i++) {
- rxF_ext[i]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
-
- dl_ch0_ext+=12;
- rxF_ext+=12;
- }
- } else if (pilots==1 && uespec_pilots==0){
- //printf("Extracting with pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half);
- j=0;
-
- if (skip_half==1) {
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- rxF_ext[j]=rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
-
- dl_ch0_ext+=5;
- rxF_ext+=5;
- } else if (skip_half==2) {
- for (i=0; i<6; i++) {
- if (i!=((frame_parms->nushift+poffset)%6)) {
- rxF_ext[j]=rxF[(i+6)];
- dl_ch0_ext[j++]=dl_ch0[i+6];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
-
- dl_ch0_ext+=5;
- rxF_ext+=5;
- } else {
- for (i=0; i<12; i++) {
- if ((i!=(frame_parms->nushift+poffset)) &&
- (i!=((frame_parms->nushift+poffset+6)%12))) {
- rxF_ext[j]=rxF[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j]));
-#endif
- dl_ch0_ext[j++]=dl_ch0[i];
- }
- }
-
- dl_ch0_ext+=10;
- rxF_ext+=10;
- }
- } else if(pilots==0 && uespec_pilots==1) {
- j=0;
-
- if (skip_half==1) {
- if (frame_parms->Ncp==0){
- for (i=0; i<6; i++) {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- rxF_ext[j]=rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- dl_ch0_ext+=6-(uespec_nushift+uespec_poffset<6)-(uespec_nushift+uespec_poffset+4<6)-((uespec_nushift+uespec_poffset+8)%12<6);
- rxF_ext+=6-(uespec_nushift+uespec_poffset<6)-(uespec_nushift+uespec_poffset+4<6)-((uespec_nushift+uespec_poffset+8)%12<6);
-
- } else{
- for (i=0; i<6; i++) {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- rxF_ext[j]=rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- dl_ch0_ext+=4;
- rxF_ext+=4;
- }
-
- } else if (skip_half==2) {
- if(frame_parms->Ncp==0){
- for (i=0; i<6; i++) {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- rxF_ext[j]=rxF[i+6];
- dl_ch0_ext[j++]=dl_ch0[i+6];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- dl_ch0_ext+=6-(uespec_nushift+uespec_poffset>6)-(uespec_nushift+uespec_poffset+4>6)-((uespec_nushift+uespec_poffset+8)%12>6);
- rxF_ext+=6-(uespec_nushift+uespec_poffset>6)-(uespec_nushift+uespec_poffset+4>6)-((uespec_nushift+uespec_poffset+8)%12>6);
-
- } else {
- for (i=0; i<6; i++) {
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- rxF_ext[j]=rxF[(i+6)];
- dl_ch0_ext[j++]=dl_ch0[i+6];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- dl_ch0_ext+=4;
- rxF_ext+=4;
- }
-
- } else {
- for (i=0; i<12; i++){
- if (frame_parms->Ncp==0){
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+4 && i!=(uespec_nushift+uespec_poffset+8)%12){
- rxF_ext[j] = rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- } else{
- if (i!=uespec_nushift+uespec_poffset && i!=uespec_nushift+uespec_poffset+3 && i!=uespec_nushift+uespec_poffset+6 && i!=(uespec_nushift+uespec_poffset+9)%12){
- rxF_ext[j] = rxF[i];
- dl_ch0_ext[j++]=dl_ch0[i];
-#ifdef DEBUG_DLSCH_DEMOD
- printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i]));
-#endif
- }
- }
- }
-
- dl_ch0_ext+=9-frame_parms->Ncp;
- rxF_ext+=9-frame_parms->Ncp;
-
- }
-
- }// pilots=0
- }
-
- dl_ch0+=12;
- rxF+=12;
- }
- }
- }
-
- _mm_empty();
- _m_empty();
-
- return(nb_rb/frame_parms->nb_antennas_rx);
-}
-
-//==============================================================================================
-
-void dump_dlsch2(PHY_VARS_UE *ue,uint8_t eNB_id,uint8_t subframe,unsigned int *coded_bits_per_codeword,int round, unsigned char harq_pid)
-{
- unsigned int nsymb = (ue->frame_parms.Ncp == 0) ? 14 : 12;
- char fname[32],vname[32];
- int N_RB_DL=ue->frame_parms.N_RB_DL;
-
- sprintf(fname,"dlsch%d_rxF_r%d_ext0.m",eNB_id,round);
- sprintf(vname,"dl%d_rxF_r%d_ext0",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[0],12*N_RB_DL*nsymb,1,1);
-
- if (ue->frame_parms.nb_antennas_rx >1) {
- sprintf(fname,"dlsch%d_rxF_r%d_ext1.m",eNB_id,round);
- sprintf(vname,"dl%d_rxF_r%d_ext1",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_ext[1],12*N_RB_DL*nsymb,1,1);
- }
-
- sprintf(fname,"dlsch%d_ch_r%d_ext00.m",eNB_id,round);
- sprintf(vname,"dl%d_ch_r%d_ext00",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[0],12*N_RB_DL*nsymb,1,1);
-
- if (ue->transmission_mode[eNB_id]==7){
- sprintf(fname,"dlsch%d_bf_ch_r%d.m",eNB_id,round);
- sprintf(vname,"dl%d_bf_ch_r%d",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates[0],512*nsymb,1,1);
- //write_output(fname,vname,phy_vars_ue->lte_ue_pdsch_vars[eNB_id]->dl_bf_ch_estimates[0],512,1,1);
-
- sprintf(fname,"dlsch%d_bf_ch_r%d_ext00.m",eNB_id,round);
- sprintf(vname,"dl%d_bf_ch_r%d_ext00",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_bf_ch_estimates_ext[0],12*N_RB_DL*nsymb,1,1);
- }
-
- if (ue->frame_parms.nb_antennas_rx == 2) {
- sprintf(fname,"dlsch%d_ch_r%d_ext01.m",eNB_id,round);
- sprintf(vname,"dl%d_ch_r%d_ext01",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1);
- }
-
- if (ue->frame_parms.nb_antenna_ports_eNB == 2) {
- sprintf(fname,"dlsch%d_ch_r%d_ext10.m",eNB_id,round);
- sprintf(vname,"dl%d_ch_r%d_ext10",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb,1,1);
-
- if (ue->frame_parms.nb_antennas_rx == 2) {
- sprintf(fname,"dlsch%d_ch_r%d_ext11.m",eNB_id,round);
- sprintf(vname,"dl%d_ch_r%d_ext11",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb,1,1);
- }
- }
-
- sprintf(fname,"dlsch%d_rxF_r%d_uespec0.m",eNB_id,round);
- sprintf(vname,"dl%d_rxF_r%d_uespec0",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_uespec_pilots[0],12*N_RB_DL,1,1);
-
- /*
- write_output("dlsch%d_ch_ext01.m","dl01_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[1],12*N_RB_DL*nsymb,1,1);
- write_output("dlsch%d_ch_ext10.m","dl10_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[2],12*N_RB_DL*nsymb,1,1);
- write_output("dlsch%d_ch_ext11.m","dl11_ch0_ext",pdsch_vars[eNB_id]->dl_ch_estimates_ext[3],12*N_RB_DL*nsymb,1,1);
- */
- sprintf(fname,"dlsch%d_r%d_rho.m",eNB_id,round);
- sprintf(vname,"dl_rho_r%d_%d",eNB_id,round);
-
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho_ext[harq_pid][round][0],12*N_RB_DL*nsymb,1,1);
-
- sprintf(fname,"dlsch%d_r%d_rho2.m",eNB_id,round);
- sprintf(vname,"dl_rho2_r%d_%d",eNB_id,round);
-
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_rho2_ext[0],12*N_RB_DL*nsymb,1,1);
-
- sprintf(fname,"dlsch%d_rxF_r%d_comp0.m",eNB_id,round);
- sprintf(vname,"dl%d_rxF_r%d_comp0",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp0[0],12*N_RB_DL*nsymb,1,1);
- if (ue->frame_parms.nb_antenna_ports_eNB == 2) {
- sprintf(fname,"dlsch%d_rxF_r%d_comp1.m",eNB_id,round);
- sprintf(vname,"dl%d_rxF_r%d_comp1",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->rxdataF_comp1[harq_pid][round][0],12*N_RB_DL*nsymb,1,1);
- }
-
- sprintf(fname,"dlsch%d_rxF_r%d_llr.m",eNB_id,round);
- sprintf(vname,"dl%d_r%d_llr",eNB_id,round);
- write_output(fname,vname, ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->llr[0],coded_bits_per_codeword[0],1,0);
- sprintf(fname,"dlsch%d_r%d_mag1.m",eNB_id,round);
- sprintf(vname,"dl%d_r%d_mag1",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_mag0[0],12*N_RB_DL*nsymb,1,1);
- sprintf(fname,"dlsch%d_r%d_mag2.m",eNB_id,round);
- sprintf(vname,"dl%d_r%d_mag2",eNB_id,round);
- write_output(fname,vname,ue->pdsch_vars[ue->current_thread_id[subframe]][eNB_id]->dl_ch_magb0[0],12*N_RB_DL*nsymb,1,1);
-
- // printf("log2_maxh = %d\n",ue->pdsch_vars[eNB_id]->log2_maxh);
-}
-
-#ifdef DEBUG_DLSCH_DEMOD
-/*
-void print_bytes(char *s,__m128i *x)
-{
-
- char *tempb = (char *)x;
-
- printf("%s : %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s,
- tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7],
- tempb[8],tempb[9],tempb[10],tempb[11],tempb[12],tempb[13],tempb[14],tempb[15]
- );
-
-}
-
-void print_shorts(char *s,__m128i *x)
-{
-
- short *tempb = (short *)x;
- printf("%s : %d,%d,%d,%d,%d,%d,%d,%d\n",s,
- tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7]);
-
-}
-
-void print_shorts2(char *s,__m64 *x)
-{
-
- short *tempb = (short *)x;
- printf("%s : %d,%d,%d,%d\n",s,
- tempb[0],tempb[1],tempb[2],tempb[3]);
-
-}
-
-void print_ints(char *s,__m128i *x)
-{
-
- int *tempb = (int *)x;
- printf("%s : %d,%d,%d,%d\n",s,
- tempb[0],tempb[1],tempb[2],tempb[3]);
-
-}*/
-#endif
diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
deleted file mode 100644
index 7682045ae1..0000000000
--- a/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
+++ /dev/null
@@ -1,8899 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- * contact@openairinterface.org
- */
-
-/*! \file PHY/LTE_TRANSPORT/dlsch_llr_computation.c
- * \brief Top-level routines for LLR computation of the PDSCH physical channel from 36-211, V8.6 2009-03
- * \author R. Knopp, F. Kaltenberger,A. Bhamri, S. Aubert, S. Wagner, X Jiang
- * \date 2011
- * \version 0.1
- * \company Eurecom
- * \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr,ankit.bhamri@eurecom.fr,sebastien.aubert@eurecom.fr, sebastian.wagner@eurecom.fr
- * \note
- * \warning
- */
-
-#include "PHY/defs.h"
-#include "PHY/TOOLS/defs.h"
-#include "PHY/extern.h"
-#include "defs.h"
-#include "extern.h"
-#include "PHY/sse_intrin.h"
-
-//#define DEBUG_LLR_SIC
-
-
-int16_t zeros[8] __attribute__ ((aligned(16))) = {0,0,0,0,0,0,0,0};
-int16_t ones[8] __attribute__ ((aligned(16))) = {0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff};
-#if defined(__x86_64__) || defined(__i386__)
-__m128i rho_rpi __attribute__ ((aligned(16)));
-__m128i rho_rmi __attribute__ ((aligned(16)));
-__m128i rho_rpi_1_1 __attribute__ ((aligned(16)));
-__m128i rho_rpi_1_3 __attribute__ ((aligned(16)));
-__m128i rho_rpi_1_5 __attribute__ ((aligned(16)));
-__m128i rho_rpi_1_7 __attribute__ ((aligned(16)));
-__m128i rho_rpi_3_1 __attribute__ ((aligned(16)));
-__m128i rho_rpi_3_3 __attribute__ ((aligned(16)));
-__m128i rho_rpi_3_5 __attribute__ ((aligned(16)));
-__m128i rho_rpi_3_7 __attribute__ ((aligned(16)));
-__m128i rho_rpi_5_1 __attribute__ ((aligned(16)));
-__m128i rho_rpi_5_3 __attribute__ ((aligned(16)));
-__m128i rho_rpi_5_5 __attribute__ ((aligned(16)));
-__m128i rho_rpi_5_7 __attribute__ ((aligned(16)));
-__m128i rho_rpi_7_1 __attribute__ ((aligned(16)));
-__m128i rho_rpi_7_3 __attribute__ ((aligned(16)));
-__m128i rho_rpi_7_5 __attribute__ ((aligned(16)));
-__m128i rho_rpi_7_7 __attribute__ ((aligned(16)));
-__m128i rho_rmi_1_1 __attribute__ ((aligned(16)));
-__m128i rho_rmi_1_3 __attribute__ ((aligned(16)));
-__m128i rho_rmi_1_5 __attribute__ ((aligned(16)));
-__m128i rho_rmi_1_7 __attribute__ ((aligned(16)));
-__m128i rho_rmi_3_1 __attribute__ ((aligned(16)));
-__m128i rho_rmi_3_3 __attribute__ ((aligned(16)));
-__m128i rho_rmi_3_5 __attribute__ ((aligned(16)));
-__m128i rho_rmi_3_7 __attribute__ ((aligned(16)));
-__m128i rho_rmi_5_1 __attribute__ ((aligned(16)));
-__m128i rho_rmi_5_3 __attribute__ ((aligned(16)));
-__m128i rho_rmi_5_5 __attribute__ ((aligned(16)));
-__m128i rho_rmi_5_7 __attribute__ ((aligned(16)));
-__m128i rho_rmi_7_1 __attribute__ ((aligned(16)));
-__m128i rho_rmi_7_3 __attribute__ ((aligned(16)));
-__m128i rho_rmi_7_5 __attribute__ ((aligned(16)));
-__m128i rho_rmi_7_7 __attribute__ ((aligned(16)));
-
-__m128i psi_r_m7_m7 __attribute__ ((aligned(16)));
-__m128i psi_r_m7_m5 __attribute__ ((aligned(16)));
-__m128i psi_r_m7_m3 __attribute__ ((aligned(16)));
-__m128i psi_r_m7_m1 __attribute__ ((aligned(16)));
-__m128i psi_r_m7_p1 __attribute__ ((aligned(16)));
-__m128i psi_r_m7_p3 __attribute__ ((aligned(16)));
-__m128i psi_r_m7_p5 __attribute__ ((aligned(16)));
-__m128i psi_r_m7_p7 __attribute__ ((aligned(16)));
-__m128i psi_r_m5_m7 __attribute__ ((aligned(16)));
-__m128i psi_r_m5_m5 __attribute__ ((aligned(16)));
-__m128i psi_r_m5_m3 __attribute__ ((aligned(16)));
-__m128i psi_r_m5_m1 __attribute__ ((aligned(16)));
-__m128i psi_r_m5_p1 __attribute__ ((aligned(16)));
-__m128i psi_r_m5_p3 __attribute__ ((aligned(16)));
-__m128i psi_r_m5_p5 __attribute__ ((aligned(16)));
-__m128i psi_r_m5_p7 __attribute__ ((aligned(16)));
-__m128i psi_r_m3_m7 __attribute__ ((aligned(16)));
-__m128i psi_r_m3_m5 __attribute__ ((aligned(16)));
-__m128i psi_r_m3_m3 __attribute__ ((aligned(16)));
-__m128i psi_r_m3_m1 __attribute__ ((aligned(16)));
-__m128i psi_r_m3_p1 __attribute__ ((aligned(16)));
-__m128i psi_r_m3_p3 __attribute__ ((aligned(16)));
-__m128i psi_r_m3_p5 __attribute__ ((aligned(16)));
-__m128i psi_r_m3_p7 __attribute__ ((aligned(16)));
-__m128i psi_r_m1_m7 __attribute__ ((aligned(16)));
-__m128i psi_r_m1_m5 __attribute__ ((aligned(16)));
-__m128i psi_r_m1_m3 __attribute__ ((aligned(16)));
-__m128i psi_r_m1_m1 __attribute__ ((aligned(16)));
-__m128i psi_r_m1_p1 __attribute__ ((aligned(16)));
-__m128i psi_r_m1_p3 __attribute__ ((aligned(16)));
-__m128i psi_r_m1_p5 __attribute__ ((aligned(16)));
-__m128i psi_r_m1_p7 __attribute__ ((aligned(16)));
-__m128i psi_r_p1_m7 __attribute__ ((aligned(16)));
-__m128i psi_r_p1_m5 __attribute__ ((aligned(16)));
-__m128i psi_r_p1_m3 __attribute__ ((aligned(16)));
-__m128i psi_r_p1_m1 __attribute__ ((aligned(16)));
-__m128i psi_r_p1_p1 __attribute__ ((aligned(16)));
-__m128i psi_r_p1_p3 __attribute__ ((aligned(16)));
-__m128i psi_r_p1_p5 __attribute__ ((aligned(16)));
-__m128i psi_r_p1_p7 __attribute__ ((aligned(16)));
-__m128i psi_r_p3_m7 __attribute__ ((aligned(16)));
-__m128i psi_r_p3_m5 __attribute__ ((aligned(16)));
-__m128i psi_r_p3_m3 __attribute__ ((aligned(16)));
-__m128i psi_r_p3_m1 __attribute__ ((aligned(16)));
-__m128i psi_r_p3_p1 __attribute__ ((aligned(16)));
-__m128i psi_r_p3_p3 __attribute__ ((aligned(16)));
-__m128i psi_r_p3_p5 __attribute__ ((aligned(16)));
-__m128i psi_r_p3_p7 __attribute__ ((aligned(16)));
-__m128i psi_r_p5_m7 __attribute__ ((aligned(16)));
-__m128i psi_r_p5_m5 __attribute__ ((aligned(16)));
-__m128i psi_r_p5_m3 __attribute__ ((aligned(16)));
-__m128i psi_r_p5_m1 __attribute__ ((aligned(16)));
-__m128i psi_r_p5_p1 __attribute__ ((aligned(16)));
-__m128i psi_r_p5_p3 __attribute__ ((aligned(16)));
-__m128i psi_r_p5_p5 __attribute__ ((aligned(16)));
-__m128i psi_r_p5_p7 __attribute__ ((aligned(16)));
-__m128i psi_r_p7_m7 __attribute__ ((aligned(16)));
-__m128i psi_r_p7_m5 __attribute__ ((aligned(16)));
-__m128i psi_r_p7_m3 __attribute__ ((aligned(16)));
-__m128i psi_r_p7_m1 __attribute__ ((aligned(16)));
-__m128i psi_r_p7_p1 __attribute__ ((aligned(16)));
-__m128i psi_r_p7_p3 __attribute__ ((aligned(16)));
-__m128i psi_r_p7_p5 __attribute__ ((aligned(16)));
-__m128i psi_r_p7_p7 __attribute__ ((aligned(16)));
-
-__m128i psi_i_m7_m7 __attribute__ ((aligned(16)));
-__m128i psi_i_m7_m5 __attribute__ ((aligned(16)));
-__m128i psi_i_m7_m3 __attribute__ ((aligned(16)));
-__m128i psi_i_m7_m1 __attribute__ ((aligned(16)));
-__m128i psi_i_m7_p1 __attribute__ ((aligned(16)));
-__m128i psi_i_m7_p3 __attribute__ ((aligned(16)));
-__m128i psi_i_m7_p5 __attribute__ ((aligned(16)));
-__m128i psi_i_m7_p7 __attribute__ ((aligned(16)));
-__m128i psi_i_m5_m7 __attribute__ ((aligned(16)));
-__m128i psi_i_m5_m5 __attribute__ ((aligned(16)));
-__m128i psi_i_m5_m3 __attribute__ ((aligned(16)));
-__m128i psi_i_m5_m1 __attribute__ ((aligned(16)));
-__m128i psi_i_m5_p1 __attribute__ ((aligned(16)));
-__m128i psi_i_m5_p3 __attribute__ ((aligned(16)));
-__m128i psi_i_m5_p5 __attribute__ ((aligned(16)));
-__m128i psi_i_m5_p7 __attribute__ ((aligned(16)));
-__m128i psi_i_m3_m7 __attribute__ ((aligned(16)));
-__m128i psi_i_m3_m5 __attribute__ ((aligned(16)));
-__m128i psi_i_m3_m3 __attribute__ ((aligned(16)));
-__m128i psi_i_m3_m1 __attribute__ ((aligned(16)));
-__m128i psi_i_m3_p1 __attribute__ ((aligned(16)));
-__m128i psi_i_m3_p3 __attribute__ ((aligned(16)));
-__m128i psi_i_m3_p5 __attribute__ ((aligned(16)));
-__m128i psi_i_m3_p7 __attribute__ ((aligned(16)));
-__m128i psi_i_m1_m7 __attribute__ ((aligned(16)));
-__m128i psi_i_m1_m5 __attribute__ ((aligned(16)));
-__m128i psi_i_m1_m3 __attribute__ ((aligned(16)));
-__m128i psi_i_m1_m1 __attribute__ ((aligned(16)));
-__m128i psi_i_m1_p1 __attribute__ ((aligned(16)));
-__m128i psi_i_m1_p3 __attribute__ ((aligned(16)));
-__m128i psi_i_m1_p5 __attribute__ ((aligned(16)));
-__m128i psi_i_m1_p7 __attribute__ ((aligned(16)));
-__m128i psi_i_p1_m7 __attribute__ ((aligned(16)));
-__m128i psi_i_p1_m5 __attribute__ ((aligned(16)));
-__m128i psi_i_p1_m3 __attribute__ ((aligned(16)));
-__m128i psi_i_p1_m1 __attribute__ ((aligned(16)));
-__m128i psi_i_p1_p1 __attribute__ ((aligned(16)));
-__m128i psi_i_p1_p3 __attribute__ ((aligned(16)));
-__m128i psi_i_p1_p5 __attribute__ ((aligned(16)));
-__m128i psi_i_p1_p7 __attribute__ ((aligned(16)));
-__m128i psi_i_p3_m7 __attribute__ ((aligned(16)));
-__m128i psi_i_p3_m5 __attribute__ ((aligned(16)));
-__m128i psi_i_p3_m3 __attribute__ ((aligned(16)));
-__m128i psi_i_p3_m1 __attribute__ ((aligned(16)));
-__m128i psi_i_p3_p1 __attribute__ ((aligned(16)));
-__m128i psi_i_p3_p3 __attribute__ ((aligned(16)));
-__m128i psi_i_p3_p5 __attribute__ ((aligned(16)));
-__m128i psi_i_p3_p7 __attribute__ ((aligned(16)));
-__m128i psi_i_p5_m7 __attribute__ ((aligned(16)));
-__m128i psi_i_p5_m5 __attribute__ ((aligned(16)));
-__m128i psi_i_p5_m3 __attribute__ ((aligned(16)));
-__m128i psi_i_p5_m1 __attribute__ ((aligned(16)));
-__m128i psi_i_p5_p1 __attribute__ ((aligned(16)));
-__m128i psi_i_p5_p3 __attribute__ ((aligned(16)));
-__m128i psi_i_p5_p5 __attribute__ ((aligned(16)));
-__m128i psi_i_p5_p7 __attribute__ ((aligned(16)));
-__m128i psi_i_p7_m7 __attribute__ ((aligned(16)));
-__m128i psi_i_p7_m5 __attribute__ ((aligned(16)));
-__m128i psi_i_p7_m3 __attribute__ ((aligned(16)));
-__m128i psi_i_p7_m1 __attribute__ ((aligned(16)));
-__m128i psi_i_p7_p1 __attribute__ ((aligned(16)));
-__m128i psi_i_p7_p3 __attribute__ ((aligned(16)));
-__m128i psi_i_p7_p5 __attribute__ ((aligned(16)));
-__m128i psi_i_p7_p7 __attribute__ ((aligned(16)));
-
-__m128i a_r_m7_m7 __attribute__ ((aligned(16)));
-__m128i a_r_m7_m5 __attribute__ ((aligned(16)));
-__m128i a_r_m7_m3 __attribute__ ((aligned(16)));
-__m128i a_r_m7_m1 __attribute__ ((aligned(16)));
-__m128i a_r_m7_p1 __attribute__ ((aligned(16)));
-__m128i a_r_m7_p3 __attribute__ ((aligned(16)));
-__m128i a_r_m7_p5 __attribute__ ((aligned(16)));
-__m128i a_r_m7_p7 __attribute__ ((aligned(16)));
-__m128i a_r_m5_m7 __attribute__ ((aligned(16)));
-__m128i a_r_m5_m5 __attribute__ ((aligned(16)));
-__m128i a_r_m5_m3 __attribute__ ((aligned(16)));
-__m128i a_r_m5_m1 __attribute__ ((aligned(16)));
-__m128i a_r_m5_p1 __attribute__ ((aligned(16)));
-__m128i a_r_m5_p3 __attribute__ ((aligned(16)));
-__m128i a_r_m5_p5 __attribute__ ((aligned(16)));
-__m128i a_r_m5_p7 __attribute__ ((aligned(16)));
-__m128i a_r_m3_m7 __attribute__ ((aligned(16)));
-__m128i a_r_m3_m5 __attribute__ ((aligned(16)));
-__m128i a_r_m3_m3 __attribute__ ((aligned(16)));
-__m128i a_r_m3_m1 __attribute__ ((aligned(16)));
-__m128i a_r_m3_p1 __attribute__ ((aligned(16)));
-__m128i a_r_m3_p3 __attribute__ ((aligned(16)));
-__m128i a_r_m3_p5 __attribute__ ((aligned(16)));
-__m128i a_r_m3_p7 __attribute__ ((aligned(16)));
-__m128i a_r_m1_m7 __attribute__ ((aligned(16)));
-__m128i a_r_m1_m5 __attribute__ ((aligned(16)));
-__m128i a_r_m1_m3 __attribute__ ((aligned(16)));
-__m128i a_r_m1_m1 __attribute__ ((aligned(16)));
-__m128i a_r_m1_p1 __attribute__ ((aligned(16)));
-__m128i a_r_m1_p3 __attribute__ ((aligned(16)));
-__m128i a_r_m1_p5 __attribute__ ((aligned(16)));
-__m128i a_r_m1_p7 __attribute__ ((aligned(16)));
-__m128i a_r_p1_m7 __attribute__ ((aligned(16)));
-__m128i a_r_p1_m5 __attribute__ ((aligned(16)));
-__m128i a_r_p1_m3 __attribute__ ((aligned(16)));
-__m128i a_r_p1_m1 __attribute__ ((aligned(16)));
-__m128i a_r_p1_p1 __attribute__ ((aligned(16)));
-__m128i a_r_p1_p3 __attribute__ ((aligned(16)));
-__m128i a_r_p1_p5 __attribute__ ((aligned(16)));
-__m128i a_r_p1_p7 __attribute__ ((aligned(16)));
-__m128i a_r_p3_m7 __attribute__ ((aligned(16)));
-__m128i a_r_p3_m5 __attribute__ ((aligned(16)));
-__m128i a_r_p3_m3 __attribute__ ((aligned(16)));
-__m128i a_r_p3_m1 __attribute__ ((aligned(16)));
-__m128i a_r_p3_p1 __attribute__ ((aligned(16)));
-__m128i a_r_p3_p3 __attribute__ ((aligned(16)));
-__m128i a_r_p3_p5 __attribute__ ((aligned(16)));
-__m128i a_r_p3_p7 __attribute__ ((aligned(16)));
-__m128i a_r_p5_m7 __attribute__ ((aligned(16)));
-__m128i a_r_p5_m5 __attribute__ ((aligned(16)));
-__m128i a_r_p5_m3 __attribute__ ((aligned(16)));
-__m128i a_r_p5_m1 __attribute__ ((aligned(16)));
-__m128i a_r_p5_p1 __attribute__ ((aligned(16)));
-__m128i a_r_p5_p3 __attribute__ ((aligned(16)));
-__m128i a_r_p5_p5 __attribute__ ((aligned(16)));
-__m128i a_r_p5_p7 __attribute__ ((aligned(16)));
-__m128i a_r_p7_m7 __attribute__ ((aligned(16)));
-__m128i a_r_p7_m5 __attribute__ ((aligned(16)));
-__m128i a_r_p7_m3 __attribute__ ((aligned(16)));
-__m128i a_r_p7_m1 __attribute__ ((aligned(16)));
-__m128i a_r_p7_p1 __attribute__ ((aligned(16)));
-__m128i a_r_p7_p3 __attribute__ ((aligned(16)));
-__m128i a_r_p7_p5 __attribute__ ((aligned(16)));
-__m128i a_r_p7_p7 __attribute__ ((aligned(16)));
-
-__m128i a_i_m7_m7 __attribute__ ((aligned(16)));
-__m128i a_i_m7_m5 __attribute__ ((aligned(16)));
-__m128i a_i_m7_m3 __attribute__ ((aligned(16)));
-__m128i a_i_m7_m1 __attribute__ ((aligned(16)));
-__m128i a_i_m7_p1 __attribute__ ((aligned(16)));
-__m128i a_i_m7_p3 __attribute__ ((aligned(16)));
-__m128i a_i_m7_p5 __attribute__ ((aligned(16)));
-__m128i a_i_m7_p7 __attribute__ ((aligned(16)));
-__m128i a_i_m5_m7 __attribute__ ((aligned(16)));
-__m128i a_i_m5_m5 __attribute__ ((aligned(16)));
-__m128i a_i_m5_m3 __attribute__ ((aligned(16)));
-__m128i a_i_m5_m1 __attribute__ ((aligned(16)));
-__m128i a_i_m5_p1 __attribute__ ((aligned(16)));
-__m128i a_i_m5_p3 __attribute__ ((aligned(16)));
-__m128i a_i_m5_p5 __attribute__ ((aligned(16)));
-__m128i a_i_m5_p7 __attribute__ ((aligned(16)));
-__m128i a_i_m3_m7 __attribute__ ((aligned(16)));
-__m128i a_i_m3_m5 __attribute__ ((aligned(16)));
-__m128i a_i_m3_m3 __attribute__ ((aligned(16)));
-__m128i a_i_m3_m1 __attribute__ ((aligned(16)));
-__m128i a_i_m3_p1 __attribute__ ((aligned(16)));
-__m128i a_i_m3_p3 __attribute__ ((aligned(16)));
-__m128i a_i_m3_p5 __attribute__ ((aligned(16)));
-__m128i a_i_m3_p7 __attribute__ ((aligned(16)));
-__m128i a_i_m1_m7 __attribute__ ((aligned(16)));
-__m128i a_i_m1_m5 __attribute__ ((aligned(16)));
-__m128i a_i_m1_m3 __attribute__ ((aligned(16)));
-__m128i a_i_m1_m1 __attribute__ ((aligned(16)));
-__m128i a_i_m1_p1 __attribute__ ((aligned(16)));
-__m128i a_i_m1_p3 __attribute__ ((aligned(16)));
-__m128i a_i_m1_p5 __attribute__ ((aligned(16)));
-__m128i a_i_m1_p7 __attribute__ ((aligned(16)));
-__m128i a_i_p1_m7 __attribute__ ((aligned(16)));
-__m128i a_i_p1_m5 __attribute__ ((aligned(16)));
-__m128i a_i_p1_m3 __attribute__ ((aligned(16)));
-__m128i a_i_p1_m1 __attribute__ ((aligned(16)));
-__m128i a_i_p1_p1 __attribute__ ((aligned(16)));
-__m128i a_i_p1_p3 __attribute__ ((aligned(16)));
-__m128i a_i_p1_p5 __attribute__ ((aligned(16)));
-__m128i a_i_p1_p7 __attribute__ ((aligned(16)));
-__m128i a_i_p3_m7 __attribute__ ((aligned(16)));
-__m128i a_i_p3_m5 __attribute__ ((aligned(16)));
-__m128i a_i_p3_m3 __attribute__ ((aligned(16)));
-__m128i a_i_p3_m1 __attribute__ ((aligned(16)));
-__m128i a_i_p3_p1 __attribute__ ((aligned(16)));
-__m128i a_i_p3_p3 __attribute__ ((aligned(16)));
-__m128i a_i_p3_p5 __attribute__ ((aligned(16)));
-__m128i a_i_p3_p7 __attribute__ ((aligned(16)));
-__m128i a_i_p5_m7 __attribute__ ((aligned(16)));
-__m128i a_i_p5_m5 __attribute__ ((aligned(16)));
-__m128i a_i_p5_m3 __attribute__ ((aligned(16)));
-__m128i a_i_p5_m1 __attribute__ ((aligned(16)));
-__m128i a_i_p5_p1 __attribute__ ((aligned(16)));
-__m128i a_i_p5_p3 __attribute__ ((aligned(16)));
-__m128i a_i_p5_p5 __attribute__ ((aligned(16)));
-__m128i a_i_p5_p7 __attribute__ ((aligned(16)));
-__m128i a_i_p7_m7 __attribute__ ((aligned(16)));
-__m128i a_i_p7_m5 __attribute__ ((aligned(16)));
-__m128i a_i_p7_m3 __attribute__ ((aligned(16)));
-__m128i a_i_p7_m1 __attribute__ ((aligned(16)));
-__m128i a_i_p7_p1 __attribute__ ((aligned(16)));
-__m128i a_i_p7_p3 __attribute__ ((aligned(16)));
-__m128i a_i_p7_p5 __attribute__ ((aligned(16)));
-__m128i a_i_p7_p7 __attribute__ ((aligned(16)));
-
-__m128i psi_a_m7_m7 __attribute__ ((aligned(16)));
-__m128i psi_a_m7_m5 __attribute__ ((aligned(16)));
-__m128i psi_a_m7_m3 __attribute__ ((aligned(16)));
-__m128i psi_a_m7_m1 __attribute__ ((aligned(16)));
-__m128i psi_a_m7_p1 __attribute__ ((aligned(16)));
-__m128i psi_a_m7_p3 __attribute__ ((aligned(16)));
-__m128i psi_a_m7_p5 __attribute__ ((aligned(16)));
-__m128i psi_a_m7_p7 __attribute__ ((aligned(16)));
-__m128i psi_a_m5_m7 __attribute__ ((aligned(16)));
-__m128i psi_a_m5_m5 __attribute__ ((aligned(16)));
-__m128i psi_a_m5_m3 __attribute__ ((aligned(16)));
-__m128i psi_a_m5_m1 __attribute__ ((aligned(16)));
-__m128i psi_a_m5_p1 __attribute__ ((aligned(16)));
-__m128i psi_a_m5_p3 __attribute__ ((aligned(16)));
-__m128i psi_a_m5_p5 __attribute__ ((aligned(16)));
-__m128i psi_a_m5_p7 __attribute__ ((aligned(16)));
-__m128i psi_a_m3_m7 __attribute__ ((aligned(16)));
-__m128i psi_a_m3_m5 __attribute__ ((aligned(16)));
-__m128i psi_a_m3_m3 __attribute__ ((aligned(16)));
-__m128i psi_a_m3_m1 __attribute__ ((aligned(16)));
-__m128i psi_a_m3_p1 __attribute__ ((aligned(16)));
-__m128i psi_a_m3_p3 __attribute__ ((aligned(16)));
-__m128i psi_a_m3_p5 __attribute__ ((aligned(16)));
-__m128i psi_a_m3_p7 __attribute__ ((aligned(16)));
-__m128i psi_a_m1_m7 __attribute__ ((aligned(16)));
-__m128i psi_a_m1_m5 __attribute__ ((aligned(16)));
-__m128i psi_a_m1_m3 __attribute__ ((aligned(16)));
-__m128i psi_a_m1_m1 __attribute__ ((aligned(16)));
-__m128i psi_a_m1_p1 __attribute__ ((aligned(16)));
-__m128i psi_a_m1_p3 __attribute__ ((aligned(16)));
-__m128i psi_a_m1_p5 __attribute__ ((aligned(16)));
-__m128i psi_a_m1_p7 __attribute__ ((aligned(16)));
-__m128i psi_a_p1_m7 __attribute__ ((aligned(16)));
-__m128i psi_a_p1_m5 __attribute__ ((aligned(16)));
-__m128i psi_a_p1_m3 __attribute__ ((aligned(16)));
-__m128i psi_a_p1_m1 __attribute__ ((aligned(16)));
-__m128i psi_a_p1_p1 __attribute__ ((aligned(16)));
-__m128i psi_a_p1_p3 __attribute__ ((aligned(16)));
-__m128i psi_a_p1_p5 __attribute__ ((aligned(16)));
-__m128i psi_a_p1_p7 __attribute__ ((aligned(16)));
-__m128i psi_a_p3_m7 __attribute__ ((aligned(16)));
-__m128i psi_a_p3_m5 __attribute__ ((aligned(16)));
-__m128i psi_a_p3_m3 __attribute__ ((aligned(16)));
-__m128i psi_a_p3_m1 __attribute__ ((aligned(16)));
-__m128i psi_a_p3_p1 __attribute__ ((aligned(16)));
-__m128i psi_a_p3_p3 __attribute__ ((aligned(16)));
-__m128i psi_a_p3_p5 __attribute__ ((aligned(16)));
-__m128i psi_a_p3_p7 __attribute__ ((aligned(16)));
-__m128i psi_a_p5_m7 __attribute__ ((aligned(16)));
-__m128i psi_a_p5_m5 __attribute__ ((aligned(16)));
-__m128i psi_a_p5_m3 __attribute__ ((aligned(16)));
-__m128i psi_a_p5_m1 __attribute__ ((aligned(16)));
-__m128i psi_a_p5_p1 __attribute__ ((aligned(16)));
-__m128i psi_a_p5_p3 __attribute__ ((aligned(16)));
-__m128i psi_a_p5_p5 __attribute__ ((aligned(16)));
-__m128i psi_a_p5_p7 __attribute__ ((aligned(16)));
-__m128i psi_a_p7_m7 __attribute__ ((aligned(16)));
-__m128i psi_a_p7_m5 __attribute__ ((aligned(16)));
-__m128i psi_a_p7_m3 __attribute__ ((aligned(16)));
-__m128i psi_a_p7_m1 __attribute__ ((aligned(16)));
-__m128i psi_a_p7_p1 __attribute__ ((aligned(16)));
-__m128i psi_a_p7_p3 __attribute__ ((aligned(16)));
-__m128i psi_a_p7_p5 __attribute__ ((aligned(16)));
-__m128i psi_a_p7_p7 __attribute__ ((aligned(16)));
-
-__m128i a_sq_m7_m7 __attribute__ ((aligned(16)));
-__m128i a_sq_m7_m5 __attribute__ ((aligned(16)));
-__m128i a_sq_m7_m3 __attribute__ ((aligned(16)));
-__m128i a_sq_m7_m1 __attribute__ ((aligned(16)));
-__m128i a_sq_m7_p1 __attribute__ ((aligned(16)));
-__m128i a_sq_m7_p3 __attribute__ ((aligned(16)));
-__m128i a_sq_m7_p5 __attribute__ ((aligned(16)));
-__m128i a_sq_m7_p7 __attribute__ ((aligned(16)));
-__m128i a_sq_m5_m7 __attribute__ ((aligned(16)));
-__m128i a_sq_m5_m5 __attribute__ ((aligned(16)));
-__m128i a_sq_m5_m3 __attribute__ ((aligned(16)));
-__m128i a_sq_m5_m1 __attribute__ ((aligned(16)));
-__m128i a_sq_m5_p1 __attribute__ ((aligned(16)));
-__m128i a_sq_m5_p3 __attribute__ ((aligned(16)));
-__m128i a_sq_m5_p5 __attribute__ ((aligned(16)));
-__m128i a_sq_m5_p7 __attribute__ ((aligned(16)));
-__m128i a_sq_m3_m7 __attribute__ ((aligned(16)));
-__m128i a_sq_m3_m5 __attribute__ ((aligned(16)));
-__m128i a_sq_m3_m3 __attribute__ ((aligned(16)));
-__m128i a_sq_m3_m1 __attribute__ ((aligned(16)));
-__m128i a_sq_m3_p1 __attribute__ ((aligned(16)));
-__m128i a_sq_m3_p3 __attribute__ ((aligned(16)));
-__m128i a_sq_m3_p5 __attribute__ ((aligned(16)));
-__m128i a_sq_m3_p7 __attribute__ ((aligned(16)));
-__m128i a_sq_m1_m7 __attribute__ ((aligned(16)));
-__m128i a_sq_m1_m5 __attribute__ ((aligned(16)));
-__m128i a_sq_m1_m3 __attribute__ ((aligned(16)));
-__m128i a_sq_m1_m1 __attribute__ ((aligned(16)));
-__m128i a_sq_m1_p1 __attribute__ ((aligned(16)));
-__m128i a_sq_m1_p3 __attribute__ ((aligned(16)));
-__m128i a_sq_m1_p5 __attribute__ ((aligned(16)));
-__m128i a_sq_m1_p7 __attribute__ ((aligned(16)));
-__m128i a_sq_p1_m7 __attribute__ ((aligned(16)));
-__m128i a_sq_p1_m5 __attribute__ ((aligned(16)));
-__m128i a_sq_p1_m3 __attribute__ ((aligned(16)));
-__m128i a_sq_p1_m1 __attribute__ ((aligned(16)));
-__m128i a_sq_p1_p1 __attribute__ ((aligned(16)));
-__m128i a_sq_p1_p3 __attribute__ ((aligned(16)));
-__m128i a_sq_p1_p5 __attribute__ ((aligned(16)));
-__m128i a_sq_p1_p7 __attribute__ ((aligned(16)));
-__m128i a_sq_p3_m7 __attribute__ ((aligned(16)));
-__m128i a_sq_p3_m5 __attribute__ ((aligned(16)));
-__m128i a_sq_p3_m3 __attribute__ ((aligned(16)));
-__m128i a_sq_p3_m1 __attribute__ ((aligned(16)));
-__m128i a_sq_p3_p1 __attribute__ ((aligned(16)));
-__m128i a_sq_p3_p3 __attribute__ ((aligned(16)));
-__m128i a_sq_p3_p5 __attribute__ ((aligned(16)));
-__m128i a_sq_p3_p7 __attribute__ ((aligned(16)));
-__m128i a_sq_p5_m7 __attribute__ ((aligned(16)));
-__m128i a_sq_p5_m5 __attribute__ ((aligned(16)));
-__m128i a_sq_p5_m3 __attribute__ ((aligned(16)));
-__m128i a_sq_p5_m1 __attribute__ ((aligned(16)));
-__m128i a_sq_p5_p1 __attribute__ ((aligned(16)));
-__m128i a_sq_p5_p3 __attribute__ ((aligned(16)));
-__m128i a_sq_p5_p5 __attribute__ ((aligned(16)));
-__m128i a_sq_p5_p7 __attribute__ ((aligned(16)));
-__m128i a_sq_p7_m7 __attribute__ ((aligned(16)));
-__m128i a_sq_p7_m5 __attribute__ ((aligned(16)));
-__m128i a_sq_p7_m3 __attribute__ ((aligned(16)));
-__m128i a_sq_p7_m1 __attribute__ ((aligned(16)));
-__m128i a_sq_p7_p1 __attribute__ ((aligned(16)));
-__m128i a_sq_p7_p3 __attribute__ ((aligned(16)));
-__m128i a_sq_p7_p5 __attribute__ ((aligned(16)));
-__m128i a_sq_p7_p7 __attribute__ ((aligned(16)));
-
-__m128i bit_met_m7_m7 __attribute__ ((aligned(16)));
-__m128i bit_met_m7_m5 __attribute__ ((aligned(16)));
-__m128i bit_met_m7_m3 __attribute__ ((aligned(16)));
-__m128i bit_met_m7_m1 __attribute__ ((aligned(16)));
-__m128i bit_met_m7_p1 __attribute__ ((aligned(16)));
-__m128i bit_met_m7_p3 __attribute__ ((aligned(16)));
-__m128i bit_met_m7_p5 __attribute__ ((aligned(16)));
-__m128i bit_met_m7_p7 __attribute__ ((aligned(16)));
-__m128i bit_met_m5_m7 __attribute__ ((aligned(16)));
-__m128i bit_met_m5_m5 __attribute__ ((aligned(16)));
-__m128i bit_met_m5_m3 __attribute__ ((aligned(16)));
-__m128i bit_met_m5_m1 __attribute__ ((aligned(16)));
-__m128i bit_met_m5_p1 __attribute__ ((aligned(16)));
-__m128i bit_met_m5_p3 __attribute__ ((aligned(16)));
-__m128i bit_met_m5_p5 __attribute__ ((aligned(16)));
-__m128i bit_met_m5_p7 __attribute__ ((aligned(16)));
-__m128i bit_met_m3_m7 __attribute__ ((aligned(16)));
-__m128i bit_met_m3_m5 __attribute__ ((aligned(16)));
-__m128i bit_met_m3_m3 __attribute__ ((aligned(16)));
-__m128i bit_met_m3_m1 __attribute__ ((aligned(16)));
-__m128i bit_met_m3_p1 __attribute__ ((aligned(16)));
-__m128i bit_met_m3_p3 __attribute__ ((aligned(16)));
-__m128i bit_met_m3_p5 __attribute__ ((aligned(16)));
-__m128i bit_met_m3_p7 __attribute__ ((aligned(16)));
-__m128i bit_met_m1_m7 __attribute__ ((aligned(16)));
-__m128i bit_met_m1_m5 __attribute__ ((aligned(16)));
-__m128i bit_met_m1_m3 __attribute__ ((aligned(16)));
-__m128i bit_met_m1_m1 __attribute__ ((aligned(16)));
-__m128i bit_met_m1_p1 __attribute__ ((aligned(16)));
-__m128i bit_met_m1_p3 __attribute__ ((aligned(16)));
-__m128i bit_met_m1_p5 __attribute__ ((aligned(16)));
-__m128i bit_met_m1_p7 __attribute__ ((aligned(16)));
-__m128i bit_met_p1_m7 __attribute__ ((aligned(16)));
-__m128i bit_met_p1_m5 __attribute__ ((aligned(16)));
-__m128i bit_met_p1_m3 __attribute__ ((aligned(16)));
-__m128i bit_met_p1_m1 __attribute__ ((aligned(16)));
-__m128i bit_met_p1_p1 __attribute__ ((aligned(16)));
-__m128i bit_met_p1_p3 __attribute__ ((aligned(16)));
-__m128i bit_met_p1_p5 __attribute__ ((aligned(16)));
-__m128i bit_met_p1_p7 __attribute__ ((aligned(16)));
-__m128i bit_met_p3_m7 __attribute__ ((aligned(16)));
-__m128i bit_met_p3_m5 __attribute__ ((aligned(16)));
-__m128i bit_met_p3_m3 __attribute__ ((aligned(16)));
-__m128i bit_met_p3_m1 __attribute__ ((aligned(16)));
-__m128i bit_met_p3_p1 __attribute__ ((aligned(16)));
-__m128i bit_met_p3_p3 __attribute__ ((aligned(16)));
-__m128i bit_met_p3_p5 __attribute__ ((aligned(16)));
-__m128i bit_met_p3_p7 __attribute__ ((aligned(16)));
-__m128i bit_met_p5_m7 __attribute__ ((aligned(16)));
-__m128i bit_met_p5_m5 __attribute__ ((aligned(16)));
-__m128i bit_met_p5_m3 __attribute__ ((aligned(16)));
-__m128i bit_met_p5_m1 __attribute__ ((aligned(16)));
-__m128i bit_met_p5_p1 __attribute__ ((aligned(16)));
-__m128i bit_met_p5_p3 __attribute__ ((aligned(16)));
-__m128i bit_met_p5_p5 __attribute__ ((aligned(16)));
-__m128i bit_met_p5_p7 __attribute__ ((aligned(16)));
-__m128i bit_met_p7_m7 __attribute__ ((aligned(16)));
-__m128i bit_met_p7_m5 __attribute__ ((aligned(16)));
-__m128i bit_met_p7_m3 __attribute__ ((aligned(16)));
-__m128i bit_met_p7_m1 __attribute__ ((aligned(16)));
-__m128i bit_met_p7_p1 __attribute__ ((aligned(16)));
-__m128i bit_met_p7_p3 __attribute__ ((aligned(16)));
-__m128i bit_met_p7_p5 __attribute__ ((aligned(16)));
-__m128i bit_met_p7_p7 __attribute__ ((aligned(16)));
-
-__m128i y0_p_1_1 __attribute__ ((aligned(16)));
-__m128i y0_p_1_3 __attribute__ ((aligned(16)));
-__m128i y0_p_1_5 __attribute__ ((aligned(16)));
-__m128i y0_p_1_7 __attribute__ ((aligned(16)));
-__m128i y0_p_3_1 __attribute__ ((aligned(16)));
-__m128i y0_p_3_3 __attribute__ ((aligned(16)));
-__m128i y0_p_3_5 __attribute__ ((aligned(16)));
-__m128i y0_p_3_7 __attribute__ ((aligned(16)));
-__m128i y0_p_5_1 __attribute__ ((aligned(16)));
-__m128i y0_p_5_3 __attribute__ ((aligned(16)));
-__m128i y0_p_5_5 __attribute__ ((aligned(16)));
-__m128i y0_p_5_7 __attribute__ ((aligned(16)));
-__m128i y0_p_7_1 __attribute__ ((aligned(16)));
-__m128i y0_p_7_3 __attribute__ ((aligned(16)));
-__m128i y0_p_7_5 __attribute__ ((aligned(16)));
-__m128i y0_p_7_7 __attribute__ ((aligned(16)));
-__m128i y0_m_1_1 __attribute__ ((aligned(16)));
-__m128i y0_m_1_3 __attribute__ ((aligned(16)));
-__m128i y0_m_1_5 __attribute__ ((aligned(16)));
-__m128i y0_m_1_7 __attribute__ ((aligned(16)));
-__m128i y0_m_3_1 __attribute__ ((aligned(16)));
-__m128i y0_m_3_3 __attribute__ ((aligned(16)));
-__m128i y0_m_3_5 __attribute__ ((aligned(16)));
-__m128i y0_m_3_7 __attribute__ ((aligned(16)));
-__m128i y0_m_5_1 __attribute__ ((aligned(16)));
-__m128i y0_m_5_3 __attribute__ ((aligned(16)));
-__m128i y0_m_5_5 __attribute__ ((aligned(16)));
-__m128i y0_m_5_7 __attribute__ ((aligned(16)));
-__m128i y0_m_7_1 __attribute__ ((aligned(16)));
-__m128i y0_m_7_3 __attribute__ ((aligned(16)));
-__m128i y0_m_7_5 __attribute__ ((aligned(16)));
-__m128i y0_m_7_7 __attribute__ ((aligned(16)));
-
-__m128i xmm0 __attribute__ ((aligned(16)));
-__m128i xmm1 __attribute__ ((aligned(16)));
-__m128i xmm2 __attribute__ ((aligned(16)));
-__m128i xmm3 __attribute__ ((aligned(16)));
-__m128i xmm4 __attribute__ ((aligned(16)));
-__m128i xmm5 __attribute__ ((aligned(16)));
-__m128i xmm6 __attribute__ ((aligned(16)));
-__m128i xmm7 __attribute__ ((aligned(16)));
-__m128i xmm8 __attribute__ ((aligned(16)));
-
-__m128i y0r __attribute__ ((aligned(16)));
-__m128i y0i __attribute__ ((aligned(16)));
-__m128i y1r __attribute__ ((aligned(16)));
-__m128i y1i __attribute__ ((aligned(16)));
-__m128i y2r __attribute__ ((aligned(16)));
-__m128i y2i __attribute__ ((aligned(16)));
-
-__m128i logmax_num_re0 __attribute__ ((aligned(16)));
-__m128i logmax_num_im0 __attribute__ ((aligned(16)));
-__m128i logmax_den_re0 __attribute__ ((aligned(16)));
-__m128i logmax_den_im0 __attribute__ ((aligned(16)));
-__m128i logmax_num_re1 __attribute__ ((aligned(16)));
-__m128i logmax_num_im1 __attribute__ ((aligned(16)));
-__m128i logmax_den_re1 __attribute__ ((aligned(16)));
-__m128i logmax_den_im1 __attribute__ ((aligned(16)));
-
-__m128i tmp_result __attribute__ ((aligned(16)));
-__m128i tmp_result2 __attribute__ ((aligned(16)));
-__m128i tmp_result3 __attribute__ ((aligned(16)));
-__m128i tmp_result4 __attribute__ ((aligned(16)));
-
-
-//==============================================================================================
-// Auxiliary Makros
-
-// calculates psi_a = psi_r*a_r + psi_i*a_i
-#define prodsum_psi_a_epi16(psi_r,a_r,psi_i,a_i,psi_a) tmp_result = _mm_mulhi_epi16(psi_r,a_r); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result2 = _mm_mulhi_epi16(psi_i,a_i); tmp_result2 = _mm_slli_epi16(tmp_result2,1); psi_a = _mm_adds_epi16(tmp_result,tmp_result2);
-
-// calculate interference magnitude
-#define interference_abs_epi16(psi,int_ch_mag,int_mag,c1,c2) tmp_result = _mm_cmplt_epi16(psi,int_ch_mag); tmp_result2 = _mm_xor_si128(tmp_result,(*(__m128i*)&ones[0])); tmp_result = _mm_and_si128(tmp_result,c1); tmp_result2 = _mm_and_si128(tmp_result2,c2); int_mag = _mm_or_si128(tmp_result,tmp_result2);
-
-// calculate interference magnitude
-// tmp_result = ones in shorts corr. to interval 2<=x<=4, tmp_result2 interval < 2, tmp_result3 interval 46
-#define interference_abs_64qam_epi16(psi,int_ch_mag,int_two_ch_mag,int_three_ch_mag,a,c1,c3,c5,c7) tmp_result = _mm_cmplt_epi16(psi,int_two_ch_mag); tmp_result3 = _mm_xor_si128(tmp_result,(*(__m128i*)&ones[0])); tmp_result2 = _mm_cmplt_epi16(psi,int_ch_mag); tmp_result = _mm_xor_si128(tmp_result,tmp_result2); tmp_result4 = _mm_cmpgt_epi16(psi,int_three_ch_mag); tmp_result3 = _mm_xor_si128(tmp_result3,tmp_result4); tmp_result = _mm_and_si128(tmp_result,c3); tmp_result2 = _mm_and_si128(tmp_result2,c1); tmp_result3 = _mm_and_si128(tmp_result3,c5); tmp_result4 = _mm_and_si128(tmp_result4,c7); tmp_result = _mm_or_si128(tmp_result,tmp_result2); tmp_result3 = _mm_or_si128(tmp_result3,tmp_result4); a = _mm_or_si128(tmp_result,tmp_result3);
-
-// calculates a_sq = int_ch_mag*(a_r^2 + a_i^2)*scale_factor
-#define square_a_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = _mm_mulhi_epi16(a_r,a_r); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result = _mm_mulhi_epi16(tmp_result,scale_factor); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result = _mm_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result2 = _mm_mulhi_epi16(a_i,a_i); tmp_result2 = _mm_slli_epi16(tmp_result2,1); tmp_result2 = _mm_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = _mm_slli_epi16(tmp_result2,1); tmp_result2 = _mm_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = _mm_slli_epi16(tmp_result2,1); a_sq = _mm_adds_epi16(tmp_result,tmp_result2);
-
-// calculates a_sq = int_ch_mag*(a_r^2 + a_i^2)*scale_factor for 64-QAM
-#define square_a_64qam_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = _mm_mulhi_epi16(a_r,a_r); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result = _mm_mulhi_epi16(tmp_result,scale_factor); tmp_result = _mm_slli_epi16(tmp_result,3); tmp_result = _mm_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result2 = _mm_mulhi_epi16(a_i,a_i); tmp_result2 = _mm_slli_epi16(tmp_result2,1); tmp_result2 = _mm_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = _mm_slli_epi16(tmp_result2,3); tmp_result2 = _mm_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = _mm_slli_epi16(tmp_result2,1); a_sq = _mm_adds_epi16(tmp_result,tmp_result2);
-
-#elif defined(__arm__)
-
-#endif
-
-//==============================================================================================
-// SINGLE-STREAM
-//==============================================================================================
-
-//----------------------------------------------------------------------------------------------
-// QPSK
-//----------------------------------------------------------------------------------------------
-
-int dlsch_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- uint8_t beamforming_mode)
-{
-
- uint32_t *rxF = (uint32_t*)&rxdataF_comp[0][((int32_t)symbol*frame_parms->N_RB_DL*12)];
- uint32_t *llr32;
- int i,len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- /*
- if (first_symbol_flag==1) {
- llr32 = (uint32_t*)dlsch_llr;
- } else {
- llr32 = (uint32_t*)(*llr32p);
- }*/
-
- llr32 = (uint32_t*)dlsch_llr;
- if (!llr32) {
- LOG_E(PHY,"dlsch_qpsk_llr: llr is null, symbol %d, llr32=%p\n",symbol, llr32);
- return(-1);
- }
-
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- if (frame_parms->nb_antenna_ports_eNB!=1)
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else if((beamforming_mode==7) && (frame_parms->Ncp==0) && (symbol==3 || symbol==6 || symbol==9 || symbol==12)){
- len = (nb_rb*9) - (3*pbch_pss_sss_adjust/4);
- } else if((beamforming_mode==7) && (frame_parms->Ncp==1) && (symbol==4 || symbol==7 || symbol==10)){
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- } else {
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
-
- /*
- LOG_I(PHY,"dlsch_qpsk_llr: [symb %d / FirstSym %d / Length %d]: @LLR Buff %x, @LLR Buff(symb) %x \n",
- symbol,
- first_symbol_flag,
- len,
- dlsch_llr,
- llr32);
- */
- //printf("ll32p=%p , dlsch_llr=%p, symbol=%d, flag=%d \n", llr32, dlsch_llr, symbol, first_symbol_flag);
- for (i=0; iN_RB_DL*12];
- int16_t rho_rho_amp_x0[2*frame_parms->N_RB_DL*12];
- uint16_t amp_tmp;
- uint16_t *llr16=(uint16_t*)dlsch_llr;
- int i, len, nsymb;
- uint8_t symbol, symbol_mod;
- int len_acc=0;
- uint16_t *sic_data;
- uint16_t pbch_pss_sss_adjust;
-
- nsymb = (frame_parms->Ncp==0) ? 14:12;
-
- for (symbol=num_pdcch_symbols; symbolN_RB_DL*12)]);
- int16_t *rho_1=(int16_t*)(&rho_i[0][((int16_t)symbol*frame_parms->N_RB_DL*12)]);
- sic_data = (uint16_t*)&sic_buffer[0][((int16_t)len_acc)];
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
-
-
-
- if ((symbol_mod == 0) || (symbol_mod == (4-frame_parms->Ncp))) //pilots=1
- amp_tmp=0x1fff;//dlsch0->sqrt_rho_b; already taken into account
- else //pilots=0
- amp_tmp=0x1fff;//1.5*dlsch0->sqrt_rho_a; already taken into account
-
- if (mod_order_0==6)
- amp_tmp=amp_tmp<<1; // to compensate for >> 1 shift in modulation
-
-
- pbch_pss_sss_adjust=adjust_G2(frame_parms,&rb_alloc,2,subframe,symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- if (frame_parms->nb_antenna_ports_eNB!=1)
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- // printf("dlsch_qpsk_llr: symbol %d,nb_rb %d, len %d,pbch_pss_sss_adjust %d\n",symbol,nb_rb,len,pbch_pss_sss_adjust);
-
- len_acc+=len; //accumulated length; this is done because in sic_buffer we have only data symbols
-
- multadd_complex_vector_real_scalar((int16_t *)sic_data,
- amp_tmp,
- (int16_t *)rho_amp_x0, //this is in Q13
- 1,
- len);
-
- mult_cpx_vector((int16_t *)rho_1, //Q15
- (int16_t *)rho_amp_x0, //Q13
- (int16_t*)rho_rho_amp_x0,
- len,
- 13);
-
-#ifdef DEBUG_LLR_SIC
- write_output("rho_for_multipl.m","rho_for_m", rho_1,len,1,
- symbol==num_pdcch_symbols ? 15 :
- symbol==nsymb-1 ? 14 : 13);
-
- write_output("rho_rho_in_llr.m","rho2", rho_rho_amp_x0,len,1,
- symbol==num_pdcch_symbols ? 15 :
- symbol==nsymb-1 ? 14 : 13);
-#endif
-
- sub_cpx_vector16((int16_t *)rxF,
- (int16_t *)rho_rho_amp_x0,
- //(int16_t *)clean_x1,
- (int16_t *)rxF,
- len*2);
-
-#ifdef DEBUG_LLR_SIC
- write_output("rxFdata_comp1_after.m","rxF_a", rxF,len,1,1);
- write_output("rxF_comp1.m","rxF_1_comp", rxF,len,1,
- symbol==num_pdcch_symbols ? 15 :
- symbol==nsymb-1 ? 14 : 13);
-#endif
-
- //this is for QPSK only!!!
- for (i=0; iN_RB_DL*12)];
- __m128i *ch_mag;
- __m128i llr128[2];
- uint32_t *llr32;
-#elif defined(__arm__)
- int16x8_t *rxF = (int16x8_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16x8_t *ch_mag;
- int16x8_t xmm0;
- int16_t *llr16;
-#endif
-
-
- int i,len;
- unsigned char symbol_mod,len_mod4=0;
-
-
-#if defined(__x86_64__) || defined(__i386__)
- if (first_symbol_flag==1) {
- llr32 = (uint32_t*)dlsch_llr;
- } else {
- llr32 = (uint32_t*)*llr32p;
- }
-#elif defined(__arm__)
- if (first_symbol_flag==1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)*llr32p;
- }
-#endif
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
-#if defined(__x86_64__) || defined(__i386__)
- ch_mag = (__m128i*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
-#elif defined(__arm__)
- ch_mag = (int16x8_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
-#endif
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- if (frame_parms->nb_antenna_ports_eNB!=1)
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else if((beamforming_mode==7) && (frame_parms->Ncp==0) && (symbol==3 || symbol==6 || symbol==9 || symbol==12)){
- len = (nb_rb*9) - (3*pbch_pss_sss_adjust/4);
- } else if((beamforming_mode==7) && (frame_parms->Ncp==1) && (symbol==4 || symbol==7 || symbol==10)){
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- } else {
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- // update output pointer according to number of REs in this symbol (<<2 because 4 bits per RE)
- if (first_symbol_flag == 1)
- *llr32p = dlsch_llr + (len<<2);
- else
- *llr32p += (len<<2);
-
- // printf("len=%d\n", len);
- len_mod4 = len&3;
- // printf("len_mod4=%d\n", len_mod4);
- len>>=2; // length in quad words (4 REs)
- // printf("len>>=2=%d\n", len);
- len+=(len_mod4==0 ? 0 : 1);
- // printf("len+=%d\n", len);
- for (i=0; iN_RB_DL*12];
- int16_t rho_rho_amp_x0[2*frame_parms->N_RB_DL*12];
- uint16_t amp_tmp;
- uint32_t *llr32=(uint32_t*)dlsch_llr;
- int i, len, nsymb;
- uint8_t symbol, symbol_mod;
- int len_acc=0;
- uint16_t *sic_data;
- uint16_t pbch_pss_sss_adjust;
- unsigned char len_mod4=0;
- __m128i llr128[2];
- __m128i *ch_mag;
- nsymb = (frame_parms->Ncp==0) ? 14:12;
-
- for (symbol=num_pdcch_symbols; symbolN_RB_DL*12)]);
- int16_t *rho_1=(int16_t*)(&rho_i[0][((int16_t)symbol*frame_parms->N_RB_DL*12)]);
- ch_mag = (__m128i*)(&dl_ch_mag[0][((int16_t)symbol*frame_parms->N_RB_DL*12)]);
- sic_data = (uint16_t*)(&sic_buffer[0][((int16_t)len_acc)]);
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- pbch_pss_sss_adjust=adjust_G2(frame_parms,&rb_alloc,4,subframe,symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- amp_tmp=0x1fff;//dlsch0->sqrt_rho_b; already taken into account
- if (frame_parms->nb_antenna_ports_eNB!=1)
- len = nb_rb*8 - (2*pbch_pss_sss_adjust/3);
- else
- len = nb_rb*10 - (5*pbch_pss_sss_adjust/6);
- } else {
- amp_tmp=0x1fff;;//dlsch0->sqrt_rho_a; already taken into account
- len = nb_rb*12 - pbch_pss_sss_adjust;
- }
-
- if (mod_order_0==6)
- amp_tmp=amp_tmp<<1; // to compensate for >> 1 shift in modulation
-
- len_acc+=len;
-
- multadd_complex_vector_real_scalar((int16_t *)sic_data,
- amp_tmp,
- (int16_t *)rho_amp_x0, //this is in Q13
- 1,
- len);
-
- mult_cpx_vector((int16_t *)rho_1, //Q15
- (int16_t *)rho_amp_x0, //Q13
- (int16_t*)rho_rho_amp_x0,
- len,
- 13);
-
- sub_cpx_vector16((int16_t *)rxF,
- (int16_t *)rho_rho_amp_x0,
- //(int16_t *)clean_x1,
- (int16_t *)rxF,
- len*2);
-
- len_mod4 = len&3;
- len>>=2; // length in quad words (4 REs)
- len+=(len_mod4==0 ? 0 : 1);
-
- for (i=0; iN_RB_DL*12)];
- __m128i *ch_mag,*ch_magb;
-#elif defined(__arm__)
- int16x8_t *rxF = (int16x8_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16x8_t *ch_mag,*ch_magb,xmm1,xmm2;
-#endif
- int i,len,len2;
- unsigned char symbol_mod,len_mod4;
- short *llr;
- int16_t *llr2;
- int8_t *pllr_symbol;
-
- /*
- if (first_symbol_flag==1)
- llr = dlsch_llr;
- else
- llr = *llr_save;
- */
- llr = dlsch_llr;
-
- pllr_symbol = (int8_t*)dlsch_llr;
- pllr_symbol += llr_offset;
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
-#if defined(__x86_64__) || defined(__i386__)
- ch_mag = (__m128i*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
- ch_magb = (__m128i*)&dl_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)];
-#elif defined(__arm__)
- ch_mag = (int16x8_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
- ch_magb = (int16x8_t*)&dl_ch_magb[0][(symbol*frame_parms->N_RB_DL*12)];
-#endif
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- if (frame_parms->nb_antenna_ports_eNB!=1)
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else if((beamforming_mode==7) && (frame_parms->Ncp==0) && (symbol==3 || symbol==6 || symbol==9 || symbol==12)){
- len = (nb_rb*9) - (3*pbch_pss_sss_adjust/4);
- } else if((beamforming_mode==7) && (frame_parms->Ncp==1) && (symbol==4 || symbol==7 || symbol==10)){
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- } else {
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
-// printf("dlsch_64qam_llr: symbol %d,nb_rb %d, len %d,pbch_pss_sss_adjust %d\n",symbol,nb_rb,len,pbch_pss_sss_adjust);
-
-/* LOG_I(PHY,"dlsch_64qam_llr [symb %d / FirstSym %d / Length %d]: @LLR Buff %x \n",
- symbol,
- first_symbol_flag,
- len,
- dlsch_llr,
- pllr_symbol);*/
-
- llr2 = llr;
- llr += (len*6);
-
- len_mod4 =len&3;
- len2=len>>2; // length in quad words (4 REs)
- len2+=((len_mod4==0)?0:1);
-
- for (i=0; iN_RB_DL*12];
- int16_t rho_rho_amp_x0[2*frame_parms->N_RB_DL*12];
- uint16_t amp_tmp;
- uint16_t *llr32=(uint16_t*)dlsch_llr;
- int i, len, nsymb, len2;
- uint8_t symbol, symbol_mod;
- int len_acc=0;
- uint16_t *sic_data;
- uint16_t pbch_pss_sss_adjust;
- unsigned char len_mod4=0;
- uint16_t *llr2;
- __m128i *ch_mag,*ch_magb;
-
- nsymb = (frame_parms->Ncp==0) ? 14:12;
-
- for (symbol=num_pdcch_symbols; symbolN_RB_DL*12)]);
- int16_t *rho_1=(int16_t*)(&rho_i[0][((int16_t)symbol*frame_parms->N_RB_DL*12)]);
- ch_mag = (__m128i*)(&dl_ch_mag[0][((int16_t)symbol*frame_parms->N_RB_DL*12)]);
- ch_magb = (__m128i*)(&dl_ch_magb[0][((int16_t)symbol*frame_parms->N_RB_DL*12)]);
- sic_data = (uint16_t*)(&sic_buffer[0][((int16_t)len_acc)]);
-
- symbol_mod = (symbol>=(7-frame_parms->Ncp)) ? symbol-(7-frame_parms->Ncp) : symbol;
-
- pbch_pss_sss_adjust=adjust_G2(frame_parms,&rb_alloc,6,subframe,symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- amp_tmp = 0x1fff;//dlsch0->sqrt_rho_b; already taken into account
- if (frame_parms->nb_antenna_ports_eNB!=1)
- len = nb_rb*8 - (2*pbch_pss_sss_adjust/3);
- else
- len = nb_rb*10 - (5*pbch_pss_sss_adjust/6);
- } else {
- amp_tmp = 0x1fff; //dlsch0->sqrt_rho_a; already taken into account
- len = nb_rb*12 - pbch_pss_sss_adjust;
- }
-
- if (mod_order_0==6)
- amp_tmp=amp_tmp<<1; // to compensate for >> 1 shift in modulation
-
- len_acc+=len;
-
- multadd_complex_vector_real_scalar((int16_t *)sic_data,
- amp_tmp,
- (int16_t *)rho_amp_x0, //this is in Q13
- 1,
- len);
-
- mult_cpx_vector((int16_t *)rho_1, //Q15
- (int16_t *)rho_amp_x0, //Q13
- (int16_t*)rho_rho_amp_x0,
- len,
- 13);
-
- sub_cpx_vector16((int16_t *)rxF,
- (int16_t *)rho_rho_amp_x0,
- //(int16_t *)clean_x1,
- (int16_t *)rxF,
- len*2);
-
- llr2 = llr32;
- llr32 += (len*6);
-
- len_mod4 =len&3;
- len2=len>>2; // length in quad words (4 REs)
- len2+=(len_mod4?0:1);
-
-
-
- for (i=0; iN_RB_DL*12)];
- int16_t *rxF_i=(int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho=(int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }
-
- AssertFatal(llr16!=NULL,"dlsch_qpsk_qpsk_llr: llr is null, symbol %d\n",symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- // printf("dlsch_qpsk_qpsk_llr: symbol %d,nb_rb %d, len %d,pbch_pss_sss_adjust %d\n",symbol,nb_rb,len,pbch_pss_sss_adjust);
- // printf("qpsk_qpsk: len %d, llr16 %p\n",len,llr16);
- qpsk_qpsk((short *)rxF,
- (short *)rxF_i,
- (short *)llr16,
- (short *)rho,
- len);
-
- llr16 += (len<<1);
- *llr16p = (short *)llr16;
-
- return(0);
-}
-
-//__m128i ONE_OVER_SQRT_8 __attribute__((aligned(16)));
-
-void qpsk_qpsk(short *stream0_in,
- short *stream1_in,
- short *stream0_out,
- short *rho01,
- int length
- )
-{
-
- /*
- This function computes the LLRs of stream 0 (s_0) in presence of the interfering stream 1 (s_1) assuming that both symbols are QPSK. It can be used for both MU-MIMO interference-aware receiver or for SU-MIMO receivers.
-
- Parameters:
- stream0_in = Matched filter output y0' = (h0*g0)*y0
- stream1_in = Matched filter output y1' = (h0*g1)*y0
- stream0_out = LLRs
- rho01 = Correlation between the two effective channels \rho_{10} = (h1*g1)*(h0*g0)
- length = number of resource elements
- */
-
-#if defined(__x86_64__) || defined(__i386__)
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *stream0_128i_out = (__m128i *)stream0_out;
- __m128i ONE_OVER_SQRT_8 = _mm_set1_epi16(23170); //round(2^16/sqrt(8))
-#elif defined(__arm__)
- int16x8_t *rho01_128i = (int16x8_t *)rho01;
- int16x8_t *stream0_128i_in = (int16x8_t *)stream0_in;
- int16x8_t *stream1_128i_in = (int16x8_t *)stream1_in;
- int16x8_t *stream0_128i_out = (int16x8_t *)stream0_out;
- int16x8_t ONE_OVER_SQRT_8 = vdupq_n_s16(23170); //round(2^16/sqrt(8))
-#endif
-
- int i;
-
-
- for (i=0; i>2; i+=2) {
- // in each iteration, we take 8 complex samples
-#if defined(__x86_64__) || defined(__i386__)
- xmm0 = rho01_128i[i]; // 4 symbols
- xmm1 = rho01_128i[i+1];
-
- // put (rho_r + rho_i)/2sqrt2 in rho_rpi
- // put (rho_r - rho_i)/2sqrt2 in rho_rmi
-
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // divide by sqrt(8), no shift needed ONE_OVER_SQRT_8 = Q1.16
- rho_rpi = _mm_mulhi_epi16(rho_rpi,ONE_OVER_SQRT_8);
- rho_rmi = _mm_mulhi_epi16(rho_rmi,ONE_OVER_SQRT_8);
-#elif defined(__arm__)
-
-
-#endif
- // Compute LLR for first bit of stream 0
-
- // Compute real and imaginary parts of MF output for stream 0
-#if defined(__x86_64__) || defined(__i386__)
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
-
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- y0r_over2 = _mm_srai_epi16(y0r,1); // divide by 2
- y0i_over2 = _mm_srai_epi16(y0i,1); // divide by 2
-#elif defined(__arm__)
-
-
-#endif
- // Compute real and imaginary parts of MF output for stream 1
-#if defined(__x86_64__) || defined(__i386__)
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
-
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- y1r_over2 = _mm_srai_epi16(y1r,1); // divide by 2
- y1i_over2 = _mm_srai_epi16(y1i,1); // divide by 2
-
- // Compute the terms for the LLR of first bit
-
- xmm0 = _mm_setzero_si128(); // ZERO
-
- // 1 term for numerator of LLR
- xmm3 = _mm_subs_epi16(y1r_over2,rho_rpi);
- A = _mm_abs_epi16(xmm3); // A = |y1r/2 - rho/sqrt(8)|
- xmm2 = _mm_adds_epi16(A,y0i_over2); // = |y1r/2 - rho/sqrt(8)| + y0i/2
- xmm3 = _mm_subs_epi16(y1i_over2,rho_rmi);
- B = _mm_abs_epi16(xmm3); // B = |y1i/2 - rho*/sqrt(8)|
- logmax_num_re0 = _mm_adds_epi16(B,xmm2); // = |y1r/2 - rho/sqrt(8)|+|y1i/2 - rho*/sqrt(8)| + y0i/2
-
- // 2 term for numerator of LLR
- xmm3 = _mm_subs_epi16(y1r_over2,rho_rmi);
- C = _mm_abs_epi16(xmm3); // C = |y1r/2 - rho*/4|
- xmm2 = _mm_subs_epi16(C,y0i_over2); // = |y1r/2 - rho*/4| - y0i/2
- xmm3 = _mm_adds_epi16(y1i_over2,rho_rpi);
- D = _mm_abs_epi16(xmm3); // D = |y1i/2 + rho/4|
- xmm2 = _mm_adds_epi16(xmm2,D); // |y1r/2 - rho*/4| + |y1i/2 + rho/4| - y0i/2
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0,xmm2); // max, numerator done
-
- // 1 term for denominator of LLR
- xmm3 = _mm_adds_epi16(y1r_over2,rho_rmi);
- E = _mm_abs_epi16(xmm3); // E = |y1r/2 + rho*/4|
- xmm2 = _mm_adds_epi16(E,y0i_over2); // = |y1r/2 + rho*/4| + y0i/2
- xmm3 = _mm_subs_epi16(y1i_over2,rho_rpi);
- F = _mm_abs_epi16(xmm3); // F = |y1i/2 - rho/4|
- logmax_den_re0 = _mm_adds_epi16(F,xmm2); // = |y1r/2 + rho*/4| + |y1i/2 - rho/4| + y0i/2
-
- // 2 term for denominator of LLR
- xmm3 = _mm_adds_epi16(y1r_over2,rho_rpi);
- G = _mm_abs_epi16(xmm3); // G = |y1r/2 + rho/4|
- xmm2 = _mm_subs_epi16(G,y0i_over2); // = |y1r/2 + rho/4| - y0i/2
- xmm3 = _mm_adds_epi16(y1i_over2,rho_rmi);
- H = _mm_abs_epi16(xmm3); // H = |y1i/2 + rho*/4|
- xmm2 = _mm_adds_epi16(xmm2,H); // = |y1r/2 + rho/4| + |y1i/2 + rho*/4| - y0i/2
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0,xmm2); // max, denominator done
-
- // Compute the terms for the LLR of first bit
-
- // 1 term for nominator of LLR
- xmm2 = _mm_adds_epi16(A,y0r_over2);
- logmax_num_im0 = _mm_adds_epi16(B,xmm2); // = |y1r/2 - rho/4| + |y1i/2 - rho*/4| + y0r/2
-
- // 2 term for nominator of LLR
- xmm2 = _mm_subs_epi16(E,y0r_over2);
- xmm2 = _mm_adds_epi16(xmm2,F); // = |y1r/2 + rho*/4| + |y1i/2 - rho/4| - y0r/2
-
- logmax_num_im0 = _mm_max_epi16(logmax_num_im0,xmm2); // max, nominator done
-
- // 1 term for denominator of LLR
- xmm2 = _mm_adds_epi16(C,y0r_over2);
- logmax_den_im0 = _mm_adds_epi16(D,xmm2); // = |y1r/2 - rho*/4| + |y1i/2 + rho/4| - y0r/2
-
- xmm2 = _mm_subs_epi16(G,y0r_over2);
- xmm2 = _mm_adds_epi16(xmm2,H); // = |y1r/2 + rho/4| + |y1i/2 + rho*/4| - y0r/2
-
- logmax_den_im0 = _mm_max_epi16(logmax_den_im0,xmm2); // max, denominator done
-
- // LLR of first bit [L1(1), L1(2), L1(3), L1(4)]
- y0r = _mm_adds_epi16(y0r,logmax_num_re0);
- y0r = _mm_subs_epi16(y0r,logmax_den_re0);
-
- // LLR of second bit [L2(1), L2(2), L2(3), L2(4)]
- y0i = _mm_adds_epi16(y0i,logmax_num_im0);
- y0i = _mm_subs_epi16(y0i,logmax_den_im0);
-
- _mm_storeu_si128(&stream0_128i_out[i],_mm_unpacklo_epi16(y0r,y0i)); // = [L1(1), L2(1), L1(2), L2(2)]
-
- if (i<((length>>1) - 1)) // false if only 2 REs remain
- _mm_storeu_si128(&stream0_128i_out[i+1],_mm_unpackhi_epi16(y0r,y0i));
-
-#elif defined(__x86_64__)
-
-#endif
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-}
-
-int dlsch_qpsk_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int32_t **rxdataF_comp_i,
- int32_t **dl_ch_mag_i, //|h_1|^2*(2/sqrt{10})
- int32_t **rho_i,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- int16_t **llr16p)
-{
-
- int16_t *rxF=(int16_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rxF_i=(int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag_i = (int16_t*)&dl_ch_mag_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho=(int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }
-
- AssertFatal(llr16!=NULL,"dlsch_qpsk_qpsk_llr: llr is null, symbol %d\n",symbol);
-
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- qpsk_qam16((short *)rxF,
- (short *)rxF_i,
- (short *)ch_mag_i,
- (short *)llr16,
- (short *)rho,
- len);
-
- llr16 += (len<<1);
- *llr16p = (short *)llr16;
-
- return(0);
-}
-
-/*
-#if defined(__x86_64__) || defined(__i386__)
-__m128i ONE_OVER_SQRT_2 __attribute__((aligned(16)));
-__m128i ONE_OVER_SQRT_10 __attribute__((aligned(16)));
-__m128i THREE_OVER_SQRT_10 __attribute__((aligned(16)));
-__m128i ONE_OVER_SQRT_10_Q15 __attribute__((aligned(16)));
-__m128i SQRT_10_OVER_FOUR __attribute__((aligned(16)));
-__m128i ch_mag_int;
-#endif
-*/
-void qpsk_qam16(int16_t *stream0_in,
- int16_t *stream1_in,
- int16_t *ch_mag_i,
- int16_t *stream0_out,
- int16_t *rho01,
- int32_t length
- )
-{
- /*
- This function computes the LLRs of stream 0 (s_0) in presence of the interfering stream 1 (s_1) assuming that both symbols are QPSK. It can be used for both MU-MIMO interference-aware receiver or for SU-MIMO receivers.
-
- Parameters:
- stream0_in = Matched filter output y0' = (h0*g0)*y0
- stream1_in = Matched filter output y1' = (h0*g1)*y0
- stream0_out = LLRs
- rho01 = Correlation between the two effective channels \rho_{10} = (h1*g1)*(h0*g0)
- length = number of resource elements
- */
-
-#if defined(__x86_64__) || defined(__i386__)
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *stream0_128i_out = (__m128i *)stream0_out;
- __m128i *ch_mag_128i_i = (__m128i *)ch_mag_i;
- __m128i ONE_OVER_SQRT_2 = _mm_set1_epi16(23170); // round(1/sqrt(2)*2^15)
- __m128i ONE_OVER_SQRT_10_Q15 = _mm_set1_epi16(10362); // round(1/sqrt(10)*2^15)
- __m128i THREE_OVER_SQRT_10 = _mm_set1_epi16(31086); // round(3/sqrt(10)*2^15)
- __m128i SQRT_10_OVER_FOUR = _mm_set1_epi16(25905); // round(sqrt(10)/4*2^15)
- __m128i ch_mag_int __attribute__((aligned(16)));
-#elif defined(__arm__)
- int16x8_t *rho01_128i = (int16x8_t *)rho01;
- int16x8_t *stream0_128i_in = (int16x8_t *)stream0_in;
- int16x8_t *stream1_128i_in = (int16x8_t *)stream1_in;
- int16x8_t *stream0_128i_out = (int16x8_t *)stream0_out;
- int16x8_t *ch_mag_128i_i = (int16x8_t *)ch_mag_i;
- int16x8_t ONE_OVER_SQRT_2 = vdupq_n_s16(23170); // round(1/sqrt(2)*2^15)
- int16x8_t ONE_OVER_SQRT_10_Q15 = vdupq_n_s16(10362); // round(1/sqrt(10)*2^15)
- int16x8_t THREE_OVER_SQRT_10 = vdupq_n_s16(31086); // round(3/sqrt(10)*2^15)
- int16x8_t SQRT_10_OVER_FOUR = vdupq_n_s16(25905); // round(sqrt(10)/4*2^15)
- int16x8_t ch_mag_int __attribute__((aligned(16)));
-#endif
-
-#ifdef DEBUG_LLR
- print_shorts2("rho01_128i:\n",rho01_128i);
-#endif
-
- int i;
-
-
- for (i=0; i>2; i+=2) {
- // in each iteration, we take 8 complex samples
-
-#if defined(__x86_64__) || defined(__i386__)
-
- xmm0 = rho01_128i[i]; // 4 symbols
- xmm1 = rho01_128i[i+1];
-
- // put (rho_r + rho_i)/2sqrt2 in rho_rpi
- // put (rho_r - rho_i)/2sqrt2 in rho_rmi
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // divide by sqrt(2)
- rho_rpi = _mm_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_2);
- rho_rmi = _mm_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_2);
- rho_rpi = _mm_slli_epi16(rho_rpi,1);
- rho_rmi = _mm_slli_epi16(rho_rmi,1);
-
- // Compute LLR for first bit of stream 0
-
- // Compute real and imaginary parts of MF output for stream 0
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
-
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- // divide by sqrt(2)
- y0r_over2 = _mm_mulhi_epi16(y0r, ONE_OVER_SQRT_2);
- y0i_over2 = _mm_mulhi_epi16(y0i, ONE_OVER_SQRT_2);
- y0r_over2 = _mm_slli_epi16(y0r,1);
- y0i_over2 = _mm_slli_epi16(y0i,1);
-
- y0_p_1_1 = _mm_adds_epi16(y0r_over2, y0i_over2);
- y0_m_1_1 = _mm_subs_epi16(y0r_over2, y0i_over2);
-
- // Compute real and imaginary parts of MF output for stream 1
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
-
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- xmm0 = _mm_setzero_si128(); // ZERO
-
- // compute psi
- xmm3 = _mm_subs_epi16(y1r,rho_rpi);
- psi_r_p1_p1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_subs_epi16(y1i,rho_rmi);
- psi_i_p1_p1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_subs_epi16(y1r,rho_rmi);
- psi_r_p1_m1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_adds_epi16(y1i,rho_rpi);
- psi_i_p1_m1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_adds_epi16(y1r,rho_rmi);
- psi_r_m1_p1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_subs_epi16(y1i,rho_rpi);
- psi_i_m1_p1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_adds_epi16(y1r,rho_rpi);
- psi_r_m1_m1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_adds_epi16(y1i,rho_rmi);
- psi_i_m1_m1 = _mm_abs_epi16(xmm3);
-
- // Rearrange interfering channel magnitudes
- xmm2 = ch_mag_128i_i[i];
- xmm3 = ch_mag_128i_i[i+1];
-
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
-
- ch_mag_int = _mm_unpacklo_epi64(xmm2,xmm3);
-
- // calculate optimal interference amplitudes
- interference_abs_epi16(psi_r_p1_p1 , ch_mag_int, a_r_p1_p1 , ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_p1 , ch_mag_int, a_i_p1_p1 , ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_m1 , ch_mag_int, a_r_p1_m1 , ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_m1 , ch_mag_int, a_i_p1_m1 , ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_p1 , ch_mag_int, a_r_m1_p1 , ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_p1 , ch_mag_int, a_i_m1_p1 , ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_m1 , ch_mag_int, a_r_m1_m1 , ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_m1 , ch_mag_int, a_i_m1_m1 , ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
-
- // prodsum
- prodsum_psi_a_epi16(psi_r_p1_p1, a_r_p1_p1, psi_i_p1_p1, a_i_p1_p1, psi_a_p1_p1);
- prodsum_psi_a_epi16(psi_r_p1_m1, a_r_p1_m1, psi_i_p1_m1, a_i_p1_m1, psi_a_p1_m1);
- prodsum_psi_a_epi16(psi_r_m1_p1, a_r_m1_p1, psi_i_m1_p1, a_i_m1_p1, psi_a_m1_p1);
- prodsum_psi_a_epi16(psi_r_m1_m1, a_r_m1_m1, psi_i_m1_m1, a_i_m1_m1, psi_a_m1_m1);
-
- // squares
- square_a_epi16(a_r_p1_p1, a_i_p1_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_p1);
- square_a_epi16(a_r_p1_m1, a_i_p1_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_m1);
- square_a_epi16(a_r_m1_p1, a_i_m1_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_p1);
- square_a_epi16(a_r_m1_m1, a_i_m1_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_m1);
-
- // Computing Metrics
- xmm0 = _mm_subs_epi16(psi_a_p1_p1, a_sq_p1_p1);
- bit_met_p1_p1 = _mm_adds_epi16(xmm0, y0_p_1_1);
-
- xmm0 = _mm_subs_epi16(psi_a_p1_m1, a_sq_p1_m1);
- bit_met_p1_m1 = _mm_adds_epi16(xmm0, y0_m_1_1);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_p1, a_sq_m1_p1);
- bit_met_m1_p1 = _mm_subs_epi16(xmm0, y0_m_1_1);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_m1, a_sq_m1_m1);
- bit_met_m1_m1 = _mm_subs_epi16(xmm0, y0_p_1_1);
-
- // MSB
- logmax_num_re0 = _mm_max_epi16(bit_met_p1_p1,bit_met_p1_m1); // bit=0
- logmax_den_re0 = _mm_max_epi16(bit_met_m1_p1,bit_met_m1_m1); // bit=1
-
- y0r = _mm_subs_epi16(logmax_num_re0,logmax_den_re0);
-
- // LSB
- logmax_num_im0 = _mm_max_epi16(bit_met_p1_p1,bit_met_m1_p1); // bit=0
- logmax_den_im0 = _mm_max_epi16(bit_met_p1_m1,bit_met_m1_m1); // bit=1
-
- y0i = _mm_subs_epi16(logmax_num_im0,logmax_den_im0);
-
- stream0_128i_out[i] = _mm_unpacklo_epi16(y0r,y0i); // = [L1(1), L2(1), L1(2), L2(2)]
-
- if (i<((length>>1) - 1)) // false if only 2 REs remain
- stream0_128i_out[i+1] = _mm_unpackhi_epi16(y0r,y0i);
-
-#elif defined(__arm__)
-
-#endif
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-}
-
-int dlsch_qpsk_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int32_t **rxdataF_comp_i,
- int32_t **dl_ch_mag_i, //|h_1|^2*(2/sqrt{10})
- int32_t **rho_i,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- int16_t **llr16p)
-{
-
- int16_t *rxF=(int16_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rxF_i=(int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag_i = (int16_t*)&dl_ch_mag_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho=(int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
-
- if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }
-
- AssertFatal(llr16!=NULL,"dlsch_qpsk_qam64_llr: llr is null, symbol %d\n",symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- qpsk_qam64((short *)rxF,
- (short *)rxF_i,
- (short *)ch_mag_i,
- (short *)llr16,
- (short *)rho,
- len);
-
- llr16 += (len<<1);
- *llr16p = (short *)llr16;
-
- return(0);
-}
-/*
-__m128i ONE_OVER_SQRT_2_42 __attribute__((aligned(16)));
-__m128i THREE_OVER_SQRT_2_42 __attribute__((aligned(16)));
-__m128i FIVE_OVER_SQRT_2_42 __attribute__((aligned(16)));
-__m128i SEVEN_OVER_SQRT_2_42 __attribute__((aligned(16)));
-
-__m128i ch_mag_int_with_sigma2 __attribute__((aligned(16)));
-__m128i two_ch_mag_int_with_sigma2 __attribute__((aligned(16)));
-__m128i three_ch_mag_int_with_sigma2 __attribute__((aligned(16)));
-__m128i SQRT_42_OVER_FOUR __attribute__((aligned(16)));
-*/
-void qpsk_qam64(short *stream0_in,
- short *stream1_in,
- short *ch_mag_i,
- short *stream0_out,
- short *rho01,
- int length
- )
-{
-
- /*
- This function computes the LLRs of stream 0 (s_0) in presence of the interfering stream 1 (s_1) assuming that both symbols are QPSK. It can be used for both MU-MIMO interference-aware receiver or for SU-MIMO receivers.
-
- Parameters:
- stream0_in = Matched filter output y0' = (h0*g0)*y0
- stream1_in = Matched filter output y1' = (h0*g1)*y0
- stream0_out = LLRs
- rho01 = Correlation between the two effective channels \rho_{10} = (h1*g1)*(h0*g0)
- length = number of resource elements
- */
-
-#if defined(__x86_64__) || defined(__i386__)
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *stream0_128i_out = (__m128i *)stream0_out;
- __m128i *ch_mag_128i_i = (__m128i *)ch_mag_i;
- __m128i ONE_OVER_SQRT_2 = _mm_set1_epi16(23170); // round(1/sqrt(2)*2^15)
- __m128i ONE_OVER_SQRT_2_42 = _mm_set1_epi16(3575); // round(1/sqrt(2*42)*2^15)
- __m128i THREE_OVER_SQRT_2_42 = _mm_set1_epi16(10726); // round(3/sqrt(2*42)*2^15)
- __m128i FIVE_OVER_SQRT_2_42 = _mm_set1_epi16(17876); // round(5/sqrt(2*42)*2^15)
- __m128i SEVEN_OVER_SQRT_2_42 = _mm_set1_epi16(25027); // round(7/sqrt(2*42)*2^15)
- __m128i SQRT_42_OVER_FOUR = _mm_set1_epi16(13272); // round(sqrt(42)/4*2^13), Q3.1
- __m128i ch_mag_int;
- __m128i ch_mag_int_with_sigma2;
- __m128i two_ch_mag_int_with_sigma2;
- __m128i three_ch_mag_int_with_sigma2;
-#elif defined(__arm__)
-
-#endif
-
-#ifdef DEBUG_LLR
- print_shorts2("rho01_128i:\n",rho01_128i);
-#endif
-
- int i;
-
-
- for (i=0; i>2; i+=2) {
- // in each iteration, we take 8 complex samples
-
-#if defined(__x86_64__) || defined(__i386__)
-
- xmm0 = rho01_128i[i]; // 4 symbols
- xmm1 = rho01_128i[i+1];
-
- // put (rho_r + rho_i)/sqrt2 in rho_rpi
- // put (rho_r - rho_i)/sqrt2 in rho_rmi
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // divide by sqrt(2)
- rho_rpi = _mm_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_2);
- rho_rmi = _mm_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_2);
- rho_rpi = _mm_slli_epi16(rho_rpi,1);
- rho_rmi = _mm_slli_epi16(rho_rmi,1);
-
- // Compute LLR for first bit of stream 0
-
- // Compute real and imaginary parts of MF output for stream 0
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
-
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- // divide by sqrt(2)
- y0r_over2 = _mm_mulhi_epi16(y0r, ONE_OVER_SQRT_2);
- y0i_over2 = _mm_mulhi_epi16(y0i, ONE_OVER_SQRT_2);
- y0r_over2 = _mm_slli_epi16(y0r,1);
- y0i_over2 = _mm_slli_epi16(y0i,1);
-
- y0_p_1_1 = _mm_adds_epi16(y0r_over2, y0i_over2);
- y0_m_1_1 = _mm_subs_epi16(y0r_over2, y0i_over2);
-
- // Compute real and imaginary parts of MF output for stream 1
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
-
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- xmm0 = _mm_setzero_si128(); // ZERO
-
- // compute psi
- xmm3 = _mm_subs_epi16(y1r,rho_rpi);
- psi_r_p1_p1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_subs_epi16(y1i,rho_rmi);
- psi_i_p1_p1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_subs_epi16(y1r,rho_rmi);
- psi_r_p1_m1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_adds_epi16(y1i,rho_rpi);
- psi_i_p1_m1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_adds_epi16(y1r,rho_rmi);
- psi_r_m1_p1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_subs_epi16(y1i,rho_rpi);
- psi_i_m1_p1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_adds_epi16(y1r,rho_rpi);
- psi_r_m1_m1 = _mm_abs_epi16(xmm3);
- xmm3 = _mm_adds_epi16(y1i,rho_rmi);
- psi_i_m1_m1 = _mm_abs_epi16(xmm3);
-
- // Rearrange interfering channel magnitudes
- xmm2 = ch_mag_128i_i[i];
- xmm3 = ch_mag_128i_i[i+1];
-
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
-
- ch_mag_int = _mm_unpacklo_epi64(xmm2,xmm3);
- ch_mag_int_with_sigma2 = _mm_srai_epi16(ch_mag_int, 1); // *2
- two_ch_mag_int_with_sigma2 = ch_mag_int; // *4
- three_ch_mag_int_with_sigma2 = _mm_adds_epi16(ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2); // *6
-
- interference_abs_64qam_epi16(psi_r_p1_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
-
- // prodsum
- prodsum_psi_a_epi16(psi_r_p1_p1, a_r_p1_p1, psi_i_p1_p1, a_i_p1_p1, psi_a_p1_p1);
- prodsum_psi_a_epi16(psi_r_p1_m1, a_r_p1_m1, psi_i_p1_m1, a_i_p1_m1, psi_a_p1_m1);
- prodsum_psi_a_epi16(psi_r_m1_p1, a_r_m1_p1, psi_i_m1_p1, a_i_m1_p1, psi_a_m1_p1);
- prodsum_psi_a_epi16(psi_r_m1_m1, a_r_m1_m1, psi_i_m1_m1, a_i_m1_m1, psi_a_m1_m1);
-
- // Multiply by sqrt(2)
- psi_a_p1_p1 = _mm_mulhi_epi16(psi_a_p1_p1, ONE_OVER_SQRT_2);
- psi_a_p1_p1 = _mm_slli_epi16(psi_a_p1_p1, 2);
- psi_a_p1_m1 = _mm_mulhi_epi16(psi_a_p1_m1, ONE_OVER_SQRT_2);
- psi_a_p1_m1 = _mm_slli_epi16(psi_a_p1_m1, 2);
- psi_a_m1_p1 = _mm_mulhi_epi16(psi_a_m1_p1, ONE_OVER_SQRT_2);
- psi_a_m1_p1 = _mm_slli_epi16(psi_a_m1_p1, 2);
- psi_a_m1_m1 = _mm_mulhi_epi16(psi_a_m1_m1, ONE_OVER_SQRT_2);
- psi_a_m1_m1 = _mm_slli_epi16(psi_a_m1_m1, 2);
-
- square_a_64qam_epi16(a_r_p1_p1, a_i_p1_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_p1);
- square_a_64qam_epi16(a_r_p1_m1, a_i_p1_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_m1);
- square_a_64qam_epi16(a_r_m1_p1, a_i_m1_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_p1);
- square_a_64qam_epi16(a_r_m1_m1, a_i_m1_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_m1);
-
- // Computing Metrics
- xmm0 = _mm_subs_epi16(psi_a_p1_p1, a_sq_p1_p1);
- bit_met_p1_p1 = _mm_adds_epi16(xmm0, y0_p_1_1);
-
- xmm0 = _mm_subs_epi16(psi_a_p1_m1, a_sq_p1_m1);
- bit_met_p1_m1 = _mm_adds_epi16(xmm0, y0_m_1_1);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_p1, a_sq_m1_p1);
- bit_met_m1_p1 = _mm_subs_epi16(xmm0, y0_m_1_1);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_m1, a_sq_m1_m1);
- bit_met_m1_m1 = _mm_subs_epi16(xmm0, y0_p_1_1);
-
- // MSB
- logmax_num_re0 = _mm_max_epi16(bit_met_p1_p1,bit_met_p1_m1); // bit=0
- logmax_den_re0 = _mm_max_epi16(bit_met_m1_p1,bit_met_m1_m1); // bit=1
-
- y0r = _mm_subs_epi16(logmax_num_re0,logmax_den_re0);
-
- // LSB
- logmax_num_im0 = _mm_max_epi16(bit_met_p1_p1,bit_met_m1_p1); // bit=0
- logmax_den_im0 = _mm_max_epi16(bit_met_p1_m1,bit_met_m1_m1); // bit=1
-
- y0i = _mm_subs_epi16(logmax_num_im0,logmax_den_im0);
-
- stream0_128i_out[i] = _mm_unpacklo_epi16(y0r,y0i); // = [L1(1), L2(1), L1(2), L2(2)]
-
- if (i<((length>>1) - 1)) // false if only 2 REs remain
- stream0_128i_out[i+1] = _mm_unpackhi_epi16(y0r,y0i);
-
-#elif defined(__arm__)
-
-#endif
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-}
-
-
-//----------------------------------------------------------------------------------------------
-// 16-QAM
-//----------------------------------------------------------------------------------------------
-
-/*
-__m128i ONE_OVER_TWO_SQRT_10 __attribute__((aligned(16)));
-__m128i NINE_OVER_TWO_SQRT_10 __attribute__((aligned(16)));
-
-__m128i y0r_over_sqrt10 __attribute__ ((aligned(16)));
-__m128i y0i_over_sqrt10 __attribute__ ((aligned(16)));
-__m128i y0r_three_over_sqrt10 __attribute__ ((aligned(16)));
-__m128i y0i_three_over_sqrt10 __attribute__ ((aligned(16)));
-
-__m128i ch_mag_des __attribute__((aligned(16)));
-__m128i ch_mag_over_10 __attribute__ ((aligned(16)));
-__m128i ch_mag_over_2 __attribute__ ((aligned(16)));
-__m128i ch_mag_9_over_10 __attribute__ ((aligned(16)));
-*/
-
-void qam16_qpsk(short *stream0_in,
- short *stream1_in,
- short *ch_mag,
- short *stream0_out,
- short *rho01,
- int length
- )
-{
-
- /*
- Author: Sebastian Wagner
- Date: 2012-06-04
-
- Input:
- stream0_in: MF filter for 1st stream, i.e., y0=h0'*y
- stream!_in: MF filter for 2nd stream, i.e., y1=h1'*y
- ch_mag: 2*h0/sqrt(00), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- ch_mag_i: 2*h1/sqrt(00), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- rho01: Channel cross correlation, i.e., h1'*h0
-
- Output:
- stream0_out: output LLRs for 1st stream
- */
-
-#if defined(__x86_64__) || defined(__i386__)
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *stream0_128i_out = (__m128i *)stream0_out;
- __m128i *ch_mag_128i = (__m128i *)ch_mag;
- __m128i ONE_OVER_SQRT_2 = _mm_set1_epi16(23170); // round(1/sqrt(2)*2^15)
- __m128i ONE_OVER_SQRT_10 = _mm_set1_epi16(20724); // round(1/sqrt(10)*2^16)
- __m128i THREE_OVER_SQRT_10 = _mm_set1_epi16(31086); // round(3/sqrt(10)*2^15)
- __m128i SQRT_10_OVER_FOUR = _mm_set1_epi16(25905); // round(sqrt(10)/4*2^15)
- __m128i ONE_OVER_TWO_SQRT_10 = _mm_set1_epi16(10362); // round(1/2/sqrt(10)*2^16)
- __m128i NINE_OVER_TWO_SQRT_10 = _mm_set1_epi16(23315); // round(9/2/sqrt(10)*2^14)
- __m128i y0r_over_sqrt10;
- __m128i y0i_over_sqrt10;
- __m128i y0r_three_over_sqrt10;
- __m128i y0i_three_over_sqrt10;
-
- __m128i ch_mag_des;
- __m128i ch_mag_over_10;
- __m128i ch_mag_over_2;
- __m128i ch_mag_9_over_10;
-#elif defined(__arm__)
-
-#endif
-
- int i;
-
-
- for (i=0; i>2; i+=2) {
- // In one iteration, we deal with 8 REs
-
-#if defined(__x86_64__) || defined(__i386__)
- // Get rho
- xmm0 = rho01_128i[i];
- xmm1 = rho01_128i[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // Compute the different rhos
- rho_rpi_1_1 = _mm_mulhi_epi16(rho_rpi,ONE_OVER_SQRT_10);
- rho_rmi_1_1 = _mm_mulhi_epi16(rho_rmi,ONE_OVER_SQRT_10);
- rho_rpi_3_3 = _mm_mulhi_epi16(rho_rpi,THREE_OVER_SQRT_10);
- rho_rmi_3_3 = _mm_mulhi_epi16(rho_rmi,THREE_OVER_SQRT_10);
- rho_rpi_3_3 = _mm_slli_epi16(rho_rpi_3_3,1);
- rho_rmi_3_3 = _mm_slli_epi16(rho_rmi_3_3,1);
-
- xmm4 = _mm_mulhi_epi16(xmm2,ONE_OVER_SQRT_10); // Re(rho)
- xmm5 = _mm_mulhi_epi16(xmm3,THREE_OVER_SQRT_10); // Im(rho)
- xmm5 = _mm_slli_epi16(xmm5,1);
-
- rho_rpi_1_3 = _mm_adds_epi16(xmm4,xmm5);
- rho_rmi_1_3 = _mm_subs_epi16(xmm4,xmm5);
-
- xmm6 = _mm_mulhi_epi16(xmm2,THREE_OVER_SQRT_10); // Re(rho)
- xmm7 = _mm_mulhi_epi16(xmm3,ONE_OVER_SQRT_10); // Im(rho)
- xmm6 = _mm_slli_epi16(xmm6,1);
-
- rho_rpi_3_1 = _mm_adds_epi16(xmm6,xmm7);
- rho_rmi_3_1 = _mm_subs_epi16(xmm6,xmm7);
-
- // Rearrange interfering MF output
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- xmm0 = _mm_setzero_si128(); // ZERO
- xmm2 = _mm_subs_epi16(rho_rpi_1_1,y1r); // = [Re(rho)+ Im(rho)]/sqrt(10) - y1r
- psi_r_p1_p1 = _mm_abs_epi16(xmm2); // = |[Re(rho)+ Im(rho)]/sqrt(10) - y1r|
-
- xmm2= _mm_subs_epi16(rho_rmi_1_1,y1r);
- psi_r_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_1,y1i);
- psi_i_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_3,y1r);
- psi_r_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_3,y1r);
- psi_r_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_1,y1i);
- psi_i_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_1,y1r);
- psi_r_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_1,y1r);
- psi_r_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_3,y1i);
- psi_i_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_3,y1r);
- psi_r_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_3,y1r);
- psi_r_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_3,y1i);
- psi_i_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_1,y1i);
- psi_i_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_1,y1i);
- psi_i_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_3,y1i);
- psi_i_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_3,y1i);
- psi_i_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_1,y1i);
- psi_i_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_1,y1i);
- psi_i_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_3,y1i);
- psi_i_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_3,y1i);
- psi_i_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_1,y1r);
- psi_r_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_3,y1r);
- psi_r_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_1,y1r);
- psi_r_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_3,y1r);
- psi_r_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_1_1);
- psi_r_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_1_3);
- psi_r_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_1_1);
- psi_i_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_3_1);
- psi_i_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_3_1);
- psi_r_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_3_3);
- psi_r_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_1_3);
- psi_i_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_3_3);
- psi_i_m3_m3 = _mm_abs_epi16(xmm2);
-
- // Rearrange desired MF output
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- // Rearrange desired channel magnitudes
- xmm2 = ch_mag_128i[i]; // = [|h|^2(1),|h|^2(1),|h|^2(2),|h|^2(2)]*(2/sqrt(10))
- xmm3 = ch_mag_128i[i+1]; // = [|h|^2(3),|h|^2(3),|h|^2(4),|h|^2(4)]*(2/sqrt(10))
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
-
- ch_mag_des = _mm_unpacklo_epi64(xmm2,xmm3); // = [|h|^2(1),|h|^2(2),|h|^2(3),|h|^2(4)]*(2/sqrt(10))
-
- // Scale MF output of desired signal
- y0r_over_sqrt10 = _mm_mulhi_epi16(y0r,ONE_OVER_SQRT_10);
- y0i_over_sqrt10 = _mm_mulhi_epi16(y0i,ONE_OVER_SQRT_10);
- y0r_three_over_sqrt10 = _mm_mulhi_epi16(y0r,THREE_OVER_SQRT_10);
- y0i_three_over_sqrt10 = _mm_mulhi_epi16(y0i,THREE_OVER_SQRT_10);
- y0r_three_over_sqrt10 = _mm_slli_epi16(y0r_three_over_sqrt10,1);
- y0i_three_over_sqrt10 = _mm_slli_epi16(y0i_three_over_sqrt10,1);
-
- // Compute necessary combination of required terms
- y0_p_1_1 = _mm_adds_epi16(y0r_over_sqrt10,y0i_over_sqrt10);
- y0_m_1_1 = _mm_subs_epi16(y0r_over_sqrt10,y0i_over_sqrt10);
-
- y0_p_1_3 = _mm_adds_epi16(y0r_over_sqrt10,y0i_three_over_sqrt10);
- y0_m_1_3 = _mm_subs_epi16(y0r_over_sqrt10,y0i_three_over_sqrt10);
-
- y0_p_3_1 = _mm_adds_epi16(y0r_three_over_sqrt10,y0i_over_sqrt10);
- y0_m_3_1 = _mm_subs_epi16(y0r_three_over_sqrt10,y0i_over_sqrt10);
-
- y0_p_3_3 = _mm_adds_epi16(y0r_three_over_sqrt10,y0i_three_over_sqrt10);
- y0_m_3_3 = _mm_subs_epi16(y0r_three_over_sqrt10,y0i_three_over_sqrt10);
-
- // Add psi
- psi_a_p1_p1 = _mm_adds_epi16(psi_r_p1_p1 ,psi_i_p1_p1);
- psi_a_p1_p3 = _mm_adds_epi16(psi_r_p1_p3 ,psi_i_p1_p3);
- psi_a_p3_p1 = _mm_adds_epi16(psi_r_p3_p1 ,psi_i_p3_p1);
- psi_a_p3_p3 = _mm_adds_epi16(psi_r_p3_p3 ,psi_i_p3_p3);
- psi_a_p1_m1 = _mm_adds_epi16(psi_r_p1_m1 ,psi_i_p1_m1);
- psi_a_p1_m3 = _mm_adds_epi16(psi_r_p1_m3 ,psi_i_p1_m3);
- psi_a_p3_m1 = _mm_adds_epi16(psi_r_p3_m1 ,psi_i_p3_m1);
- psi_a_p3_m3 = _mm_adds_epi16(psi_r_p3_m3 ,psi_i_p3_m3);
- psi_a_m1_p1 = _mm_adds_epi16(psi_r_m1_p1 ,psi_i_m1_p1);
- psi_a_m1_p3 = _mm_adds_epi16(psi_r_m1_p3 ,psi_i_m1_p3);
- psi_a_m3_p1 = _mm_adds_epi16(psi_r_m3_p1 ,psi_i_m3_p1);
- psi_a_m3_p3 = _mm_adds_epi16(psi_r_m3_p3 ,psi_i_m3_p3);
- psi_a_m1_m1 = _mm_adds_epi16(psi_r_m1_m1 ,psi_i_m1_m1);
- psi_a_m1_m3 = _mm_adds_epi16(psi_r_m1_m3 ,psi_i_m1_m3);
- psi_a_m3_m1 = _mm_adds_epi16(psi_r_m3_m1 ,psi_i_m3_m1);
- psi_a_m3_m3 = _mm_adds_epi16(psi_r_m3_m3 ,psi_i_m3_m3);
-
- // scale by sqrt(2)
- psi_a_p1_p1 = _mm_mulhi_epi16(psi_a_p1_p1,ONE_OVER_SQRT_2);
- psi_a_p1_p1 = _mm_slli_epi16(psi_a_p1_p1,1);
- psi_a_p1_p3 = _mm_mulhi_epi16(psi_a_p1_p3,ONE_OVER_SQRT_2);
- psi_a_p1_p3 = _mm_slli_epi16(psi_a_p1_p3,1);
- psi_a_p3_p1 = _mm_mulhi_epi16(psi_a_p3_p1,ONE_OVER_SQRT_2);
- psi_a_p3_p1 = _mm_slli_epi16(psi_a_p3_p1,1);
- psi_a_p3_p3 = _mm_mulhi_epi16(psi_a_p3_p3,ONE_OVER_SQRT_2);
- psi_a_p3_p3 = _mm_slli_epi16(psi_a_p3_p3,1);
-
- psi_a_p1_m1 = _mm_mulhi_epi16(psi_a_p1_m1,ONE_OVER_SQRT_2);
- psi_a_p1_m1 = _mm_slli_epi16(psi_a_p1_m1,1);
- psi_a_p1_m3 = _mm_mulhi_epi16(psi_a_p1_m3,ONE_OVER_SQRT_2);
- psi_a_p1_m3 = _mm_slli_epi16(psi_a_p1_m3,1);
- psi_a_p3_m1 = _mm_mulhi_epi16(psi_a_p3_m1,ONE_OVER_SQRT_2);
- psi_a_p3_m1 = _mm_slli_epi16(psi_a_p3_m1,1);
- psi_a_p3_m3 = _mm_mulhi_epi16(psi_a_p3_m3,ONE_OVER_SQRT_2);
- psi_a_p3_m3 = _mm_slli_epi16(psi_a_p3_m3,1);
-
- psi_a_m1_p1 = _mm_mulhi_epi16(psi_a_m1_p1,ONE_OVER_SQRT_2);
- psi_a_m1_p1 = _mm_slli_epi16(psi_a_m1_p1,1);
- psi_a_m1_p3 = _mm_mulhi_epi16(psi_a_m1_p3,ONE_OVER_SQRT_2);
- psi_a_m1_p3 = _mm_slli_epi16(psi_a_m1_p3,1);
- psi_a_m3_p1 = _mm_mulhi_epi16(psi_a_m3_p1,ONE_OVER_SQRT_2);
- psi_a_m3_p1 = _mm_slli_epi16(psi_a_m3_p1,1);
- psi_a_m3_p3 = _mm_mulhi_epi16(psi_a_m3_p3,ONE_OVER_SQRT_2);
- psi_a_m3_p3 = _mm_slli_epi16(psi_a_m3_p3,1);
-
- psi_a_m1_m1 = _mm_mulhi_epi16(psi_a_m1_m1,ONE_OVER_SQRT_2);
- psi_a_m1_m1 = _mm_slli_epi16(psi_a_m1_m1,1);
- psi_a_m1_m3 = _mm_mulhi_epi16(psi_a_m1_m3,ONE_OVER_SQRT_2);
- psi_a_m1_m3 = _mm_slli_epi16(psi_a_m1_m3,1);
- psi_a_m3_m1 = _mm_mulhi_epi16(psi_a_m3_m1,ONE_OVER_SQRT_2);
- psi_a_m3_m1 = _mm_slli_epi16(psi_a_m3_m1,1);
- psi_a_m3_m3 = _mm_mulhi_epi16(psi_a_m3_m3,ONE_OVER_SQRT_2);
- psi_a_m3_m3 = _mm_slli_epi16(psi_a_m3_m3,1);
-
- // Computing different multiples of channel norms
- ch_mag_over_10=_mm_mulhi_epi16(ch_mag_des, ONE_OVER_TWO_SQRT_10);
- ch_mag_over_2=_mm_mulhi_epi16(ch_mag_des, SQRT_10_OVER_FOUR);
- ch_mag_over_2=_mm_slli_epi16(ch_mag_over_2, 1);
- ch_mag_9_over_10=_mm_mulhi_epi16(ch_mag_des, NINE_OVER_TWO_SQRT_10);
- ch_mag_9_over_10=_mm_slli_epi16(ch_mag_9_over_10, 2);
-
- // Computing Metrics
- xmm1 = _mm_adds_epi16(psi_a_p1_p1, y0_p_1_1);
- bit_met_p1_p1= _mm_subs_epi16(xmm1, ch_mag_over_10);
-
- xmm1 = _mm_adds_epi16(psi_a_p1_p3, y0_p_1_3);
- bit_met_p1_p3= _mm_subs_epi16(xmm1, ch_mag_over_2);
-
- xmm1 = _mm_adds_epi16(psi_a_p1_m1, y0_m_1_1);
- bit_met_p1_m1= _mm_subs_epi16(xmm1, ch_mag_over_10);
-
- xmm1 = _mm_adds_epi16(psi_a_p1_m3, y0_m_1_3);
- bit_met_p1_m3= _mm_subs_epi16(xmm1, ch_mag_over_2);
-
- xmm1 = _mm_adds_epi16(psi_a_p3_p1, y0_p_3_1);
- bit_met_p3_p1= _mm_subs_epi16(xmm1, ch_mag_over_2);
-
- xmm1 = _mm_adds_epi16(psi_a_p3_p3, y0_p_3_3);
- bit_met_p3_p3= _mm_subs_epi16(xmm1, ch_mag_9_over_10);
-
- xmm1 = _mm_adds_epi16(psi_a_p3_m1, y0_m_3_1);
- bit_met_p3_m1= _mm_subs_epi16(xmm1, ch_mag_over_2);
-
- xmm1 = _mm_adds_epi16(psi_a_p3_m3, y0_m_3_3);
- bit_met_p3_m3= _mm_subs_epi16(xmm1, ch_mag_9_over_10);
-
- xmm1 = _mm_subs_epi16(psi_a_m1_p1, y0_m_1_1);
- bit_met_m1_p1= _mm_subs_epi16(xmm1, ch_mag_over_10);
-
- xmm1 = _mm_subs_epi16(psi_a_m1_p3, y0_m_1_3);
- bit_met_m1_p3= _mm_subs_epi16(xmm1, ch_mag_over_2);
-
- xmm1 = _mm_subs_epi16(psi_a_m1_m1, y0_p_1_1);
- bit_met_m1_m1= _mm_subs_epi16(xmm1, ch_mag_over_10);
-
- xmm1 = _mm_subs_epi16(psi_a_m1_m3, y0_p_1_3);
- bit_met_m1_m3= _mm_subs_epi16(xmm1, ch_mag_over_2);
-
- xmm1 = _mm_subs_epi16(psi_a_m3_p1, y0_m_3_1);
- bit_met_m3_p1= _mm_subs_epi16(xmm1, ch_mag_over_2);
-
- xmm1 = _mm_subs_epi16(psi_a_m3_p3, y0_m_3_3);
- bit_met_m3_p3= _mm_subs_epi16(xmm1, ch_mag_9_over_10);
-
- xmm1 = _mm_subs_epi16(psi_a_m3_m1, y0_p_3_1);
- bit_met_m3_m1= _mm_subs_epi16(xmm1, ch_mag_over_2);
-
- xmm1 = _mm_subs_epi16(psi_a_m3_m3, y0_p_3_3);
- bit_met_m3_m3= _mm_subs_epi16(xmm1, ch_mag_9_over_10);
-
- // LLR of the first bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_m1_p1,bit_met_m1_p3);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m1_m3);
- xmm2 = _mm_max_epi16(bit_met_m3_p1,bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_m1,bit_met_m3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_re0= _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_p1,bit_met_p1_p3);
- xmm1 = _mm_max_epi16(bit_met_p1_m1,bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_p3_p1,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_m1,bit_met_p3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of first bit [L1(1), L1(2), L1(3), L1(4), L1(5), L1(6), L1(7), L1(8)]
- y0r = _mm_subs_epi16(logmax_den_re0,logmax_num_re0);
-
- // LLR of the second bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_p1_m1,bit_met_p3_m1);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_m3,bit_met_p3_m3);
- xmm3 = _mm_max_epi16(bit_met_m1_m3,bit_met_m3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_re1 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_p1,bit_met_p3_p1);
- xmm1 = _mm_max_epi16(bit_met_m1_p1,bit_met_m3_p1);
- xmm2 = _mm_max_epi16(bit_met_p1_p3,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p3,bit_met_m3_p3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_re1 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of second bit [L2(1), L2(2), L2(3), L2(4)]
- y1r = _mm_subs_epi16(logmax_den_re1,logmax_num_re1);
-
- // LLR of the third bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_m3_p1,bit_met_m3_p3);
- xmm1 = _mm_max_epi16(bit_met_m3_m1,bit_met_m3_m3);
- xmm2 = _mm_max_epi16(bit_met_p3_p1,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_m1,bit_met_p3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_im0 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_m1_p1,bit_met_m1_p3);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m1_m3);
- xmm2 = _mm_max_epi16(bit_met_p1_p1,bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_m1,bit_met_p1_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_im0 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of third bit [L3(1), L3(2), L3(3), L3(4)]
- y0i = _mm_subs_epi16(logmax_den_im0,logmax_num_im0);
-
- // LLR of the fourth bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_p1_m3,bit_met_p3_m3);
- xmm1 = _mm_max_epi16(bit_met_m1_m3,bit_met_m3_m3);
- xmm2 = _mm_max_epi16(bit_met_p1_p3,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p3,bit_met_m3_p3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_im1 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_m1,bit_met_p3_m1);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1,bit_met_p3_p1);
- xmm3 = _mm_max_epi16(bit_met_m1_p1,bit_met_m3_p1);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_im1 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of fourth bit [L4(1), L4(2), L4(3), L4(4)]
- y1i = _mm_subs_epi16(logmax_den_im1,logmax_num_im1);
-
- // Pack LLRs in output
- // [L1(1), L2(1), L1(2), L2(2), L1(3), L2(3), L1(4), L2(4)]
- xmm0 = _mm_unpacklo_epi16(y0r,y1r);
- // [L1(5), L2(5), L1(6), L2(6), L1(7), L2(7), L1(8), L2(8)]
- xmm1 = _mm_unpackhi_epi16(y0r,y1r);
- // [L3(1), L4(1), L3(2), L4(2), L3(3), L4(3), L3(4), L4(4)]
- xmm2 = _mm_unpacklo_epi16(y0i,y1i);
- // [L3(5), L4(5), L3(6), L4(6), L3(7), L4(7), L3(8), L4(8)]
- xmm3 = _mm_unpackhi_epi16(y0i,y1i);
-
- stream0_128i_out[2*i+0] = _mm_unpacklo_epi32(xmm0,xmm2); // 8LLRs, 2REs
- stream0_128i_out[2*i+1] = _mm_unpackhi_epi32(xmm0,xmm2);
- stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3);
- stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3);
-
-#elif defined(__arm__)
-
-#endif
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-
-}
-
-int dlsch_16qam_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int32_t **rxdataF_comp_i,
- int32_t **dl_ch_mag, //|h_0|^2*(2/sqrt{10})
- int32_t **rho_i,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- int16_t **llr16p)
-{
-
- int16_t *rxF = (int16_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rxF_i = (int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag = (int16_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho = (int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- // first symbol has different structure due to more pilots
- if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }
-
- AssertFatal(llr16!=NULL,"dlsch_16qam_qpsk_llr: llr is null, symbol %d\n",symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- // printf("symbol %d: qam16_llr, len %d (llr16 %p)\n",symbol,len,llr16);
-
- qam16_qpsk((short *)rxF,
- (short *)rxF_i,
- (short *)ch_mag,
- (short *)llr16,
- (short *)rho,
- len);
-
- llr16 += (len<<2);
- *llr16p = (short *)llr16;
-
- return(0);
-}
-
-void qam16_qam16(short *stream0_in,
- short *stream1_in,
- short *ch_mag,
- short *ch_mag_i,
- short *stream0_out,
- short *rho01,
- int length
- )
-{
-
- /*
- Author: Sebastian Wagner
- Date: 2012-06-04
-
- Input:
- stream0_in: MF filter for 1st stream, i.e., y0=h0'*y
- stream!_in: MF filter for 2nd stream, i.e., y1=h1'*y
- ch_mag: 2*h0/sqrt(00), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- ch_mag_i: 2*h1/sqrt(00), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- rho01: Channel cross correlation, i.e., h1'*h0
-
- Output:
- stream0_out: output LLRs for 1st stream
- */
-#if defined(__x86_64__) || defined(__i386__)
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *stream0_128i_out = (__m128i *)stream0_out;
- __m128i *ch_mag_128i = (__m128i *)ch_mag;
- __m128i *ch_mag_128i_i = (__m128i *)ch_mag_i;
-
-
-
- __m128i ONE_OVER_SQRT_10 = _mm_set1_epi16(20724); // round(1/sqrt(10)*2^16)
- __m128i ONE_OVER_SQRT_10_Q15 = _mm_set1_epi16(10362); // round(1/sqrt(10)*2^15)
- __m128i THREE_OVER_SQRT_10 = _mm_set1_epi16(31086); // round(3/sqrt(10)*2^15)
- __m128i SQRT_10_OVER_FOUR = _mm_set1_epi16(25905); // round(sqrt(10)/4*2^15)
- __m128i ONE_OVER_TWO_SQRT_10 = _mm_set1_epi16(10362); // round(1/2/sqrt(10)*2^16)
- __m128i NINE_OVER_TWO_SQRT_10 = _mm_set1_epi16(23315); // round(9/2/sqrt(10)*2^14)
- __m128i ch_mag_des,ch_mag_int;
- __m128i y0r_over_sqrt10;
- __m128i y0i_over_sqrt10;
- __m128i y0r_three_over_sqrt10;
- __m128i y0i_three_over_sqrt10;
- __m128i ch_mag_over_10;
- __m128i ch_mag_over_2;
- __m128i ch_mag_9_over_10;
-#elif defined(__arm__)
-
-#endif
-
- int i;
-
- for (i=0; i>2; i+=2) {
- // In one iteration, we deal with 8 REs
-
-#if defined(__x86_64__) || defined(__i386__)
- // Get rho
- xmm0 = rho01_128i[i];
- xmm1 = rho01_128i[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // Compute the different rhos
- rho_rpi_1_1 = _mm_mulhi_epi16(rho_rpi,ONE_OVER_SQRT_10);
- rho_rmi_1_1 = _mm_mulhi_epi16(rho_rmi,ONE_OVER_SQRT_10);
- rho_rpi_3_3 = _mm_mulhi_epi16(rho_rpi,THREE_OVER_SQRT_10);
- rho_rmi_3_3 = _mm_mulhi_epi16(rho_rmi,THREE_OVER_SQRT_10);
- rho_rpi_3_3 = _mm_slli_epi16(rho_rpi_3_3,1);
- rho_rmi_3_3 = _mm_slli_epi16(rho_rmi_3_3,1);
-
- xmm4 = _mm_mulhi_epi16(xmm2,ONE_OVER_SQRT_10); // Re(rho)
- xmm5 = _mm_mulhi_epi16(xmm3,THREE_OVER_SQRT_10); // Im(rho)
- xmm5 = _mm_slli_epi16(xmm5,1);
-
- rho_rpi_1_3 = _mm_adds_epi16(xmm4,xmm5);
- rho_rmi_1_3 = _mm_subs_epi16(xmm4,xmm5);
-
- xmm6 = _mm_mulhi_epi16(xmm2,THREE_OVER_SQRT_10); // Re(rho)
- xmm7 = _mm_mulhi_epi16(xmm3,ONE_OVER_SQRT_10); // Im(rho)
- xmm6 = _mm_slli_epi16(xmm6,1);
-
- rho_rpi_3_1 = _mm_adds_epi16(xmm6,xmm7);
- rho_rmi_3_1 = _mm_subs_epi16(xmm6,xmm7);
-
- // Rearrange interfering MF output
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- xmm0 = _mm_setzero_si128(); // ZERO
- xmm2 = _mm_subs_epi16(rho_rpi_1_1,y1r); // = [Re(rho)+ Im(rho)]/sqrt(10) - y1r
- psi_r_p1_p1 = _mm_abs_epi16(xmm2); // = |[Re(rho)+ Im(rho)]/sqrt(10) - y1r|
-
- xmm2= _mm_subs_epi16(rho_rmi_1_1,y1r);
- psi_r_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_1,y1i);
- psi_i_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_3,y1r);
- psi_r_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_3,y1r);
- psi_r_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_1,y1i);
- psi_i_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_1,y1r);
- psi_r_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_1,y1r);
- psi_r_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_3,y1i);
- psi_i_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_3,y1r);
- psi_r_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_3,y1r);
- psi_r_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_3,y1i);
- psi_i_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_1,y1i);
- psi_i_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_1,y1i);
- psi_i_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_3,y1i);
- psi_i_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_3,y1i);
- psi_i_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_1,y1i);
- psi_i_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_1,y1i);
- psi_i_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_3,y1i);
- psi_i_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_3,y1i);
- psi_i_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_1,y1r);
- psi_r_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_3,y1r);
- psi_r_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_1,y1r);
- psi_r_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_3,y1r);
- psi_r_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_1_1);
- psi_r_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_1_3);
- psi_r_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_1_1);
- psi_i_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_3_1);
- psi_i_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_3_1);
- psi_r_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_3_3);
- psi_r_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_1_3);
- psi_i_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_3_3);
- psi_i_m3_m3 = _mm_abs_epi16(xmm2);
-
- // Rearrange desired MF output
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- // Rearrange desired channel magnitudes
- xmm2 = ch_mag_128i[i]; // = [|h|^2(1),|h|^2(1),|h|^2(2),|h|^2(2)]*(2/sqrt(10))
- xmm3 = ch_mag_128i[i+1]; // = [|h|^2(3),|h|^2(3),|h|^2(4),|h|^2(4)]*(2/sqrt(10))
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
-
- ch_mag_des = _mm_unpacklo_epi64(xmm2,xmm3); // = [|h|^2(1),|h|^2(2),|h|^2(3),|h|^2(4)]*(2/sqrt(10))
-
- // Rearrange interfering channel magnitudes
- xmm2 = ch_mag_128i_i[i];
- xmm3 = ch_mag_128i_i[i+1];
-
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
-
- ch_mag_int = _mm_unpacklo_epi64(xmm2,xmm3);
-
- // Scale MF output of desired signal
- y0r_over_sqrt10 = _mm_mulhi_epi16(y0r,ONE_OVER_SQRT_10);
- y0i_over_sqrt10 = _mm_mulhi_epi16(y0i,ONE_OVER_SQRT_10);
- y0r_three_over_sqrt10 = _mm_mulhi_epi16(y0r,THREE_OVER_SQRT_10);
- y0i_three_over_sqrt10 = _mm_mulhi_epi16(y0i,THREE_OVER_SQRT_10);
- y0r_three_over_sqrt10 = _mm_slli_epi16(y0r_three_over_sqrt10,1);
- y0i_three_over_sqrt10 = _mm_slli_epi16(y0i_three_over_sqrt10,1);
-
- // Compute necessary combination of required terms
- y0_p_1_1 = _mm_adds_epi16(y0r_over_sqrt10,y0i_over_sqrt10);
- y0_m_1_1 = _mm_subs_epi16(y0r_over_sqrt10,y0i_over_sqrt10);
-
- y0_p_1_3 = _mm_adds_epi16(y0r_over_sqrt10,y0i_three_over_sqrt10);
- y0_m_1_3 = _mm_subs_epi16(y0r_over_sqrt10,y0i_three_over_sqrt10);
-
- y0_p_3_1 = _mm_adds_epi16(y0r_three_over_sqrt10,y0i_over_sqrt10);
- y0_m_3_1 = _mm_subs_epi16(y0r_three_over_sqrt10,y0i_over_sqrt10);
-
- y0_p_3_3 = _mm_adds_epi16(y0r_three_over_sqrt10,y0i_three_over_sqrt10);
- y0_m_3_3 = _mm_subs_epi16(y0r_three_over_sqrt10,y0i_three_over_sqrt10);
-
- // Compute optimal interfering symbol magnitude
- interference_abs_epi16(psi_r_p1_p1 ,ch_mag_int,a_r_p1_p1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_p1 ,ch_mag_int,a_i_p1_p1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_p3 ,ch_mag_int,a_r_p1_p3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_p3 ,ch_mag_int,a_i_p1_p3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_m1 ,ch_mag_int,a_r_p1_m1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_m1 ,ch_mag_int,a_i_p1_m1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_m3 ,ch_mag_int,a_r_p1_m3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_m3 ,ch_mag_int,a_i_p1_m3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_p1 ,ch_mag_int,a_r_p3_p1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_p1 ,ch_mag_int,a_i_p3_p1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_p3 ,ch_mag_int,a_r_p3_p3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_p3 ,ch_mag_int,a_i_p3_p3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_m1 ,ch_mag_int,a_r_p3_m1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_m1 ,ch_mag_int,a_i_p3_m1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_m3 ,ch_mag_int,a_r_p3_m3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_m3 ,ch_mag_int,a_i_p3_m3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_p1 ,ch_mag_int,a_r_m1_p1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_p1 ,ch_mag_int,a_i_m1_p1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_p3 ,ch_mag_int,a_r_m1_p3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_p3 ,ch_mag_int,a_i_m1_p3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_m1 ,ch_mag_int,a_r_m1_m1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_m1 ,ch_mag_int,a_i_m1_m1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_m3 ,ch_mag_int,a_r_m1_m3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_m3 ,ch_mag_int,a_i_m1_m3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_p1 ,ch_mag_int,a_r_m3_p1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_p1 ,ch_mag_int,a_i_m3_p1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_p3 ,ch_mag_int,a_r_m3_p3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_p3 ,ch_mag_int,a_i_m3_p3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_m1 ,ch_mag_int,a_r_m3_m1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_m1 ,ch_mag_int,a_i_m3_m1,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_m3 ,ch_mag_int,a_r_m3_m3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_m3 ,ch_mag_int,a_i_m3_m3,ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
-
- // Calculation of groups of two terms in the bit metric involving product of psi and interference magnitude
- prodsum_psi_a_epi16(psi_r_p1_p1,a_r_p1_p1,psi_i_p1_p1,a_i_p1_p1,psi_a_p1_p1);
- prodsum_psi_a_epi16(psi_r_p1_p3,a_r_p1_p3,psi_i_p1_p3,a_i_p1_p3,psi_a_p1_p3);
- prodsum_psi_a_epi16(psi_r_p3_p1,a_r_p3_p1,psi_i_p3_p1,a_i_p3_p1,psi_a_p3_p1);
- prodsum_psi_a_epi16(psi_r_p3_p3,a_r_p3_p3,psi_i_p3_p3,a_i_p3_p3,psi_a_p3_p3);
- prodsum_psi_a_epi16(psi_r_p1_m1,a_r_p1_m1,psi_i_p1_m1,a_i_p1_m1,psi_a_p1_m1);
- prodsum_psi_a_epi16(psi_r_p1_m3,a_r_p1_m3,psi_i_p1_m3,a_i_p1_m3,psi_a_p1_m3);
- prodsum_psi_a_epi16(psi_r_p3_m1,a_r_p3_m1,psi_i_p3_m1,a_i_p3_m1,psi_a_p3_m1);
- prodsum_psi_a_epi16(psi_r_p3_m3,a_r_p3_m3,psi_i_p3_m3,a_i_p3_m3,psi_a_p3_m3);
- prodsum_psi_a_epi16(psi_r_m1_p1,a_r_m1_p1,psi_i_m1_p1,a_i_m1_p1,psi_a_m1_p1);
- prodsum_psi_a_epi16(psi_r_m1_p3,a_r_m1_p3,psi_i_m1_p3,a_i_m1_p3,psi_a_m1_p3);
- prodsum_psi_a_epi16(psi_r_m3_p1,a_r_m3_p1,psi_i_m3_p1,a_i_m3_p1,psi_a_m3_p1);
- prodsum_psi_a_epi16(psi_r_m3_p3,a_r_m3_p3,psi_i_m3_p3,a_i_m3_p3,psi_a_m3_p3);
- prodsum_psi_a_epi16(psi_r_m1_m1,a_r_m1_m1,psi_i_m1_m1,a_i_m1_m1,psi_a_m1_m1);
- prodsum_psi_a_epi16(psi_r_m1_m3,a_r_m1_m3,psi_i_m1_m3,a_i_m1_m3,psi_a_m1_m3);
- prodsum_psi_a_epi16(psi_r_m3_m1,a_r_m3_m1,psi_i_m3_m1,a_i_m3_m1,psi_a_m3_m1);
- prodsum_psi_a_epi16(psi_r_m3_m3,a_r_m3_m3,psi_i_m3_m3,a_i_m3_m3,psi_a_m3_m3);
-
-
- // squared interference magnitude times int. ch. power
- square_a_epi16(a_r_p1_p1,a_i_p1_p1,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_p1_p1);
- square_a_epi16(a_r_p1_p3,a_i_p1_p3,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_p1_p3);
- square_a_epi16(a_r_p3_p1,a_i_p3_p1,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_p3_p1);
- square_a_epi16(a_r_p3_p3,a_i_p3_p3,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_p3_p3);
- square_a_epi16(a_r_p1_m1,a_i_p1_m1,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_p1_m1);
- square_a_epi16(a_r_p1_m3,a_i_p1_m3,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_p1_m3);
- square_a_epi16(a_r_p3_m1,a_i_p3_m1,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_p3_m1);
- square_a_epi16(a_r_p3_m3,a_i_p3_m3,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_p3_m3);
- square_a_epi16(a_r_m1_p1,a_i_m1_p1,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_m1_p1);
- square_a_epi16(a_r_m1_p3,a_i_m1_p3,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_m1_p3);
- square_a_epi16(a_r_m3_p1,a_i_m3_p1,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_m3_p1);
- square_a_epi16(a_r_m3_p3,a_i_m3_p3,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_m3_p3);
- square_a_epi16(a_r_m1_m1,a_i_m1_m1,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_m1_m1);
- square_a_epi16(a_r_m1_m3,a_i_m1_m3,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_m1_m3);
- square_a_epi16(a_r_m3_m1,a_i_m3_m1,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_m3_m1);
- square_a_epi16(a_r_m3_m3,a_i_m3_m3,ch_mag_int,SQRT_10_OVER_FOUR,a_sq_m3_m3);
-
- // Computing different multiples of channel norms
- ch_mag_over_10=_mm_mulhi_epi16(ch_mag_des, ONE_OVER_TWO_SQRT_10);
- ch_mag_over_2=_mm_mulhi_epi16(ch_mag_des, SQRT_10_OVER_FOUR);
- ch_mag_over_2=_mm_slli_epi16(ch_mag_over_2, 1);
- ch_mag_9_over_10=_mm_mulhi_epi16(ch_mag_des, NINE_OVER_TWO_SQRT_10);
- ch_mag_9_over_10=_mm_slli_epi16(ch_mag_9_over_10, 2);
-
- // Computing Metrics
- xmm0 = _mm_subs_epi16(psi_a_p1_p1,a_sq_p1_p1);
- xmm1 = _mm_adds_epi16(xmm0,y0_p_1_1);
- bit_met_p1_p1= _mm_subs_epi16(xmm1,ch_mag_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_p1_p3,a_sq_p1_p3);
- xmm1 = _mm_adds_epi16(xmm0,y0_p_1_3);
- bit_met_p1_p3= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_p1_m1,a_sq_p1_m1);
- xmm1 = _mm_adds_epi16(xmm0,y0_m_1_1);
- bit_met_p1_m1= _mm_subs_epi16(xmm1,ch_mag_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_p1_m3,a_sq_p1_m3);
- xmm1 = _mm_adds_epi16(xmm0,y0_m_1_3);
- bit_met_p1_m3= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_p3_p1,a_sq_p3_p1);
- xmm1 = _mm_adds_epi16(xmm0,y0_p_3_1);
- bit_met_p3_p1= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_p3_p3,a_sq_p3_p3);
- xmm1 = _mm_adds_epi16(xmm0,y0_p_3_3);
- bit_met_p3_p3= _mm_subs_epi16(xmm1,ch_mag_9_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_p3_m1,a_sq_p3_m1);
- xmm1 = _mm_adds_epi16(xmm0,y0_m_3_1);
- bit_met_p3_m1= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_p3_m3,a_sq_p3_m3);
- xmm1 = _mm_adds_epi16(xmm0,y0_m_3_3);
- bit_met_p3_m3= _mm_subs_epi16(xmm1,ch_mag_9_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_p1,a_sq_m1_p1);
- xmm1 = _mm_subs_epi16(xmm0,y0_m_1_1);
- bit_met_m1_p1= _mm_subs_epi16(xmm1,ch_mag_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_p3,a_sq_m1_p3);
- xmm1 = _mm_subs_epi16(xmm0,y0_m_1_3);
- bit_met_m1_p3= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_m1,a_sq_m1_m1);
- xmm1 = _mm_subs_epi16(xmm0,y0_p_1_1);
- bit_met_m1_m1= _mm_subs_epi16(xmm1,ch_mag_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_m3,a_sq_m1_m3);
- xmm1 = _mm_subs_epi16(xmm0,y0_p_1_3);
- bit_met_m1_m3= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_m3_p1,a_sq_m3_p1);
- xmm1 = _mm_subs_epi16(xmm0,y0_m_3_1);
- bit_met_m3_p1= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_m3_p3,a_sq_m3_p3);
- xmm1 = _mm_subs_epi16(xmm0,y0_m_3_3);
- bit_met_m3_p3= _mm_subs_epi16(xmm1,ch_mag_9_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_m3_m1,a_sq_m3_m1);
- xmm1 = _mm_subs_epi16(xmm0,y0_p_3_1);
- bit_met_m3_m1= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_m3_m3,a_sq_m3_m3);
- xmm1 = _mm_subs_epi16(xmm0,y0_p_3_3);
- bit_met_m3_m3= _mm_subs_epi16(xmm1,ch_mag_9_over_10);
-
- // LLR of the first bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_m1_p1,bit_met_m1_p3);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m1_m3);
- xmm2 = _mm_max_epi16(bit_met_m3_p1,bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_m1,bit_met_m3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_re0= _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_p1,bit_met_p1_p3);
- xmm1 = _mm_max_epi16(bit_met_p1_m1,bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_p3_p1,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_m1,bit_met_p3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of first bit [L1(1), L1(2), L1(3), L1(4), L1(5), L1(6), L1(7), L1(8)]
- y0r = _mm_subs_epi16(logmax_den_re0,logmax_num_re0);
-
- // LLR of the second bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_p1_m1,bit_met_p3_m1);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_m3,bit_met_p3_m3);
- xmm3 = _mm_max_epi16(bit_met_m1_m3,bit_met_m3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_re1 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_p1,bit_met_p3_p1);
- xmm1 = _mm_max_epi16(bit_met_m1_p1,bit_met_m3_p1);
- xmm2 = _mm_max_epi16(bit_met_p1_p3,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p3,bit_met_m3_p3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_re1 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of second bit [L2(1), L2(2), L2(3), L2(4)]
- y1r = _mm_subs_epi16(logmax_den_re1,logmax_num_re1);
-
- // LLR of the third bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_m3_p1,bit_met_m3_p3);
- xmm1 = _mm_max_epi16(bit_met_m3_m1,bit_met_m3_m3);
- xmm2 = _mm_max_epi16(bit_met_p3_p1,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_m1,bit_met_p3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_im0 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_m1_p1,bit_met_m1_p3);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m1_m3);
- xmm2 = _mm_max_epi16(bit_met_p1_p1,bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_m1,bit_met_p1_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_im0 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of third bit [L3(1), L3(2), L3(3), L3(4)]
- y0i = _mm_subs_epi16(logmax_den_im0,logmax_num_im0);
-
- // LLR of the fourth bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_p1_m3,bit_met_p3_m3);
- xmm1 = _mm_max_epi16(bit_met_m1_m3,bit_met_m3_m3);
- xmm2 = _mm_max_epi16(bit_met_p1_p3,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p3,bit_met_m3_p3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_im1 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_m1,bit_met_p3_m1);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1,bit_met_p3_p1);
- xmm3 = _mm_max_epi16(bit_met_m1_p1,bit_met_m3_p1);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_im1 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of fourth bit [L4(1), L4(2), L4(3), L4(4)]
- y1i = _mm_subs_epi16(logmax_den_im1,logmax_num_im1);
-
- // Pack LLRs in output
- // [L1(1), L2(1), L1(2), L2(2), L1(3), L2(3), L1(4), L2(4)]
- xmm0 = _mm_unpacklo_epi16(y0r,y1r);
- // [L1(5), L2(5), L1(6), L2(6), L1(7), L2(7), L1(8), L2(8)]
- xmm1 = _mm_unpackhi_epi16(y0r,y1r);
- // [L3(1), L4(1), L3(2), L4(2), L3(3), L4(3), L3(4), L4(4)]
- xmm2 = _mm_unpacklo_epi16(y0i,y1i);
- // [L3(5), L4(5), L3(6), L4(6), L3(7), L4(7), L3(8), L4(8)]
- xmm3 = _mm_unpackhi_epi16(y0i,y1i);
-
- stream0_128i_out[2*i+0] = _mm_unpacklo_epi32(xmm0,xmm2); // 8LLRs, 2REs
- stream0_128i_out[2*i+1] = _mm_unpackhi_epi32(xmm0,xmm2);
- stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3);
- stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3);
-#elif defined(__arm__)
-
-#endif
-
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-}
-
-int dlsch_16qam_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int32_t **rxdataF_comp_i,
- int32_t **dl_ch_mag, //|h_0|^2*(2/sqrt{10})
- int32_t **dl_ch_mag_i, //|h_1|^2*(2/sqrt{10})
- int32_t **rho_i,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- int16_t **llr16p)
-{
-
- int16_t *rxF = (int16_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rxF_i = (int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag = (int16_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag_i = (int16_t*)&dl_ch_mag_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho = (int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- // first symbol has different structure due to more pilots
- if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }
-
-
- AssertFatal(llr16!=NULL,"dlsch_16qam_16qam_llr: llr is null, symbol %d\n",symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- // printf("symbol %d: qam16_llr, len %d (llr16 %p)\n",symbol,len,llr16);
-
- qam16_qam16((short *)rxF,
- (short *)rxF_i,
- (short *)ch_mag,
- (short *)ch_mag_i,
- (short *)llr16,
- (short *)rho,
- len);
-
- llr16 += (len<<2);
- *llr16p = (short *)llr16;
-
- return(0);
-}
-
-void qam16_qam64(int16_t *stream0_in,
- int16_t *stream1_in,
- int16_t *ch_mag,
- int16_t *ch_mag_i,
- int16_t *stream0_out,
- int16_t *rho01,
- int32_t length
- )
-{
-
- /*
- Author: Sebastian Wagner
- Date: 2012-06-04
-
- Input:
- stream0_in: MF filter for 1st stream, i.e., y0=h0'*y
- stream!_in: MF filter for 2nd stream, i.e., y1=h1'*y
- ch_mag: 2*h0/sqrt(00), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- ch_mag_i: 2*h1/sqrt(00), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- rho01: Channel cross correlation, i.e., h1'*h0
-
- Output:
- stream0_out: output LLRs for 1st stream
- */
-
-#if defined(__x86_64__) || defined(__i386__)
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *stream0_128i_out = (__m128i *)stream0_out;
- __m128i *ch_mag_128i = (__m128i *)ch_mag;
- __m128i *ch_mag_128i_i = (__m128i *)ch_mag_i;
-
-
- __m128i ONE_OVER_SQRT_2 = _mm_set1_epi16(23170); // round(1/sqrt(2)*2^15)
- __m128i ONE_OVER_SQRT_10 = _mm_set1_epi16(20724); // round(1/sqrt(10)*2^16)
- __m128i THREE_OVER_SQRT_10 = _mm_set1_epi16(31086); // round(3/sqrt(10)*2^15)
- __m128i SQRT_10_OVER_FOUR = _mm_set1_epi16(25905); // round(sqrt(10)/4*2^15)
- __m128i ONE_OVER_TWO_SQRT_10 = _mm_set1_epi16(10362); // round(1/2/sqrt(10)*2^16)
- __m128i NINE_OVER_TWO_SQRT_10 = _mm_set1_epi16(23315); // round(9/2/sqrt(10)*2^14)
- __m128i ONE_OVER_SQRT_2_42 = _mm_set1_epi16(3575); // round(1/sqrt(2*42)*2^15)
- __m128i THREE_OVER_SQRT_2_42 = _mm_set1_epi16(10726); // round(3/sqrt(2*42)*2^15)
- __m128i FIVE_OVER_SQRT_2_42 = _mm_set1_epi16(17876); // round(5/sqrt(2*42)*2^15)
- __m128i SEVEN_OVER_SQRT_2_42 = _mm_set1_epi16(25027); // round(7/sqrt(2*42)*2^15)
- __m128i SQRT_42_OVER_FOUR = _mm_set1_epi16(13272); // round(sqrt(42)/4*2^13), Q3.
- __m128i ch_mag_des,ch_mag_int;
- __m128i y0r_over_sqrt10;
- __m128i y0i_over_sqrt10;
- __m128i y0r_three_over_sqrt10;
- __m128i y0i_three_over_sqrt10;
- __m128i ch_mag_over_10;
- __m128i ch_mag_over_2;
- __m128i ch_mag_9_over_10;
- __m128i ch_mag_int_with_sigma2;
- __m128i two_ch_mag_int_with_sigma2;
- __m128i three_ch_mag_int_with_sigma2;
-
-#elif defined(__arm__)
-
-#endif
- int i;
-
- for (i=0; i>2; i+=2) {
- // In one iteration, we deal with 8 REs
-
-#if defined(__x86_64__) || defined(__i386__)
- // Get rho
- xmm0 = rho01_128i[i];
- xmm1 = rho01_128i[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // Compute the different rhos
- rho_rpi_1_1 = _mm_mulhi_epi16(rho_rpi,ONE_OVER_SQRT_10);
- rho_rmi_1_1 = _mm_mulhi_epi16(rho_rmi,ONE_OVER_SQRT_10);
- rho_rpi_3_3 = _mm_mulhi_epi16(rho_rpi,THREE_OVER_SQRT_10);
- rho_rmi_3_3 = _mm_mulhi_epi16(rho_rmi,THREE_OVER_SQRT_10);
- rho_rpi_3_3 = _mm_slli_epi16(rho_rpi_3_3,1);
- rho_rmi_3_3 = _mm_slli_epi16(rho_rmi_3_3,1);
-
- xmm4 = _mm_mulhi_epi16(xmm2,ONE_OVER_SQRT_10); // Re(rho)
- xmm5 = _mm_mulhi_epi16(xmm3,THREE_OVER_SQRT_10); // Im(rho)
- xmm5 = _mm_slli_epi16(xmm5,1);
-
- rho_rpi_1_3 = _mm_adds_epi16(xmm4,xmm5);
- rho_rmi_1_3 = _mm_subs_epi16(xmm4,xmm5);
-
- xmm6 = _mm_mulhi_epi16(xmm2,THREE_OVER_SQRT_10); // Re(rho)
- xmm7 = _mm_mulhi_epi16(xmm3,ONE_OVER_SQRT_10); // Im(rho)
- xmm6 = _mm_slli_epi16(xmm6,1);
-
- rho_rpi_3_1 = _mm_adds_epi16(xmm6,xmm7);
- rho_rmi_3_1 = _mm_subs_epi16(xmm6,xmm7);
-
- // Rearrange interfering MF output
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- xmm0 = _mm_setzero_si128(); // ZERO
- xmm2 = _mm_subs_epi16(rho_rpi_1_1,y1r); // = [Re(rho)+ Im(rho)]/sqrt(10) - y1r
- psi_r_p1_p1 = _mm_abs_epi16(xmm2); // = |[Re(rho)+ Im(rho)]/sqrt(10) - y1r|
-
- xmm2= _mm_subs_epi16(rho_rmi_1_1,y1r);
- psi_r_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_1,y1i);
- psi_i_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_3,y1r);
- psi_r_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_3,y1r);
- psi_r_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_1,y1i);
- psi_i_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_1,y1r);
- psi_r_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_1,y1r);
- psi_r_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_1_3,y1i);
- psi_i_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_3,y1r);
- psi_r_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_3,y1r);
- psi_r_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rmi_3_3,y1i);
- psi_i_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_1,y1i);
- psi_i_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_1,y1i);
- psi_i_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_1_3,y1i);
- psi_i_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_subs_epi16(rho_rpi_3_3,y1i);
- psi_i_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_1,y1i);
- psi_i_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_1,y1i);
- psi_i_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_3,y1i);
- psi_i_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_3,y1i);
- psi_i_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_1,y1r);
- psi_r_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_1_3,y1r);
- psi_r_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_1,y1r);
- psi_r_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(rho_rpi_3_3,y1r);
- psi_r_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_1_1);
- psi_r_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_1_3);
- psi_r_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_1_1);
- psi_i_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_3_1);
- psi_i_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_3_1);
- psi_r_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1r,rho_rmi_3_3);
- psi_r_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_1_3);
- psi_i_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2= _mm_adds_epi16(y1i,rho_rmi_3_3);
- psi_i_m3_m3 = _mm_abs_epi16(xmm2);
-
- // Rearrange desired MF output
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- // Rearrange desired channel magnitudes
- xmm2 = ch_mag_128i[i]; // = [|h|^2(1),|h|^2(1),|h|^2(2),|h|^2(2)]*(2/sqrt(10))
- xmm3 = ch_mag_128i[i+1]; // = [|h|^2(3),|h|^2(3),|h|^2(4),|h|^2(4)]*(2/sqrt(10))
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
-
- ch_mag_des = _mm_unpacklo_epi64(xmm2,xmm3); // = [|h|^2(1),|h|^2(2),|h|^2(3),|h|^2(4)]*(2/sqrt(10))
-
- // Rearrange interfering channel magnitudes
- xmm2 = ch_mag_128i_i[i];
- xmm3 = ch_mag_128i_i[i+1];
-
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
-
- ch_mag_int = _mm_unpacklo_epi64(xmm2,xmm3);
-
- // Scale MF output of desired signal
- y0r_over_sqrt10 = _mm_mulhi_epi16(y0r,ONE_OVER_SQRT_10);
- y0i_over_sqrt10 = _mm_mulhi_epi16(y0i,ONE_OVER_SQRT_10);
- y0r_three_over_sqrt10 = _mm_mulhi_epi16(y0r,THREE_OVER_SQRT_10);
- y0i_three_over_sqrt10 = _mm_mulhi_epi16(y0i,THREE_OVER_SQRT_10);
- y0r_three_over_sqrt10 = _mm_slli_epi16(y0r_three_over_sqrt10,1);
- y0i_three_over_sqrt10 = _mm_slli_epi16(y0i_three_over_sqrt10,1);
-
- // Compute necessary combination of required terms
- y0_p_1_1 = _mm_adds_epi16(y0r_over_sqrt10,y0i_over_sqrt10);
- y0_m_1_1 = _mm_subs_epi16(y0r_over_sqrt10,y0i_over_sqrt10);
-
- y0_p_1_3 = _mm_adds_epi16(y0r_over_sqrt10,y0i_three_over_sqrt10);
- y0_m_1_3 = _mm_subs_epi16(y0r_over_sqrt10,y0i_three_over_sqrt10);
-
- y0_p_3_1 = _mm_adds_epi16(y0r_three_over_sqrt10,y0i_over_sqrt10);
- y0_m_3_1 = _mm_subs_epi16(y0r_three_over_sqrt10,y0i_over_sqrt10);
-
- y0_p_3_3 = _mm_adds_epi16(y0r_three_over_sqrt10,y0i_three_over_sqrt10);
- y0_m_3_3 = _mm_subs_epi16(y0r_three_over_sqrt10,y0i_three_over_sqrt10);
-
- // Compute optimal interfering symbol magnitude
- ch_mag_int_with_sigma2 = _mm_srai_epi16(ch_mag_int, 1); // *2
- two_ch_mag_int_with_sigma2 = ch_mag_int; // *4
- three_ch_mag_int_with_sigma2 = _mm_adds_epi16(ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2); // *6
-
- interference_abs_64qam_epi16(psi_r_p1_p1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_p1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_p1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_p1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_p3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_p3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_p3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_p3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_m1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_m1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_m1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_m1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_m3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_m3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_m3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_m3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_p1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_p1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_p1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_p1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_p3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_p3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_p3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_p3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_m1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_m1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_m1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_m1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_m3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_m3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_m3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_m3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_p1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_p1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_p1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_p1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_p3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_p3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_p3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_p3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_m1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_m1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_m1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_m1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_m3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_m3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_m3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_m3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_p1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_p1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_p1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_p1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_p3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_p3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_p3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_p3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_m1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_m1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_m1 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_m1,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_m3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_m3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_m3 ,ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_m3,ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42,FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
-
- // Calculation of groups of two terms in the bit metric involving product of psi and interference magnitude
- prodsum_psi_a_epi16(psi_r_p1_p1,a_r_p1_p1,psi_i_p1_p1,a_i_p1_p1,psi_a_p1_p1);
- prodsum_psi_a_epi16(psi_r_p1_p3,a_r_p1_p3,psi_i_p1_p3,a_i_p1_p3,psi_a_p1_p3);
- prodsum_psi_a_epi16(psi_r_p3_p1,a_r_p3_p1,psi_i_p3_p1,a_i_p3_p1,psi_a_p3_p1);
- prodsum_psi_a_epi16(psi_r_p3_p3,a_r_p3_p3,psi_i_p3_p3,a_i_p3_p3,psi_a_p3_p3);
- prodsum_psi_a_epi16(psi_r_p1_m1,a_r_p1_m1,psi_i_p1_m1,a_i_p1_m1,psi_a_p1_m1);
- prodsum_psi_a_epi16(psi_r_p1_m3,a_r_p1_m3,psi_i_p1_m3,a_i_p1_m3,psi_a_p1_m3);
- prodsum_psi_a_epi16(psi_r_p3_m1,a_r_p3_m1,psi_i_p3_m1,a_i_p3_m1,psi_a_p3_m1);
- prodsum_psi_a_epi16(psi_r_p3_m3,a_r_p3_m3,psi_i_p3_m3,a_i_p3_m3,psi_a_p3_m3);
- prodsum_psi_a_epi16(psi_r_m1_p1,a_r_m1_p1,psi_i_m1_p1,a_i_m1_p1,psi_a_m1_p1);
- prodsum_psi_a_epi16(psi_r_m1_p3,a_r_m1_p3,psi_i_m1_p3,a_i_m1_p3,psi_a_m1_p3);
- prodsum_psi_a_epi16(psi_r_m3_p1,a_r_m3_p1,psi_i_m3_p1,a_i_m3_p1,psi_a_m3_p1);
- prodsum_psi_a_epi16(psi_r_m3_p3,a_r_m3_p3,psi_i_m3_p3,a_i_m3_p3,psi_a_m3_p3);
- prodsum_psi_a_epi16(psi_r_m1_m1,a_r_m1_m1,psi_i_m1_m1,a_i_m1_m1,psi_a_m1_m1);
- prodsum_psi_a_epi16(psi_r_m1_m3,a_r_m1_m3,psi_i_m1_m3,a_i_m1_m3,psi_a_m1_m3);
- prodsum_psi_a_epi16(psi_r_m3_m1,a_r_m3_m1,psi_i_m3_m1,a_i_m3_m1,psi_a_m3_m1);
- prodsum_psi_a_epi16(psi_r_m3_m3,a_r_m3_m3,psi_i_m3_m3,a_i_m3_m3,psi_a_m3_m3);
-
- // Multiply by sqrt(2)
- psi_a_p1_p1 = _mm_mulhi_epi16(psi_a_p1_p1, ONE_OVER_SQRT_2);
- psi_a_p1_p1 = _mm_slli_epi16(psi_a_p1_p1, 2);
- psi_a_p1_p3 = _mm_mulhi_epi16(psi_a_p1_p3, ONE_OVER_SQRT_2);
- psi_a_p1_p3 = _mm_slli_epi16(psi_a_p1_p3, 2);
- psi_a_p3_p1 = _mm_mulhi_epi16(psi_a_p3_p1, ONE_OVER_SQRT_2);
- psi_a_p3_p1 = _mm_slli_epi16(psi_a_p3_p1, 2);
- psi_a_p3_p3 = _mm_mulhi_epi16(psi_a_p3_p3, ONE_OVER_SQRT_2);
- psi_a_p3_p3 = _mm_slli_epi16(psi_a_p3_p3, 2);
- psi_a_p1_m1 = _mm_mulhi_epi16(psi_a_p1_m1, ONE_OVER_SQRT_2);
- psi_a_p1_m1 = _mm_slli_epi16(psi_a_p1_m1, 2);
- psi_a_p1_m3 = _mm_mulhi_epi16(psi_a_p1_m3, ONE_OVER_SQRT_2);
- psi_a_p1_m3 = _mm_slli_epi16(psi_a_p1_m3, 2);
- psi_a_p3_m1 = _mm_mulhi_epi16(psi_a_p3_m1, ONE_OVER_SQRT_2);
- psi_a_p3_m1 = _mm_slli_epi16(psi_a_p3_m1, 2);
- psi_a_p3_m3 = _mm_mulhi_epi16(psi_a_p3_m3, ONE_OVER_SQRT_2);
- psi_a_p3_m3 = _mm_slli_epi16(psi_a_p3_m3, 2);
- psi_a_m1_p1 = _mm_mulhi_epi16(psi_a_m1_p1, ONE_OVER_SQRT_2);
- psi_a_m1_p1 = _mm_slli_epi16(psi_a_m1_p1, 2);
- psi_a_m1_p3 = _mm_mulhi_epi16(psi_a_m1_p3, ONE_OVER_SQRT_2);
- psi_a_m1_p3 = _mm_slli_epi16(psi_a_m1_p3, 2);
- psi_a_m3_p1 = _mm_mulhi_epi16(psi_a_m3_p1, ONE_OVER_SQRT_2);
- psi_a_m3_p1 = _mm_slli_epi16(psi_a_m3_p1, 2);
- psi_a_m3_p3 = _mm_mulhi_epi16(psi_a_m3_p3, ONE_OVER_SQRT_2);
- psi_a_m3_p3 = _mm_slli_epi16(psi_a_m3_p3, 2);
- psi_a_m1_m1 = _mm_mulhi_epi16(psi_a_m1_m1, ONE_OVER_SQRT_2);
- psi_a_m1_m1 = _mm_slli_epi16(psi_a_m1_m1, 2);
- psi_a_m1_m3 = _mm_mulhi_epi16(psi_a_m1_m3, ONE_OVER_SQRT_2);
- psi_a_m1_m3 = _mm_slli_epi16(psi_a_m1_m3, 2);
- psi_a_m3_m1 = _mm_mulhi_epi16(psi_a_m3_m1, ONE_OVER_SQRT_2);
- psi_a_m3_m1 = _mm_slli_epi16(psi_a_m3_m1, 2);
- psi_a_m3_m3 = _mm_mulhi_epi16(psi_a_m3_m3, ONE_OVER_SQRT_2);
- psi_a_m3_m3 = _mm_slli_epi16(psi_a_m3_m3, 2);
-
- // squared interference magnitude times int. ch. power
- square_a_64qam_epi16(a_r_p1_p1,a_i_p1_p1,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_p1_p1);
- square_a_64qam_epi16(a_r_p1_p3,a_i_p1_p3,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_p1_p3);
- square_a_64qam_epi16(a_r_p3_p1,a_i_p3_p1,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_p3_p1);
- square_a_64qam_epi16(a_r_p3_p3,a_i_p3_p3,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_p3_p3);
- square_a_64qam_epi16(a_r_p1_m1,a_i_p1_m1,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_p1_m1);
- square_a_64qam_epi16(a_r_p1_m3,a_i_p1_m3,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_p1_m3);
- square_a_64qam_epi16(a_r_p3_m1,a_i_p3_m1,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_p3_m1);
- square_a_64qam_epi16(a_r_p3_m3,a_i_p3_m3,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_p3_m3);
- square_a_64qam_epi16(a_r_m1_p1,a_i_m1_p1,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_m1_p1);
- square_a_64qam_epi16(a_r_m1_p3,a_i_m1_p3,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_m1_p3);
- square_a_64qam_epi16(a_r_m3_p1,a_i_m3_p1,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_m3_p1);
- square_a_64qam_epi16(a_r_m3_p3,a_i_m3_p3,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_m3_p3);
- square_a_64qam_epi16(a_r_m1_m1,a_i_m1_m1,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_m1_m1);
- square_a_64qam_epi16(a_r_m1_m3,a_i_m1_m3,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_m1_m3);
- square_a_64qam_epi16(a_r_m3_m1,a_i_m3_m1,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_m3_m1);
- square_a_64qam_epi16(a_r_m3_m3,a_i_m3_m3,ch_mag_int,SQRT_42_OVER_FOUR,a_sq_m3_m3);
-
- // Computing different multiples of channel norms
- ch_mag_over_10=_mm_mulhi_epi16(ch_mag_des, ONE_OVER_TWO_SQRT_10);
- ch_mag_over_2=_mm_mulhi_epi16(ch_mag_des, SQRT_10_OVER_FOUR);
- ch_mag_over_2=_mm_slli_epi16(ch_mag_over_2, 1);
- ch_mag_9_over_10=_mm_mulhi_epi16(ch_mag_des, NINE_OVER_TWO_SQRT_10);
- ch_mag_9_over_10=_mm_slli_epi16(ch_mag_9_over_10, 2);
-
- // Computing Metrics
- xmm0 = _mm_subs_epi16(psi_a_p1_p1,a_sq_p1_p1);
- xmm1 = _mm_adds_epi16(xmm0,y0_p_1_1);
- bit_met_p1_p1= _mm_subs_epi16(xmm1,ch_mag_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_p1_p3,a_sq_p1_p3);
- xmm1 = _mm_adds_epi16(xmm0,y0_p_1_3);
- bit_met_p1_p3= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_p1_m1,a_sq_p1_m1);
- xmm1 = _mm_adds_epi16(xmm0,y0_m_1_1);
- bit_met_p1_m1= _mm_subs_epi16(xmm1,ch_mag_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_p1_m3,a_sq_p1_m3);
- xmm1 = _mm_adds_epi16(xmm0,y0_m_1_3);
- bit_met_p1_m3= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_p3_p1,a_sq_p3_p1);
- xmm1 = _mm_adds_epi16(xmm0,y0_p_3_1);
- bit_met_p3_p1= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_p3_p3,a_sq_p3_p3);
- xmm1 = _mm_adds_epi16(xmm0,y0_p_3_3);
- bit_met_p3_p3= _mm_subs_epi16(xmm1,ch_mag_9_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_p3_m1,a_sq_p3_m1);
- xmm1 = _mm_adds_epi16(xmm0,y0_m_3_1);
- bit_met_p3_m1= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_p3_m3,a_sq_p3_m3);
- xmm1 = _mm_adds_epi16(xmm0,y0_m_3_3);
- bit_met_p3_m3= _mm_subs_epi16(xmm1,ch_mag_9_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_p1,a_sq_m1_p1);
- xmm1 = _mm_subs_epi16(xmm0,y0_m_1_1);
- bit_met_m1_p1= _mm_subs_epi16(xmm1,ch_mag_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_p3,a_sq_m1_p3);
- xmm1 = _mm_subs_epi16(xmm0,y0_m_1_3);
- bit_met_m1_p3= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_m1,a_sq_m1_m1);
- xmm1 = _mm_subs_epi16(xmm0,y0_p_1_1);
- bit_met_m1_m1= _mm_subs_epi16(xmm1,ch_mag_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_m3,a_sq_m1_m3);
- xmm1 = _mm_subs_epi16(xmm0,y0_p_1_3);
- bit_met_m1_m3= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_m3_p1,a_sq_m3_p1);
- xmm1 = _mm_subs_epi16(xmm0,y0_m_3_1);
- bit_met_m3_p1= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_m3_p3,a_sq_m3_p3);
- xmm1 = _mm_subs_epi16(xmm0,y0_m_3_3);
- bit_met_m3_p3= _mm_subs_epi16(xmm1,ch_mag_9_over_10);
-
- xmm0 = _mm_subs_epi16(psi_a_m3_m1,a_sq_m3_m1);
- xmm1 = _mm_subs_epi16(xmm0,y0_p_3_1);
- bit_met_m3_m1= _mm_subs_epi16(xmm1,ch_mag_over_2);
-
- xmm0 = _mm_subs_epi16(psi_a_m3_m3,a_sq_m3_m3);
- xmm1 = _mm_subs_epi16(xmm0,y0_p_3_3);
- bit_met_m3_m3= _mm_subs_epi16(xmm1,ch_mag_9_over_10);
-
- // LLR of the first bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_m1_p1,bit_met_m1_p3);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m1_m3);
- xmm2 = _mm_max_epi16(bit_met_m3_p1,bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_m1,bit_met_m3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_re0= _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_p1,bit_met_p1_p3);
- xmm1 = _mm_max_epi16(bit_met_p1_m1,bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_p3_p1,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_m1,bit_met_p3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of first bit [L1(1), L1(2), L1(3), L1(4), L1(5), L1(6), L1(7), L1(8)]
- y0r = _mm_subs_epi16(logmax_den_re0,logmax_num_re0);
-
- // LLR of the second bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_p1_m1,bit_met_p3_m1);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_m3,bit_met_p3_m3);
- xmm3 = _mm_max_epi16(bit_met_m1_m3,bit_met_m3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_re1 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_p1,bit_met_p3_p1);
- xmm1 = _mm_max_epi16(bit_met_m1_p1,bit_met_m3_p1);
- xmm2 = _mm_max_epi16(bit_met_p1_p3,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p3,bit_met_m3_p3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_re1 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of second bit [L2(1), L2(2), L2(3), L2(4)]
- y1r = _mm_subs_epi16(logmax_den_re1,logmax_num_re1);
-
- // LLR of the third bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_m3_p1,bit_met_m3_p3);
- xmm1 = _mm_max_epi16(bit_met_m3_m1,bit_met_m3_m3);
- xmm2 = _mm_max_epi16(bit_met_p3_p1,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_m1,bit_met_p3_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_im0 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_m1_p1,bit_met_m1_p3);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m1_m3);
- xmm2 = _mm_max_epi16(bit_met_p1_p1,bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_m1,bit_met_p1_m3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_im0 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of third bit [L3(1), L3(2), L3(3), L3(4)]
- y0i = _mm_subs_epi16(logmax_den_im0,logmax_num_im0);
-
- // LLR of the fourth bit
- // Bit = 1
- xmm0 = _mm_max_epi16(bit_met_p1_m3,bit_met_p3_m3);
- xmm1 = _mm_max_epi16(bit_met_m1_m3,bit_met_m3_m3);
- xmm2 = _mm_max_epi16(bit_met_p1_p3,bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p3,bit_met_m3_p3);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_num_im1 = _mm_max_epi16(xmm4,xmm5);
-
- // Bit = 0
- xmm0 = _mm_max_epi16(bit_met_p1_m1,bit_met_p3_m1);
- xmm1 = _mm_max_epi16(bit_met_m1_m1,bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1,bit_met_p3_p1);
- xmm3 = _mm_max_epi16(bit_met_m1_p1,bit_met_m3_p1);
- xmm4 = _mm_max_epi16(xmm0,xmm1);
- xmm5 = _mm_max_epi16(xmm2,xmm3);
- logmax_den_im1 = _mm_max_epi16(xmm4,xmm5);
-
- // LLR of fourth bit [L4(1), L4(2), L4(3), L4(4)]
- y1i = _mm_subs_epi16(logmax_den_im1,logmax_num_im1);
-
- // Pack LLRs in output
- // [L1(1), L2(1), L1(2), L2(2), L1(3), L2(3), L1(4), L2(4)]
- xmm0 = _mm_unpacklo_epi16(y0r,y1r);
- // [L1(5), L2(5), L1(6), L2(6), L1(7), L2(7), L1(8), L2(8)]
- xmm1 = _mm_unpackhi_epi16(y0r,y1r);
- // [L3(1), L4(1), L3(2), L4(2), L3(3), L4(3), L3(4), L4(4)]
- xmm2 = _mm_unpacklo_epi16(y0i,y1i);
- // [L3(5), L4(5), L3(6), L4(6), L3(7), L4(7), L3(8), L4(8)]
- xmm3 = _mm_unpackhi_epi16(y0i,y1i);
-
- stream0_128i_out[2*i+0] = _mm_unpacklo_epi32(xmm0,xmm2); // 8LLRs, 2REs
- stream0_128i_out[2*i+1] = _mm_unpackhi_epi32(xmm0,xmm2);
- stream0_128i_out[2*i+2] = _mm_unpacklo_epi32(xmm1,xmm3);
- stream0_128i_out[2*i+3] = _mm_unpackhi_epi32(xmm1,xmm3);
-#elif defined(__arm__)
-
-#endif
-
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-}
-
-int dlsch_16qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int32_t **rxdataF_comp_i,
- int32_t **dl_ch_mag, //|h_0|^2*(2/sqrt{10})
- int32_t **dl_ch_mag_i, //|h_1|^2*(2/sqrt{10})
- int32_t **rho_i,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- int16_t **llr16p)
-{
-
- int16_t *rxF = (int16_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rxF_i = (int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag = (int16_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag_i = (int16_t*)&dl_ch_mag_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho = (int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- // first symbol has different structure due to more pilots
- if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }
-
-
- AssertFatal(llr16!=NULL,"dlsch_16qam_64qam_llr:llr is null, symbol %d\n",symbol);
-
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- // printf("symbol %d: qam16_llr, len %d (llr16 %p)\n",symbol,len,llr16);
-
- qam16_qam64((short *)rxF,
- (short *)rxF_i,
- (short *)ch_mag,
- (short *)ch_mag_i,
- (short *)llr16,
- (short *)rho,
- len);
-
- llr16 += (len<<2);
- *llr16p = (short *)llr16;
-
- return(0);
-}
-
-//----------------------------------------------------------------------------------------------
-// 64-QAM
-//----------------------------------------------------------------------------------------------
-
-/*
-__m128i ONE_OVER_SQRT_42 __attribute__((aligned(16)));
-__m128i THREE_OVER_SQRT_42 __attribute__((aligned(16)));
-__m128i FIVE_OVER_SQRT_42 __attribute__((aligned(16)));
-__m128i SEVEN_OVER_SQRT_42 __attribute__((aligned(16)));
-
-__m128i FORTYNINE_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-__m128i THIRTYSEVEN_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-__m128i TWENTYNINE_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-__m128i TWENTYFIVE_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-__m128i SEVENTEEN_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-__m128i NINE_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-__m128i THIRTEEN_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-__m128i FIVE_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-__m128i ONE_OVER_FOUR_SQRT_42 __attribute__((aligned(16)));
-
-__m128i y0r_one_over_sqrt_21 __attribute__((aligned(16)));
-__m128i y0r_three_over_sqrt_21 __attribute__((aligned(16)));
-__m128i y0r_five_over_sqrt_21 __attribute__((aligned(16)));
-__m128i y0r_seven_over_sqrt_21 __attribute__((aligned(16)));
-__m128i y0i_one_over_sqrt_21 __attribute__((aligned(16)));
-__m128i y0i_three_over_sqrt_21 __attribute__((aligned(16)));
-__m128i y0i_five_over_sqrt_21 __attribute__((aligned(16)));
-__m128i y0i_seven_over_sqrt_21 __attribute__((aligned(16)));
-
-__m128i ch_mag_98_over_42_with_sigma2 __attribute__((aligned(16)));
-__m128i ch_mag_74_over_42_with_sigma2 __attribute__((aligned(16)));
-__m128i ch_mag_58_over_42_with_sigma2 __attribute__((aligned(16)));
-__m128i ch_mag_50_over_42_with_sigma2 __attribute__((aligned(16)));
-__m128i ch_mag_34_over_42_with_sigma2 __attribute__((aligned(16)));
-__m128i ch_mag_18_over_42_with_sigma2 __attribute__((aligned(16)));
-__m128i ch_mag_26_over_42_with_sigma2 __attribute__((aligned(16)));
-__m128i ch_mag_10_over_42_with_sigma2 __attribute__((aligned(16)));
-__m128i ch_mag_2_over_42_with_sigma2 __attribute__((aligned(16)));
-
-*/
-
-void qam64_qpsk(int16_t *stream0_in,
- int16_t *stream1_in,
- int16_t *ch_mag,
- int16_t *stream0_out,
- int16_t *rho01,
- int32_t length
- )
-{
-
- /*
- Author: S. Wagner
- Date: 31-07-12
-
- Input:
- stream0_in: MF filter for 1st stream, i.e., y0=h0'*y
- stream1_in: MF filter for 2nd stream, i.e., y1=h1'*y
- ch_mag: 4*h0/sqrt(42), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- ch_mag_i: 4*h1/sqrt(42), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- rho01: Channel cross correlation, i.e., h1'*h0
-
- Output:
- stream0_out: output LLRs for 1st stream
- */
-
-#if defined(__x86_64__) || defined(__i386__)
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *ch_mag_128i = (__m128i *)ch_mag;
-
-
- __m128i ONE_OVER_SQRT_42 = _mm_set1_epi16(10112); // round(1/sqrt(42)*2^16)
- __m128i THREE_OVER_SQRT_42 = _mm_set1_epi16(30337); // round(3/sqrt(42)*2^16)
- __m128i FIVE_OVER_SQRT_42 = _mm_set1_epi16(25281); // round(5/sqrt(42)*2^15)
- __m128i SEVEN_OVER_SQRT_42 = _mm_set1_epi16(17697); // round(5/sqrt(42)*2^15)
- __m128i ONE_OVER_SQRT_2 = _mm_set1_epi16(23170); // round(1/sqrt(2)*2^15)
- __m128i FORTYNINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(30969); // round(49/(4*sqrt(42))*2^14), Q2.14
- __m128i THIRTYSEVEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(23385); // round(37/(4*sqrt(42))*2^14), Q2.14
- __m128i TWENTYFIVE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(31601); // round(25/(4*sqrt(42))*2^15)
- __m128i TWENTYNINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(18329); // round(29/(4*sqrt(42))*2^15), Q2.14
- __m128i SEVENTEEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(21489); // round(17/(4*sqrt(42))*2^15)
- __m128i NINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(11376); // round(9/(4*sqrt(42))*2^15)
- __m128i THIRTEEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(16433); // round(13/(4*sqrt(42))*2^15)
- __m128i FIVE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(6320); // round(5/(4*sqrt(42))*2^15)
- __m128i ONE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(1264); // round(1/(4*sqrt(42))*2^15)
-
-
- __m128i ch_mag_des;
- __m128i ch_mag_98_over_42_with_sigma2;
- __m128i ch_mag_74_over_42_with_sigma2;
- __m128i ch_mag_58_over_42_with_sigma2;
- __m128i ch_mag_50_over_42_with_sigma2;
- __m128i ch_mag_34_over_42_with_sigma2;
- __m128i ch_mag_18_over_42_with_sigma2;
- __m128i ch_mag_26_over_42_with_sigma2;
- __m128i ch_mag_10_over_42_with_sigma2;
- __m128i ch_mag_2_over_42_with_sigma2;
- __m128i y0r_one_over_sqrt_21;
- __m128i y0r_three_over_sqrt_21;
- __m128i y0r_five_over_sqrt_21;
- __m128i y0r_seven_over_sqrt_21;
- __m128i y0i_one_over_sqrt_21;
- __m128i y0i_three_over_sqrt_21;
- __m128i y0i_five_over_sqrt_21;
- __m128i y0i_seven_over_sqrt_21;
-#elif defined(__arm__)
-
-#endif
-
- int i,j;
-
- for (i=0; i>2; i+=2) {
-
-#if defined(__x86_64) || defined(__i386__)
- // Get rho
- xmm0 = rho01_128i[i];
- xmm1 = rho01_128i[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // Compute the different rhos
- rho_rpi_1_1 = _mm_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_42);
- rho_rmi_1_1 = _mm_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_42);
- rho_rpi_3_3 = _mm_mulhi_epi16(rho_rpi, THREE_OVER_SQRT_42);
- rho_rmi_3_3 = _mm_mulhi_epi16(rho_rmi, THREE_OVER_SQRT_42);
- rho_rpi_5_5 = _mm_mulhi_epi16(rho_rpi, FIVE_OVER_SQRT_42);
- rho_rmi_5_5 = _mm_mulhi_epi16(rho_rmi, FIVE_OVER_SQRT_42);
- rho_rpi_7_7 = _mm_mulhi_epi16(rho_rpi, SEVEN_OVER_SQRT_42);
- rho_rmi_7_7 = _mm_mulhi_epi16(rho_rmi, SEVEN_OVER_SQRT_42);
-
- rho_rpi_5_5 = _mm_slli_epi16(rho_rpi_5_5, 1);
- rho_rmi_5_5 = _mm_slli_epi16(rho_rmi_5_5, 1);
- rho_rpi_7_7 = _mm_slli_epi16(rho_rpi_7_7, 2);
- rho_rmi_7_7 = _mm_slli_epi16(rho_rmi_7_7, 2);
-
- xmm4 = _mm_mulhi_epi16(xmm2, ONE_OVER_SQRT_42);
- xmm5 = _mm_mulhi_epi16(xmm3, ONE_OVER_SQRT_42);
- xmm6 = _mm_mulhi_epi16(xmm3, THREE_OVER_SQRT_42);
- xmm7 = _mm_mulhi_epi16(xmm3, FIVE_OVER_SQRT_42);
- xmm8 = _mm_mulhi_epi16(xmm3, SEVEN_OVER_SQRT_42);
- xmm7 = _mm_slli_epi16(xmm7, 1);
- xmm8 = _mm_slli_epi16(xmm8, 2);
-
- rho_rpi_1_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_1_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_1_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_1_5 = _mm_subs_epi16(xmm4, xmm7);
- rho_rpi_1_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_1_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, THREE_OVER_SQRT_42);
- rho_rpi_3_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_3_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_3_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_3_5 = _mm_subs_epi16(xmm4, xmm7);
- rho_rpi_3_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_3_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, FIVE_OVER_SQRT_42);
- xmm4 = _mm_slli_epi16(xmm4, 1);
- rho_rpi_5_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_5_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_5_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_5_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_5_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_5_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, SEVEN_OVER_SQRT_42);
- xmm4 = _mm_slli_epi16(xmm4, 2);
- rho_rpi_7_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_7_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_7_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_7_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_7_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_7_5 = _mm_subs_epi16(xmm4, xmm7);
-
- // Rearrange interfering MF output
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- // Psi_r calculation from rho_rpi or rho_rmi
- xmm0 = _mm_setzero_si128(); // ZERO for abs_pi16
- xmm2 = _mm_subs_epi16(rho_rpi_7_7, y1r);
- psi_r_p7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_5, y1r);
- psi_r_p7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_3, y1r);
- psi_r_p7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_1, y1r);
- psi_r_p7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_1, y1r);
- psi_r_p7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_3, y1r);
- psi_r_p7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_5, y1r);
- psi_r_p7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_7, y1r);
- psi_r_p7_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_7, y1r);
- psi_r_p5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_5, y1r);
- psi_r_p5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_3, y1r);
- psi_r_p5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_1, y1r);
- psi_r_p5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_1, y1r);
- psi_r_p5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_3, y1r);
- psi_r_p5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_5, y1r);
- psi_r_p5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_7, y1r);
- psi_r_p5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_7, y1r);
- psi_r_p3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_5, y1r);
- psi_r_p3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_3, y1r);
- psi_r_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_1, y1r);
- psi_r_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_1, y1r);
- psi_r_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_3, y1r);
- psi_r_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_5, y1r);
- psi_r_p3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_7, y1r);
- psi_r_p3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_7, y1r);
- psi_r_p1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_5, y1r);
- psi_r_p1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_3, y1r);
- psi_r_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_1, y1r);
- psi_r_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_1, y1r);
- psi_r_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_3, y1r);
- psi_r_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_5, y1r);
- psi_r_p1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_7, y1r);
- psi_r_p1_m7 = _mm_abs_epi16(xmm2);
-
- xmm2 = _mm_adds_epi16(rho_rmi_1_7, y1r);
- psi_r_m1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_5, y1r);
- psi_r_m1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_3, y1r);
- psi_r_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_1, y1r);
- psi_r_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_1, y1r);
- psi_r_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_3, y1r);
- psi_r_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_5, y1r);
- psi_r_m1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_7, y1r);
- psi_r_m1_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_7, y1r);
- psi_r_m3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_5, y1r);
- psi_r_m3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_3, y1r);
- psi_r_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_1, y1r);
- psi_r_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_1, y1r);
- psi_r_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_3, y1r);
- psi_r_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_5, y1r);
- psi_r_m3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_7, y1r);
- psi_r_m3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_7, y1r);
- psi_r_m5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_5, y1r);
- psi_r_m5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_3, y1r);
- psi_r_m5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_1, y1r);
- psi_r_m5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_1, y1r);
- psi_r_m5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_3, y1r);
- psi_r_m5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_5, y1r);
- psi_r_m5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_7, y1r);
- psi_r_m5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_7, y1r);
- psi_r_m7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_5, y1r);
- psi_r_m7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_3, y1r);
- psi_r_m7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_1, y1r);
- psi_r_m7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_1, y1r);
- psi_r_m7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_3, y1r);
- psi_r_m7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_5, y1r);
- psi_r_m7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_7, y1r);
- psi_r_m7_m7 = _mm_abs_epi16(xmm2);
-
- // Psi_i calculation from rho_rpi or rho_rmi
- xmm2 = _mm_subs_epi16(rho_rmi_7_7, y1i);
- psi_i_p7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_7, y1i);
- psi_i_p7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_7, y1i);
- psi_i_p7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_7, y1i);
- psi_i_p7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_7, y1i);
- psi_i_p7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_7, y1i);
- psi_i_p7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_7, y1i);
- psi_i_p7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_7, y1i);
- psi_i_p7_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_5, y1i);
- psi_i_p5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_5, y1i);
- psi_i_p5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_5, y1i);
- psi_i_p5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_5, y1i);
- psi_i_p5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_5, y1i);
- psi_i_p5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_5, y1i);
- psi_i_p5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_5, y1i);
- psi_i_p5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_5, y1i);
- psi_i_p5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_3, y1i);
- psi_i_p3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_3, y1i);
- psi_i_p3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_3, y1i);
- psi_i_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_3, y1i);
- psi_i_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_3, y1i);
- psi_i_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_3, y1i);
- psi_i_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_3, y1i);
- psi_i_p3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_3, y1i);
- psi_i_p3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_1, y1i);
- psi_i_p1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_1, y1i);
- psi_i_p1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_1, y1i);
- psi_i_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_1, y1i);
- psi_i_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_1, y1i);
- psi_i_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_1, y1i);
- psi_i_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_1, y1i);
- psi_i_p1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_1, y1i);
- psi_i_p1_m7 = _mm_abs_epi16(xmm2);
-
- xmm2 = _mm_subs_epi16(rho_rpi_7_1, y1i);
- psi_i_m1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_1, y1i);
- psi_i_m1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_1, y1i);
- psi_i_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_1, y1i);
- psi_i_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_1, y1i);
- psi_i_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_1, y1i);
- psi_i_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_1, y1i);
- psi_i_m1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_1, y1i);
- psi_i_m1_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_3, y1i);
- psi_i_m3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_3, y1i);
- psi_i_m3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_3, y1i);
- psi_i_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_3, y1i);
- psi_i_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_3, y1i);
- psi_i_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_3, y1i);
- psi_i_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_3, y1i);
- psi_i_m3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_3, y1i);
- psi_i_m3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_5, y1i);
- psi_i_m5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_5, y1i);
- psi_i_m5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_5, y1i);
- psi_i_m5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_5, y1i);
- psi_i_m5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_5, y1i);
- psi_i_m5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_5, y1i);
- psi_i_m5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_5, y1i);
- psi_i_m5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_5, y1i);
- psi_i_m5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_7, y1i);
- psi_i_m7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_7, y1i);
- psi_i_m7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_7, y1i);
- psi_i_m7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_7, y1i);
- psi_i_m7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_7, y1i);
- psi_i_m7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_7, y1i);
- psi_i_m7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_7, y1i);
- psi_i_m7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_7, y1i);
- psi_i_m7_m7 = _mm_abs_epi16(xmm2);
-
-
- // Rearrange desired MF output
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- // Rearrange desired channel magnitudes
- xmm2 = ch_mag_128i[i]; // = [|h|^2(1),|h|^2(1),|h|^2(2),|h|^2(2)]*(2/sqrt(10))
- xmm3 = ch_mag_128i[i+1]; // = [|h|^2(3),|h|^2(3),|h|^2(4),|h|^2(4)]*(2/sqrt(10))
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- ch_mag_des = _mm_unpacklo_epi64(xmm2,xmm3);
-
- y0r_one_over_sqrt_21 = _mm_mulhi_epi16(y0r, ONE_OVER_SQRT_42);
- y0r_three_over_sqrt_21 = _mm_mulhi_epi16(y0r, THREE_OVER_SQRT_42);
- y0r_five_over_sqrt_21 = _mm_mulhi_epi16(y0r, FIVE_OVER_SQRT_42);
- y0r_five_over_sqrt_21 = _mm_slli_epi16(y0r_five_over_sqrt_21, 1);
- y0r_seven_over_sqrt_21 = _mm_mulhi_epi16(y0r, SEVEN_OVER_SQRT_42);
- y0r_seven_over_sqrt_21 = _mm_slli_epi16(y0r_seven_over_sqrt_21, 2); // Q2.14
-
- y0i_one_over_sqrt_21 = _mm_mulhi_epi16(y0i, ONE_OVER_SQRT_42);
- y0i_three_over_sqrt_21 = _mm_mulhi_epi16(y0i, THREE_OVER_SQRT_42);
- y0i_five_over_sqrt_21 = _mm_mulhi_epi16(y0i, FIVE_OVER_SQRT_42);
- y0i_five_over_sqrt_21 = _mm_slli_epi16(y0i_five_over_sqrt_21, 1);
- y0i_seven_over_sqrt_21 = _mm_mulhi_epi16(y0i, SEVEN_OVER_SQRT_42);
- y0i_seven_over_sqrt_21 = _mm_slli_epi16(y0i_seven_over_sqrt_21, 2); // Q2.14
-
- y0_p_7_1 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_7_3 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_7_5 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_7_7 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_5_1 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_5_3 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_5_5 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_5_7 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_3_1 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_3_3 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_3_5 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_3_7 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_1_1 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_1_3 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_1_5 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_1_7 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21);
-
- y0_m_1_1 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_1_3 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_1_5 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_1_7 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_3_1 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_3_3 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_3_5 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_3_7 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_5_1 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_5_3 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_5_5 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_5_7 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_7_1 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_7_3 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_7_5 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_7_7 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21);
-
- // divide by sqrt(2)
- psi_r_p7_p7 = _mm_mulhi_epi16(psi_r_p7_p7, ONE_OVER_SQRT_2);
- psi_r_p7_p7 = _mm_slli_epi16(psi_r_p7_p7, 1);
- psi_r_p7_p5 = _mm_mulhi_epi16(psi_r_p7_p5, ONE_OVER_SQRT_2);
- psi_r_p7_p5 = _mm_slli_epi16(psi_r_p7_p5, 1);
- psi_r_p7_p3 = _mm_mulhi_epi16(psi_r_p7_p3, ONE_OVER_SQRT_2);
- psi_r_p7_p3 = _mm_slli_epi16(psi_r_p7_p3, 1);
- psi_r_p7_p1 = _mm_mulhi_epi16(psi_r_p7_p1, ONE_OVER_SQRT_2);
- psi_r_p7_p1 = _mm_slli_epi16(psi_r_p7_p1, 1);
- psi_r_p7_m1 = _mm_mulhi_epi16(psi_r_p7_m1, ONE_OVER_SQRT_2);
- psi_r_p7_m1 = _mm_slli_epi16(psi_r_p7_m1, 1);
- psi_r_p7_m3 = _mm_mulhi_epi16(psi_r_p7_m3, ONE_OVER_SQRT_2);
- psi_r_p7_m3 = _mm_slli_epi16(psi_r_p7_m3, 1);
- psi_r_p7_m5 = _mm_mulhi_epi16(psi_r_p7_m5, ONE_OVER_SQRT_2);
- psi_r_p7_m5 = _mm_slli_epi16(psi_r_p7_m5, 1);
- psi_r_p7_m7 = _mm_mulhi_epi16(psi_r_p7_m7, ONE_OVER_SQRT_2);
- psi_r_p7_m7 = _mm_slli_epi16(psi_r_p7_m7, 1);
- psi_r_p5_p7 = _mm_mulhi_epi16(psi_r_p5_p7, ONE_OVER_SQRT_2);
- psi_r_p5_p7 = _mm_slli_epi16(psi_r_p5_p7, 1);
- psi_r_p5_p5 = _mm_mulhi_epi16(psi_r_p5_p5, ONE_OVER_SQRT_2);
- psi_r_p5_p5 = _mm_slli_epi16(psi_r_p5_p5, 1);
- psi_r_p5_p3 = _mm_mulhi_epi16(psi_r_p5_p3, ONE_OVER_SQRT_2);
- psi_r_p5_p3 = _mm_slli_epi16(psi_r_p5_p3, 1);
- psi_r_p5_p1 = _mm_mulhi_epi16(psi_r_p5_p1, ONE_OVER_SQRT_2);
- psi_r_p5_p1 = _mm_slli_epi16(psi_r_p5_p1, 1);
- psi_r_p5_m1 = _mm_mulhi_epi16(psi_r_p5_m1, ONE_OVER_SQRT_2);
- psi_r_p5_m1 = _mm_slli_epi16(psi_r_p5_m1, 1);
- psi_r_p5_m3 = _mm_mulhi_epi16(psi_r_p5_m3, ONE_OVER_SQRT_2);
- psi_r_p5_m3 = _mm_slli_epi16(psi_r_p5_m3, 1);
- psi_r_p5_m5 = _mm_mulhi_epi16(psi_r_p5_m5, ONE_OVER_SQRT_2);
- psi_r_p5_m5 = _mm_slli_epi16(psi_r_p5_m5, 1);
- psi_r_p5_m7 = _mm_mulhi_epi16(psi_r_p5_m7, ONE_OVER_SQRT_2);
- psi_r_p5_m7 = _mm_slli_epi16(psi_r_p5_m7, 1);
- psi_r_p3_p7 = _mm_mulhi_epi16(psi_r_p3_p7, ONE_OVER_SQRT_2);
- psi_r_p3_p7 = _mm_slli_epi16(psi_r_p3_p7, 1);
- psi_r_p3_p5 = _mm_mulhi_epi16(psi_r_p3_p5, ONE_OVER_SQRT_2);
- psi_r_p3_p5 = _mm_slli_epi16(psi_r_p3_p5, 1);
- psi_r_p3_p3 = _mm_mulhi_epi16(psi_r_p3_p3, ONE_OVER_SQRT_2);
- psi_r_p3_p3 = _mm_slli_epi16(psi_r_p3_p3, 1);
- psi_r_p3_p1 = _mm_mulhi_epi16(psi_r_p3_p1, ONE_OVER_SQRT_2);
- psi_r_p3_p1 = _mm_slli_epi16(psi_r_p3_p1, 1);
- psi_r_p3_m1 = _mm_mulhi_epi16(psi_r_p3_m1, ONE_OVER_SQRT_2);
- psi_r_p3_m1 = _mm_slli_epi16(psi_r_p3_m1, 1);
- psi_r_p3_m3 = _mm_mulhi_epi16(psi_r_p3_m3, ONE_OVER_SQRT_2);
- psi_r_p3_m3 = _mm_slli_epi16(psi_r_p3_m3, 1);
- psi_r_p3_m5 = _mm_mulhi_epi16(psi_r_p3_m5, ONE_OVER_SQRT_2);
- psi_r_p3_m5 = _mm_slli_epi16(psi_r_p3_m5, 1);
- psi_r_p3_m7 = _mm_mulhi_epi16(psi_r_p3_m7, ONE_OVER_SQRT_2);
- psi_r_p3_m7 = _mm_slli_epi16(psi_r_p3_m7, 1);
- psi_r_p1_p7 = _mm_mulhi_epi16(psi_r_p1_p7, ONE_OVER_SQRT_2);
- psi_r_p1_p7 = _mm_slli_epi16(psi_r_p1_p7, 1);
- psi_r_p1_p5 = _mm_mulhi_epi16(psi_r_p1_p5, ONE_OVER_SQRT_2);
- psi_r_p1_p5 = _mm_slli_epi16(psi_r_p1_p5, 1);
- psi_r_p1_p3 = _mm_mulhi_epi16(psi_r_p1_p3, ONE_OVER_SQRT_2);
- psi_r_p1_p3 = _mm_slli_epi16(psi_r_p1_p3, 1);
- psi_r_p1_p1 = _mm_mulhi_epi16(psi_r_p1_p1, ONE_OVER_SQRT_2);
- psi_r_p1_p1 = _mm_slli_epi16(psi_r_p1_p1, 1);
- psi_r_p1_m1 = _mm_mulhi_epi16(psi_r_p1_m1, ONE_OVER_SQRT_2);
- psi_r_p1_m1 = _mm_slli_epi16(psi_r_p1_m1, 1);
- psi_r_p1_m3 = _mm_mulhi_epi16(psi_r_p1_m3, ONE_OVER_SQRT_2);
- psi_r_p1_m3 = _mm_slli_epi16(psi_r_p1_m3, 1);
- psi_r_p1_m5 = _mm_mulhi_epi16(psi_r_p1_m5, ONE_OVER_SQRT_2);
- psi_r_p1_m5 = _mm_slli_epi16(psi_r_p1_m5, 1);
- psi_r_p1_m7 = _mm_mulhi_epi16(psi_r_p1_m7, ONE_OVER_SQRT_2);
- psi_r_p1_m7 = _mm_slli_epi16(psi_r_p1_m7, 1);
- psi_r_m1_p7 = _mm_mulhi_epi16(psi_r_m1_p7, ONE_OVER_SQRT_2);
- psi_r_m1_p7 = _mm_slli_epi16(psi_r_m1_p7, 1);
- psi_r_m1_p5 = _mm_mulhi_epi16(psi_r_m1_p5, ONE_OVER_SQRT_2);
- psi_r_m1_p5 = _mm_slli_epi16(psi_r_m1_p5, 1);
- psi_r_m1_p3 = _mm_mulhi_epi16(psi_r_m1_p3, ONE_OVER_SQRT_2);
- psi_r_m1_p3 = _mm_slli_epi16(psi_r_m1_p3, 1);
- psi_r_m1_p1 = _mm_mulhi_epi16(psi_r_m1_p1, ONE_OVER_SQRT_2);
- psi_r_m1_p1 = _mm_slli_epi16(psi_r_m1_p1, 1);
- psi_r_m1_m1 = _mm_mulhi_epi16(psi_r_m1_m1, ONE_OVER_SQRT_2);
- psi_r_m1_m1 = _mm_slli_epi16(psi_r_m1_m1, 1);
- psi_r_m1_m3 = _mm_mulhi_epi16(psi_r_m1_m3, ONE_OVER_SQRT_2);
- psi_r_m1_m3 = _mm_slli_epi16(psi_r_m1_m3, 1);
- psi_r_m1_m5 = _mm_mulhi_epi16(psi_r_m1_m5, ONE_OVER_SQRT_2);
- psi_r_m1_m5 = _mm_slli_epi16(psi_r_m1_m5, 1);
- psi_r_m1_m7 = _mm_mulhi_epi16(psi_r_m1_m7, ONE_OVER_SQRT_2);
- psi_r_m1_m7 = _mm_slli_epi16(psi_r_m1_m7, 1);
- psi_r_m3_p7 = _mm_mulhi_epi16(psi_r_m3_p7, ONE_OVER_SQRT_2);
- psi_r_m3_p7 = _mm_slli_epi16(psi_r_m3_p7, 1);
- psi_r_m3_p5 = _mm_mulhi_epi16(psi_r_m3_p5, ONE_OVER_SQRT_2);
- psi_r_m3_p5 = _mm_slli_epi16(psi_r_m3_p5, 1);
- psi_r_m3_p3 = _mm_mulhi_epi16(psi_r_m3_p3, ONE_OVER_SQRT_2);
- psi_r_m3_p3 = _mm_slli_epi16(psi_r_m3_p3, 1);
- psi_r_m3_p1 = _mm_mulhi_epi16(psi_r_m3_p1, ONE_OVER_SQRT_2);
- psi_r_m3_p1 = _mm_slli_epi16(psi_r_m3_p1, 1);
- psi_r_m3_m1 = _mm_mulhi_epi16(psi_r_m3_m1, ONE_OVER_SQRT_2);
- psi_r_m3_m1 = _mm_slli_epi16(psi_r_m3_m1, 1);
- psi_r_m3_m3 = _mm_mulhi_epi16(psi_r_m3_m3, ONE_OVER_SQRT_2);
- psi_r_m3_m3 = _mm_slli_epi16(psi_r_m3_m3, 1);
- psi_r_m3_m5 = _mm_mulhi_epi16(psi_r_m3_m5, ONE_OVER_SQRT_2);
- psi_r_m3_m5 = _mm_slli_epi16(psi_r_m3_m5, 1);
- psi_r_m3_m7 = _mm_mulhi_epi16(psi_r_m3_m7, ONE_OVER_SQRT_2);
- psi_r_m3_m7 = _mm_slli_epi16(psi_r_m3_m7, 1);
- psi_r_m5_p7 = _mm_mulhi_epi16(psi_r_m5_p7, ONE_OVER_SQRT_2);
- psi_r_m5_p7 = _mm_slli_epi16(psi_r_m5_p7, 1);
- psi_r_m5_p5 = _mm_mulhi_epi16(psi_r_m5_p5, ONE_OVER_SQRT_2);
- psi_r_m5_p5 = _mm_slli_epi16(psi_r_m5_p5, 1);
- psi_r_m5_p3 = _mm_mulhi_epi16(psi_r_m5_p3, ONE_OVER_SQRT_2);
- psi_r_m5_p3 = _mm_slli_epi16(psi_r_m5_p3, 1);
- psi_r_m5_p1 = _mm_mulhi_epi16(psi_r_m5_p1, ONE_OVER_SQRT_2);
- psi_r_m5_p1 = _mm_slli_epi16(psi_r_m5_p1, 1);
- psi_r_m5_m1 = _mm_mulhi_epi16(psi_r_m5_m1, ONE_OVER_SQRT_2);
- psi_r_m5_m1 = _mm_slli_epi16(psi_r_m5_m1, 1);
- psi_r_m5_m3 = _mm_mulhi_epi16(psi_r_m5_m3, ONE_OVER_SQRT_2);
- psi_r_m5_m3 = _mm_slli_epi16(psi_r_m5_m3, 1);
- psi_r_m5_m5 = _mm_mulhi_epi16(psi_r_m5_m5, ONE_OVER_SQRT_2);
- psi_r_m5_m5 = _mm_slli_epi16(psi_r_m5_m5, 1);
- psi_r_m5_m7 = _mm_mulhi_epi16(psi_r_m5_m7, ONE_OVER_SQRT_2);
- psi_r_m5_m7 = _mm_slli_epi16(psi_r_m5_m7, 1);
- psi_r_m7_p7 = _mm_mulhi_epi16(psi_r_m7_p7, ONE_OVER_SQRT_2);
- psi_r_m7_p7 = _mm_slli_epi16(psi_r_m7_p7, 1);
- psi_r_m7_p5 = _mm_mulhi_epi16(psi_r_m7_p5, ONE_OVER_SQRT_2);
- psi_r_m7_p5 = _mm_slli_epi16(psi_r_m7_p5, 1);
- psi_r_m7_p3 = _mm_mulhi_epi16(psi_r_m7_p3, ONE_OVER_SQRT_2);
- psi_r_m7_p3 = _mm_slli_epi16(psi_r_m7_p3, 1);
- psi_r_m7_p1 = _mm_mulhi_epi16(psi_r_m7_p1, ONE_OVER_SQRT_2);
- psi_r_m7_p1 = _mm_slli_epi16(psi_r_m7_p1, 1);
- psi_r_m7_m1 = _mm_mulhi_epi16(psi_r_m7_m1, ONE_OVER_SQRT_2);
- psi_r_m7_m1 = _mm_slli_epi16(psi_r_m7_m1, 1);
- psi_r_m7_m3 = _mm_mulhi_epi16(psi_r_m7_m3, ONE_OVER_SQRT_2);
- psi_r_m7_m3 = _mm_slli_epi16(psi_r_m7_m3, 1);
- psi_r_m7_m5 = _mm_mulhi_epi16(psi_r_m7_m5, ONE_OVER_SQRT_2);
- psi_r_m7_m5 = _mm_slli_epi16(psi_r_m7_m5, 1);
- psi_r_m7_m7 = _mm_mulhi_epi16(psi_r_m7_m7, ONE_OVER_SQRT_2);
- psi_r_m7_m7 = _mm_slli_epi16(psi_r_m7_m7, 1);
-
- psi_i_p7_p7 = _mm_mulhi_epi16(psi_i_p7_p7, ONE_OVER_SQRT_2);
- psi_i_p7_p7 = _mm_slli_epi16(psi_i_p7_p7, 1);
- psi_i_p7_p5 = _mm_mulhi_epi16(psi_i_p7_p5, ONE_OVER_SQRT_2);
- psi_i_p7_p5 = _mm_slli_epi16(psi_i_p7_p5, 1);
- psi_i_p7_p3 = _mm_mulhi_epi16(psi_i_p7_p3, ONE_OVER_SQRT_2);
- psi_i_p7_p3 = _mm_slli_epi16(psi_i_p7_p3, 1);
- psi_i_p7_p1 = _mm_mulhi_epi16(psi_i_p7_p1, ONE_OVER_SQRT_2);
- psi_i_p7_p1 = _mm_slli_epi16(psi_i_p7_p1, 1);
- psi_i_p7_m1 = _mm_mulhi_epi16(psi_i_p7_m1, ONE_OVER_SQRT_2);
- psi_i_p7_m1 = _mm_slli_epi16(psi_i_p7_m1, 1);
- psi_i_p7_m3 = _mm_mulhi_epi16(psi_i_p7_m3, ONE_OVER_SQRT_2);
- psi_i_p7_m3 = _mm_slli_epi16(psi_i_p7_m3, 1);
- psi_i_p7_m5 = _mm_mulhi_epi16(psi_i_p7_m5, ONE_OVER_SQRT_2);
- psi_i_p7_m5 = _mm_slli_epi16(psi_i_p7_m5, 1);
- psi_i_p7_m7 = _mm_mulhi_epi16(psi_i_p7_m7, ONE_OVER_SQRT_2);
- psi_i_p7_m7 = _mm_slli_epi16(psi_i_p7_m7, 1);
- psi_i_p5_p7 = _mm_mulhi_epi16(psi_i_p5_p7, ONE_OVER_SQRT_2);
- psi_i_p5_p7 = _mm_slli_epi16(psi_i_p5_p7, 1);
- psi_i_p5_p5 = _mm_mulhi_epi16(psi_i_p5_p5, ONE_OVER_SQRT_2);
- psi_i_p5_p5 = _mm_slli_epi16(psi_i_p5_p5, 1);
- psi_i_p5_p3 = _mm_mulhi_epi16(psi_i_p5_p3, ONE_OVER_SQRT_2);
- psi_i_p5_p3 = _mm_slli_epi16(psi_i_p5_p3, 1);
- psi_i_p5_p1 = _mm_mulhi_epi16(psi_i_p5_p1, ONE_OVER_SQRT_2);
- psi_i_p5_p1 = _mm_slli_epi16(psi_i_p5_p1, 1);
- psi_i_p5_m1 = _mm_mulhi_epi16(psi_i_p5_m1, ONE_OVER_SQRT_2);
- psi_i_p5_m1 = _mm_slli_epi16(psi_i_p5_m1, 1);
- psi_i_p5_m3 = _mm_mulhi_epi16(psi_i_p5_m3, ONE_OVER_SQRT_2);
- psi_i_p5_m3 = _mm_slli_epi16(psi_i_p5_m3, 1);
- psi_i_p5_m5 = _mm_mulhi_epi16(psi_i_p5_m5, ONE_OVER_SQRT_2);
- psi_i_p5_m5 = _mm_slli_epi16(psi_i_p5_m5, 1);
- psi_i_p5_m7 = _mm_mulhi_epi16(psi_i_p5_m7, ONE_OVER_SQRT_2);
- psi_i_p5_m7 = _mm_slli_epi16(psi_i_p5_m7, 1);
- psi_i_p3_p7 = _mm_mulhi_epi16(psi_i_p3_p7, ONE_OVER_SQRT_2);
- psi_i_p3_p7 = _mm_slli_epi16(psi_i_p3_p7, 1);
- psi_i_p3_p5 = _mm_mulhi_epi16(psi_i_p3_p5, ONE_OVER_SQRT_2);
- psi_i_p3_p5 = _mm_slli_epi16(psi_i_p3_p5, 1);
- psi_i_p3_p3 = _mm_mulhi_epi16(psi_i_p3_p3, ONE_OVER_SQRT_2);
- psi_i_p3_p3 = _mm_slli_epi16(psi_i_p3_p3, 1);
- psi_i_p3_p1 = _mm_mulhi_epi16(psi_i_p3_p1, ONE_OVER_SQRT_2);
- psi_i_p3_p1 = _mm_slli_epi16(psi_i_p3_p1, 1);
- psi_i_p3_m1 = _mm_mulhi_epi16(psi_i_p3_m1, ONE_OVER_SQRT_2);
- psi_i_p3_m1 = _mm_slli_epi16(psi_i_p3_m1, 1);
- psi_i_p3_m3 = _mm_mulhi_epi16(psi_i_p3_m3, ONE_OVER_SQRT_2);
- psi_i_p3_m3 = _mm_slli_epi16(psi_i_p3_m3, 1);
- psi_i_p3_m5 = _mm_mulhi_epi16(psi_i_p3_m5, ONE_OVER_SQRT_2);
- psi_i_p3_m5 = _mm_slli_epi16(psi_i_p3_m5, 1);
- psi_i_p3_m7 = _mm_mulhi_epi16(psi_i_p3_m7, ONE_OVER_SQRT_2);
- psi_i_p3_m7 = _mm_slli_epi16(psi_i_p3_m7, 1);
- psi_i_p1_p7 = _mm_mulhi_epi16(psi_i_p1_p7, ONE_OVER_SQRT_2);
- psi_i_p1_p7 = _mm_slli_epi16(psi_i_p1_p7, 1);
- psi_i_p1_p5 = _mm_mulhi_epi16(psi_i_p1_p5, ONE_OVER_SQRT_2);
- psi_i_p1_p5 = _mm_slli_epi16(psi_i_p1_p5, 1);
- psi_i_p1_p3 = _mm_mulhi_epi16(psi_i_p1_p3, ONE_OVER_SQRT_2);
- psi_i_p1_p3 = _mm_slli_epi16(psi_i_p1_p3, 1);
- psi_i_p1_p1 = _mm_mulhi_epi16(psi_i_p1_p1, ONE_OVER_SQRT_2);
- psi_i_p1_p1 = _mm_slli_epi16(psi_i_p1_p1, 1);
- psi_i_p1_m1 = _mm_mulhi_epi16(psi_i_p1_m1, ONE_OVER_SQRT_2);
- psi_i_p1_m1 = _mm_slli_epi16(psi_i_p1_m1, 1);
- psi_i_p1_m3 = _mm_mulhi_epi16(psi_i_p1_m3, ONE_OVER_SQRT_2);
- psi_i_p1_m3 = _mm_slli_epi16(psi_i_p1_m3, 1);
- psi_i_p1_m5 = _mm_mulhi_epi16(psi_i_p1_m5, ONE_OVER_SQRT_2);
- psi_i_p1_m5 = _mm_slli_epi16(psi_i_p1_m5, 1);
- psi_i_p1_m7 = _mm_mulhi_epi16(psi_i_p1_m7, ONE_OVER_SQRT_2);
- psi_i_p1_m7 = _mm_slli_epi16(psi_i_p1_m7, 1);
- psi_i_m1_p7 = _mm_mulhi_epi16(psi_i_m1_p7, ONE_OVER_SQRT_2);
- psi_i_m1_p7 = _mm_slli_epi16(psi_i_m1_p7, 1);
- psi_i_m1_p5 = _mm_mulhi_epi16(psi_i_m1_p5, ONE_OVER_SQRT_2);
- psi_i_m1_p5 = _mm_slli_epi16(psi_i_m1_p5, 1);
- psi_i_m1_p3 = _mm_mulhi_epi16(psi_i_m1_p3, ONE_OVER_SQRT_2);
- psi_i_m1_p3 = _mm_slli_epi16(psi_i_m1_p3, 1);
- psi_i_m1_p1 = _mm_mulhi_epi16(psi_i_m1_p1, ONE_OVER_SQRT_2);
- psi_i_m1_p1 = _mm_slli_epi16(psi_i_m1_p1, 1);
- psi_i_m1_m1 = _mm_mulhi_epi16(psi_i_m1_m1, ONE_OVER_SQRT_2);
- psi_i_m1_m1 = _mm_slli_epi16(psi_i_m1_m1, 1);
- psi_i_m1_m3 = _mm_mulhi_epi16(psi_i_m1_m3, ONE_OVER_SQRT_2);
- psi_i_m1_m3 = _mm_slli_epi16(psi_i_m1_m3, 1);
- psi_i_m1_m5 = _mm_mulhi_epi16(psi_i_m1_m5, ONE_OVER_SQRT_2);
- psi_i_m1_m5 = _mm_slli_epi16(psi_i_m1_m5, 1);
- psi_i_m1_m7 = _mm_mulhi_epi16(psi_i_m1_m7, ONE_OVER_SQRT_2);
- psi_i_m1_m7 = _mm_slli_epi16(psi_i_m1_m7, 1);
- psi_i_m3_p7 = _mm_mulhi_epi16(psi_i_m3_p7, ONE_OVER_SQRT_2);
- psi_i_m3_p7 = _mm_slli_epi16(psi_i_m3_p7, 1);
- psi_i_m3_p5 = _mm_mulhi_epi16(psi_i_m3_p5, ONE_OVER_SQRT_2);
- psi_i_m3_p5 = _mm_slli_epi16(psi_i_m3_p5, 1);
- psi_i_m3_p3 = _mm_mulhi_epi16(psi_i_m3_p3, ONE_OVER_SQRT_2);
- psi_i_m3_p3 = _mm_slli_epi16(psi_i_m3_p3, 1);
- psi_i_m3_p1 = _mm_mulhi_epi16(psi_i_m3_p1, ONE_OVER_SQRT_2);
- psi_i_m3_p1 = _mm_slli_epi16(psi_i_m3_p1, 1);
- psi_i_m3_m1 = _mm_mulhi_epi16(psi_i_m3_m1, ONE_OVER_SQRT_2);
- psi_i_m3_m1 = _mm_slli_epi16(psi_i_m3_m1, 1);
- psi_i_m3_m3 = _mm_mulhi_epi16(psi_i_m3_m3, ONE_OVER_SQRT_2);
- psi_i_m3_m3 = _mm_slli_epi16(psi_i_m3_m3, 1);
- psi_i_m3_m5 = _mm_mulhi_epi16(psi_i_m3_m5, ONE_OVER_SQRT_2);
- psi_i_m3_m5 = _mm_slli_epi16(psi_i_m3_m5, 1);
- psi_i_m3_m7 = _mm_mulhi_epi16(psi_i_m3_m7, ONE_OVER_SQRT_2);
- psi_i_m3_m7 = _mm_slli_epi16(psi_i_m3_m7, 1);
- psi_i_m5_p7 = _mm_mulhi_epi16(psi_i_m5_p7, ONE_OVER_SQRT_2);
- psi_i_m5_p7 = _mm_slli_epi16(psi_i_m5_p7, 1);
- psi_i_m5_p5 = _mm_mulhi_epi16(psi_i_m5_p5, ONE_OVER_SQRT_2);
- psi_i_m5_p5 = _mm_slli_epi16(psi_i_m5_p5, 1);
- psi_i_m5_p3 = _mm_mulhi_epi16(psi_i_m5_p3, ONE_OVER_SQRT_2);
- psi_i_m5_p3 = _mm_slli_epi16(psi_i_m5_p3, 1);
- psi_i_m5_p1 = _mm_mulhi_epi16(psi_i_m5_p1, ONE_OVER_SQRT_2);
- psi_i_m5_p1 = _mm_slli_epi16(psi_i_m5_p1, 1);
- psi_i_m5_m1 = _mm_mulhi_epi16(psi_i_m5_m1, ONE_OVER_SQRT_2);
- psi_i_m5_m1 = _mm_slli_epi16(psi_i_m5_m1, 1);
- psi_i_m5_m3 = _mm_mulhi_epi16(psi_i_m5_m3, ONE_OVER_SQRT_2);
- psi_i_m5_m3 = _mm_slli_epi16(psi_i_m5_m3, 1);
- psi_i_m5_m5 = _mm_mulhi_epi16(psi_i_m5_m5, ONE_OVER_SQRT_2);
- psi_i_m5_m5 = _mm_slli_epi16(psi_i_m5_m5, 1);
- psi_i_m5_m7 = _mm_mulhi_epi16(psi_i_m5_m7, ONE_OVER_SQRT_2);
- psi_i_m5_m7 = _mm_slli_epi16(psi_i_m5_m7, 1);
- psi_i_m7_p7 = _mm_mulhi_epi16(psi_i_m7_p7, ONE_OVER_SQRT_2);
- psi_i_m7_p7 = _mm_slli_epi16(psi_i_m7_p7, 1);
- psi_i_m7_p5 = _mm_mulhi_epi16(psi_i_m7_p5, ONE_OVER_SQRT_2);
- psi_i_m7_p5 = _mm_slli_epi16(psi_i_m7_p5, 1);
- psi_i_m7_p3 = _mm_mulhi_epi16(psi_i_m7_p3, ONE_OVER_SQRT_2);
- psi_i_m7_p3 = _mm_slli_epi16(psi_i_m7_p3, 1);
- psi_i_m7_p1 = _mm_mulhi_epi16(psi_i_m7_p1, ONE_OVER_SQRT_2);
- psi_i_m7_p1 = _mm_slli_epi16(psi_i_m7_p1, 1);
- psi_i_m7_m1 = _mm_mulhi_epi16(psi_i_m7_m1, ONE_OVER_SQRT_2);
- psi_i_m7_m1 = _mm_slli_epi16(psi_i_m7_m1, 1);
- psi_i_m7_m3 = _mm_mulhi_epi16(psi_i_m7_m3, ONE_OVER_SQRT_2);
- psi_i_m7_m3 = _mm_slli_epi16(psi_i_m7_m3, 1);
- psi_i_m7_m5 = _mm_mulhi_epi16(psi_i_m7_m5, ONE_OVER_SQRT_2);
- psi_i_m7_m5 = _mm_slli_epi16(psi_i_m7_m5, 1);
- psi_i_m7_m7 = _mm_mulhi_epi16(psi_i_m7_m7, ONE_OVER_SQRT_2);
- psi_i_m7_m7 = _mm_slli_epi16(psi_i_m7_m7, 1);
-
- psi_a_p7_p7 = _mm_adds_epi16(psi_r_p7_p7, psi_i_p7_p7);
- psi_a_p7_p5 = _mm_adds_epi16(psi_r_p7_p5, psi_i_p7_p5);
- psi_a_p7_p3 = _mm_adds_epi16(psi_r_p7_p3, psi_i_p7_p3);
- psi_a_p7_p1 = _mm_adds_epi16(psi_r_p7_p1, psi_i_p7_p1);
- psi_a_p7_m1 = _mm_adds_epi16(psi_r_p7_m1, psi_i_p7_m1);
- psi_a_p7_m3 = _mm_adds_epi16(psi_r_p7_m3, psi_i_p7_m3);
- psi_a_p7_m5 = _mm_adds_epi16(psi_r_p7_m5, psi_i_p7_m5);
- psi_a_p7_m7 = _mm_adds_epi16(psi_r_p7_m7, psi_i_p7_m7);
- psi_a_p5_p7 = _mm_adds_epi16(psi_r_p5_p7, psi_i_p5_p7);
- psi_a_p5_p5 = _mm_adds_epi16(psi_r_p5_p5, psi_i_p5_p5);
- psi_a_p5_p3 = _mm_adds_epi16(psi_r_p5_p3, psi_i_p5_p3);
- psi_a_p5_p1 = _mm_adds_epi16(psi_r_p5_p1, psi_i_p5_p1);
- psi_a_p5_m1 = _mm_adds_epi16(psi_r_p5_m1, psi_i_p5_m1);
- psi_a_p5_m3 = _mm_adds_epi16(psi_r_p5_m3, psi_i_p5_m3);
- psi_a_p5_m5 = _mm_adds_epi16(psi_r_p5_m5, psi_i_p5_m5);
- psi_a_p5_m7 = _mm_adds_epi16(psi_r_p5_m7, psi_i_p5_m7);
- psi_a_p3_p7 = _mm_adds_epi16(psi_r_p3_p7, psi_i_p3_p7);
- psi_a_p3_p5 = _mm_adds_epi16(psi_r_p3_p5, psi_i_p3_p5);
- psi_a_p3_p3 = _mm_adds_epi16(psi_r_p3_p3, psi_i_p3_p3);
- psi_a_p3_p1 = _mm_adds_epi16(psi_r_p3_p1, psi_i_p3_p1);
- psi_a_p3_m1 = _mm_adds_epi16(psi_r_p3_m1, psi_i_p3_m1);
- psi_a_p3_m3 = _mm_adds_epi16(psi_r_p3_m3, psi_i_p3_m3);
- psi_a_p3_m5 = _mm_adds_epi16(psi_r_p3_m5, psi_i_p3_m5);
- psi_a_p3_m7 = _mm_adds_epi16(psi_r_p3_m7, psi_i_p3_m7);
- psi_a_p1_p7 = _mm_adds_epi16(psi_r_p1_p7, psi_i_p1_p7);
- psi_a_p1_p5 = _mm_adds_epi16(psi_r_p1_p5, psi_i_p1_p5);
- psi_a_p1_p3 = _mm_adds_epi16(psi_r_p1_p3, psi_i_p1_p3);
- psi_a_p1_p1 = _mm_adds_epi16(psi_r_p1_p1, psi_i_p1_p1);
- psi_a_p1_m1 = _mm_adds_epi16(psi_r_p1_m1, psi_i_p1_m1);
- psi_a_p1_m3 = _mm_adds_epi16(psi_r_p1_m3, psi_i_p1_m3);
- psi_a_p1_m5 = _mm_adds_epi16(psi_r_p1_m5, psi_i_p1_m5);
- psi_a_p1_m7 = _mm_adds_epi16(psi_r_p1_m7, psi_i_p1_m7);
- psi_a_m1_p7 = _mm_adds_epi16(psi_r_m1_p7, psi_i_m1_p7);
- psi_a_m1_p5 = _mm_adds_epi16(psi_r_m1_p5, psi_i_m1_p5);
- psi_a_m1_p3 = _mm_adds_epi16(psi_r_m1_p3, psi_i_m1_p3);
- psi_a_m1_p1 = _mm_adds_epi16(psi_r_m1_p1, psi_i_m1_p1);
- psi_a_m1_m1 = _mm_adds_epi16(psi_r_m1_m1, psi_i_m1_m1);
- psi_a_m1_m3 = _mm_adds_epi16(psi_r_m1_m3, psi_i_m1_m3);
- psi_a_m1_m5 = _mm_adds_epi16(psi_r_m1_m5, psi_i_m1_m5);
- psi_a_m1_m7 = _mm_adds_epi16(psi_r_m1_m7, psi_i_m1_m7);
- psi_a_m3_p7 = _mm_adds_epi16(psi_r_m3_p7, psi_i_m3_p7);
- psi_a_m3_p5 = _mm_adds_epi16(psi_r_m3_p5, psi_i_m3_p5);
- psi_a_m3_p3 = _mm_adds_epi16(psi_r_m3_p3, psi_i_m3_p3);
- psi_a_m3_p1 = _mm_adds_epi16(psi_r_m3_p1, psi_i_m3_p1);
- psi_a_m3_m1 = _mm_adds_epi16(psi_r_m3_m1, psi_i_m3_m1);
- psi_a_m3_m3 = _mm_adds_epi16(psi_r_m3_m3, psi_i_m3_m3);
- psi_a_m3_m5 = _mm_adds_epi16(psi_r_m3_m5, psi_i_m3_m5);
- psi_a_m3_m7 = _mm_adds_epi16(psi_r_m3_m7, psi_i_m3_m7);
- psi_a_m5_p7 = _mm_adds_epi16(psi_r_m5_p7, psi_i_m5_p7);
- psi_a_m5_p5 = _mm_adds_epi16(psi_r_m5_p5, psi_i_m5_p5);
- psi_a_m5_p3 = _mm_adds_epi16(psi_r_m5_p3, psi_i_m5_p3);
- psi_a_m5_p1 = _mm_adds_epi16(psi_r_m5_p1, psi_i_m5_p1);
- psi_a_m5_m1 = _mm_adds_epi16(psi_r_m5_m1, psi_i_m5_m1);
- psi_a_m5_m3 = _mm_adds_epi16(psi_r_m5_m3, psi_i_m5_m3);
- psi_a_m5_m5 = _mm_adds_epi16(psi_r_m5_m5, psi_i_m5_m5);
- psi_a_m5_m7 = _mm_adds_epi16(psi_r_m5_m7, psi_i_m5_m7);
- psi_a_m7_p7 = _mm_adds_epi16(psi_r_m7_p7, psi_i_m7_p7);
- psi_a_m7_p5 = _mm_adds_epi16(psi_r_m7_p5, psi_i_m7_p5);
- psi_a_m7_p3 = _mm_adds_epi16(psi_r_m7_p3, psi_i_m7_p3);
- psi_a_m7_p1 = _mm_adds_epi16(psi_r_m7_p1, psi_i_m7_p1);
- psi_a_m7_m1 = _mm_adds_epi16(psi_r_m7_m1, psi_i_m7_m1);
- psi_a_m7_m3 = _mm_adds_epi16(psi_r_m7_m3, psi_i_m7_m3);
- psi_a_m7_m5 = _mm_adds_epi16(psi_r_m7_m5, psi_i_m7_m5);
- psi_a_m7_m7 = _mm_adds_epi16(psi_r_m7_m7, psi_i_m7_m7);
-
- // Computing different multiples of ||h0||^2
- // x=1, y=1
- ch_mag_2_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,ONE_OVER_FOUR_SQRT_42);
- ch_mag_2_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_2_over_42_with_sigma2,1);
- // x=1, y=3
- ch_mag_10_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,FIVE_OVER_FOUR_SQRT_42);
- ch_mag_10_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_10_over_42_with_sigma2,1);
- // x=1, x=5
- ch_mag_26_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,THIRTEEN_OVER_FOUR_SQRT_42);
- ch_mag_26_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_26_over_42_with_sigma2,1);
- // x=1, y=7
- ch_mag_50_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42);
- ch_mag_50_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_50_over_42_with_sigma2,1);
- // x=3, y=3
- ch_mag_18_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,NINE_OVER_FOUR_SQRT_42);
- ch_mag_18_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_18_over_42_with_sigma2,1);
- // x=3, y=5
- ch_mag_34_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,SEVENTEEN_OVER_FOUR_SQRT_42);
- ch_mag_34_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_34_over_42_with_sigma2,1);
- // x=3, y=7
- ch_mag_58_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYNINE_OVER_FOUR_SQRT_42);
- ch_mag_58_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_58_over_42_with_sigma2,2);
- // x=5, y=5
- ch_mag_50_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42);
- ch_mag_50_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_50_over_42_with_sigma2,1);
- // x=5, y=7
- ch_mag_74_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,THIRTYSEVEN_OVER_FOUR_SQRT_42);
- ch_mag_74_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_74_over_42_with_sigma2,2);
- // x=7, y=7
- ch_mag_98_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,FORTYNINE_OVER_FOUR_SQRT_42);
- ch_mag_98_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_98_over_42_with_sigma2,2);
-
- // Computing Metrics
- xmm1 = _mm_adds_epi16(psi_a_p7_p7, y0_p_7_7);
- bit_met_p7_p7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p7_p5, y0_p_7_5);
- bit_met_p7_p5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p7_p3, y0_p_7_3);
- bit_met_p7_p3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p7_p1, y0_p_7_1);
- bit_met_p7_p1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p7_m1, y0_m_7_1);
- bit_met_p7_m1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p7_m3, y0_m_7_3);
- bit_met_p7_m3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p7_m5, y0_m_7_5);
- bit_met_p7_m5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p7_m7, y0_m_7_7);
- bit_met_p7_m7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p5_p7, y0_p_5_7);
- bit_met_p5_p7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p5_p5, y0_p_5_5);
- bit_met_p5_p5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p5_p3, y0_p_5_3);
- bit_met_p5_p3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p5_p1, y0_p_5_1);
- bit_met_p5_p1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p5_m1, y0_m_5_1);
- bit_met_p5_m1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p5_m3, y0_m_5_3);
- bit_met_p5_m3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p5_m5, y0_m_5_5);
- bit_met_p5_m5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p5_m7, y0_m_5_7);
- bit_met_p5_m7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p3_p7, y0_p_3_7);
- bit_met_p3_p7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p3_p5, y0_p_3_5);
- bit_met_p3_p5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p3_p3, y0_p_3_3);
- bit_met_p3_p3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p3_p1, y0_p_3_1);
- bit_met_p3_p1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p3_m1, y0_m_3_1);
- bit_met_p3_m1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p3_m3, y0_m_3_3);
- bit_met_p3_m3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p3_m5, y0_m_3_5);
- bit_met_p3_m5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p3_m7, y0_m_3_7);
- bit_met_p3_m7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p1_p7, y0_p_1_7);
- bit_met_p1_p7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p1_p5, y0_p_1_5);
- bit_met_p1_p5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p1_p3, y0_p_1_3);
- bit_met_p1_p3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p1_p1, y0_p_1_1);
- bit_met_p1_p1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p1_m1, y0_m_1_1);
- bit_met_p1_m1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p1_m3, y0_m_1_3);
- bit_met_p1_m3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p1_m5, y0_m_1_5);
- bit_met_p1_m5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm1 = _mm_adds_epi16(psi_a_p1_m7, y0_m_1_7);
- bit_met_p1_m7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
-
- xmm1 = _mm_subs_epi16(psi_a_m1_p7, y0_m_1_7);
- bit_met_m1_p7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m1_p5, y0_m_1_5);
- bit_met_m1_p5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m1_p3, y0_m_1_3);
- bit_met_m1_p3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m1_p1, y0_m_1_1);
- bit_met_m1_p1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m1_m1, y0_p_1_1);
- bit_met_m1_m1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m1_m3, y0_p_1_3);
- bit_met_m1_m3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m1_m5, y0_p_1_5);
- bit_met_m1_m5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m1_m7, y0_p_1_7);
- bit_met_m1_m7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m3_p7, y0_m_3_7);
- bit_met_m3_p7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m3_p5, y0_m_3_5);
- bit_met_m3_p5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m3_p3, y0_m_3_3);
- bit_met_m3_p3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m3_p1, y0_m_3_1);
- bit_met_m3_p1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m3_m1, y0_p_3_1);
- bit_met_m3_m1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m3_m3, y0_p_3_3);
- bit_met_m3_m3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m3_m5, y0_p_3_5);
- bit_met_m3_m5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m3_m7, y0_p_3_7);
- bit_met_m3_m7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m5_p7, y0_m_5_7);
- bit_met_m5_p7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m5_p5, y0_m_5_5);
- bit_met_m5_p5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m5_p3, y0_m_5_3);
- bit_met_m5_p3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m5_p1, y0_m_5_1);
- bit_met_m5_p1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m5_m1, y0_p_5_1);
- bit_met_m5_m1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m5_m3, y0_p_5_3);
- bit_met_m5_m3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m5_m5, y0_p_5_5);
- bit_met_m5_m5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m5_m7, y0_p_5_7);
- bit_met_m5_m7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m7_p7, y0_m_7_7);
- bit_met_m7_p7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m7_p5, y0_m_7_5);
- bit_met_m7_p5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m7_p3, y0_m_7_3);
- bit_met_m7_p3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m7_p1, y0_m_7_1);
- bit_met_m7_p1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m7_m1, y0_p_7_1);
- bit_met_m7_m1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m7_m3, y0_p_7_3);
- bit_met_m7_m3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m7_m5, y0_p_7_5);
- bit_met_m7_m5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm1 = _mm_subs_epi16(psi_a_m7_m7, y0_p_7_7);
- bit_met_m7_m7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
-
- // Detection for 1st bit (LTE mapping)
- // bit = 1
- xmm0 = _mm_max_epi16(bit_met_m7_p7, bit_met_m7_p5);
- xmm1 = _mm_max_epi16(bit_met_m7_p3, bit_met_m7_p1);
- xmm2 = _mm_max_epi16(bit_met_m7_m1, bit_met_m7_m3);
- xmm3 = _mm_max_epi16(bit_met_m7_m5, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m5_p7, bit_met_m5_p5);
- xmm1 = _mm_max_epi16(bit_met_m5_p3, bit_met_m5_p1);
- xmm2 = _mm_max_epi16(bit_met_m5_m1, bit_met_m5_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m5_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m3_p7, bit_met_m3_p5);
- xmm1 = _mm_max_epi16(bit_met_m3_p3, bit_met_m3_p1);
- xmm2 = _mm_max_epi16(bit_met_m3_m1, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m3_m5, bit_met_m3_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_p7, bit_met_m1_p5);
- xmm1 = _mm_max_epi16(bit_met_m1_p3, bit_met_m1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m1_m3);
- xmm3 = _mm_max_epi16(bit_met_m1_m5, bit_met_m1_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- // bit = 0
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p7_p5);
- xmm1 = _mm_max_epi16(bit_met_p7_p3, bit_met_p7_p1);
- xmm2 = _mm_max_epi16(bit_met_p7_m1, bit_met_p7_m3);
- xmm3 = _mm_max_epi16(bit_met_p7_m5, bit_met_p7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_p7, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p5_p3, bit_met_p5_p1);
- xmm2 = _mm_max_epi16(bit_met_p5_m1, bit_met_p5_m3);
- xmm3 = _mm_max_epi16(bit_met_p5_m5, bit_met_p5_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_p7, bit_met_p3_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p3_p1);
- xmm2 = _mm_max_epi16(bit_met_p3_m1, bit_met_p3_m3);
- xmm3 = _mm_max_epi16(bit_met_p3_m5, bit_met_p3_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_p7, bit_met_p1_p5);
- xmm1 = _mm_max_epi16(bit_met_p1_p3, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_p1_m1, bit_met_p1_m3);
- xmm3 = _mm_max_epi16(bit_met_p1_m5, bit_met_p1_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y0r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 2nd bit (LTE mapping)
- // bit = 1
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- // bit = 0
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m7_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m7_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y1r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 3rd bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_m7_m7, bit_met_m7_m5);
- xmm1 = _mm_max_epi16(bit_met_m7_m3, bit_met_m7_m1);
- xmm2 = _mm_max_epi16(bit_met_m7_p1, bit_met_m7_p3);
- xmm3 = _mm_max_epi16(bit_met_m7_p5, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m5_m7, bit_met_m5_m5);
- xmm1 = _mm_max_epi16(bit_met_m5_m3, bit_met_m5_m1);
- xmm2 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_m7, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p5_m3, bit_met_p5_m1);
- xmm2 = _mm_max_epi16(bit_met_p5_p1, bit_met_p5_p3);
- xmm3 = _mm_max_epi16(bit_met_p5_p5, bit_met_p5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p7_m5);
- xmm1 = _mm_max_epi16(bit_met_p7_m3, bit_met_p7_m1);
- xmm2 = _mm_max_epi16(bit_met_p7_p1, bit_met_p7_p3);
- xmm3 = _mm_max_epi16(bit_met_p7_p5, bit_met_p7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_m3_m7, bit_met_m3_m5);
- xmm1 = _mm_max_epi16(bit_met_m3_m3, bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_m3_p1, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_p5, bit_met_m3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_m7, bit_met_m1_m5);
- xmm1 = _mm_max_epi16(bit_met_m1_m3, bit_met_m1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m1_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p5, bit_met_m1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_m7, bit_met_p1_m5);
- xmm1 = _mm_max_epi16(bit_met_p1_m3, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1, bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_p5, bit_met_p1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_m7, bit_met_p3_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p3_m1);
- xmm2 = _mm_max_epi16(bit_met_p3_p1, bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_p5, bit_met_p3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y2r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 4th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m7_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y0i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
-
- // Detection for 5th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_m7_m7, bit_met_m7_m5);
- xmm1 = _mm_max_epi16(bit_met_m7_m3, bit_met_m7_m1);
- xmm2 = _mm_max_epi16(bit_met_m7_p1, bit_met_m7_p3);
- xmm3 = _mm_max_epi16(bit_met_m7_p5, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_m7, bit_met_m1_m5);
- xmm1 = _mm_max_epi16(bit_met_m1_m3, bit_met_m1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m1_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p5, bit_met_m1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_m7, bit_met_p1_m5);
- xmm1 = _mm_max_epi16(bit_met_p1_m3, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1, bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_p5, bit_met_p1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p7_m5);
- xmm1 = _mm_max_epi16(bit_met_p7_m3, bit_met_p7_m1);
- xmm2 = _mm_max_epi16(bit_met_p7_p1, bit_met_p7_p3);
- xmm3 = _mm_max_epi16(bit_met_p7_p5, bit_met_p7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_m5_m7, bit_met_m5_m5);
- xmm1 = _mm_max_epi16(bit_met_m5_m3, bit_met_m5_m1);
- xmm2 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m3_m7, bit_met_m3_m5);
- xmm1 = _mm_max_epi16(bit_met_m3_m3, bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_m3_p1, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_p5, bit_met_m3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_m7, bit_met_p3_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p3_m1);
- xmm2 = _mm_max_epi16(bit_met_p3_p1, bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_p5, bit_met_p3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_m7, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p5_m3, bit_met_p5_m1);
- xmm2 = _mm_max_epi16(bit_met_p5_p1, bit_met_p5_p3);
- xmm3 = _mm_max_epi16(bit_met_p5_p5, bit_met_p5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y1i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 6th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m7_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y2i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
-
- // map to output stream, difficult to do in SIMD since we have 6 16bit LLRs
- // RE 1
- j = 24*i;
- stream0_out[j + 0] = ((short *)&y0r)[0];
- stream0_out[j + 1] = ((short *)&y1r)[0];
- stream0_out[j + 2] = ((short *)&y2r)[0];
- stream0_out[j + 3] = ((short *)&y0i)[0];
- stream0_out[j + 4] = ((short *)&y1i)[0];
- stream0_out[j + 5] = ((short *)&y2i)[0];
- // RE 2
- stream0_out[j + 6] = ((short *)&y0r)[1];
- stream0_out[j + 7] = ((short *)&y1r)[1];
- stream0_out[j + 8] = ((short *)&y2r)[1];
- stream0_out[j + 9] = ((short *)&y0i)[1];
- stream0_out[j + 10] = ((short *)&y1i)[1];
- stream0_out[j + 11] = ((short *)&y2i)[1];
- // RE 3
- stream0_out[j + 12] = ((short *)&y0r)[2];
- stream0_out[j + 13] = ((short *)&y1r)[2];
- stream0_out[j + 14] = ((short *)&y2r)[2];
- stream0_out[j + 15] = ((short *)&y0i)[2];
- stream0_out[j + 16] = ((short *)&y1i)[2];
- stream0_out[j + 17] = ((short *)&y2i)[2];
- // RE 4
- stream0_out[j + 18] = ((short *)&y0r)[3];
- stream0_out[j + 19] = ((short *)&y1r)[3];
- stream0_out[j + 20] = ((short *)&y2r)[3];
- stream0_out[j + 21] = ((short *)&y0i)[3];
- stream0_out[j + 22] = ((short *)&y1i)[3];
- stream0_out[j + 23] = ((short *)&y2i)[3];
- // RE 5
- stream0_out[j + 24] = ((short *)&y0r)[4];
- stream0_out[j + 25] = ((short *)&y1r)[4];
- stream0_out[j + 26] = ((short *)&y2r)[4];
- stream0_out[j + 27] = ((short *)&y0i)[4];
- stream0_out[j + 28] = ((short *)&y1i)[4];
- stream0_out[j + 29] = ((short *)&y2i)[4];
- // RE 6
- stream0_out[j + 30] = ((short *)&y0r)[5];
- stream0_out[j + 31] = ((short *)&y1r)[5];
- stream0_out[j + 32] = ((short *)&y2r)[5];
- stream0_out[j + 33] = ((short *)&y0i)[5];
- stream0_out[j + 34] = ((short *)&y1i)[5];
- stream0_out[j + 35] = ((short *)&y2i)[5];
- // RE 7
- stream0_out[j + 36] = ((short *)&y0r)[6];
- stream0_out[j + 37] = ((short *)&y1r)[6];
- stream0_out[j + 38] = ((short *)&y2r)[6];
- stream0_out[j + 39] = ((short *)&y0i)[6];
- stream0_out[j + 40] = ((short *)&y1i)[6];
- stream0_out[j + 41] = ((short *)&y2i)[6];
- // RE 8
- stream0_out[j + 42] = ((short *)&y0r)[7];
- stream0_out[j + 43] = ((short *)&y1r)[7];
- stream0_out[j + 44] = ((short *)&y2r)[7];
- stream0_out[j + 45] = ((short *)&y0i)[7];
- stream0_out[j + 46] = ((short *)&y1i)[7];
- stream0_out[j + 47] = ((short *)&y2i)[7];
-#elif defined(__arm__)
-
-#endif
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-}
-
-
-int dlsch_64qam_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int32_t **rxdataF_comp_i,
- int32_t **dl_ch_mag,
- int32_t **rho_i,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- int16_t **llr16p)
-{
-
- int16_t *rxF = (int16_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rxF_i = (int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag = (int16_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho = (int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- //first symbol has different structure due to more pilots
- if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }
-
- AssertFatal(llr16!=NULL,"dlsch_16qam_64qam_llr:llr is null, symbol %d\n",symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- qam64_qpsk((short *)rxF,
- (short *)rxF_i,
- (short *)ch_mag,
- (short *)llr16,
- (short *)rho,
- len);
-
- llr16 += (6*len);
- *llr16p = (short *)llr16;
- return(0);
-}
-
-
-
-void qam64_qam16(short *stream0_in,
- short *stream1_in,
- short *ch_mag,
- short *ch_mag_i,
- short *stream0_out,
- short *rho01,
- int length
- )
-{
-
- /*
- Author: S. Wagner
- Date: 31-07-12
-
- Input:
- stream0_in: MF filter for 1st stream, i.e., y0=h0'*y
- stream1_in: MF filter for 2nd stream, i.e., y1=h1'*y
- ch_mag: 4*h0/sqrt(42), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- ch_mag_i: 4*h1/sqrt(42), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- rho01: Channel cross correlation, i.e., h1'*h0
-
- Output:
- stream0_out: output LLRs for 1st stream
- */
-
-#if defined(__x86_64__) || defined(__i386__)
-
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *ch_mag_128i = (__m128i *)ch_mag;
- __m128i *ch_mag_128i_i = (__m128i *)ch_mag_i;
-
- __m128i ONE_OVER_SQRT_42 = _mm_set1_epi16(10112); // round(1/sqrt(42)*2^16)
- __m128i THREE_OVER_SQRT_42 = _mm_set1_epi16(30337); // round(3/sqrt(42)*2^16)
- __m128i FIVE_OVER_SQRT_42 = _mm_set1_epi16(25281); // round(5/sqrt(42)*2^15)
- __m128i SEVEN_OVER_SQRT_42 = _mm_set1_epi16(17697); // round(5/sqrt(42)*2^15)
- __m128i FORTYNINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(30969); // round(49/(4*sqrt(42))*2^14), Q2.14
- __m128i THIRTYSEVEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(23385); // round(37/(4*sqrt(42))*2^14), Q2.14
- __m128i TWENTYFIVE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(31601); // round(25/(4*sqrt(42))*2^15)
- __m128i TWENTYNINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(18329); // round(29/(4*sqrt(42))*2^15), Q2.14
- __m128i SEVENTEEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(21489); // round(17/(4*sqrt(42))*2^15)
- __m128i NINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(11376); // round(9/(4*sqrt(42))*2^15)
- __m128i THIRTEEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(16433); // round(13/(4*sqrt(42))*2^15)
- __m128i FIVE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(6320); // round(5/(4*sqrt(42))*2^15)
- __m128i ONE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(1264); // round(1/(4*sqrt(42))*2^15)
- __m128i ONE_OVER_SQRT_10_Q15 = _mm_set1_epi16(10362); // round(1/sqrt(10)*2^15)
- __m128i THREE_OVER_SQRT_10 = _mm_set1_epi16(31086); // round(3/sqrt(10)*2^15)
- __m128i SQRT_10_OVER_FOUR = _mm_set1_epi16(25905); // round(sqrt(10)/4*2^15)
-
-
- __m128i ch_mag_int;
- __m128i ch_mag_des;
- __m128i ch_mag_98_over_42_with_sigma2;
- __m128i ch_mag_74_over_42_with_sigma2;
- __m128i ch_mag_58_over_42_with_sigma2;
- __m128i ch_mag_50_over_42_with_sigma2;
- __m128i ch_mag_34_over_42_with_sigma2;
- __m128i ch_mag_18_over_42_with_sigma2;
- __m128i ch_mag_26_over_42_with_sigma2;
- __m128i ch_mag_10_over_42_with_sigma2;
- __m128i ch_mag_2_over_42_with_sigma2;
- __m128i y0r_one_over_sqrt_21;
- __m128i y0r_three_over_sqrt_21;
- __m128i y0r_five_over_sqrt_21;
- __m128i y0r_seven_over_sqrt_21;
- __m128i y0i_one_over_sqrt_21;
- __m128i y0i_three_over_sqrt_21;
- __m128i y0i_five_over_sqrt_21;
- __m128i y0i_seven_over_sqrt_21;
-
-#elif defined(__arm__)
-
-#endif
- int i,j;
-
-
-
- for (i=0; i>2; i+=2) {
-
-#if defined(__x86_64__) || defined(__i386__)
- // Get rho
- xmm0 = rho01_128i[i];
- xmm1 = rho01_128i[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // Compute the different rhos
- rho_rpi_1_1 = _mm_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_42);
- rho_rmi_1_1 = _mm_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_42);
- rho_rpi_3_3 = _mm_mulhi_epi16(rho_rpi, THREE_OVER_SQRT_42);
- rho_rmi_3_3 = _mm_mulhi_epi16(rho_rmi, THREE_OVER_SQRT_42);
- rho_rpi_5_5 = _mm_mulhi_epi16(rho_rpi, FIVE_OVER_SQRT_42);
- rho_rmi_5_5 = _mm_mulhi_epi16(rho_rmi, FIVE_OVER_SQRT_42);
- rho_rpi_7_7 = _mm_mulhi_epi16(rho_rpi, SEVEN_OVER_SQRT_42);
- rho_rmi_7_7 = _mm_mulhi_epi16(rho_rmi, SEVEN_OVER_SQRT_42);
-
- rho_rpi_5_5 = _mm_slli_epi16(rho_rpi_5_5, 1);
- rho_rmi_5_5 = _mm_slli_epi16(rho_rmi_5_5, 1);
- rho_rpi_7_7 = _mm_slli_epi16(rho_rpi_7_7, 2);
- rho_rmi_7_7 = _mm_slli_epi16(rho_rmi_7_7, 2);
-
- xmm4 = _mm_mulhi_epi16(xmm2, ONE_OVER_SQRT_42);
- xmm5 = _mm_mulhi_epi16(xmm3, ONE_OVER_SQRT_42);
- xmm6 = _mm_mulhi_epi16(xmm3, THREE_OVER_SQRT_42);
- xmm7 = _mm_mulhi_epi16(xmm3, FIVE_OVER_SQRT_42);
- xmm8 = _mm_mulhi_epi16(xmm3, SEVEN_OVER_SQRT_42);
- xmm7 = _mm_slli_epi16(xmm7, 1);
- xmm8 = _mm_slli_epi16(xmm8, 2);
-
- rho_rpi_1_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_1_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_1_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_1_5 = _mm_subs_epi16(xmm4, xmm7);
- rho_rpi_1_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_1_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, THREE_OVER_SQRT_42);
- rho_rpi_3_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_3_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_3_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_3_5 = _mm_subs_epi16(xmm4, xmm7);
- rho_rpi_3_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_3_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, FIVE_OVER_SQRT_42);
- xmm4 = _mm_slli_epi16(xmm4, 1);
- rho_rpi_5_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_5_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_5_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_5_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_5_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_5_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, SEVEN_OVER_SQRT_42);
- xmm4 = _mm_slli_epi16(xmm4, 2);
- rho_rpi_7_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_7_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_7_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_7_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_7_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_7_5 = _mm_subs_epi16(xmm4, xmm7);
-
- // Rearrange interfering MF output
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- // Psi_r calculation from rho_rpi or rho_rmi
- xmm0 = _mm_setzero_si128(); // ZERO for abs_pi16
- xmm2 = _mm_subs_epi16(rho_rpi_7_7, y1r);
- psi_r_p7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_5, y1r);
- psi_r_p7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_3, y1r);
- psi_r_p7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_1, y1r);
- psi_r_p7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_1, y1r);
- psi_r_p7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_3, y1r);
- psi_r_p7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_5, y1r);
- psi_r_p7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_7, y1r);
- psi_r_p7_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_7, y1r);
- psi_r_p5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_5, y1r);
- psi_r_p5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_3, y1r);
- psi_r_p5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_1, y1r);
- psi_r_p5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_1, y1r);
- psi_r_p5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_3, y1r);
- psi_r_p5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_5, y1r);
- psi_r_p5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_7, y1r);
- psi_r_p5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_7, y1r);
- psi_r_p3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_5, y1r);
- psi_r_p3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_3, y1r);
- psi_r_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_1, y1r);
- psi_r_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_1, y1r);
- psi_r_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_3, y1r);
- psi_r_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_5, y1r);
- psi_r_p3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_7, y1r);
- psi_r_p3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_7, y1r);
- psi_r_p1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_5, y1r);
- psi_r_p1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_3, y1r);
- psi_r_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_1, y1r);
- psi_r_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_1, y1r);
- psi_r_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_3, y1r);
- psi_r_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_5, y1r);
- psi_r_p1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_7, y1r);
- psi_r_p1_m7 = _mm_abs_epi16(xmm2);
-
- xmm2 = _mm_adds_epi16(rho_rmi_1_7, y1r);
- psi_r_m1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_5, y1r);
- psi_r_m1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_3, y1r);
- psi_r_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_1, y1r);
- psi_r_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_1, y1r);
- psi_r_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_3, y1r);
- psi_r_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_5, y1r);
- psi_r_m1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_7, y1r);
- psi_r_m1_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_7, y1r);
- psi_r_m3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_5, y1r);
- psi_r_m3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_3, y1r);
- psi_r_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_1, y1r);
- psi_r_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_1, y1r);
- psi_r_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_3, y1r);
- psi_r_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_5, y1r);
- psi_r_m3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_7, y1r);
- psi_r_m3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_7, y1r);
- psi_r_m5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_5, y1r);
- psi_r_m5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_3, y1r);
- psi_r_m5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_1, y1r);
- psi_r_m5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_1, y1r);
- psi_r_m5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_3, y1r);
- psi_r_m5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_5, y1r);
- psi_r_m5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_7, y1r);
- psi_r_m5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_7, y1r);
- psi_r_m7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_5, y1r);
- psi_r_m7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_3, y1r);
- psi_r_m7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_1, y1r);
- psi_r_m7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_1, y1r);
- psi_r_m7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_3, y1r);
- psi_r_m7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_5, y1r);
- psi_r_m7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_7, y1r);
- psi_r_m7_m7 = _mm_abs_epi16(xmm2);
-
- // Psi_i calculation from rho_rpi or rho_rmi
- xmm2 = _mm_subs_epi16(rho_rmi_7_7, y1i);
- psi_i_p7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_7, y1i);
- psi_i_p7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_7, y1i);
- psi_i_p7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_7, y1i);
- psi_i_p7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_7, y1i);
- psi_i_p7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_7, y1i);
- psi_i_p7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_7, y1i);
- psi_i_p7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_7, y1i);
- psi_i_p7_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_5, y1i);
- psi_i_p5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_5, y1i);
- psi_i_p5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_5, y1i);
- psi_i_p5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_5, y1i);
- psi_i_p5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_5, y1i);
- psi_i_p5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_5, y1i);
- psi_i_p5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_5, y1i);
- psi_i_p5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_5, y1i);
- psi_i_p5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_3, y1i);
- psi_i_p3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_3, y1i);
- psi_i_p3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_3, y1i);
- psi_i_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_3, y1i);
- psi_i_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_3, y1i);
- psi_i_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_3, y1i);
- psi_i_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_3, y1i);
- psi_i_p3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_3, y1i);
- psi_i_p3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_1, y1i);
- psi_i_p1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_1, y1i);
- psi_i_p1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_1, y1i);
- psi_i_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_1, y1i);
- psi_i_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_1, y1i);
- psi_i_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_1, y1i);
- psi_i_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_1, y1i);
- psi_i_p1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_1, y1i);
- psi_i_p1_m7 = _mm_abs_epi16(xmm2);
-
- xmm2 = _mm_subs_epi16(rho_rpi_7_1, y1i);
- psi_i_m1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_1, y1i);
- psi_i_m1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_1, y1i);
- psi_i_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_1, y1i);
- psi_i_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_1, y1i);
- psi_i_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_1, y1i);
- psi_i_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_1, y1i);
- psi_i_m1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_1, y1i);
- psi_i_m1_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_3, y1i);
- psi_i_m3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_3, y1i);
- psi_i_m3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_3, y1i);
- psi_i_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_3, y1i);
- psi_i_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_3, y1i);
- psi_i_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_3, y1i);
- psi_i_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_3, y1i);
- psi_i_m3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_3, y1i);
- psi_i_m3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_5, y1i);
- psi_i_m5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_5, y1i);
- psi_i_m5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_5, y1i);
- psi_i_m5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_5, y1i);
- psi_i_m5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_5, y1i);
- psi_i_m5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_5, y1i);
- psi_i_m5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_5, y1i);
- psi_i_m5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_5, y1i);
- psi_i_m5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_7, y1i);
- psi_i_m7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_7, y1i);
- psi_i_m7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_7, y1i);
- psi_i_m7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_7, y1i);
- psi_i_m7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_7, y1i);
- psi_i_m7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_7, y1i);
- psi_i_m7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_7, y1i);
- psi_i_m7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_7, y1i);
- psi_i_m7_m7 = _mm_abs_epi16(xmm2);
-
-
- // Rearrange desired MF output
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- // Rearrange desired channel magnitudes
- xmm2 = ch_mag_128i[i]; // = [|h|^2(1),|h|^2(1),|h|^2(2),|h|^2(2)]*(2/sqrt(10))
- xmm3 = ch_mag_128i[i+1]; // = [|h|^2(3),|h|^2(3),|h|^2(4),|h|^2(4)]*(2/sqrt(10))
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- ch_mag_des = _mm_unpacklo_epi64(xmm2,xmm3);
-
- // Rearrange interfering channel magnitudes
- xmm2 = ch_mag_128i_i[i];
- xmm3 = ch_mag_128i_i[i+1];
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- ch_mag_int = _mm_unpacklo_epi64(xmm2,xmm3);
-
- y0r_one_over_sqrt_21 = _mm_mulhi_epi16(y0r, ONE_OVER_SQRT_42);
- y0r_three_over_sqrt_21 = _mm_mulhi_epi16(y0r, THREE_OVER_SQRT_42);
- y0r_five_over_sqrt_21 = _mm_mulhi_epi16(y0r, FIVE_OVER_SQRT_42);
- y0r_five_over_sqrt_21 = _mm_slli_epi16(y0r_five_over_sqrt_21, 1);
- y0r_seven_over_sqrt_21 = _mm_mulhi_epi16(y0r, SEVEN_OVER_SQRT_42);
- y0r_seven_over_sqrt_21 = _mm_slli_epi16(y0r_seven_over_sqrt_21, 2); // Q2.14
-
- y0i_one_over_sqrt_21 = _mm_mulhi_epi16(y0i, ONE_OVER_SQRT_42);
- y0i_three_over_sqrt_21 = _mm_mulhi_epi16(y0i, THREE_OVER_SQRT_42);
- y0i_five_over_sqrt_21 = _mm_mulhi_epi16(y0i, FIVE_OVER_SQRT_42);
- y0i_five_over_sqrt_21 = _mm_slli_epi16(y0i_five_over_sqrt_21, 1);
- y0i_seven_over_sqrt_21 = _mm_mulhi_epi16(y0i, SEVEN_OVER_SQRT_42);
- y0i_seven_over_sqrt_21 = _mm_slli_epi16(y0i_seven_over_sqrt_21, 2); // Q2.14
-
- y0_p_7_1 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_7_3 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_7_5 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_7_7 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_5_1 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_5_3 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_5_5 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_5_7 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_3_1 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_3_3 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_3_5 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_3_7 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_1_1 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_1_3 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_1_5 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_1_7 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21);
-
- y0_m_1_1 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_1_3 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_1_5 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_1_7 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_3_1 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_3_3 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_3_5 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_3_7 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_5_1 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_5_3 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_5_5 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_5_7 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_7_1 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_7_3 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_7_5 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_7_7 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21);
-
- interference_abs_epi16(psi_r_p7_p7, ch_mag_int, a_r_p7_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p7_p5, ch_mag_int, a_r_p7_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p7_p3, ch_mag_int, a_r_p7_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p7_p1, ch_mag_int, a_r_p7_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p7_m1, ch_mag_int, a_r_p7_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p7_m3, ch_mag_int, a_r_p7_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p7_m5, ch_mag_int, a_r_p7_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p7_m7, ch_mag_int, a_r_p7_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p5_p7, ch_mag_int, a_r_p5_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p5_p5, ch_mag_int, a_r_p5_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p5_p3, ch_mag_int, a_r_p5_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p5_p1, ch_mag_int, a_r_p5_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p5_m1, ch_mag_int, a_r_p5_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p5_m3, ch_mag_int, a_r_p5_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p5_m5, ch_mag_int, a_r_p5_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p5_m7, ch_mag_int, a_r_p5_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_p7, ch_mag_int, a_r_p3_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_p5, ch_mag_int, a_r_p3_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_p3, ch_mag_int, a_r_p3_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_p1, ch_mag_int, a_r_p3_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_m1, ch_mag_int, a_r_p3_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_m3, ch_mag_int, a_r_p3_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_m5, ch_mag_int, a_r_p3_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p3_m7, ch_mag_int, a_r_p3_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_p7, ch_mag_int, a_r_p1_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_p5, ch_mag_int, a_r_p1_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_p3, ch_mag_int, a_r_p1_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_p1, ch_mag_int, a_r_p1_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_m1, ch_mag_int, a_r_p1_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_m3, ch_mag_int, a_r_p1_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_m5, ch_mag_int, a_r_p1_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_p1_m7, ch_mag_int, a_r_p1_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_p7, ch_mag_int, a_r_m1_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_p5, ch_mag_int, a_r_m1_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_p3, ch_mag_int, a_r_m1_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_p1, ch_mag_int, a_r_m1_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_m1, ch_mag_int, a_r_m1_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_m3, ch_mag_int, a_r_m1_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_m5, ch_mag_int, a_r_m1_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m1_m7, ch_mag_int, a_r_m1_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_p7, ch_mag_int, a_r_m3_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_p5, ch_mag_int, a_r_m3_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_p3, ch_mag_int, a_r_m3_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_p1, ch_mag_int, a_r_m3_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_m1, ch_mag_int, a_r_m3_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_m3, ch_mag_int, a_r_m3_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_m5, ch_mag_int, a_r_m3_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m3_m7, ch_mag_int, a_r_m3_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m5_p7, ch_mag_int, a_r_m5_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m5_p5, ch_mag_int, a_r_m5_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m5_p3, ch_mag_int, a_r_m5_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m5_p1, ch_mag_int, a_r_m5_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m5_m1, ch_mag_int, a_r_m5_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m5_m3, ch_mag_int, a_r_m5_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m5_m5, ch_mag_int, a_r_m5_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m5_m7, ch_mag_int, a_r_m5_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m7_p7, ch_mag_int, a_r_m7_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m7_p5, ch_mag_int, a_r_m7_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m7_p3, ch_mag_int, a_r_m7_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m7_p1, ch_mag_int, a_r_m7_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m7_m1, ch_mag_int, a_r_m7_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m7_m3, ch_mag_int, a_r_m7_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m7_m5, ch_mag_int, a_r_m7_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_r_m7_m7, ch_mag_int, a_r_m7_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
-
- interference_abs_epi16(psi_i_p7_p7, ch_mag_int, a_i_p7_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p7_p5, ch_mag_int, a_i_p7_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p7_p3, ch_mag_int, a_i_p7_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p7_p1, ch_mag_int, a_i_p7_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p7_m1, ch_mag_int, a_i_p7_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p7_m3, ch_mag_int, a_i_p7_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p7_m5, ch_mag_int, a_i_p7_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p7_m7, ch_mag_int, a_i_p7_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p5_p7, ch_mag_int, a_i_p5_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p5_p5, ch_mag_int, a_i_p5_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p5_p3, ch_mag_int, a_i_p5_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p5_p1, ch_mag_int, a_i_p5_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p5_m1, ch_mag_int, a_i_p5_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p5_m3, ch_mag_int, a_i_p5_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p5_m5, ch_mag_int, a_i_p5_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p5_m7, ch_mag_int, a_i_p5_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_p7, ch_mag_int, a_i_p3_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_p5, ch_mag_int, a_i_p3_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_p3, ch_mag_int, a_i_p3_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_p1, ch_mag_int, a_i_p3_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_m1, ch_mag_int, a_i_p3_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_m3, ch_mag_int, a_i_p3_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_m5, ch_mag_int, a_i_p3_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p3_m7, ch_mag_int, a_i_p3_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_p7, ch_mag_int, a_i_p1_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_p5, ch_mag_int, a_i_p1_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_p3, ch_mag_int, a_i_p1_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_p1, ch_mag_int, a_i_p1_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_m1, ch_mag_int, a_i_p1_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_m3, ch_mag_int, a_i_p1_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_m5, ch_mag_int, a_i_p1_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_p1_m7, ch_mag_int, a_i_p1_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_p7, ch_mag_int, a_i_m1_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_p5, ch_mag_int, a_i_m1_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_p3, ch_mag_int, a_i_m1_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_p1, ch_mag_int, a_i_m1_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_m1, ch_mag_int, a_i_m1_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_m3, ch_mag_int, a_i_m1_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_m5, ch_mag_int, a_i_m1_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m1_m7, ch_mag_int, a_i_m1_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_p7, ch_mag_int, a_i_m3_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_p5, ch_mag_int, a_i_m3_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_p3, ch_mag_int, a_i_m3_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_p1, ch_mag_int, a_i_m3_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_m1, ch_mag_int, a_i_m3_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_m3, ch_mag_int, a_i_m3_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_m5, ch_mag_int, a_i_m3_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m3_m7, ch_mag_int, a_i_m3_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m5_p7, ch_mag_int, a_i_m5_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m5_p5, ch_mag_int, a_i_m5_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m5_p3, ch_mag_int, a_i_m5_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m5_p1, ch_mag_int, a_i_m5_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m5_m1, ch_mag_int, a_i_m5_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m5_m3, ch_mag_int, a_i_m5_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m5_m5, ch_mag_int, a_i_m5_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m5_m7, ch_mag_int, a_i_m5_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m7_p7, ch_mag_int, a_i_m7_p7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m7_p5, ch_mag_int, a_i_m7_p5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m7_p3, ch_mag_int, a_i_m7_p3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m7_p1, ch_mag_int, a_i_m7_p1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m7_m1, ch_mag_int, a_i_m7_m1, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m7_m3, ch_mag_int, a_i_m7_m3, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m7_m5, ch_mag_int, a_i_m7_m5, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
- interference_abs_epi16(psi_i_m7_m7, ch_mag_int, a_i_m7_m7, ONE_OVER_SQRT_10_Q15, THREE_OVER_SQRT_10);
-
- // Calculation of a group of two terms in the bit metric involving product of psi and interference
- prodsum_psi_a_epi16(psi_r_p7_p7, a_r_p7_p7, psi_i_p7_p7, a_i_p7_p7, psi_a_p7_p7);
- prodsum_psi_a_epi16(psi_r_p7_p5, a_r_p7_p5, psi_i_p7_p5, a_i_p7_p5, psi_a_p7_p5);
- prodsum_psi_a_epi16(psi_r_p7_p3, a_r_p7_p3, psi_i_p7_p3, a_i_p7_p3, psi_a_p7_p3);
- prodsum_psi_a_epi16(psi_r_p7_p1, a_r_p7_p1, psi_i_p7_p1, a_i_p7_p1, psi_a_p7_p1);
- prodsum_psi_a_epi16(psi_r_p7_m1, a_r_p7_m1, psi_i_p7_m1, a_i_p7_m1, psi_a_p7_m1);
- prodsum_psi_a_epi16(psi_r_p7_m3, a_r_p7_m3, psi_i_p7_m3, a_i_p7_m3, psi_a_p7_m3);
- prodsum_psi_a_epi16(psi_r_p7_m5, a_r_p7_m5, psi_i_p7_m5, a_i_p7_m5, psi_a_p7_m5);
- prodsum_psi_a_epi16(psi_r_p7_m7, a_r_p7_m7, psi_i_p7_m7, a_i_p7_m7, psi_a_p7_m7);
- prodsum_psi_a_epi16(psi_r_p5_p7, a_r_p5_p7, psi_i_p5_p7, a_i_p5_p7, psi_a_p5_p7);
- prodsum_psi_a_epi16(psi_r_p5_p5, a_r_p5_p5, psi_i_p5_p5, a_i_p5_p5, psi_a_p5_p5);
- prodsum_psi_a_epi16(psi_r_p5_p3, a_r_p5_p3, psi_i_p5_p3, a_i_p5_p3, psi_a_p5_p3);
- prodsum_psi_a_epi16(psi_r_p5_p1, a_r_p5_p1, psi_i_p5_p1, a_i_p5_p1, psi_a_p5_p1);
- prodsum_psi_a_epi16(psi_r_p5_m1, a_r_p5_m1, psi_i_p5_m1, a_i_p5_m1, psi_a_p5_m1);
- prodsum_psi_a_epi16(psi_r_p5_m3, a_r_p5_m3, psi_i_p5_m3, a_i_p5_m3, psi_a_p5_m3);
- prodsum_psi_a_epi16(psi_r_p5_m5, a_r_p5_m5, psi_i_p5_m5, a_i_p5_m5, psi_a_p5_m5);
- prodsum_psi_a_epi16(psi_r_p5_m7, a_r_p5_m7, psi_i_p5_m7, a_i_p5_m7, psi_a_p5_m7);
- prodsum_psi_a_epi16(psi_r_p3_p7, a_r_p3_p7, psi_i_p3_p7, a_i_p3_p7, psi_a_p3_p7);
- prodsum_psi_a_epi16(psi_r_p3_p5, a_r_p3_p5, psi_i_p3_p5, a_i_p3_p5, psi_a_p3_p5);
- prodsum_psi_a_epi16(psi_r_p3_p3, a_r_p3_p3, psi_i_p3_p3, a_i_p3_p3, psi_a_p3_p3);
- prodsum_psi_a_epi16(psi_r_p3_p1, a_r_p3_p1, psi_i_p3_p1, a_i_p3_p1, psi_a_p3_p1);
- prodsum_psi_a_epi16(psi_r_p3_m1, a_r_p3_m1, psi_i_p3_m1, a_i_p3_m1, psi_a_p3_m1);
- prodsum_psi_a_epi16(psi_r_p3_m3, a_r_p3_m3, psi_i_p3_m3, a_i_p3_m3, psi_a_p3_m3);
- prodsum_psi_a_epi16(psi_r_p3_m5, a_r_p3_m5, psi_i_p3_m5, a_i_p3_m5, psi_a_p3_m5);
- prodsum_psi_a_epi16(psi_r_p3_m7, a_r_p3_m7, psi_i_p3_m7, a_i_p3_m7, psi_a_p3_m7);
- prodsum_psi_a_epi16(psi_r_p1_p7, a_r_p1_p7, psi_i_p1_p7, a_i_p1_p7, psi_a_p1_p7);
- prodsum_psi_a_epi16(psi_r_p1_p5, a_r_p1_p5, psi_i_p1_p5, a_i_p1_p5, psi_a_p1_p5);
- prodsum_psi_a_epi16(psi_r_p1_p3, a_r_p1_p3, psi_i_p1_p3, a_i_p1_p3, psi_a_p1_p3);
- prodsum_psi_a_epi16(psi_r_p1_p1, a_r_p1_p1, psi_i_p1_p1, a_i_p1_p1, psi_a_p1_p1);
- prodsum_psi_a_epi16(psi_r_p1_m1, a_r_p1_m1, psi_i_p1_m1, a_i_p1_m1, psi_a_p1_m1);
- prodsum_psi_a_epi16(psi_r_p1_m3, a_r_p1_m3, psi_i_p1_m3, a_i_p1_m3, psi_a_p1_m3);
- prodsum_psi_a_epi16(psi_r_p1_m5, a_r_p1_m5, psi_i_p1_m5, a_i_p1_m5, psi_a_p1_m5);
- prodsum_psi_a_epi16(psi_r_p1_m7, a_r_p1_m7, psi_i_p1_m7, a_i_p1_m7, psi_a_p1_m7);
- prodsum_psi_a_epi16(psi_r_m1_p7, a_r_m1_p7, psi_i_m1_p7, a_i_m1_p7, psi_a_m1_p7);
- prodsum_psi_a_epi16(psi_r_m1_p5, a_r_m1_p5, psi_i_m1_p5, a_i_m1_p5, psi_a_m1_p5);
- prodsum_psi_a_epi16(psi_r_m1_p3, a_r_m1_p3, psi_i_m1_p3, a_i_m1_p3, psi_a_m1_p3);
- prodsum_psi_a_epi16(psi_r_m1_p1, a_r_m1_p1, psi_i_m1_p1, a_i_m1_p1, psi_a_m1_p1);
- prodsum_psi_a_epi16(psi_r_m1_m1, a_r_m1_m1, psi_i_m1_m1, a_i_m1_m1, psi_a_m1_m1);
- prodsum_psi_a_epi16(psi_r_m1_m3, a_r_m1_m3, psi_i_m1_m3, a_i_m1_m3, psi_a_m1_m3);
- prodsum_psi_a_epi16(psi_r_m1_m5, a_r_m1_m5, psi_i_m1_m5, a_i_m1_m5, psi_a_m1_m5);
- prodsum_psi_a_epi16(psi_r_m1_m7, a_r_m1_m7, psi_i_m1_m7, a_i_m1_m7, psi_a_m1_m7);
- prodsum_psi_a_epi16(psi_r_m3_p7, a_r_m3_p7, psi_i_m3_p7, a_i_m3_p7, psi_a_m3_p7);
- prodsum_psi_a_epi16(psi_r_m3_p5, a_r_m3_p5, psi_i_m3_p5, a_i_m3_p5, psi_a_m3_p5);
- prodsum_psi_a_epi16(psi_r_m3_p3, a_r_m3_p3, psi_i_m3_p3, a_i_m3_p3, psi_a_m3_p3);
- prodsum_psi_a_epi16(psi_r_m3_p1, a_r_m3_p1, psi_i_m3_p1, a_i_m3_p1, psi_a_m3_p1);
- prodsum_psi_a_epi16(psi_r_m3_m1, a_r_m3_m1, psi_i_m3_m1, a_i_m3_m1, psi_a_m3_m1);
- prodsum_psi_a_epi16(psi_r_m3_m3, a_r_m3_m3, psi_i_m3_m3, a_i_m3_m3, psi_a_m3_m3);
- prodsum_psi_a_epi16(psi_r_m3_m5, a_r_m3_m5, psi_i_m3_m5, a_i_m3_m5, psi_a_m3_m5);
- prodsum_psi_a_epi16(psi_r_m3_m7, a_r_m3_m7, psi_i_m3_m7, a_i_m3_m7, psi_a_m3_m7);
- prodsum_psi_a_epi16(psi_r_m5_p7, a_r_m5_p7, psi_i_m5_p7, a_i_m5_p7, psi_a_m5_p7);
- prodsum_psi_a_epi16(psi_r_m5_p5, a_r_m5_p5, psi_i_m5_p5, a_i_m5_p5, psi_a_m5_p5);
- prodsum_psi_a_epi16(psi_r_m5_p3, a_r_m5_p3, psi_i_m5_p3, a_i_m5_p3, psi_a_m5_p3);
- prodsum_psi_a_epi16(psi_r_m5_p1, a_r_m5_p1, psi_i_m5_p1, a_i_m5_p1, psi_a_m5_p1);
- prodsum_psi_a_epi16(psi_r_m5_m1, a_r_m5_m1, psi_i_m5_m1, a_i_m5_m1, psi_a_m5_m1);
- prodsum_psi_a_epi16(psi_r_m5_m3, a_r_m5_m3, psi_i_m5_m3, a_i_m5_m3, psi_a_m5_m3);
- prodsum_psi_a_epi16(psi_r_m5_m5, a_r_m5_m5, psi_i_m5_m5, a_i_m5_m5, psi_a_m5_m5);
- prodsum_psi_a_epi16(psi_r_m5_m7, a_r_m5_m7, psi_i_m5_m7, a_i_m5_m7, psi_a_m5_m7);
- prodsum_psi_a_epi16(psi_r_m7_p7, a_r_m7_p7, psi_i_m7_p7, a_i_m7_p7, psi_a_m7_p7);
- prodsum_psi_a_epi16(psi_r_m7_p5, a_r_m7_p5, psi_i_m7_p5, a_i_m7_p5, psi_a_m7_p5);
- prodsum_psi_a_epi16(psi_r_m7_p3, a_r_m7_p3, psi_i_m7_p3, a_i_m7_p3, psi_a_m7_p3);
- prodsum_psi_a_epi16(psi_r_m7_p1, a_r_m7_p1, psi_i_m7_p1, a_i_m7_p1, psi_a_m7_p1);
- prodsum_psi_a_epi16(psi_r_m7_m1, a_r_m7_m1, psi_i_m7_m1, a_i_m7_m1, psi_a_m7_m1);
- prodsum_psi_a_epi16(psi_r_m7_m3, a_r_m7_m3, psi_i_m7_m3, a_i_m7_m3, psi_a_m7_m3);
- prodsum_psi_a_epi16(psi_r_m7_m5, a_r_m7_m5, psi_i_m7_m5, a_i_m7_m5, psi_a_m7_m5);
- prodsum_psi_a_epi16(psi_r_m7_m7, a_r_m7_m7, psi_i_m7_m7, a_i_m7_m7, psi_a_m7_m7);
-
- // Calculation of a group of two terms in the bit metric involving squares of interference
- square_a_epi16(a_r_p7_p7, a_i_p7_p7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p7_p7);
- square_a_epi16(a_r_p7_p5, a_i_p7_p5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p7_p5);
- square_a_epi16(a_r_p7_p3, a_i_p7_p3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p7_p3);
- square_a_epi16(a_r_p7_p1, a_i_p7_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p7_p1);
- square_a_epi16(a_r_p7_m1, a_i_p7_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p7_m1);
- square_a_epi16(a_r_p7_m3, a_i_p7_m3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p7_m3);
- square_a_epi16(a_r_p7_m5, a_i_p7_m5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p7_m5);
- square_a_epi16(a_r_p7_m7, a_i_p7_m7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p7_m7);
- square_a_epi16(a_r_p5_p7, a_i_p5_p7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p5_p7);
- square_a_epi16(a_r_p5_p5, a_i_p5_p5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p5_p5);
- square_a_epi16(a_r_p5_p3, a_i_p5_p3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p5_p3);
- square_a_epi16(a_r_p5_p1, a_i_p5_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p5_p1);
- square_a_epi16(a_r_p5_m1, a_i_p5_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p5_m1);
- square_a_epi16(a_r_p5_m3, a_i_p5_m3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p5_m3);
- square_a_epi16(a_r_p5_m5, a_i_p5_m5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p5_m5);
- square_a_epi16(a_r_p5_m7, a_i_p5_m7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p5_m7);
- square_a_epi16(a_r_p3_p7, a_i_p3_p7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p3_p7);
- square_a_epi16(a_r_p3_p5, a_i_p3_p5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p3_p5);
- square_a_epi16(a_r_p3_p3, a_i_p3_p3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p3_p3);
- square_a_epi16(a_r_p3_p1, a_i_p3_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p3_p1);
- square_a_epi16(a_r_p3_m1, a_i_p3_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p3_m1);
- square_a_epi16(a_r_p3_m3, a_i_p3_m3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p3_m3);
- square_a_epi16(a_r_p3_m5, a_i_p3_m5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p3_m5);
- square_a_epi16(a_r_p3_m7, a_i_p3_m7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p3_m7);
- square_a_epi16(a_r_p1_p7, a_i_p1_p7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_p7);
- square_a_epi16(a_r_p1_p5, a_i_p1_p5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_p5);
- square_a_epi16(a_r_p1_p3, a_i_p1_p3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_p3);
- square_a_epi16(a_r_p1_p1, a_i_p1_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_p1);
- square_a_epi16(a_r_p1_m1, a_i_p1_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_m1);
- square_a_epi16(a_r_p1_m3, a_i_p1_m3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_m3);
- square_a_epi16(a_r_p1_m5, a_i_p1_m5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_m5);
- square_a_epi16(a_r_p1_m7, a_i_p1_m7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_p1_m7);
- square_a_epi16(a_r_m1_p7, a_i_m1_p7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_p7);
- square_a_epi16(a_r_m1_p5, a_i_m1_p5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_p5);
- square_a_epi16(a_r_m1_p3, a_i_m1_p3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_p3);
- square_a_epi16(a_r_m1_p1, a_i_m1_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_p1);
- square_a_epi16(a_r_m1_m1, a_i_m1_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_m1);
- square_a_epi16(a_r_m1_m3, a_i_m1_m3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_m3);
- square_a_epi16(a_r_m1_m5, a_i_m1_m5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_m5);
- square_a_epi16(a_r_m1_m7, a_i_m1_m7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m1_m7);
- square_a_epi16(a_r_m3_p7, a_i_m3_p7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m3_p7);
- square_a_epi16(a_r_m3_p5, a_i_m3_p5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m3_p5);
- square_a_epi16(a_r_m3_p3, a_i_m3_p3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m3_p3);
- square_a_epi16(a_r_m3_p1, a_i_m3_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m3_p1);
- square_a_epi16(a_r_m3_m1, a_i_m3_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m3_m1);
- square_a_epi16(a_r_m3_m3, a_i_m3_m3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m3_m3);
- square_a_epi16(a_r_m3_m5, a_i_m3_m5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m3_m5);
- square_a_epi16(a_r_m3_m7, a_i_m3_m7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m3_m7);
- square_a_epi16(a_r_m5_p7, a_i_m5_p7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m5_p7);
- square_a_epi16(a_r_m5_p5, a_i_m5_p5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m5_p5);
- square_a_epi16(a_r_m5_p3, a_i_m5_p3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m5_p3);
- square_a_epi16(a_r_m5_p1, a_i_m5_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m5_p1);
- square_a_epi16(a_r_m5_m1, a_i_m5_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m5_m1);
- square_a_epi16(a_r_m5_m3, a_i_m5_m3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m5_m3);
- square_a_epi16(a_r_m5_m5, a_i_m5_m5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m5_m5);
- square_a_epi16(a_r_m5_m7, a_i_m5_m7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m5_m7);
- square_a_epi16(a_r_m7_p7, a_i_m7_p7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m7_p7);
- square_a_epi16(a_r_m7_p5, a_i_m7_p5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m7_p5);
- square_a_epi16(a_r_m7_p3, a_i_m7_p3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m7_p3);
- square_a_epi16(a_r_m7_p1, a_i_m7_p1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m7_p1);
- square_a_epi16(a_r_m7_m1, a_i_m7_m1, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m7_m1);
- square_a_epi16(a_r_m7_m3, a_i_m7_m3, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m7_m3);
- square_a_epi16(a_r_m7_m5, a_i_m7_m5, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m7_m5);
- square_a_epi16(a_r_m7_m7, a_i_m7_m7, ch_mag_int, SQRT_10_OVER_FOUR, a_sq_m7_m7);
-
- // Computing different multiples of ||h0||^2
- // x=1, y=1
- ch_mag_2_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,ONE_OVER_FOUR_SQRT_42);
- ch_mag_2_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_2_over_42_with_sigma2,1);
- // x=1, y=3
- ch_mag_10_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,FIVE_OVER_FOUR_SQRT_42);
- ch_mag_10_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_10_over_42_with_sigma2,1);
- // x=1, x=5
- ch_mag_26_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,THIRTEEN_OVER_FOUR_SQRT_42);
- ch_mag_26_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_26_over_42_with_sigma2,1);
- // x=1, y=7
- ch_mag_50_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42);
- ch_mag_50_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_50_over_42_with_sigma2,1);
- // x=3, y=3
- ch_mag_18_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,NINE_OVER_FOUR_SQRT_42);
- ch_mag_18_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_18_over_42_with_sigma2,1);
- // x=3, y=5
- ch_mag_34_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,SEVENTEEN_OVER_FOUR_SQRT_42);
- ch_mag_34_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_34_over_42_with_sigma2,1);
- // x=3, y=7
- ch_mag_58_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYNINE_OVER_FOUR_SQRT_42);
- ch_mag_58_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_58_over_42_with_sigma2,2);
- // x=5, y=5
- ch_mag_50_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42);
- ch_mag_50_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_50_over_42_with_sigma2,1);
- // x=5, y=7
- ch_mag_74_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,THIRTYSEVEN_OVER_FOUR_SQRT_42);
- ch_mag_74_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_74_over_42_with_sigma2,2);
- // x=7, y=7
- ch_mag_98_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,FORTYNINE_OVER_FOUR_SQRT_42);
- ch_mag_98_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_98_over_42_with_sigma2,2);
-
- // Computing Metrics
- xmm0 = _mm_subs_epi16(psi_a_p7_p7, a_sq_p7_p7);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_7_7);
- bit_met_p7_p7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_p5, a_sq_p7_p5);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_7_5);
- bit_met_p7_p5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_p3, a_sq_p7_p3);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_7_3);
- bit_met_p7_p3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_p1, a_sq_p7_p1);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_7_1);
- bit_met_p7_p1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_m1, a_sq_p7_m1);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_7_1);
- bit_met_p7_m1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_m3, a_sq_p7_m3);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_7_3);
- bit_met_p7_m3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_m5, a_sq_p7_m5);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_7_5);
- bit_met_p7_m5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_m7, a_sq_p7_m7);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_7_7);
- bit_met_p7_m7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_p7, a_sq_p5_p7);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_5_7);
- bit_met_p5_p7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_p5, a_sq_p5_p5);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_5_5);
- bit_met_p5_p5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_p3, a_sq_p5_p3);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_5_3);
- bit_met_p5_p3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_p1, a_sq_p5_p1);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_5_1);
- bit_met_p5_p1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_m1, a_sq_p5_m1);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_5_1);
- bit_met_p5_m1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_m3, a_sq_p5_m3);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_5_3);
- bit_met_p5_m3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_m5, a_sq_p5_m5);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_5_5);
- bit_met_p5_m5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_m7, a_sq_p5_m7);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_5_7);
- bit_met_p5_m7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_p7, a_sq_p3_p7);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_3_7);
- bit_met_p3_p7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_p5, a_sq_p3_p5);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_3_5);
- bit_met_p3_p5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_p3, a_sq_p3_p3);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_3_3);
- bit_met_p3_p3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_p1, a_sq_p3_p1);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_3_1);
- bit_met_p3_p1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_m1, a_sq_p3_m1);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_3_1);
- bit_met_p3_m1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_m3, a_sq_p3_m3);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_3_3);
- bit_met_p3_m3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_m5, a_sq_p3_m5);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_3_5);
- bit_met_p3_m5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_m7, a_sq_p3_m7);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_3_7);
- bit_met_p3_m7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_p7, a_sq_p1_p7);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_1_7);
- bit_met_p1_p7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_p5, a_sq_p1_p5);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_1_5);
- bit_met_p1_p5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_p3, a_sq_p1_p3);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_1_3);
- bit_met_p1_p3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_p1, a_sq_p1_p1);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_1_1);
- bit_met_p1_p1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_m1, a_sq_p1_m1);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_1_1);
- bit_met_p1_m1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_m3, a_sq_p1_m3);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_1_3);
- bit_met_p1_m3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_m5, a_sq_p1_m5);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_1_5);
- bit_met_p1_m5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_m7, a_sq_p1_m7);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_1_7);
- bit_met_p1_m7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_p7, a_sq_m1_p7);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_1_7);
- bit_met_m1_p7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_p5, a_sq_m1_p5);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_1_5);
- bit_met_m1_p5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_p3, a_sq_m1_p3);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_1_3);
- bit_met_m1_p3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_p1, a_sq_m1_p1);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_1_1);
- bit_met_m1_p1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_m1, a_sq_m1_m1);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_1_1);
- bit_met_m1_m1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_m3, a_sq_m1_m3);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_1_3);
- bit_met_m1_m3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_m5, a_sq_m1_m5);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_1_5);
- bit_met_m1_m5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_m7, a_sq_m1_m7);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_1_7);
- bit_met_m1_m7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_p7, a_sq_m3_p7);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_3_7);
- bit_met_m3_p7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_p5, a_sq_m3_p5);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_3_5);
- bit_met_m3_p5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_p3, a_sq_m3_p3);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_3_3);
- bit_met_m3_p3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_p1, a_sq_m3_p1);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_3_1);
- bit_met_m3_p1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_m1, a_sq_m3_m1);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_3_1);
- bit_met_m3_m1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_m3, a_sq_m3_m3);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_3_3);
- bit_met_m3_m3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_m5, a_sq_m3_m5);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_3_5);
- bit_met_m3_m5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_m7, a_sq_m3_m7);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_3_7);
- bit_met_m3_m7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_p7, a_sq_m5_p7);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_5_7);
- bit_met_m5_p7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_p5, a_sq_m5_p5);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_5_5);
- bit_met_m5_p5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_p3, a_sq_m5_p3);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_5_3);
- bit_met_m5_p3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_p1, a_sq_m5_p1);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_5_1);
- bit_met_m5_p1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_m1, a_sq_m5_m1);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_5_1);
- bit_met_m5_m1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_m3, a_sq_m5_m3);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_5_3);
- bit_met_m5_m3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_m5, a_sq_m5_m5);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_5_5);
- bit_met_m5_m5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_m7, a_sq_m5_m7);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_5_7);
- bit_met_m5_m7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_p7, a_sq_m7_p7);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_7_7);
- bit_met_m7_p7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_p5, a_sq_m7_p5);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_7_5);
- bit_met_m7_p5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_p3, a_sq_m7_p3);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_7_3);
- bit_met_m7_p3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_p1, a_sq_m7_p1);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_7_1);
- bit_met_m7_p1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_m1, a_sq_m7_m1);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_7_1);
- bit_met_m7_m1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_m3, a_sq_m7_m3);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_7_3);
- bit_met_m7_m3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_m5, a_sq_m7_m5);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_7_5);
- bit_met_m7_m5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_m7, a_sq_m7_m7);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_7_7);
- bit_met_m7_m7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
-
- // Detection for 1st bit (LTE mapping)
- // bit = 1
- xmm0 = _mm_max_epi16(bit_met_m7_p7, bit_met_m7_p5);
- xmm1 = _mm_max_epi16(bit_met_m7_p3, bit_met_m7_p1);
- xmm2 = _mm_max_epi16(bit_met_m7_m1, bit_met_m7_m3);
- xmm3 = _mm_max_epi16(bit_met_m7_m5, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m5_p7, bit_met_m5_p5);
- xmm1 = _mm_max_epi16(bit_met_m5_p3, bit_met_m5_p1);
- xmm2 = _mm_max_epi16(bit_met_m5_m1, bit_met_m5_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m5_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m3_p7, bit_met_m3_p5);
- xmm1 = _mm_max_epi16(bit_met_m3_p3, bit_met_m3_p1);
- xmm2 = _mm_max_epi16(bit_met_m3_m1, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m3_m5, bit_met_m3_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_p7, bit_met_m1_p5);
- xmm1 = _mm_max_epi16(bit_met_m1_p3, bit_met_m1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m1_m3);
- xmm3 = _mm_max_epi16(bit_met_m1_m5, bit_met_m1_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- // bit = 0
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p7_p5);
- xmm1 = _mm_max_epi16(bit_met_p7_p3, bit_met_p7_p1);
- xmm2 = _mm_max_epi16(bit_met_p7_m1, bit_met_p7_m3);
- xmm3 = _mm_max_epi16(bit_met_p7_m5, bit_met_p7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_p7, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p5_p3, bit_met_p5_p1);
- xmm2 = _mm_max_epi16(bit_met_p5_m1, bit_met_p5_m3);
- xmm3 = _mm_max_epi16(bit_met_p5_m5, bit_met_p5_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_p7, bit_met_p3_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p3_p1);
- xmm2 = _mm_max_epi16(bit_met_p3_m1, bit_met_p3_m3);
- xmm3 = _mm_max_epi16(bit_met_p3_m5, bit_met_p3_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_p7, bit_met_p1_p5);
- xmm1 = _mm_max_epi16(bit_met_p1_p3, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_p1_m1, bit_met_p1_m3);
- xmm3 = _mm_max_epi16(bit_met_p1_m5, bit_met_p1_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y0r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 2nd bit (LTE mapping)
- // bit = 1
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- // bit = 0
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m7_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m7_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y1r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 3rd bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_m7_m7, bit_met_m7_m5);
- xmm1 = _mm_max_epi16(bit_met_m7_m3, bit_met_m7_m1);
- xmm2 = _mm_max_epi16(bit_met_m7_p1, bit_met_m7_p3);
- xmm3 = _mm_max_epi16(bit_met_m7_p5, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m5_m7, bit_met_m5_m5);
- xmm1 = _mm_max_epi16(bit_met_m5_m3, bit_met_m5_m1);
- xmm2 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_m7, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p5_m3, bit_met_p5_m1);
- xmm2 = _mm_max_epi16(bit_met_p5_p1, bit_met_p5_p3);
- xmm3 = _mm_max_epi16(bit_met_p5_p5, bit_met_p5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p7_m5);
- xmm1 = _mm_max_epi16(bit_met_p7_m3, bit_met_p7_m1);
- xmm2 = _mm_max_epi16(bit_met_p7_p1, bit_met_p7_p3);
- xmm3 = _mm_max_epi16(bit_met_p7_p5, bit_met_p7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_m3_m7, bit_met_m3_m5);
- xmm1 = _mm_max_epi16(bit_met_m3_m3, bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_m3_p1, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_p5, bit_met_m3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_m7, bit_met_m1_m5);
- xmm1 = _mm_max_epi16(bit_met_m1_m3, bit_met_m1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m1_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p5, bit_met_m1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_m7, bit_met_p1_m5);
- xmm1 = _mm_max_epi16(bit_met_p1_m3, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1, bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_p5, bit_met_p1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_m7, bit_met_p3_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p3_m1);
- xmm2 = _mm_max_epi16(bit_met_p3_p1, bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_p5, bit_met_p3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y2r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 4th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m7_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y0i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
-
- // Detection for 5th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_m7_m7, bit_met_m7_m5);
- xmm1 = _mm_max_epi16(bit_met_m7_m3, bit_met_m7_m1);
- xmm2 = _mm_max_epi16(bit_met_m7_p1, bit_met_m7_p3);
- xmm3 = _mm_max_epi16(bit_met_m7_p5, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_m7, bit_met_m1_m5);
- xmm1 = _mm_max_epi16(bit_met_m1_m3, bit_met_m1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m1_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p5, bit_met_m1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_m7, bit_met_p1_m5);
- xmm1 = _mm_max_epi16(bit_met_p1_m3, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1, bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_p5, bit_met_p1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p7_m5);
- xmm1 = _mm_max_epi16(bit_met_p7_m3, bit_met_p7_m1);
- xmm2 = _mm_max_epi16(bit_met_p7_p1, bit_met_p7_p3);
- xmm3 = _mm_max_epi16(bit_met_p7_p5, bit_met_p7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_m5_m7, bit_met_m5_m5);
- xmm1 = _mm_max_epi16(bit_met_m5_m3, bit_met_m5_m1);
- xmm2 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m3_m7, bit_met_m3_m5);
- xmm1 = _mm_max_epi16(bit_met_m3_m3, bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_m3_p1, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_p5, bit_met_m3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_m7, bit_met_p3_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p3_m1);
- xmm2 = _mm_max_epi16(bit_met_p3_p1, bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_p5, bit_met_p3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_m7, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p5_m3, bit_met_p5_m1);
- xmm2 = _mm_max_epi16(bit_met_p5_p1, bit_met_p5_p3);
- xmm3 = _mm_max_epi16(bit_met_p5_p5, bit_met_p5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y1i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 6th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m7_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y2i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
-
- // map to output stream, difficult to do in SIMD since we have 6 16bit LLRs
- // RE 1
- j = 24*i;
- stream0_out[j + 0] = ((short *)&y0r)[0];
- stream0_out[j + 1] = ((short *)&y1r)[0];
- stream0_out[j + 2] = ((short *)&y2r)[0];
- stream0_out[j + 3] = ((short *)&y0i)[0];
- stream0_out[j + 4] = ((short *)&y1i)[0];
- stream0_out[j + 5] = ((short *)&y2i)[0];
- // RE 2
- stream0_out[j + 6] = ((short *)&y0r)[1];
- stream0_out[j + 7] = ((short *)&y1r)[1];
- stream0_out[j + 8] = ((short *)&y2r)[1];
- stream0_out[j + 9] = ((short *)&y0i)[1];
- stream0_out[j + 10] = ((short *)&y1i)[1];
- stream0_out[j + 11] = ((short *)&y2i)[1];
- // RE 3
- stream0_out[j + 12] = ((short *)&y0r)[2];
- stream0_out[j + 13] = ((short *)&y1r)[2];
- stream0_out[j + 14] = ((short *)&y2r)[2];
- stream0_out[j + 15] = ((short *)&y0i)[2];
- stream0_out[j + 16] = ((short *)&y1i)[2];
- stream0_out[j + 17] = ((short *)&y2i)[2];
- // RE 4
- stream0_out[j + 18] = ((short *)&y0r)[3];
- stream0_out[j + 19] = ((short *)&y1r)[3];
- stream0_out[j + 20] = ((short *)&y2r)[3];
- stream0_out[j + 21] = ((short *)&y0i)[3];
- stream0_out[j + 22] = ((short *)&y1i)[3];
- stream0_out[j + 23] = ((short *)&y2i)[3];
- // RE 5
- stream0_out[j + 24] = ((short *)&y0r)[4];
- stream0_out[j + 25] = ((short *)&y1r)[4];
- stream0_out[j + 26] = ((short *)&y2r)[4];
- stream0_out[j + 27] = ((short *)&y0i)[4];
- stream0_out[j + 28] = ((short *)&y1i)[4];
- stream0_out[j + 29] = ((short *)&y2i)[4];
- // RE 6
- stream0_out[j + 30] = ((short *)&y0r)[5];
- stream0_out[j + 31] = ((short *)&y1r)[5];
- stream0_out[j + 32] = ((short *)&y2r)[5];
- stream0_out[j + 33] = ((short *)&y0i)[5];
- stream0_out[j + 34] = ((short *)&y1i)[5];
- stream0_out[j + 35] = ((short *)&y2i)[5];
- // RE 7
- stream0_out[j + 36] = ((short *)&y0r)[6];
- stream0_out[j + 37] = ((short *)&y1r)[6];
- stream0_out[j + 38] = ((short *)&y2r)[6];
- stream0_out[j + 39] = ((short *)&y0i)[6];
- stream0_out[j + 40] = ((short *)&y1i)[6];
- stream0_out[j + 41] = ((short *)&y2i)[6];
- // RE 8
- stream0_out[j + 42] = ((short *)&y0r)[7];
- stream0_out[j + 43] = ((short *)&y1r)[7];
- stream0_out[j + 44] = ((short *)&y2r)[7];
- stream0_out[j + 45] = ((short *)&y0i)[7];
- stream0_out[j + 46] = ((short *)&y1i)[7];
- stream0_out[j + 47] = ((short *)&y2i)[7];
-
-#elif defined(__arm__)
-
-#endif
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-
-}
-
-
-int dlsch_64qam_16qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int32_t **rxdataF_comp_i,
- int32_t **dl_ch_mag,
- int32_t **dl_ch_mag_i,
- int32_t **rho_i,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- int16_t **llr16p)
-{
-
- int16_t *rxF = (int16_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rxF_i = (int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag = (int16_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag_i = (int16_t*)&dl_ch_mag_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho = (int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- //first symbol has different structure due to more pilots
- if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }
-
- AssertFatal(llr16!=NULL,"dlsch_16qam_64qam_llr:llr is null, symbol %d\n",symbol);
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- qam64_qam16((short *)rxF,
- (short *)rxF_i,
- (short *)ch_mag,
- (short *)ch_mag_i,
- (short *)llr16,
- (short *)rho,
- len);
-
- llr16 += (6*len);
- *llr16p = (short *)llr16;
- return(0);
-}
-
-void qam64_qam64(short *stream0_in,
- short *stream1_in,
- short *ch_mag,
- short *ch_mag_i,
- short *stream0_out,
- short *rho01,
- int length
- )
-{
-
- /*
- Author: S. Wagner
- Date: 31-07-12
-
- Input:
- stream0_in: MF filter for 1st stream, i.e., y0=h0'*y
- stream1_in: MF filter for 2nd stream, i.e., y1=h1'*y
- ch_mag: 4*h0/sqrt(42), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- ch_mag_i: 4*h1/sqrt(42), [Re0 Im0 Re1 Im1] s.t. Im0=Re0, Im1=Re1, etc
- rho01: Channel cross correlation, i.e., h1'*h0
-
- Output:
- stream0_out: output LLRs for 1st stream
- */
-
-#if defined(__x86_64__) || defined(__i386__)
-
- __m128i *rho01_128i = (__m128i *)rho01;
- __m128i *stream0_128i_in = (__m128i *)stream0_in;
- __m128i *stream1_128i_in = (__m128i *)stream1_in;
- __m128i *ch_mag_128i = (__m128i *)ch_mag;
- __m128i *ch_mag_128i_i = (__m128i *)ch_mag_i;
-
- __m128i ONE_OVER_SQRT_42 = _mm_set1_epi16(10112); // round(1/sqrt(42)*2^16)
- __m128i THREE_OVER_SQRT_42 = _mm_set1_epi16(30337); // round(3/sqrt(42)*2^16)
- __m128i FIVE_OVER_SQRT_42 = _mm_set1_epi16(25281); // round(5/sqrt(42)*2^15)
- __m128i SEVEN_OVER_SQRT_42 = _mm_set1_epi16(17697); // round(7/sqrt(42)*2^14) Q2.14
- __m128i ONE_OVER_SQRT_2 = _mm_set1_epi16(23170); // round(1/sqrt(2)*2^15)
- __m128i ONE_OVER_SQRT_2_42 = _mm_set1_epi16(3575); // round(1/sqrt(2*42)*2^15)
- __m128i THREE_OVER_SQRT_2_42 = _mm_set1_epi16(10726); // round(3/sqrt(2*42)*2^15)
- __m128i FIVE_OVER_SQRT_2_42 = _mm_set1_epi16(17876); // round(5/sqrt(2*42)*2^15)
- __m128i SEVEN_OVER_SQRT_2_42 = _mm_set1_epi16(25027); // round(7/sqrt(2*42)*2^15)
- __m128i FORTYNINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(30969); // round(49/(4*sqrt(42))*2^14), Q2.14
- __m128i THIRTYSEVEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(23385); // round(37/(4*sqrt(42))*2^14), Q2.14
- __m128i TWENTYFIVE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(31601); // round(25/(4*sqrt(42))*2^15)
- __m128i TWENTYNINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(18329); // round(29/(4*sqrt(42))*2^15), Q2.14
- __m128i SEVENTEEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(21489); // round(17/(4*sqrt(42))*2^15)
- __m128i NINE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(11376); // round(9/(4*sqrt(42))*2^15)
- __m128i THIRTEEN_OVER_FOUR_SQRT_42 = _mm_set1_epi16(16433); // round(13/(4*sqrt(42))*2^15)
- __m128i FIVE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(6320); // round(5/(4*sqrt(42))*2^15)
- __m128i ONE_OVER_FOUR_SQRT_42 = _mm_set1_epi16(1264); // round(1/(4*sqrt(42))*2^15)
- __m128i SQRT_42_OVER_FOUR = _mm_set1_epi16(13272); // round(sqrt(42)/4*2^13), Q3.12
-
- __m128i ch_mag_des;
- __m128i ch_mag_int;
- __m128i ch_mag_98_over_42_with_sigma2;
- __m128i ch_mag_74_over_42_with_sigma2;
- __m128i ch_mag_58_over_42_with_sigma2;
- __m128i ch_mag_50_over_42_with_sigma2;
- __m128i ch_mag_34_over_42_with_sigma2;
- __m128i ch_mag_18_over_42_with_sigma2;
- __m128i ch_mag_26_over_42_with_sigma2;
- __m128i ch_mag_10_over_42_with_sigma2;
- __m128i ch_mag_2_over_42_with_sigma2;
- __m128i y0r_one_over_sqrt_21;
- __m128i y0r_three_over_sqrt_21;
- __m128i y0r_five_over_sqrt_21;
- __m128i y0r_seven_over_sqrt_21;
- __m128i y0i_one_over_sqrt_21;
- __m128i y0i_three_over_sqrt_21;
- __m128i y0i_five_over_sqrt_21;
- __m128i y0i_seven_over_sqrt_21;
- __m128i ch_mag_int_with_sigma2;
- __m128i two_ch_mag_int_with_sigma2;
- __m128i three_ch_mag_int_with_sigma2;
-#elif defined(__arm__)
-
-#endif
-
- int i,j;
-
-
- for (i=0; i>2; i+=2) {
-
-#if defined(__x86_64__) || defined(__i386__)
-
- // Get rho
- xmm0 = rho01_128i[i];
- xmm1 = rho01_128i[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- xmm2 = _mm_unpacklo_epi64(xmm0,xmm1); // Re(rho)
- xmm3 = _mm_unpackhi_epi64(xmm0,xmm1); // Im(rho)
- rho_rpi = _mm_adds_epi16(xmm2,xmm3); // rho = Re(rho) + Im(rho)
- rho_rmi = _mm_subs_epi16(xmm2,xmm3); // rho* = Re(rho) - Im(rho)
-
- // Compute the different rhos
- rho_rpi_1_1 = _mm_mulhi_epi16(rho_rpi, ONE_OVER_SQRT_42);
- rho_rmi_1_1 = _mm_mulhi_epi16(rho_rmi, ONE_OVER_SQRT_42);
- rho_rpi_3_3 = _mm_mulhi_epi16(rho_rpi, THREE_OVER_SQRT_42);
- rho_rmi_3_3 = _mm_mulhi_epi16(rho_rmi, THREE_OVER_SQRT_42);
- rho_rpi_5_5 = _mm_mulhi_epi16(rho_rpi, FIVE_OVER_SQRT_42);
- rho_rmi_5_5 = _mm_mulhi_epi16(rho_rmi, FIVE_OVER_SQRT_42);
- rho_rpi_7_7 = _mm_mulhi_epi16(rho_rpi, SEVEN_OVER_SQRT_42);
- rho_rmi_7_7 = _mm_mulhi_epi16(rho_rmi, SEVEN_OVER_SQRT_42);
-
- rho_rpi_5_5 = _mm_slli_epi16(rho_rpi_5_5, 1);
- rho_rmi_5_5 = _mm_slli_epi16(rho_rmi_5_5, 1);
- rho_rpi_7_7 = _mm_slli_epi16(rho_rpi_7_7, 2);
- rho_rmi_7_7 = _mm_slli_epi16(rho_rmi_7_7, 2);
-
- xmm4 = _mm_mulhi_epi16(xmm2, ONE_OVER_SQRT_42);
- xmm5 = _mm_mulhi_epi16(xmm3, ONE_OVER_SQRT_42);
- xmm6 = _mm_mulhi_epi16(xmm3, THREE_OVER_SQRT_42);
- xmm7 = _mm_mulhi_epi16(xmm3, FIVE_OVER_SQRT_42);
- xmm8 = _mm_mulhi_epi16(xmm3, SEVEN_OVER_SQRT_42);
- xmm7 = _mm_slli_epi16(xmm7, 1);
- xmm8 = _mm_slli_epi16(xmm8, 2);
-
- rho_rpi_1_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_1_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_1_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_1_5 = _mm_subs_epi16(xmm4, xmm7);
- rho_rpi_1_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_1_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, THREE_OVER_SQRT_42);
- rho_rpi_3_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_3_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_3_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_3_5 = _mm_subs_epi16(xmm4, xmm7);
- rho_rpi_3_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_3_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, FIVE_OVER_SQRT_42);
- xmm4 = _mm_slli_epi16(xmm4, 1);
- rho_rpi_5_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_5_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_5_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_5_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_5_7 = _mm_adds_epi16(xmm4, xmm8);
- rho_rmi_5_7 = _mm_subs_epi16(xmm4, xmm8);
-
- xmm4 = _mm_mulhi_epi16(xmm2, SEVEN_OVER_SQRT_42);
- xmm4 = _mm_slli_epi16(xmm4, 2);
- rho_rpi_7_1 = _mm_adds_epi16(xmm4, xmm5);
- rho_rmi_7_1 = _mm_subs_epi16(xmm4, xmm5);
- rho_rpi_7_3 = _mm_adds_epi16(xmm4, xmm6);
- rho_rmi_7_3 = _mm_subs_epi16(xmm4, xmm6);
- rho_rpi_7_5 = _mm_adds_epi16(xmm4, xmm7);
- rho_rmi_7_5 = _mm_subs_epi16(xmm4, xmm7);
-
- // Rearrange interfering MF output
- xmm0 = stream1_128i_in[i];
- xmm1 = stream1_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y1r = _mm_unpacklo_epi64(xmm0,xmm1); //[y1r(1),y1r(2),y1r(3),y1r(4)]
- y1i = _mm_unpackhi_epi64(xmm0,xmm1); //[y1i(1),y1i(2),y1i(3),y1i(4)]
-
- // Psi_r calculation from rho_rpi or rho_rmi
- xmm0 = _mm_setzero_si128(); // ZERO for abs_pi16
- xmm2 = _mm_subs_epi16(rho_rpi_7_7, y1r);
- psi_r_p7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_5, y1r);
- psi_r_p7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_3, y1r);
- psi_r_p7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_1, y1r);
- psi_r_p7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_1, y1r);
- psi_r_p7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_3, y1r);
- psi_r_p7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_5, y1r);
- psi_r_p7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_7, y1r);
- psi_r_p7_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_7, y1r);
- psi_r_p5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_5, y1r);
- psi_r_p5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_3, y1r);
- psi_r_p5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_1, y1r);
- psi_r_p5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_1, y1r);
- psi_r_p5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_3, y1r);
- psi_r_p5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_5, y1r);
- psi_r_p5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_7, y1r);
- psi_r_p5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_7, y1r);
- psi_r_p3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_5, y1r);
- psi_r_p3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_3, y1r);
- psi_r_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_1, y1r);
- psi_r_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_1, y1r);
- psi_r_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_3, y1r);
- psi_r_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_5, y1r);
- psi_r_p3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_7, y1r);
- psi_r_p3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_7, y1r);
- psi_r_p1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_5, y1r);
- psi_r_p1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_3, y1r);
- psi_r_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_1, y1r);
- psi_r_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_1, y1r);
- psi_r_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_3, y1r);
- psi_r_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_5, y1r);
- psi_r_p1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_7, y1r);
- psi_r_p1_m7 = _mm_abs_epi16(xmm2);
-
- xmm2 = _mm_adds_epi16(rho_rmi_1_7, y1r);
- psi_r_m1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_5, y1r);
- psi_r_m1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_3, y1r);
- psi_r_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_1, y1r);
- psi_r_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_1, y1r);
- psi_r_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_3, y1r);
- psi_r_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_5, y1r);
- psi_r_m1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_7, y1r);
- psi_r_m1_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_7, y1r);
- psi_r_m3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_5, y1r);
- psi_r_m3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_3, y1r);
- psi_r_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_1, y1r);
- psi_r_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_1, y1r);
- psi_r_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_3, y1r);
- psi_r_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_5, y1r);
- psi_r_m3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_7, y1r);
- psi_r_m3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_7, y1r);
- psi_r_m5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_5, y1r);
- psi_r_m5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_3, y1r);
- psi_r_m5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_1, y1r);
- psi_r_m5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_1, y1r);
- psi_r_m5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_3, y1r);
- psi_r_m5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_5, y1r);
- psi_r_m5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_7, y1r);
- psi_r_m5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_7, y1r);
- psi_r_m7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_5, y1r);
- psi_r_m7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_3, y1r);
- psi_r_m7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_1, y1r);
- psi_r_m7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_1, y1r);
- psi_r_m7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_3, y1r);
- psi_r_m7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_5, y1r);
- psi_r_m7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_7, y1r);
- psi_r_m7_m7 = _mm_abs_epi16(xmm2);
-
- // Psi_i calculation from rho_rpi or rho_rmi
- xmm2 = _mm_subs_epi16(rho_rmi_7_7, y1i);
- psi_i_p7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_7, y1i);
- psi_i_p7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_7, y1i);
- psi_i_p7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_7, y1i);
- psi_i_p7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_7, y1i);
- psi_i_p7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_7, y1i);
- psi_i_p7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_7, y1i);
- psi_i_p7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_7, y1i);
- psi_i_p7_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_5, y1i);
- psi_i_p5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_5, y1i);
- psi_i_p5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_5, y1i);
- psi_i_p5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_5, y1i);
- psi_i_p5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_5, y1i);
- psi_i_p5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_5, y1i);
- psi_i_p5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_5, y1i);
- psi_i_p5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_5, y1i);
- psi_i_p5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_3, y1i);
- psi_i_p3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_3, y1i);
- psi_i_p3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_3, y1i);
- psi_i_p3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_3, y1i);
- psi_i_p3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_3, y1i);
- psi_i_p3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_3, y1i);
- psi_i_p3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_3, y1i);
- psi_i_p3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_3, y1i);
- psi_i_p3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_7_1, y1i);
- psi_i_p1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_5_1, y1i);
- psi_i_p1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_3_1, y1i);
- psi_i_p1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rmi_1_1, y1i);
- psi_i_p1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_1_1, y1i);
- psi_i_p1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_3_1, y1i);
- psi_i_p1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_5_1, y1i);
- psi_i_p1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rpi_7_1, y1i);
- psi_i_p1_m7 = _mm_abs_epi16(xmm2);
-
- xmm2 = _mm_subs_epi16(rho_rpi_7_1, y1i);
- psi_i_m1_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_1, y1i);
- psi_i_m1_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_1, y1i);
- psi_i_m1_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_1, y1i);
- psi_i_m1_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_1, y1i);
- psi_i_m1_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_1, y1i);
- psi_i_m1_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_1, y1i);
- psi_i_m1_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_1, y1i);
- psi_i_m1_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_3, y1i);
- psi_i_m3_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_3, y1i);
- psi_i_m3_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_3, y1i);
- psi_i_m3_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_3, y1i);
- psi_i_m3_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_3, y1i);
- psi_i_m3_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_3, y1i);
- psi_i_m3_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_3, y1i);
- psi_i_m3_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_3, y1i);
- psi_i_m3_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_5, y1i);
- psi_i_m5_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_5, y1i);
- psi_i_m5_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_5, y1i);
- psi_i_m5_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_5, y1i);
- psi_i_m5_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_5, y1i);
- psi_i_m5_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_5, y1i);
- psi_i_m5_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_5, y1i);
- psi_i_m5_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_5, y1i);
- psi_i_m5_m7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_7_7, y1i);
- psi_i_m7_p7 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_5_7, y1i);
- psi_i_m7_p5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_3_7, y1i);
- psi_i_m7_p3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_subs_epi16(rho_rpi_1_7, y1i);
- psi_i_m7_p1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_1_7, y1i);
- psi_i_m7_m1 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_3_7, y1i);
- psi_i_m7_m3 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_5_7, y1i);
- psi_i_m7_m5 = _mm_abs_epi16(xmm2);
- xmm2 = _mm_adds_epi16(rho_rmi_7_7, y1i);
- psi_i_m7_m7 = _mm_abs_epi16(xmm2);
-
-
- // Rearrange desired MF output
- xmm0 = stream0_128i_in[i];
- xmm1 = stream0_128i_in[i+1];
- xmm0 = _mm_shufflelo_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shufflehi_epi16(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm0 = _mm_shuffle_epi32(xmm0,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflelo_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shufflehi_epi16(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm1 = _mm_shuffle_epi32(xmm1,0xd8); //_MM_SHUFFLE(0,2,1,3));
- //xmm0 = [Re(0,1) Re(2,3) Im(0,1) Im(2,3)]
- //xmm1 = [Re(4,5) Re(6,7) Im(4,5) Im(6,7)]
- y0r = _mm_unpacklo_epi64(xmm0,xmm1); // = [y0r(1),y0r(2),y0r(3),y0r(4)]
- y0i = _mm_unpackhi_epi64(xmm0,xmm1);
-
- // Rearrange desired channel magnitudes
- xmm2 = ch_mag_128i[i]; // = [|h|^2(1),|h|^2(1),|h|^2(2),|h|^2(2)]*(2/sqrt(10))
- xmm3 = ch_mag_128i[i+1]; // = [|h|^2(3),|h|^2(3),|h|^2(4),|h|^2(4)]*(2/sqrt(10))
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- ch_mag_des = _mm_unpacklo_epi64(xmm2,xmm3);
-
- // Rearrange interfering channel magnitudes
- xmm2 = ch_mag_128i_i[i];
- xmm3 = ch_mag_128i_i[i+1];
- xmm2 = _mm_shufflelo_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shufflehi_epi16(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm2 = _mm_shuffle_epi32(xmm2,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflelo_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shufflehi_epi16(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- xmm3 = _mm_shuffle_epi32(xmm3,0xd8); //_MM_SHUFFLE(0,2,1,3));
- ch_mag_int = _mm_unpacklo_epi64(xmm2,xmm3);
-
- y0r_one_over_sqrt_21 = _mm_mulhi_epi16(y0r, ONE_OVER_SQRT_42);
- y0r_three_over_sqrt_21 = _mm_mulhi_epi16(y0r, THREE_OVER_SQRT_42);
- y0r_five_over_sqrt_21 = _mm_mulhi_epi16(y0r, FIVE_OVER_SQRT_42);
- y0r_five_over_sqrt_21 = _mm_slli_epi16(y0r_five_over_sqrt_21, 1);
- y0r_seven_over_sqrt_21 = _mm_mulhi_epi16(y0r, SEVEN_OVER_SQRT_42);
- y0r_seven_over_sqrt_21 = _mm_slli_epi16(y0r_seven_over_sqrt_21, 2); // Q2.14
-
- y0i_one_over_sqrt_21 = _mm_mulhi_epi16(y0i, ONE_OVER_SQRT_42);
- y0i_three_over_sqrt_21 = _mm_mulhi_epi16(y0i, THREE_OVER_SQRT_42);
- y0i_five_over_sqrt_21 = _mm_mulhi_epi16(y0i, FIVE_OVER_SQRT_42);
- y0i_five_over_sqrt_21 = _mm_slli_epi16(y0i_five_over_sqrt_21, 1);
- y0i_seven_over_sqrt_21 = _mm_mulhi_epi16(y0i, SEVEN_OVER_SQRT_42);
- y0i_seven_over_sqrt_21 = _mm_slli_epi16(y0i_seven_over_sqrt_21, 2); // Q2.14
-
- y0_p_7_1 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_7_3 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_7_5 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_7_7 = _mm_adds_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_5_1 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_5_3 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_5_5 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_5_7 = _mm_adds_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_3_1 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_3_3 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_3_5 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_3_7 = _mm_adds_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_p_1_1 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_p_1_3 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_p_1_5 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_p_1_7 = _mm_adds_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21);
-
- y0_m_1_1 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_1_3 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_1_5 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_1_7 = _mm_subs_epi16(y0r_one_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_3_1 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_3_3 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_3_5 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_3_7 = _mm_subs_epi16(y0r_three_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_5_1 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_5_3 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_5_5 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_5_7 = _mm_subs_epi16(y0r_five_over_sqrt_21, y0i_seven_over_sqrt_21);
- y0_m_7_1 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_one_over_sqrt_21);
- y0_m_7_3 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_three_over_sqrt_21);
- y0_m_7_5 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_five_over_sqrt_21);
- y0_m_7_7 = _mm_subs_epi16(y0r_seven_over_sqrt_21, y0i_seven_over_sqrt_21);
-
- // Detection of interference term
- ch_mag_int_with_sigma2 = _mm_srai_epi16(ch_mag_int, 1); // *2
- two_ch_mag_int_with_sigma2 = ch_mag_int; // *4
- three_ch_mag_int_with_sigma2 = _mm_adds_epi16(ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2); // *6
-
- interference_abs_64qam_epi16(psi_r_p7_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p7_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p7_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p7_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p7_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p7_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p7_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p7_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p7_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p5_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p5_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p5_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p5_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p5_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p5_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p5_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p5_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p5_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p5_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p5_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p5_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p5_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p5_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p5_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p5_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p3_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p3_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_p1_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_p1_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m1_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m1_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m3_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m3_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m5_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m5_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m5_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m5_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m5_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m5_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m5_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m5_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m5_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m5_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m5_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m5_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m5_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m5_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m5_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m5_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m7_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m7_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m7_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m7_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m7_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m7_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m7_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m7_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m7_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m7_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m7_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m7_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m7_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m7_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_r_m7_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_r_m7_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
-
- interference_abs_64qam_epi16(psi_i_p7_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p7_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p7_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p7_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p7_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p7_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p7_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p7_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p7_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p7_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p7_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p7_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p7_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p7_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p7_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p7_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p5_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p5_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p5_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p5_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p5_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p5_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p5_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p5_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p5_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p5_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p5_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p5_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p5_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p5_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p5_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p5_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p3_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p3_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_p1_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_p1_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m1_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m1_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m3_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m3_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m5_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m5_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m5_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m5_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m5_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m5_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m5_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m5_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m5_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m5_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m5_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m5_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m5_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m5_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m5_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m5_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m7_p7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m7_p7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m7_p5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m7_p5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m7_p3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m7_p3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m7_p1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m7_p1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m7_m1, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m7_m1, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m7_m3, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m7_m3, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m7_m5, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m7_m5, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
- interference_abs_64qam_epi16(psi_i_m7_m7, ch_mag_int_with_sigma2, two_ch_mag_int_with_sigma2, three_ch_mag_int_with_sigma2, a_i_m7_m7, ONE_OVER_SQRT_2_42, THREE_OVER_SQRT_2_42, FIVE_OVER_SQRT_2_42,
- SEVEN_OVER_SQRT_2_42);
-
- // Calculation of a group of two terms in the bit metric involving product of psi and interference
- prodsum_psi_a_epi16(psi_r_p7_p7, a_r_p7_p7, psi_i_p7_p7, a_i_p7_p7, psi_a_p7_p7);
- prodsum_psi_a_epi16(psi_r_p7_p5, a_r_p7_p5, psi_i_p7_p5, a_i_p7_p5, psi_a_p7_p5);
- prodsum_psi_a_epi16(psi_r_p7_p3, a_r_p7_p3, psi_i_p7_p3, a_i_p7_p3, psi_a_p7_p3);
- prodsum_psi_a_epi16(psi_r_p7_p1, a_r_p7_p1, psi_i_p7_p1, a_i_p7_p1, psi_a_p7_p1);
- prodsum_psi_a_epi16(psi_r_p7_m1, a_r_p7_m1, psi_i_p7_m1, a_i_p7_m1, psi_a_p7_m1);
- prodsum_psi_a_epi16(psi_r_p7_m3, a_r_p7_m3, psi_i_p7_m3, a_i_p7_m3, psi_a_p7_m3);
- prodsum_psi_a_epi16(psi_r_p7_m5, a_r_p7_m5, psi_i_p7_m5, a_i_p7_m5, psi_a_p7_m5);
- prodsum_psi_a_epi16(psi_r_p7_m7, a_r_p7_m7, psi_i_p7_m7, a_i_p7_m7, psi_a_p7_m7);
- prodsum_psi_a_epi16(psi_r_p5_p7, a_r_p5_p7, psi_i_p5_p7, a_i_p5_p7, psi_a_p5_p7);
- prodsum_psi_a_epi16(psi_r_p5_p5, a_r_p5_p5, psi_i_p5_p5, a_i_p5_p5, psi_a_p5_p5);
- prodsum_psi_a_epi16(psi_r_p5_p3, a_r_p5_p3, psi_i_p5_p3, a_i_p5_p3, psi_a_p5_p3);
- prodsum_psi_a_epi16(psi_r_p5_p1, a_r_p5_p1, psi_i_p5_p1, a_i_p5_p1, psi_a_p5_p1);
- prodsum_psi_a_epi16(psi_r_p5_m1, a_r_p5_m1, psi_i_p5_m1, a_i_p5_m1, psi_a_p5_m1);
- prodsum_psi_a_epi16(psi_r_p5_m3, a_r_p5_m3, psi_i_p5_m3, a_i_p5_m3, psi_a_p5_m3);
- prodsum_psi_a_epi16(psi_r_p5_m5, a_r_p5_m5, psi_i_p5_m5, a_i_p5_m5, psi_a_p5_m5);
- prodsum_psi_a_epi16(psi_r_p5_m7, a_r_p5_m7, psi_i_p5_m7, a_i_p5_m7, psi_a_p5_m7);
- prodsum_psi_a_epi16(psi_r_p3_p7, a_r_p3_p7, psi_i_p3_p7, a_i_p3_p7, psi_a_p3_p7);
- prodsum_psi_a_epi16(psi_r_p3_p5, a_r_p3_p5, psi_i_p3_p5, a_i_p3_p5, psi_a_p3_p5);
- prodsum_psi_a_epi16(psi_r_p3_p3, a_r_p3_p3, psi_i_p3_p3, a_i_p3_p3, psi_a_p3_p3);
- prodsum_psi_a_epi16(psi_r_p3_p1, a_r_p3_p1, psi_i_p3_p1, a_i_p3_p1, psi_a_p3_p1);
- prodsum_psi_a_epi16(psi_r_p3_m1, a_r_p3_m1, psi_i_p3_m1, a_i_p3_m1, psi_a_p3_m1);
- prodsum_psi_a_epi16(psi_r_p3_m3, a_r_p3_m3, psi_i_p3_m3, a_i_p3_m3, psi_a_p3_m3);
- prodsum_psi_a_epi16(psi_r_p3_m5, a_r_p3_m5, psi_i_p3_m5, a_i_p3_m5, psi_a_p3_m5);
- prodsum_psi_a_epi16(psi_r_p3_m7, a_r_p3_m7, psi_i_p3_m7, a_i_p3_m7, psi_a_p3_m7);
- prodsum_psi_a_epi16(psi_r_p1_p7, a_r_p1_p7, psi_i_p1_p7, a_i_p1_p7, psi_a_p1_p7);
- prodsum_psi_a_epi16(psi_r_p1_p5, a_r_p1_p5, psi_i_p1_p5, a_i_p1_p5, psi_a_p1_p5);
- prodsum_psi_a_epi16(psi_r_p1_p3, a_r_p1_p3, psi_i_p1_p3, a_i_p1_p3, psi_a_p1_p3);
- prodsum_psi_a_epi16(psi_r_p1_p1, a_r_p1_p1, psi_i_p1_p1, a_i_p1_p1, psi_a_p1_p1);
- prodsum_psi_a_epi16(psi_r_p1_m1, a_r_p1_m1, psi_i_p1_m1, a_i_p1_m1, psi_a_p1_m1);
- prodsum_psi_a_epi16(psi_r_p1_m3, a_r_p1_m3, psi_i_p1_m3, a_i_p1_m3, psi_a_p1_m3);
- prodsum_psi_a_epi16(psi_r_p1_m5, a_r_p1_m5, psi_i_p1_m5, a_i_p1_m5, psi_a_p1_m5);
- prodsum_psi_a_epi16(psi_r_p1_m7, a_r_p1_m7, psi_i_p1_m7, a_i_p1_m7, psi_a_p1_m7);
- prodsum_psi_a_epi16(psi_r_m1_p7, a_r_m1_p7, psi_i_m1_p7, a_i_m1_p7, psi_a_m1_p7);
- prodsum_psi_a_epi16(psi_r_m1_p5, a_r_m1_p5, psi_i_m1_p5, a_i_m1_p5, psi_a_m1_p5);
- prodsum_psi_a_epi16(psi_r_m1_p3, a_r_m1_p3, psi_i_m1_p3, a_i_m1_p3, psi_a_m1_p3);
- prodsum_psi_a_epi16(psi_r_m1_p1, a_r_m1_p1, psi_i_m1_p1, a_i_m1_p1, psi_a_m1_p1);
- prodsum_psi_a_epi16(psi_r_m1_m1, a_r_m1_m1, psi_i_m1_m1, a_i_m1_m1, psi_a_m1_m1);
- prodsum_psi_a_epi16(psi_r_m1_m3, a_r_m1_m3, psi_i_m1_m3, a_i_m1_m3, psi_a_m1_m3);
- prodsum_psi_a_epi16(psi_r_m1_m5, a_r_m1_m5, psi_i_m1_m5, a_i_m1_m5, psi_a_m1_m5);
- prodsum_psi_a_epi16(psi_r_m1_m7, a_r_m1_m7, psi_i_m1_m7, a_i_m1_m7, psi_a_m1_m7);
- prodsum_psi_a_epi16(psi_r_m3_p7, a_r_m3_p7, psi_i_m3_p7, a_i_m3_p7, psi_a_m3_p7);
- prodsum_psi_a_epi16(psi_r_m3_p5, a_r_m3_p5, psi_i_m3_p5, a_i_m3_p5, psi_a_m3_p5);
- prodsum_psi_a_epi16(psi_r_m3_p3, a_r_m3_p3, psi_i_m3_p3, a_i_m3_p3, psi_a_m3_p3);
- prodsum_psi_a_epi16(psi_r_m3_p1, a_r_m3_p1, psi_i_m3_p1, a_i_m3_p1, psi_a_m3_p1);
- prodsum_psi_a_epi16(psi_r_m3_m1, a_r_m3_m1, psi_i_m3_m1, a_i_m3_m1, psi_a_m3_m1);
- prodsum_psi_a_epi16(psi_r_m3_m3, a_r_m3_m3, psi_i_m3_m3, a_i_m3_m3, psi_a_m3_m3);
- prodsum_psi_a_epi16(psi_r_m3_m5, a_r_m3_m5, psi_i_m3_m5, a_i_m3_m5, psi_a_m3_m5);
- prodsum_psi_a_epi16(psi_r_m3_m7, a_r_m3_m7, psi_i_m3_m7, a_i_m3_m7, psi_a_m3_m7);
- prodsum_psi_a_epi16(psi_r_m5_p7, a_r_m5_p7, psi_i_m5_p7, a_i_m5_p7, psi_a_m5_p7);
- prodsum_psi_a_epi16(psi_r_m5_p5, a_r_m5_p5, psi_i_m5_p5, a_i_m5_p5, psi_a_m5_p5);
- prodsum_psi_a_epi16(psi_r_m5_p3, a_r_m5_p3, psi_i_m5_p3, a_i_m5_p3, psi_a_m5_p3);
- prodsum_psi_a_epi16(psi_r_m5_p1, a_r_m5_p1, psi_i_m5_p1, a_i_m5_p1, psi_a_m5_p1);
- prodsum_psi_a_epi16(psi_r_m5_m1, a_r_m5_m1, psi_i_m5_m1, a_i_m5_m1, psi_a_m5_m1);
- prodsum_psi_a_epi16(psi_r_m5_m3, a_r_m5_m3, psi_i_m5_m3, a_i_m5_m3, psi_a_m5_m3);
- prodsum_psi_a_epi16(psi_r_m5_m5, a_r_m5_m5, psi_i_m5_m5, a_i_m5_m5, psi_a_m5_m5);
- prodsum_psi_a_epi16(psi_r_m5_m7, a_r_m5_m7, psi_i_m5_m7, a_i_m5_m7, psi_a_m5_m7);
- prodsum_psi_a_epi16(psi_r_m7_p7, a_r_m7_p7, psi_i_m7_p7, a_i_m7_p7, psi_a_m7_p7);
- prodsum_psi_a_epi16(psi_r_m7_p5, a_r_m7_p5, psi_i_m7_p5, a_i_m7_p5, psi_a_m7_p5);
- prodsum_psi_a_epi16(psi_r_m7_p3, a_r_m7_p3, psi_i_m7_p3, a_i_m7_p3, psi_a_m7_p3);
- prodsum_psi_a_epi16(psi_r_m7_p1, a_r_m7_p1, psi_i_m7_p1, a_i_m7_p1, psi_a_m7_p1);
- prodsum_psi_a_epi16(psi_r_m7_m1, a_r_m7_m1, psi_i_m7_m1, a_i_m7_m1, psi_a_m7_m1);
- prodsum_psi_a_epi16(psi_r_m7_m3, a_r_m7_m3, psi_i_m7_m3, a_i_m7_m3, psi_a_m7_m3);
- prodsum_psi_a_epi16(psi_r_m7_m5, a_r_m7_m5, psi_i_m7_m5, a_i_m7_m5, psi_a_m7_m5);
- prodsum_psi_a_epi16(psi_r_m7_m7, a_r_m7_m7, psi_i_m7_m7, a_i_m7_m7, psi_a_m7_m7);
-
- // Multiply by sqrt(2)
- psi_a_p7_p7 = _mm_mulhi_epi16(psi_a_p7_p7, ONE_OVER_SQRT_2);
- psi_a_p7_p7 = _mm_slli_epi16(psi_a_p7_p7, 2);
- psi_a_p7_p5 = _mm_mulhi_epi16(psi_a_p7_p5, ONE_OVER_SQRT_2);
- psi_a_p7_p5 = _mm_slli_epi16(psi_a_p7_p5, 2);
- psi_a_p7_p3 = _mm_mulhi_epi16(psi_a_p7_p3, ONE_OVER_SQRT_2);
- psi_a_p7_p3 = _mm_slli_epi16(psi_a_p7_p3, 2);
- psi_a_p7_p1 = _mm_mulhi_epi16(psi_a_p7_p1, ONE_OVER_SQRT_2);
- psi_a_p7_p1 = _mm_slli_epi16(psi_a_p7_p1, 2);
- psi_a_p7_m1 = _mm_mulhi_epi16(psi_a_p7_m1, ONE_OVER_SQRT_2);
- psi_a_p7_m1 = _mm_slli_epi16(psi_a_p7_m1, 2);
- psi_a_p7_m3 = _mm_mulhi_epi16(psi_a_p7_m3, ONE_OVER_SQRT_2);
- psi_a_p7_m3 = _mm_slli_epi16(psi_a_p7_m3, 2);
- psi_a_p7_m5 = _mm_mulhi_epi16(psi_a_p7_m5, ONE_OVER_SQRT_2);
- psi_a_p7_m5 = _mm_slli_epi16(psi_a_p7_m5, 2);
- psi_a_p7_m7 = _mm_mulhi_epi16(psi_a_p7_m7, ONE_OVER_SQRT_2);
- psi_a_p7_m7 = _mm_slli_epi16(psi_a_p7_m7, 2);
- psi_a_p5_p7 = _mm_mulhi_epi16(psi_a_p5_p7, ONE_OVER_SQRT_2);
- psi_a_p5_p7 = _mm_slli_epi16(psi_a_p5_p7, 2);
- psi_a_p5_p5 = _mm_mulhi_epi16(psi_a_p5_p5, ONE_OVER_SQRT_2);
- psi_a_p5_p5 = _mm_slli_epi16(psi_a_p5_p5, 2);
- psi_a_p5_p3 = _mm_mulhi_epi16(psi_a_p5_p3, ONE_OVER_SQRT_2);
- psi_a_p5_p3 = _mm_slli_epi16(psi_a_p5_p3, 2);
- psi_a_p5_p1 = _mm_mulhi_epi16(psi_a_p5_p1, ONE_OVER_SQRT_2);
- psi_a_p5_p1 = _mm_slli_epi16(psi_a_p5_p1, 2);
- psi_a_p5_m1 = _mm_mulhi_epi16(psi_a_p5_m1, ONE_OVER_SQRT_2);
- psi_a_p5_m1 = _mm_slli_epi16(psi_a_p5_m1, 2);
- psi_a_p5_m3 = _mm_mulhi_epi16(psi_a_p5_m3, ONE_OVER_SQRT_2);
- psi_a_p5_m3 = _mm_slli_epi16(psi_a_p5_m3, 2);
- psi_a_p5_m5 = _mm_mulhi_epi16(psi_a_p5_m5, ONE_OVER_SQRT_2);
- psi_a_p5_m5 = _mm_slli_epi16(psi_a_p5_m5, 2);
- psi_a_p5_m7 = _mm_mulhi_epi16(psi_a_p5_m7, ONE_OVER_SQRT_2);
- psi_a_p5_m7 = _mm_slli_epi16(psi_a_p5_m7, 2);
- psi_a_p3_p7 = _mm_mulhi_epi16(psi_a_p3_p7, ONE_OVER_SQRT_2);
- psi_a_p3_p7 = _mm_slli_epi16(psi_a_p3_p7, 2);
- psi_a_p3_p5 = _mm_mulhi_epi16(psi_a_p3_p5, ONE_OVER_SQRT_2);
- psi_a_p3_p5 = _mm_slli_epi16(psi_a_p3_p5, 2);
- psi_a_p3_p3 = _mm_mulhi_epi16(psi_a_p3_p3, ONE_OVER_SQRT_2);
- psi_a_p3_p3 = _mm_slli_epi16(psi_a_p3_p3, 2);
- psi_a_p3_p1 = _mm_mulhi_epi16(psi_a_p3_p1, ONE_OVER_SQRT_2);
- psi_a_p3_p1 = _mm_slli_epi16(psi_a_p3_p1, 2);
- psi_a_p3_m1 = _mm_mulhi_epi16(psi_a_p3_m1, ONE_OVER_SQRT_2);
- psi_a_p3_m1 = _mm_slli_epi16(psi_a_p3_m1, 2);
- psi_a_p3_m3 = _mm_mulhi_epi16(psi_a_p3_m3, ONE_OVER_SQRT_2);
- psi_a_p3_m3 = _mm_slli_epi16(psi_a_p3_m3, 2);
- psi_a_p3_m5 = _mm_mulhi_epi16(psi_a_p3_m5, ONE_OVER_SQRT_2);
- psi_a_p3_m5 = _mm_slli_epi16(psi_a_p3_m5, 2);
- psi_a_p3_m7 = _mm_mulhi_epi16(psi_a_p3_m7, ONE_OVER_SQRT_2);
- psi_a_p3_m7 = _mm_slli_epi16(psi_a_p3_m7, 2);
- psi_a_p1_p7 = _mm_mulhi_epi16(psi_a_p1_p7, ONE_OVER_SQRT_2);
- psi_a_p1_p7 = _mm_slli_epi16(psi_a_p1_p7, 2);
- psi_a_p1_p5 = _mm_mulhi_epi16(psi_a_p1_p5, ONE_OVER_SQRT_2);
- psi_a_p1_p5 = _mm_slli_epi16(psi_a_p1_p5, 2);
- psi_a_p1_p3 = _mm_mulhi_epi16(psi_a_p1_p3, ONE_OVER_SQRT_2);
- psi_a_p1_p3 = _mm_slli_epi16(psi_a_p1_p3, 2);
- psi_a_p1_p1 = _mm_mulhi_epi16(psi_a_p1_p1, ONE_OVER_SQRT_2);
- psi_a_p1_p1 = _mm_slli_epi16(psi_a_p1_p1, 2);
- psi_a_p1_m1 = _mm_mulhi_epi16(psi_a_p1_m1, ONE_OVER_SQRT_2);
- psi_a_p1_m1 = _mm_slli_epi16(psi_a_p1_m1, 2);
- psi_a_p1_m3 = _mm_mulhi_epi16(psi_a_p1_m3, ONE_OVER_SQRT_2);
- psi_a_p1_m3 = _mm_slli_epi16(psi_a_p1_m3, 2);
- psi_a_p1_m5 = _mm_mulhi_epi16(psi_a_p1_m5, ONE_OVER_SQRT_2);
- psi_a_p1_m5 = _mm_slli_epi16(psi_a_p1_m5, 2);
- psi_a_p1_m7 = _mm_mulhi_epi16(psi_a_p1_m7, ONE_OVER_SQRT_2);
- psi_a_p1_m7 = _mm_slli_epi16(psi_a_p1_m7, 2);
- psi_a_m1_p7 = _mm_mulhi_epi16(psi_a_m1_p7, ONE_OVER_SQRT_2);
- psi_a_m1_p7 = _mm_slli_epi16(psi_a_m1_p7, 2);
- psi_a_m1_p5 = _mm_mulhi_epi16(psi_a_m1_p5, ONE_OVER_SQRT_2);
- psi_a_m1_p5 = _mm_slli_epi16(psi_a_m1_p5, 2);
- psi_a_m1_p3 = _mm_mulhi_epi16(psi_a_m1_p3, ONE_OVER_SQRT_2);
- psi_a_m1_p3 = _mm_slli_epi16(psi_a_m1_p3, 2);
- psi_a_m1_p1 = _mm_mulhi_epi16(psi_a_m1_p1, ONE_OVER_SQRT_2);
- psi_a_m1_p1 = _mm_slli_epi16(psi_a_m1_p1, 2);
- psi_a_m1_m1 = _mm_mulhi_epi16(psi_a_m1_m1, ONE_OVER_SQRT_2);
- psi_a_m1_m1 = _mm_slli_epi16(psi_a_m1_m1, 2);
- psi_a_m1_m3 = _mm_mulhi_epi16(psi_a_m1_m3, ONE_OVER_SQRT_2);
- psi_a_m1_m3 = _mm_slli_epi16(psi_a_m1_m3, 2);
- psi_a_m1_m5 = _mm_mulhi_epi16(psi_a_m1_m5, ONE_OVER_SQRT_2);
- psi_a_m1_m5 = _mm_slli_epi16(psi_a_m1_m5, 2);
- psi_a_m1_m7 = _mm_mulhi_epi16(psi_a_m1_m7, ONE_OVER_SQRT_2);
- psi_a_m1_m7 = _mm_slli_epi16(psi_a_m1_m7, 2);
- psi_a_m3_p7 = _mm_mulhi_epi16(psi_a_m3_p7, ONE_OVER_SQRT_2);
- psi_a_m3_p7 = _mm_slli_epi16(psi_a_m3_p7, 2);
- psi_a_m3_p5 = _mm_mulhi_epi16(psi_a_m3_p5, ONE_OVER_SQRT_2);
- psi_a_m3_p5 = _mm_slli_epi16(psi_a_m3_p5, 2);
- psi_a_m3_p3 = _mm_mulhi_epi16(psi_a_m3_p3, ONE_OVER_SQRT_2);
- psi_a_m3_p3 = _mm_slli_epi16(psi_a_m3_p3, 2);
- psi_a_m3_p1 = _mm_mulhi_epi16(psi_a_m3_p1, ONE_OVER_SQRT_2);
- psi_a_m3_p1 = _mm_slli_epi16(psi_a_m3_p1, 2);
- psi_a_m3_m1 = _mm_mulhi_epi16(psi_a_m3_m1, ONE_OVER_SQRT_2);
- psi_a_m3_m1 = _mm_slli_epi16(psi_a_m3_m1, 2);
- psi_a_m3_m3 = _mm_mulhi_epi16(psi_a_m3_m3, ONE_OVER_SQRT_2);
- psi_a_m3_m3 = _mm_slli_epi16(psi_a_m3_m3, 2);
- psi_a_m3_m5 = _mm_mulhi_epi16(psi_a_m3_m5, ONE_OVER_SQRT_2);
- psi_a_m3_m5 = _mm_slli_epi16(psi_a_m3_m5, 2);
- psi_a_m3_m7 = _mm_mulhi_epi16(psi_a_m3_m7, ONE_OVER_SQRT_2);
- psi_a_m3_m7 = _mm_slli_epi16(psi_a_m3_m7, 2);
- psi_a_m5_p7 = _mm_mulhi_epi16(psi_a_m5_p7, ONE_OVER_SQRT_2);
- psi_a_m5_p7 = _mm_slli_epi16(psi_a_m5_p7, 2);
- psi_a_m5_p5 = _mm_mulhi_epi16(psi_a_m5_p5, ONE_OVER_SQRT_2);
- psi_a_m5_p5 = _mm_slli_epi16(psi_a_m5_p5, 2);
- psi_a_m5_p3 = _mm_mulhi_epi16(psi_a_m5_p3, ONE_OVER_SQRT_2);
- psi_a_m5_p3 = _mm_slli_epi16(psi_a_m5_p3, 2);
- psi_a_m5_p1 = _mm_mulhi_epi16(psi_a_m5_p1, ONE_OVER_SQRT_2);
- psi_a_m5_p1 = _mm_slli_epi16(psi_a_m5_p1, 2);
- psi_a_m5_m1 = _mm_mulhi_epi16(psi_a_m5_m1, ONE_OVER_SQRT_2);
- psi_a_m5_m1 = _mm_slli_epi16(psi_a_m5_m1, 2);
- psi_a_m5_m3 = _mm_mulhi_epi16(psi_a_m5_m3, ONE_OVER_SQRT_2);
- psi_a_m5_m3 = _mm_slli_epi16(psi_a_m5_m3, 2);
- psi_a_m5_m5 = _mm_mulhi_epi16(psi_a_m5_m5, ONE_OVER_SQRT_2);
- psi_a_m5_m5 = _mm_slli_epi16(psi_a_m5_m5, 2);
- psi_a_m5_m7 = _mm_mulhi_epi16(psi_a_m5_m7, ONE_OVER_SQRT_2);
- psi_a_m5_m7 = _mm_slli_epi16(psi_a_m5_m7, 2);
- psi_a_m7_p7 = _mm_mulhi_epi16(psi_a_m7_p7, ONE_OVER_SQRT_2);
- psi_a_m7_p7 = _mm_slli_epi16(psi_a_m7_p7, 2);
- psi_a_m7_p5 = _mm_mulhi_epi16(psi_a_m7_p5, ONE_OVER_SQRT_2);
- psi_a_m7_p5 = _mm_slli_epi16(psi_a_m7_p5, 2);
- psi_a_m7_p3 = _mm_mulhi_epi16(psi_a_m7_p3, ONE_OVER_SQRT_2);
- psi_a_m7_p3 = _mm_slli_epi16(psi_a_m7_p3, 2);
- psi_a_m7_p1 = _mm_mulhi_epi16(psi_a_m7_p1, ONE_OVER_SQRT_2);
- psi_a_m7_p1 = _mm_slli_epi16(psi_a_m7_p1, 2);
- psi_a_m7_m1 = _mm_mulhi_epi16(psi_a_m7_m1, ONE_OVER_SQRT_2);
- psi_a_m7_m1 = _mm_slli_epi16(psi_a_m7_m1, 2);
- psi_a_m7_m3 = _mm_mulhi_epi16(psi_a_m7_m3, ONE_OVER_SQRT_2);
- psi_a_m7_m3 = _mm_slli_epi16(psi_a_m7_m3, 2);
- psi_a_m7_m5 = _mm_mulhi_epi16(psi_a_m7_m5, ONE_OVER_SQRT_2);
- psi_a_m7_m5 = _mm_slli_epi16(psi_a_m7_m5, 2);
- psi_a_m7_m7 = _mm_mulhi_epi16(psi_a_m7_m7, ONE_OVER_SQRT_2);
- psi_a_m7_m7 = _mm_slli_epi16(psi_a_m7_m7, 2);
-
- // Calculation of a group of two terms in the bit metric involving squares of interference
- square_a_64qam_epi16(a_r_p7_p7, a_i_p7_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_p7);
- square_a_64qam_epi16(a_r_p7_p5, a_i_p7_p5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_p5);
- square_a_64qam_epi16(a_r_p7_p3, a_i_p7_p3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_p3);
- square_a_64qam_epi16(a_r_p7_p1, a_i_p7_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_p1);
- square_a_64qam_epi16(a_r_p7_m1, a_i_p7_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_m1);
- square_a_64qam_epi16(a_r_p7_m3, a_i_p7_m3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_m3);
- square_a_64qam_epi16(a_r_p7_m5, a_i_p7_m5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_m5);
- square_a_64qam_epi16(a_r_p7_m7, a_i_p7_m7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p7_m7);
- square_a_64qam_epi16(a_r_p5_p7, a_i_p5_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p5_p7);
- square_a_64qam_epi16(a_r_p5_p5, a_i_p5_p5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p5_p5);
- square_a_64qam_epi16(a_r_p5_p3, a_i_p5_p3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p5_p3);
- square_a_64qam_epi16(a_r_p5_p1, a_i_p5_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p5_p1);
- square_a_64qam_epi16(a_r_p5_m1, a_i_p5_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p5_m1);
- square_a_64qam_epi16(a_r_p5_m3, a_i_p5_m3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p5_m3);
- square_a_64qam_epi16(a_r_p5_m5, a_i_p5_m5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p5_m5);
- square_a_64qam_epi16(a_r_p5_m7, a_i_p5_m7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p5_m7);
- square_a_64qam_epi16(a_r_p3_p7, a_i_p3_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p3_p7);
- square_a_64qam_epi16(a_r_p3_p5, a_i_p3_p5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p3_p5);
- square_a_64qam_epi16(a_r_p3_p3, a_i_p3_p3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p3_p3);
- square_a_64qam_epi16(a_r_p3_p1, a_i_p3_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p3_p1);
- square_a_64qam_epi16(a_r_p3_m1, a_i_p3_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p3_m1);
- square_a_64qam_epi16(a_r_p3_m3, a_i_p3_m3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p3_m3);
- square_a_64qam_epi16(a_r_p3_m5, a_i_p3_m5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p3_m5);
- square_a_64qam_epi16(a_r_p3_m7, a_i_p3_m7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p3_m7);
- square_a_64qam_epi16(a_r_p1_p7, a_i_p1_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_p7);
- square_a_64qam_epi16(a_r_p1_p5, a_i_p1_p5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_p5);
- square_a_64qam_epi16(a_r_p1_p3, a_i_p1_p3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_p3);
- square_a_64qam_epi16(a_r_p1_p1, a_i_p1_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_p1);
- square_a_64qam_epi16(a_r_p1_m1, a_i_p1_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_m1);
- square_a_64qam_epi16(a_r_p1_m3, a_i_p1_m3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_m3);
- square_a_64qam_epi16(a_r_p1_m5, a_i_p1_m5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_m5);
- square_a_64qam_epi16(a_r_p1_m7, a_i_p1_m7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_p1_m7);
- square_a_64qam_epi16(a_r_m1_p7, a_i_m1_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_p7);
- square_a_64qam_epi16(a_r_m1_p5, a_i_m1_p5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_p5);
- square_a_64qam_epi16(a_r_m1_p3, a_i_m1_p3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_p3);
- square_a_64qam_epi16(a_r_m1_p1, a_i_m1_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_p1);
- square_a_64qam_epi16(a_r_m1_m1, a_i_m1_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_m1);
- square_a_64qam_epi16(a_r_m1_m3, a_i_m1_m3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_m3);
- square_a_64qam_epi16(a_r_m1_m5, a_i_m1_m5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_m5);
- square_a_64qam_epi16(a_r_m1_m7, a_i_m1_m7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m1_m7);
- square_a_64qam_epi16(a_r_m3_p7, a_i_m3_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m3_p7);
- square_a_64qam_epi16(a_r_m3_p5, a_i_m3_p5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m3_p5);
- square_a_64qam_epi16(a_r_m3_p3, a_i_m3_p3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m3_p3);
- square_a_64qam_epi16(a_r_m3_p1, a_i_m3_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m3_p1);
- square_a_64qam_epi16(a_r_m3_m1, a_i_m3_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m3_m1);
- square_a_64qam_epi16(a_r_m3_m3, a_i_m3_m3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m3_m3);
- square_a_64qam_epi16(a_r_m3_m5, a_i_m3_m5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m3_m5);
- square_a_64qam_epi16(a_r_m3_m7, a_i_m3_m7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m3_m7);
- square_a_64qam_epi16(a_r_m5_p7, a_i_m5_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m5_p7);
- square_a_64qam_epi16(a_r_m5_p5, a_i_m5_p5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m5_p5);
- square_a_64qam_epi16(a_r_m5_p3, a_i_m5_p3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m5_p3);
- square_a_64qam_epi16(a_r_m5_p1, a_i_m5_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m5_p1);
- square_a_64qam_epi16(a_r_m5_m1, a_i_m5_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m5_m1);
- square_a_64qam_epi16(a_r_m5_m3, a_i_m5_m3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m5_m3);
- square_a_64qam_epi16(a_r_m5_m5, a_i_m5_m5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m5_m5);
- square_a_64qam_epi16(a_r_m5_m7, a_i_m5_m7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m5_m7);
- square_a_64qam_epi16(a_r_m7_p7, a_i_m7_p7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m7_p7);
- square_a_64qam_epi16(a_r_m7_p5, a_i_m7_p5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m7_p5);
- square_a_64qam_epi16(a_r_m7_p3, a_i_m7_p3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m7_p3);
- square_a_64qam_epi16(a_r_m7_p1, a_i_m7_p1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m7_p1);
- square_a_64qam_epi16(a_r_m7_m1, a_i_m7_m1, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m7_m1);
- square_a_64qam_epi16(a_r_m7_m3, a_i_m7_m3, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m7_m3);
- square_a_64qam_epi16(a_r_m7_m5, a_i_m7_m5, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m7_m5);
- square_a_64qam_epi16(a_r_m7_m7, a_i_m7_m7, ch_mag_int, SQRT_42_OVER_FOUR, a_sq_m7_m7);
-
- // Computing different multiples of ||h0||^2
- // x=1, y=1
- ch_mag_2_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,ONE_OVER_FOUR_SQRT_42);
- ch_mag_2_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_2_over_42_with_sigma2,1);
- // x=1, y=3
- ch_mag_10_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,FIVE_OVER_FOUR_SQRT_42);
- ch_mag_10_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_10_over_42_with_sigma2,1);
- // x=1, x=5
- ch_mag_26_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,THIRTEEN_OVER_FOUR_SQRT_42);
- ch_mag_26_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_26_over_42_with_sigma2,1);
- // x=1, y=7
- ch_mag_50_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42);
- ch_mag_50_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_50_over_42_with_sigma2,1);
- // x=3, y=3
- ch_mag_18_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,NINE_OVER_FOUR_SQRT_42);
- ch_mag_18_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_18_over_42_with_sigma2,1);
- // x=3, y=5
- ch_mag_34_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,SEVENTEEN_OVER_FOUR_SQRT_42);
- ch_mag_34_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_34_over_42_with_sigma2,1);
- // x=3, y=7
- ch_mag_58_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYNINE_OVER_FOUR_SQRT_42);
- ch_mag_58_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_58_over_42_with_sigma2,2);
- // x=5, y=5
- ch_mag_50_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,TWENTYFIVE_OVER_FOUR_SQRT_42);
- ch_mag_50_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_50_over_42_with_sigma2,1);
- // x=5, y=7
- ch_mag_74_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,THIRTYSEVEN_OVER_FOUR_SQRT_42);
- ch_mag_74_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_74_over_42_with_sigma2,2);
- // x=7, y=7
- ch_mag_98_over_42_with_sigma2 = _mm_mulhi_epi16(ch_mag_des,FORTYNINE_OVER_FOUR_SQRT_42);
- ch_mag_98_over_42_with_sigma2 = _mm_slli_epi16(ch_mag_98_over_42_with_sigma2,2);
-
- // Computing Metrics
- xmm0 = _mm_subs_epi16(psi_a_p7_p7, a_sq_p7_p7);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_7_7);
- bit_met_p7_p7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_p5, a_sq_p7_p5);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_7_5);
- bit_met_p7_p5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_p3, a_sq_p7_p3);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_7_3);
- bit_met_p7_p3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_p1, a_sq_p7_p1);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_7_1);
- bit_met_p7_p1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_m1, a_sq_p7_m1);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_7_1);
- bit_met_p7_m1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_m3, a_sq_p7_m3);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_7_3);
- bit_met_p7_m3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_m5, a_sq_p7_m5);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_7_5);
- bit_met_p7_m5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p7_m7, a_sq_p7_m7);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_7_7);
- bit_met_p7_m7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_p7, a_sq_p5_p7);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_5_7);
- bit_met_p5_p7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_p5, a_sq_p5_p5);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_5_5);
- bit_met_p5_p5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_p3, a_sq_p5_p3);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_5_3);
- bit_met_p5_p3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_p1, a_sq_p5_p1);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_5_1);
- bit_met_p5_p1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_m1, a_sq_p5_m1);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_5_1);
- bit_met_p5_m1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_m3, a_sq_p5_m3);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_5_3);
- bit_met_p5_m3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_m5, a_sq_p5_m5);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_5_5);
- bit_met_p5_m5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p5_m7, a_sq_p5_m7);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_5_7);
- bit_met_p5_m7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_p7, a_sq_p3_p7);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_3_7);
- bit_met_p3_p7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_p5, a_sq_p3_p5);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_3_5);
- bit_met_p3_p5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_p3, a_sq_p3_p3);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_3_3);
- bit_met_p3_p3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_p1, a_sq_p3_p1);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_3_1);
- bit_met_p3_p1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_m1, a_sq_p3_m1);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_3_1);
- bit_met_p3_m1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_m3, a_sq_p3_m3);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_3_3);
- bit_met_p3_m3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_m5, a_sq_p3_m5);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_3_5);
- bit_met_p3_m5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p3_m7, a_sq_p3_m7);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_3_7);
- bit_met_p3_m7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_p7, a_sq_p1_p7);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_1_7);
- bit_met_p1_p7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_p5, a_sq_p1_p5);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_1_5);
- bit_met_p1_p5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_p3, a_sq_p1_p3);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_1_3);
- bit_met_p1_p3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_p1, a_sq_p1_p1);
- xmm1 = _mm_adds_epi16(xmm0, y0_p_1_1);
- bit_met_p1_p1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_m1, a_sq_p1_m1);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_1_1);
- bit_met_p1_m1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_m3, a_sq_p1_m3);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_1_3);
- bit_met_p1_m3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_m5, a_sq_p1_m5);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_1_5);
- bit_met_p1_m5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_p1_m7, a_sq_p1_m7);
- xmm1 = _mm_adds_epi16(xmm0, y0_m_1_7);
- bit_met_p1_m7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
-
- xmm0 = _mm_subs_epi16(psi_a_m1_p7, a_sq_m1_p7);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_1_7);
- bit_met_m1_p7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_p5, a_sq_m1_p5);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_1_5);
- bit_met_m1_p5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_p3, a_sq_m1_p3);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_1_3);
- bit_met_m1_p3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_p1, a_sq_m1_p1);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_1_1);
- bit_met_m1_p1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_m1, a_sq_m1_m1);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_1_1);
- bit_met_m1_m1 = _mm_subs_epi16(xmm1, ch_mag_2_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_m3, a_sq_m1_m3);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_1_3);
- bit_met_m1_m3 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_m5, a_sq_m1_m5);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_1_5);
- bit_met_m1_m5 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m1_m7, a_sq_m1_m7);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_1_7);
- bit_met_m1_m7 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_p7, a_sq_m3_p7);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_3_7);
- bit_met_m3_p7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_p5, a_sq_m3_p5);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_3_5);
- bit_met_m3_p5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_p3, a_sq_m3_p3);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_3_3);
- bit_met_m3_p3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_p1, a_sq_m3_p1);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_3_1);
- bit_met_m3_p1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_m1, a_sq_m3_m1);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_3_1);
- bit_met_m3_m1 = _mm_subs_epi16(xmm1, ch_mag_10_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_m3, a_sq_m3_m3);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_3_3);
- bit_met_m3_m3 = _mm_subs_epi16(xmm1, ch_mag_18_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_m5, a_sq_m3_m5);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_3_5);
- bit_met_m3_m5 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m3_m7, a_sq_m3_m7);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_3_7);
- bit_met_m3_m7 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_p7, a_sq_m5_p7);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_5_7);
- bit_met_m5_p7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_p5, a_sq_m5_p5);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_5_5);
- bit_met_m5_p5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_p3, a_sq_m5_p3);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_5_3);
- bit_met_m5_p3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_p1, a_sq_m5_p1);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_5_1);
- bit_met_m5_p1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_m1, a_sq_m5_m1);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_5_1);
- bit_met_m5_m1 = _mm_subs_epi16(xmm1, ch_mag_26_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_m3, a_sq_m5_m3);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_5_3);
- bit_met_m5_m3 = _mm_subs_epi16(xmm1, ch_mag_34_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_m5, a_sq_m5_m5);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_5_5);
- bit_met_m5_m5 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m5_m7, a_sq_m5_m7);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_5_7);
- bit_met_m5_m7 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_p7, a_sq_m7_p7);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_7_7);
- bit_met_m7_p7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_p5, a_sq_m7_p5);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_7_5);
- bit_met_m7_p5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_p3, a_sq_m7_p3);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_7_3);
- bit_met_m7_p3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_p1, a_sq_m7_p1);
- xmm1 = _mm_subs_epi16(xmm0, y0_m_7_1);
- bit_met_m7_p1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_m1, a_sq_m7_m1);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_7_1);
- bit_met_m7_m1 = _mm_subs_epi16(xmm1, ch_mag_50_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_m3, a_sq_m7_m3);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_7_3);
- bit_met_m7_m3 = _mm_subs_epi16(xmm1, ch_mag_58_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_m5, a_sq_m7_m5);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_7_5);
- bit_met_m7_m5 = _mm_subs_epi16(xmm1, ch_mag_74_over_42_with_sigma2);
- xmm0 = _mm_subs_epi16(psi_a_m7_m7, a_sq_m7_m7);
- xmm1 = _mm_subs_epi16(xmm0, y0_p_7_7);
- bit_met_m7_m7 = _mm_subs_epi16(xmm1, ch_mag_98_over_42_with_sigma2);
-
- // Detection for 1st bit (LTE mapping)
- // bit = 1
- xmm0 = _mm_max_epi16(bit_met_m7_p7, bit_met_m7_p5);
- xmm1 = _mm_max_epi16(bit_met_m7_p3, bit_met_m7_p1);
- xmm2 = _mm_max_epi16(bit_met_m7_m1, bit_met_m7_m3);
- xmm3 = _mm_max_epi16(bit_met_m7_m5, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m5_p7, bit_met_m5_p5);
- xmm1 = _mm_max_epi16(bit_met_m5_p3, bit_met_m5_p1);
- xmm2 = _mm_max_epi16(bit_met_m5_m1, bit_met_m5_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m5_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m3_p7, bit_met_m3_p5);
- xmm1 = _mm_max_epi16(bit_met_m3_p3, bit_met_m3_p1);
- xmm2 = _mm_max_epi16(bit_met_m3_m1, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m3_m5, bit_met_m3_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_p7, bit_met_m1_p5);
- xmm1 = _mm_max_epi16(bit_met_m1_p3, bit_met_m1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m1_m3);
- xmm3 = _mm_max_epi16(bit_met_m1_m5, bit_met_m1_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- // bit = 0
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p7_p5);
- xmm1 = _mm_max_epi16(bit_met_p7_p3, bit_met_p7_p1);
- xmm2 = _mm_max_epi16(bit_met_p7_m1, bit_met_p7_m3);
- xmm3 = _mm_max_epi16(bit_met_p7_m5, bit_met_p7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_p7, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p5_p3, bit_met_p5_p1);
- xmm2 = _mm_max_epi16(bit_met_p5_m1, bit_met_p5_m3);
- xmm3 = _mm_max_epi16(bit_met_p5_m5, bit_met_p5_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_p7, bit_met_p3_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p3_p1);
- xmm2 = _mm_max_epi16(bit_met_p3_m1, bit_met_p3_m3);
- xmm3 = _mm_max_epi16(bit_met_p3_m5, bit_met_p3_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_p7, bit_met_p1_p5);
- xmm1 = _mm_max_epi16(bit_met_p1_p3, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_p1_m1, bit_met_p1_m3);
- xmm3 = _mm_max_epi16(bit_met_p1_m5, bit_met_p1_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y0r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 2nd bit (LTE mapping)
- // bit = 1
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- // bit = 0
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m7_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m7_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y1r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 3rd bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_m7_m7, bit_met_m7_m5);
- xmm1 = _mm_max_epi16(bit_met_m7_m3, bit_met_m7_m1);
- xmm2 = _mm_max_epi16(bit_met_m7_p1, bit_met_m7_p3);
- xmm3 = _mm_max_epi16(bit_met_m7_p5, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m5_m7, bit_met_m5_m5);
- xmm1 = _mm_max_epi16(bit_met_m5_m3, bit_met_m5_m1);
- xmm2 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_m7, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p5_m3, bit_met_p5_m1);
- xmm2 = _mm_max_epi16(bit_met_p5_p1, bit_met_p5_p3);
- xmm3 = _mm_max_epi16(bit_met_p5_p5, bit_met_p5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p7_m5);
- xmm1 = _mm_max_epi16(bit_met_p7_m3, bit_met_p7_m1);
- xmm2 = _mm_max_epi16(bit_met_p7_p1, bit_met_p7_p3);
- xmm3 = _mm_max_epi16(bit_met_p7_p5, bit_met_p7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_m3_m7, bit_met_m3_m5);
- xmm1 = _mm_max_epi16(bit_met_m3_m3, bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_m3_p1, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_p5, bit_met_m3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_m7, bit_met_m1_m5);
- xmm1 = _mm_max_epi16(bit_met_m1_m3, bit_met_m1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m1_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p5, bit_met_m1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_m7, bit_met_p1_m5);
- xmm1 = _mm_max_epi16(bit_met_p1_m3, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1, bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_p5, bit_met_p1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_m7, bit_met_p3_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p3_m1);
- xmm2 = _mm_max_epi16(bit_met_p3_p1, bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_p5, bit_met_p3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y2r = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 4th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m7_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y0i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
-
- // Detection for 5th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_m7_m7, bit_met_m7_m5);
- xmm1 = _mm_max_epi16(bit_met_m7_m3, bit_met_m7_m1);
- xmm2 = _mm_max_epi16(bit_met_m7_p1, bit_met_m7_p3);
- xmm3 = _mm_max_epi16(bit_met_m7_p5, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m1_m7, bit_met_m1_m5);
- xmm1 = _mm_max_epi16(bit_met_m1_m3, bit_met_m1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m1_p3);
- xmm3 = _mm_max_epi16(bit_met_m1_p5, bit_met_m1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p1_m7, bit_met_p1_m5);
- xmm1 = _mm_max_epi16(bit_met_p1_m3, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_p1_p1, bit_met_p1_p3);
- xmm3 = _mm_max_epi16(bit_met_p1_p5, bit_met_p1_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p7_m5);
- xmm1 = _mm_max_epi16(bit_met_p7_m3, bit_met_p7_m1);
- xmm2 = _mm_max_epi16(bit_met_p7_p1, bit_met_p7_p3);
- xmm3 = _mm_max_epi16(bit_met_p7_p5, bit_met_p7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_m5_m7, bit_met_m5_m5);
- xmm1 = _mm_max_epi16(bit_met_m5_m3, bit_met_m5_m1);
- xmm2 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_m3_m7, bit_met_m3_m5);
- xmm1 = _mm_max_epi16(bit_met_m3_m3, bit_met_m3_m1);
- xmm2 = _mm_max_epi16(bit_met_m3_p1, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m3_p5, bit_met_m3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p3_m7, bit_met_p3_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p3_m1);
- xmm2 = _mm_max_epi16(bit_met_p3_p1, bit_met_p3_p3);
- xmm3 = _mm_max_epi16(bit_met_p3_p5, bit_met_p3_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p5_m7, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p5_m3, bit_met_p5_m1);
- xmm2 = _mm_max_epi16(bit_met_p5_p1, bit_met_p5_p3);
- xmm3 = _mm_max_epi16(bit_met_p5_p5, bit_met_p5_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y1i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
- // Detection for 6th bit (LTE mapping)
- xmm0 = _mm_max_epi16(bit_met_p7_p7, bit_met_p5_p7);
- xmm1 = _mm_max_epi16(bit_met_p3_p7, bit_met_p1_p7);
- xmm2 = _mm_max_epi16(bit_met_m1_p7, bit_met_m3_p7);
- xmm3 = _mm_max_epi16(bit_met_m5_p7, bit_met_m7_p7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p1, bit_met_p5_p1);
- xmm1 = _mm_max_epi16(bit_met_p3_p1, bit_met_p1_p1);
- xmm2 = _mm_max_epi16(bit_met_m1_p1, bit_met_m3_p1);
- xmm3 = _mm_max_epi16(bit_met_m5_p1, bit_met_m5_p1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m1, bit_met_p5_m1);
- xmm1 = _mm_max_epi16(bit_met_p3_m1, bit_met_p1_m1);
- xmm2 = _mm_max_epi16(bit_met_m1_m1, bit_met_m3_m1);
- xmm3 = _mm_max_epi16(bit_met_m5_m1, bit_met_m7_m1);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m7, bit_met_p5_m7);
- xmm1 = _mm_max_epi16(bit_met_p3_m7, bit_met_p1_m7);
- xmm2 = _mm_max_epi16(bit_met_m1_m7, bit_met_m3_m7);
- xmm3 = _mm_max_epi16(bit_met_m5_m7, bit_met_m7_m7);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm4);
- logmax_den_re0 = _mm_max_epi16(logmax_den_re0, xmm5);
-
- xmm0 = _mm_max_epi16(bit_met_p7_m5, bit_met_p5_m5);
- xmm1 = _mm_max_epi16(bit_met_p3_m5, bit_met_p1_m5);
- xmm2 = _mm_max_epi16(bit_met_m1_m5, bit_met_m3_m5);
- xmm3 = _mm_max_epi16(bit_met_m5_m5, bit_met_m7_m5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(xmm4, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_m3, bit_met_p5_m3);
- xmm1 = _mm_max_epi16(bit_met_p3_m3, bit_met_p1_m3);
- xmm2 = _mm_max_epi16(bit_met_m1_m3, bit_met_m3_m3);
- xmm3 = _mm_max_epi16(bit_met_m5_m3, bit_met_m7_m3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p3, bit_met_p5_p3);
- xmm1 = _mm_max_epi16(bit_met_p3_p3, bit_met_p1_p3);
- xmm2 = _mm_max_epi16(bit_met_m1_p3, bit_met_m3_p3);
- xmm3 = _mm_max_epi16(bit_met_m5_p3, bit_met_m7_p3);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
- xmm0 = _mm_max_epi16(bit_met_p7_p5, bit_met_p5_p5);
- xmm1 = _mm_max_epi16(bit_met_p3_p5, bit_met_p1_p5);
- xmm2 = _mm_max_epi16(bit_met_m1_p5, bit_met_m3_p5);
- xmm3 = _mm_max_epi16(bit_met_m5_p5, bit_met_m7_p5);
- xmm4 = _mm_max_epi16(xmm0, xmm1);
- xmm5 = _mm_max_epi16(xmm2, xmm3);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm4);
- logmax_num_re0 = _mm_max_epi16(logmax_num_re0, xmm5);
-
- y2i = _mm_subs_epi16(logmax_num_re0, logmax_den_re0);
-
-
- // map to output stream, difficult to do in SIMD since we have 6 16bit LLRs
- // RE 1
- j = 24*i;
- stream0_out[j + 0] = ((short *)&y0r)[0];
- stream0_out[j + 1] = ((short *)&y1r)[0];
- stream0_out[j + 2] = ((short *)&y2r)[0];
- stream0_out[j + 3] = ((short *)&y0i)[0];
- stream0_out[j + 4] = ((short *)&y1i)[0];
- stream0_out[j + 5] = ((short *)&y2i)[0];
- // RE 2
- stream0_out[j + 6] = ((short *)&y0r)[1];
- stream0_out[j + 7] = ((short *)&y1r)[1];
- stream0_out[j + 8] = ((short *)&y2r)[1];
- stream0_out[j + 9] = ((short *)&y0i)[1];
- stream0_out[j + 10] = ((short *)&y1i)[1];
- stream0_out[j + 11] = ((short *)&y2i)[1];
- // RE 3
- stream0_out[j + 12] = ((short *)&y0r)[2];
- stream0_out[j + 13] = ((short *)&y1r)[2];
- stream0_out[j + 14] = ((short *)&y2r)[2];
- stream0_out[j + 15] = ((short *)&y0i)[2];
- stream0_out[j + 16] = ((short *)&y1i)[2];
- stream0_out[j + 17] = ((short *)&y2i)[2];
- // RE 4
- stream0_out[j + 18] = ((short *)&y0r)[3];
- stream0_out[j + 19] = ((short *)&y1r)[3];
- stream0_out[j + 20] = ((short *)&y2r)[3];
- stream0_out[j + 21] = ((short *)&y0i)[3];
- stream0_out[j + 22] = ((short *)&y1i)[3];
- stream0_out[j + 23] = ((short *)&y2i)[3];
- // RE 5
- stream0_out[j + 24] = ((short *)&y0r)[4];
- stream0_out[j + 25] = ((short *)&y1r)[4];
- stream0_out[j + 26] = ((short *)&y2r)[4];
- stream0_out[j + 27] = ((short *)&y0i)[4];
- stream0_out[j + 28] = ((short *)&y1i)[4];
- stream0_out[j + 29] = ((short *)&y2i)[4];
- // RE 6
- stream0_out[j + 30] = ((short *)&y0r)[5];
- stream0_out[j + 31] = ((short *)&y1r)[5];
- stream0_out[j + 32] = ((short *)&y2r)[5];
- stream0_out[j + 33] = ((short *)&y0i)[5];
- stream0_out[j + 34] = ((short *)&y1i)[5];
- stream0_out[j + 35] = ((short *)&y2i)[5];
- // RE 7
- stream0_out[j + 36] = ((short *)&y0r)[6];
- stream0_out[j + 37] = ((short *)&y1r)[6];
- stream0_out[j + 38] = ((short *)&y2r)[6];
- stream0_out[j + 39] = ((short *)&y0i)[6];
- stream0_out[j + 40] = ((short *)&y1i)[6];
- stream0_out[j + 41] = ((short *)&y2i)[6];
- // RE 8
- stream0_out[j + 42] = ((short *)&y0r)[7];
- stream0_out[j + 43] = ((short *)&y1r)[7];
- stream0_out[j + 44] = ((short *)&y2r)[7];
- stream0_out[j + 45] = ((short *)&y0i)[7];
- stream0_out[j + 46] = ((short *)&y1i)[7];
- stream0_out[j + 47] = ((short *)&y2i)[7];
-
-#elif defined(__arm__)
-
-#endif
-
- }
-
-#if defined(__x86_64__) || defined(__i386__)
- _mm_empty();
- _m_empty();
-#endif
-}
-
-
-int dlsch_64qam_64qam_llr(LTE_DL_FRAME_PARMS *frame_parms,
- int32_t **rxdataF_comp,
- int32_t **rxdataF_comp_i,
- int32_t **dl_ch_mag,
- int32_t **dl_ch_mag_i,
- int32_t **rho_i,
- int16_t *dlsch_llr,
- uint8_t symbol,
- uint8_t first_symbol_flag,
- uint16_t nb_rb,
- uint16_t pbch_pss_sss_adjust,
- //int16_t **llr16p,
- uint32_t llr_offset)
-{
-
- int16_t *rxF = (int16_t*)&rxdataF_comp[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rxF_i = (int16_t*)&rxdataF_comp_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag = (int16_t*)&dl_ch_mag[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *ch_mag_i = (int16_t*)&dl_ch_mag_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *rho = (int16_t*)&rho_i[0][(symbol*frame_parms->N_RB_DL*12)];
- int16_t *llr16;
- int8_t *pllr_symbol; // pointer where llrs should filled for this ofdm symbol
- int len;
- uint8_t symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol;
-
- //first symbol has different structure due to more pilots
- /*if (first_symbol_flag == 1) {
- llr16 = (int16_t*)dlsch_llr;
- } else {
- llr16 = (int16_t*)(*llr16p);
- }*/
-
- llr16 = (int16_t*)dlsch_llr;
-
- AssertFatal(llr16!=NULL,"dlsch_16qam_64qam_llr:llr is null, symbol %d\n",symbol);
-
-
- if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) {
- // if symbol has pilots
- if (frame_parms->nb_antenna_ports_eNB!=1)
- // in 2 antenna ports we have 8 REs per symbol per RB
- len = (nb_rb*8) - (2*pbch_pss_sss_adjust/3);
- else
- // for 1 antenna port we have 10 REs per symbol per RB
- len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6);
- } else {
- // symbol has no pilots
- len = (nb_rb*12) - pbch_pss_sss_adjust;
- }
-
- pllr_symbol = (int8_t*)dlsch_llr;
- pllr_symbol += llr_offset;
- //printf("dlsch_64qam_64qam_llr: symbol %d,nb_rb %d, len %d,pbch_pss_sss_adjust %d\n",symbol,nb_rb,len,pbch_pss_sss_adjust);
- /*LOG_I(PHY,"dlsch_64qam_64qam_llr [symb %d / FirstSym %d / Length %d / LLR Offset %d]: @LLR Buff %x, @LLR Buff(symb) %x, , @Compute LLR Buff(symb) %x \n",
- symbol,
- first_symbol_flag,
- len,
- llr_offset,
- (int16_t*)dlsch_llr,
- llr16,
- pllr_symbol);*/
-
-#ifdef __AVX2__
-
- // Round length up to multiple of 16 words
- uint32_t len256i = ((len+16)>>4)*16;
- int32_t *rxF_256i = (int32_t*) malloc16_clear(len256i*4);
- int32_t *rxF_i_256i = (int32_t*) malloc16_clear(len256i*4);
- int32_t *ch_mag_256i = (int32_t*) malloc16_clear(len256i*4);
- int32_t *ch_mag_i_256i = (int32_t*) malloc16_clear(len256i*4);
- int32_t *rho_256i = (int32_t*) malloc16_clear(len256i*4);
-
- memcpy(rxF_256i, rxF, len*4);
- memcpy(rxF_i_256i, rxF_i, len*4);
- memcpy(ch_mag_256i, ch_mag, len*4);
- memcpy(ch_mag_i_256i, ch_mag_i, len*4);
- memcpy(rho_256i, rho, len*4);
-
-#if 0
- qam64_qam16_avx2((short *)rxF_256i,
- (short *)rxF_i_256i,
- (short *)ch_mag_256i,
- (short *)ch_mag_i_256i,
- (short *)llr16,
- (short *) rho_256i,
- len);
-#else
- qam64_qam64_avx2((int32_t *)rxF_256i,
- (int32_t *)rxF_i_256i,
- (int32_t *)ch_mag_256i,
- (int32_t *)ch_mag_i_256i,
- (int16_t *)llr16,
- (int32_t *) rho_256i,
- len);
-#endif
-
- free16(rxF_256i, sizeof(rxF_256i));
- free16(rxF_i_256i, sizeof(rxF_i_256i));
- free16(ch_mag_256i, sizeof(ch_mag_256i));
- free16(ch_mag_i_256i, sizeof(ch_mag_i_256i));
- free16(rho_256i, sizeof(rho_256i));
-
-#else
- qam64_qam64((short *)rxF,
- (short *)rxF_i,
- (short *)ch_mag,
- (short *)ch_mag_i,
- (short *)llr16,
- (short *)rho,
- len);
-#endif
-
- llr16 += (6*len);
- //*llr16p = (short *)llr16;
-
- return(0);
-}
diff --git a/openair1/PHY/LTE_TRANSPORT/drs_modulation.c b/openair1/PHY/LTE_TRANSPORT/drs_modulation.c
deleted file mode 100644
index a0bde219b5..0000000000
--- a/openair1/PHY/LTE_TRANSPORT/drs_modulation.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- * contact@openairinterface.org
- */
-
-/*! \file PHY/LTE_TRANSPORT/drs_modulation.c
-* \brief Top-level routines for generating the Demodulation Reference Signals from 36-211, V8.6 2009-03
-* \author R. Knopp, F. Kaltenberger, A. Bhamri
-* \date 2011
-* \version 0.1
-* \company Eurecom
-* \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr,ankit.bhamri@eurecom.fr
-* \note
-* \warning
-*/
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-#include "PHY/sse_intrin.h"
-//#define DEBUG_DRS
-
-int generate_drs_pusch(PHY_VARS_UE *ue,
- UE_rxtx_proc_t *proc,
- uint8_t eNB_id,
- short amp,
- unsigned int subframe,
- unsigned int first_rb,
- unsigned int nb_rb,
- uint8_t ant)
-{
-
- uint16_t k,l,Msc_RS,Msc_RS_idx,rb,drs_offset;
- uint16_t * Msc_idx_ptr;
- int subframe_offset,re_offset,symbol_offset;
-
- //uint32_t phase_shift; // phase shift for cyclic delay in DM RS
- //uint8_t alpha_ind;
-
- int16_t alpha_re[12] = {32767, 28377, 16383, 0,-16384, -28378,-32768,-28378,-16384, -1, 16383, 28377};
- int16_t alpha_im[12] = {0, 16383, 28377, 32767, 28377, 16383, 0,-16384,-28378,-32768,-28378,-16384};
-
- uint8_t cyclic_shift,cyclic_shift0,cyclic_shift1;
- LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
- int32_t *txdataF = ue->common_vars.txdataF[ant];
- uint32_t u,v,alpha_ind;
- uint32_t u0=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[subframe<<1];
- uint32_t u1=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[1+(subframe<<1)];
- uint32_t v0=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[subframe<<1];
- uint32_t v1=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[1+(subframe<<1)];
- int32_t ref_re,ref_im;
- uint8_t harq_pid = subframe2harq_pid(frame_parms,proc->frame_tx,subframe);
-
- cyclic_shift0 = (frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift +
- ue->ulsch[eNB_id]->harq_processes[harq_pid]->n_DMRS2 +
- frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[subframe<<1]+
- ((ue->ulsch[0]->cooperation_flag==2)?10:0)+
- ant*6) % 12;
- // printf("PUSCH.cyclicShift %d, n_DMRS2 %d, nPRS %d\n",frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift,ue->ulsch[eNB_id]->n_DMRS2,ue->lte_frame_parms.pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[subframe<<1]);
- cyclic_shift1 = (frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift +
- ue->ulsch[eNB_id]->harq_processes[harq_pid]->n_DMRS2 +
- frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[(subframe<<1)+1]+
- ((ue->ulsch[0]->cooperation_flag==2)?10:0)+
- ant*6) % 12;
-
- // cyclic_shift0 = 0;
- // cyclic_shift1 = 0;
- Msc_RS = 12*nb_rb;
-
- Msc_idx_ptr = (uint16_t*) bsearch(&Msc_RS, dftsizes, 33, sizeof(uint16_t), compareints);
-
- if (Msc_idx_ptr)
- Msc_RS_idx = Msc_idx_ptr - dftsizes;
- else {
- LOG_I(PHY,"generate_drs_pusch: index for Msc_RS=%d not found\n",Msc_RS);
- return(-1);
- }
-
- for (l = (3 - frame_parms->Ncp),u=u0,v=v0,cyclic_shift=cyclic_shift0;
- lsymbols_per_tti;
- l += (7 - frame_parms->Ncp),u=u1,v=v1,cyclic_shift=cyclic_shift1) {
-
- drs_offset = 0;
-#ifdef DEBUG_DRS
- printf("drs_modulation: Msc_RS = %d, Msc_RS_idx = %d, u=%d,v=%d\n",Msc_RS, Msc_RS_idx,u,v);
-#endif
-
-
- re_offset = frame_parms->first_carrier_offset;
- subframe_offset = subframe*frame_parms->symbols_per_tti*frame_parms->ofdm_symbol_size;
- symbol_offset = subframe_offset + frame_parms->ofdm_symbol_size*l;
-
-
-#ifdef DEBUG_DRS
- printf("generate_drs_pusch: symbol_offset %d, subframe offset %d, cyclic shift %d\n",symbol_offset,subframe_offset,cyclic_shift);
-#endif
- alpha_ind = 0;
-
- for (rb=0; rbN_RB_UL; rb++) {
-
- if ((rb >= first_rb) && (rb<(first_rb+nb_rb))) {
-
-#ifdef DEBUG_DRS
- printf("generate_drs_pusch: doing RB %d, re_offset=%d, drs_offset=%d,cyclic shift %d\n",rb,re_offset,drs_offset,cyclic_shift);
-#endif
-
- for (k=0; k<12; k++) {
- ref_re = (int32_t) ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1];
- ref_im = (int32_t) ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1];
-
- ((int16_t*) txdataF)[2*(symbol_offset + re_offset)] = (int16_t) (((ref_re*alpha_re[alpha_ind]) -
- (ref_im*alpha_im[alpha_ind]))>>15);
- ((int16_t*) txdataF)[2*(symbol_offset + re_offset)+1] = (int16_t) (((ref_re*alpha_im[alpha_ind]) +
- (ref_im*alpha_re[alpha_ind]))>>15);
- ((short*) txdataF)[2*(symbol_offset + re_offset)] = (short) ((((short*) txdataF)[2*(symbol_offset + re_offset)]*(int32_t)amp)>>15);
- ((short*) txdataF)[2*(symbol_offset + re_offset)+1] = (short) ((((short*) txdataF)[2*(symbol_offset + re_offset)+1]*(int32_t)amp)>>15);
-
-
- alpha_ind = (alpha_ind + cyclic_shift);
-
- if (alpha_ind > 11)
- alpha_ind-=12;
-
-#ifdef DEBUG_DRS
- printf("symbol_offset %d, alpha_ind %d , re_offset %d : (%d,%d)\n",
- symbol_offset,
- alpha_ind,
- re_offset,
- ((short*) txdataF)[2*(symbol_offset + re_offset)],
- ((short*) txdataF)[2*(symbol_offset + re_offset)+1]);
-
-#endif // DEBUG_DRS
- re_offset++;
- drs_offset++;
-
- if (re_offset >= frame_parms->ofdm_symbol_size)
- re_offset = 0;
- }
-
- } else {
- re_offset+=12; // go to next RB
-
- // check if we crossed the symbol boundary and skip DC
-
- if (re_offset >= frame_parms->ofdm_symbol_size) {
- if (frame_parms->N_RB_DL&1) // odd number of RBs
- re_offset=6;
- else // even number of RBs (doesn't straddle DC)
- re_offset=0;
- }
-
-
- }
- }
- }
-
- return(0);
-}
-
diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_coding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_coding.c
deleted file mode 100644
index 09420f48ab..0000000000
--- a/openair1/PHY/LTE_TRANSPORT/ulsch_coding.c
+++ /dev/null
@@ -1,933 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- * contact@openairinterface.org
- */
-
-/*! \file PHY/LTE_TRANSPORT/ulsch_coding.c
-* \brief Top-level routines for coding the ULSCH transport channel as described in 36.212 V8.6 2009-03
-* \author R. Knopp
-* \date 2011
-* \version 0.1
-* \company Eurecom
-* \email: knopp@eurecom.fr
-* \note
-* \warning
-*/
-
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-
-#include "PHY/CODING/defs.h"
-#include "PHY/CODING/extern.h"
-#include "PHY/CODING/lte_interleaver_inline.h"
-#include "PHY/LTE_TRANSPORT/defs.h"
-#include "defs.h"
-#include "extern.h"
-#include "SIMULATION/ETH_TRANSPORT/extern.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
-
-//#define DEBUG_ULSCH_CODING
-//#define DEBUG_ULSCH_FREE 1
-
-/*
-#define is_not_pilot(pilots,first_pilot,re) (pilots==0) || \
- ((pilots==1)&&(first_pilot==1)&&(((re>2)&&(re<6))||((re>8)&&(re<12)))) || \
- ((pilots==1)&&(first_pilot==0)&&(((re<3))||((re>5)&&(re<9)))) \
-*/
-#define is_not_pilot(pilots,first_pilot,re) (1)
-
-
-
-
-void free_ue_ulsch(LTE_UE_ULSCH_t *ulsch)
-{
- int i;
- int r;
-
- if (ulsch) {
-#ifdef DEBUG_ULSCH_FREE
- printf("Freeing ulsch %p\n",ulsch);
-#endif
-
- for (i=0; i<8; i++) {
- if (ulsch->harq_processes[i]) {
- if (ulsch->harq_processes[i]->b) {
- free16(ulsch->harq_processes[i]->b,MAX_ULSCH_PAYLOAD_BYTES);
- ulsch->harq_processes[i]->b = NULL;
- }
- for (r=0; rharq_processes[i]->c[r]) {
- free16(ulsch->harq_processes[i]->c[r],((r==0)?8:0) + 3+768);
- ulsch->harq_processes[i]->c[r] = NULL;
- }
- }
-
- free16(ulsch->harq_processes[i],sizeof(LTE_UL_UE_HARQ_t));
- ulsch->harq_processes[i] = NULL;
- }
- }
- free16(ulsch,sizeof(LTE_UE_ULSCH_t));
- ulsch = NULL;
- }
-
-}
-
-LTE_UE_ULSCH_t *new_ue_ulsch(unsigned char N_RB_UL, uint8_t abstraction_flag)
-{
-
- LTE_UE_ULSCH_t *ulsch;
- unsigned char exit_flag = 0,i,j,r;
- unsigned char bw_scaling =1;
-
- switch (N_RB_UL) {
- case 6:
- bw_scaling =16;
- break;
-
- case 25:
- bw_scaling =4;
- break;
-
- case 50:
- bw_scaling =2;
- break;
-
- default:
- bw_scaling =1;
- break;
- }
-
- ulsch = (LTE_UE_ULSCH_t *)malloc16(sizeof(LTE_UE_ULSCH_t));
-
- if (ulsch) {
- memset(ulsch,0,sizeof(LTE_UE_ULSCH_t));
-
- ulsch->Mlimit = 4;
-
- for (i=0; i<8; i++) {
-
- ulsch->harq_processes[i] = (LTE_UL_UE_HARQ_t *)malloc16(sizeof(LTE_UL_UE_HARQ_t));
-
- // printf("ulsch->harq_processes[%d] %p\n",i,ulsch->harq_processes[i]);
- if (ulsch->harq_processes[i]) {
- memset(ulsch->harq_processes[i], 0, sizeof(LTE_UL_UE_HARQ_t));
- ulsch->harq_processes[i]->b = (unsigned char*)malloc16(MAX_ULSCH_PAYLOAD_BYTES/bw_scaling);
-
- if (ulsch->harq_processes[i]->b)
- memset(ulsch->harq_processes[i]->b,0,MAX_ULSCH_PAYLOAD_BYTES/bw_scaling);
- else {
- LOG_E(PHY,"Can't get b\n");
- exit_flag=1;
- }
-
- if (abstraction_flag==0) {
- for (r=0; rharq_processes[i]->c[r] = (unsigned char*)malloc16(((r==0)?8:0) + 3+768); // account for filler in first segment and CRCs for multiple segment case
-
- if (ulsch->harq_processes[i]->c[r])
- memset(ulsch->harq_processes[i]->c[r],0,((r==0)?8:0) + 3+768);
- else {
- LOG_E(PHY,"Can't get c\n");
- exit_flag=2;
- }
- }
- }
-
- ulsch->harq_processes[i]->subframe_scheduling_flag = 0;
- ulsch->harq_processes[i]->first_tx = 1;
- } else {
- LOG_E(PHY,"Can't get harq_p %d\n",i);
- exit_flag=3;
- }
- }
-
- if ((abstraction_flag == 0) && (exit_flag==0)) {
- for (i=0; i<8; i++)
- for (j=0; j<96; j++)
- for (r=0; rharq_processes[i]->d[r][j] = LTE_NULL;
-
- return(ulsch);
- } else if (abstraction_flag==1)
- return(ulsch);
- }
-
- LOG_E(PHY,"new_ue_ulsch exit flag, size of %d , %zu\n",exit_flag, sizeof(LTE_UE_ULSCH_t));
- free_ue_ulsch(ulsch);
- return(NULL);
-
-
-}
-
-
-uint32_t ulsch_encoding(uint8_t *a,
- PHY_VARS_UE *ue,
- uint8_t harq_pid,
- uint8_t eNB_id,
- uint8_t subframe_rx,
- uint8_t tmode,
- uint8_t control_only_flag,
- uint8_t Nbundled)
-{
-
- time_stats_t *seg_stats=&ue->ulsch_segmentation_stats;
- time_stats_t *rm_stats=&ue->ulsch_rate_matching_stats;
- time_stats_t *te_stats=&ue->ulsch_turbo_encoding_stats;
- time_stats_t *i_stats=&ue->ulsch_interleaving_stats;
- time_stats_t *m_stats=&ue->ulsch_multiplexing_stats;
-
- // uint16_t offset;
- uint32_t crc=1;
- uint16_t iind;
- uint32_t A;
- uint8_t Q_m=0;
- uint32_t Kr=0,Kr_bytes,r,r_offset=0;
- uint8_t y[6*14*1200],*yptr;;
- uint8_t *columnset;
- uint32_t sumKr=0;
- uint32_t Qprime,L,G,Q_CQI=0,Q_RI=0,Q_ACK=0,H=0,Hprime=0,Hpp=0,Cmux=0,Rmux=0,Rmux_prime=0;
- uint32_t Qprime_ACK=0,Qprime_CQI=0,Qprime_RI=0,len_ACK=0,len_RI=0;
- // uint32_t E;
- uint8_t ack_parity;
- uint32_t i,q,j,iprime,j2;
- uint16_t o_RCC;
- uint8_t o_flip[8];
- uint32_t wACK_idx;
- LTE_DL_FRAME_PARMS *frame_parms=&ue->frame_parms;
- PHY_MEASUREMENTS *meas = &ue->measurements;
- LTE_UE_ULSCH_t *ulsch=ue->ulsch[eNB_id];
- LTE_UE_DLSCH_t **dlsch = ue->dlsch[0][eNB_id];
- uint16_t rnti = 0xffff;
-
- if (!ulsch) {
- LOG_E(PHY,"Null ulsch ptr %p\n",ulsch);
- return(-1);
- }
-
- if (harq_pid >= 8) {
- LOG_E(PHY,"Illegal harq_pid %d\n",harq_pid);
- return(-1);
- }
-
- if (ulsch->harq_processes[harq_pid]->O_ACK > 2) {
- LOG_E(PHY,"Illegal O_ACK %d\n",ulsch->harq_processes[harq_pid]->O_ACK);
- return(-1);
- }
-
- if (ulsch->O_RI > 1) {
- LOG_E(PHY,"Illegal O_RI %d\n",ulsch->O_RI);
- return(-1);
- }
-
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_IN);
-
- // fill CQI/PMI information
- if (ulsch->O>0) {
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING_FILL_CQI, VCD_FUNCTION_IN);
- rnti = ue->pdcch_vars[ue->current_thread_id[subframe_rx]][eNB_id]->crnti;
- fill_CQI(ulsch,meas,0,harq_pid,ue->frame_parms.N_RB_DL,rnti, tmode,ue->sinr_eff);
-
- LOG_D(PHY,"ULSCH Encoding rnti %x \n", rnti);
- print_CQI(ulsch->o,ulsch->uci_format,0,ue->frame_parms.N_RB_DL);
-
- // save PUSCH pmi for later (transmission modes 4,5,6)
- if (dlsch[0]) {
- //LOG_I(PHY,"XXX saving pmi for DL %x\n",pmi2hex_2Ar1(((wideband_cqi_rank1_2A_5MHz *)ulsch->o)->pmi));
- dlsch[0]->pmi_alloc = ((wideband_cqi_rank1_2A_5MHz *)ulsch->o)->pmi;
- }
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING_FILL_CQI, VCD_FUNCTION_OUT);
- }
-
- if (ulsch->O<=32) {
- o_flip[0] = ulsch->o[3];
- o_flip[1] = ulsch->o[2];
- o_flip[2] = ulsch->o[1];
- o_flip[3] = ulsch->o[0];
- } else {
- o_flip[0] = ulsch->o[7];
- o_flip[1] = ulsch->o[6];
- o_flip[2] = ulsch->o[5];
- o_flip[3] = ulsch->o[4];
- o_flip[4] = ulsch->o[3];
- o_flip[5] = ulsch->o[2];
- o_flip[6] = ulsch->o[1];
- o_flip[7] = ulsch->o[0];
- }
-
- if (control_only_flag == 0) {
- A=ulsch->harq_processes[harq_pid]->TBS;
- Q_m = get_Qm_ul(ulsch->harq_processes[harq_pid]->mcs);
-
- ulsch->harq_processes[harq_pid]->control_only = 0;
-
-#ifdef DEBUG_ULSCH_CODING
- printf("[PHY][UE] ULSCH coding : A %d, Qm %d, mcs %d, harq_pid %d, round %d, RV %d\n",
- ulsch->harq_processes[harq_pid]->TBS,
- Q_m,
- ulsch->harq_processes[harq_pid]->mcs,
- harq_pid,
- ulsch->harq_processes[harq_pid]->round,
- ulsch->harq_processes[harq_pid]->rvidx);
-
- for (i=0; iharq_processes[harq_pid]->O_ACK; i++)
- printf("ulsch_coding: o_ACK[%d] %d\n",i,ulsch->o_ACK[i]);
-
- for (i=0; iO_RI; i++)
- printf("ulsch_coding: o_RI[%d] %d\n",i,ulsch->o_RI[i]);
-
- printf("ulsch_coding: O=%d\n",ulsch->O);
-
- for (i=0; i<1+((8+ulsch->O)/8); i++) {
- // ulsch->o[i] = i;
- printf("ulsch_coding: O[%d] %d\n",i,ulsch->o[i]);
- }
-
- if ((tmode != 4))
- print_CQI(ulsch->o,wideband_cqi_rank1_2A,0,ue->frame_parms.N_RB_DL);
- else
- print_CQI(ulsch->o,HLC_subband_cqi_rank1_2A,0,ue->frame_parms.N_RB_DL);
-
-#endif
-
- if (ulsch->harq_processes[harq_pid]->round == 0) { // this is a new packet
-
- start_meas(seg_stats);
- // Add 24-bit crc (polynomial A) to payload
- crc = crc24a(a,
- A)>>8;
-
- a[A>>3] = ((uint8_t*)&crc)[2];
- a[1+(A>>3)] = ((uint8_t*)&crc)[1];
- a[2+(A>>3)] = ((uint8_t*)&crc)[0];
-
- ulsch->harq_processes[harq_pid]->B = A+24;
- ulsch->harq_processes[harq_pid]->b = a;
- lte_segmentation(ulsch->harq_processes[harq_pid]->b,
- ulsch->harq_processes[harq_pid]->c,
- ulsch->harq_processes[harq_pid]->B,
- &ulsch->harq_processes[harq_pid]->C,
- &ulsch->harq_processes[harq_pid]->Cplus,
- &ulsch->harq_processes[harq_pid]->Cminus,
- &ulsch->harq_processes[harq_pid]->Kplus,
- &ulsch->harq_processes[harq_pid]->Kminus,
- &ulsch->harq_processes[harq_pid]->F);
-
- stop_meas(seg_stats);
-
- for (r=0; rharq_processes[harq_pid]->C; r++) {
- if (rharq_processes[harq_pid]->Cminus)
- Kr = ulsch->harq_processes[harq_pid]->Kminus;
- else
- Kr = ulsch->harq_processes[harq_pid]->Kplus;
-
- Kr_bytes = Kr>>3;
-
- // get interleaver index for Turbo code (lookup in Table 5.1.3-3 36-212, V8.6 2009-03, p. 13-14)
- if (Kr_bytes<=64)
- iind = (Kr_bytes-5);
- else if (Kr_bytes <=128)
- iind = 59 + ((Kr_bytes-64)>>1);
- else if (Kr_bytes <= 256)
- iind = 91 + ((Kr_bytes-128)>>2);
- else if (Kr_bytes <= 768)
- iind = 123 + ((Kr_bytes-256)>>3);
- else {
- LOG_E(PHY,"ulsch_coding: Illegal codeword size %d!!!\n",Kr_bytes);
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
- return(-1);
- }
-
-
-#ifdef DEBUG_ULSCH_CODING
- printf("Generating Code Segment %d (%d bits)\n",r,Kr);
- // generate codewords
-
- printf("bits_per_codeword (Kr)= %d\n",Kr);
- printf("N_RB = %d\n",ulsch->harq_processes[harq_pid]->nb_rb);
- printf("Ncp %d\n",frame_parms->Ncp);
- printf("Qm %d\n",Q_m);
-#endif
-
- // offset=0;
-
-
-#ifdef DEBUG_ULSCH_CODING
- printf("Encoding ... iind %d f1 %d, f2 %d\n",iind,f1f2mat_old[iind*2],f1f2mat_old[(iind*2)+1]);
-#endif
- start_meas(te_stats);
- encoder(ulsch->harq_processes[harq_pid]->c[r],
- Kr>>3,
- &ulsch->harq_processes[harq_pid]->d[r][96],
- (r==0) ? ulsch->harq_processes[harq_pid]->F : 0,
- f1f2mat_old[iind*2], // f1 (see 36212-820, page 14)
- f1f2mat_old[(iind*2)+1] // f2 (see 36212-820, page 14)
- );
- stop_meas(te_stats);
-#ifdef DEBUG_ULSCH_CODING
-
- if (r==0)
- write_output("enc_output0.m","enc0",&ulsch->harq_processes[harq_pid]->d[r][96],(3*8*Kr_bytes)+12,1,4);
-
-#endif
- start_meas(i_stats);
- ulsch->harq_processes[harq_pid]->RTC[r] =
- sub_block_interleaving_turbo(4+(Kr_bytes*8),
- &ulsch->harq_processes[harq_pid]->d[r][96],
- ulsch->harq_processes[harq_pid]->w[r]);
- stop_meas(i_stats);
- }
-
- }
-
- if (ulsch->harq_processes[harq_pid]->C == 0) {
- LOG_E(PHY,"null segment\n");
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
- return(-1);
- }
-
- sumKr = 0;
-
- for (r=0; rharq_processes[harq_pid]->C; r++) {
- if (rharq_processes[harq_pid]->Cminus)
- Kr = ulsch->harq_processes[harq_pid]->Kminus;
- else
- Kr = ulsch->harq_processes[harq_pid]->Kplus;
-
- sumKr += Kr;
- }
- } else { // This is a control-only PUSCH, set sumKr to O_CQI-MIN
- ulsch->harq_processes[harq_pid]->control_only = 1;
- sumKr = ulsch->O_CQI_MIN;
- }
-
- ulsch->harq_processes[harq_pid]->sumKr = sumKr;
- // Compute Q_ri (p. 23 36-212)
-
- Qprime = ulsch->O_RI*ulsch->harq_processes[harq_pid]->Msc_initial*ulsch->harq_processes[harq_pid]->Nsymb_initial * ulsch->beta_offset_ri_times8;
-
- if (Qprime > 0) {
- if ((Qprime % (8*sumKr)) > 0)
- Qprime = 1+(Qprime/(8*sumKr));
- else
- Qprime = Qprime/(8*sumKr);
-
- if (Qprime > 4*ulsch->harq_processes[harq_pid]->nb_rb * 12)
- Qprime = 4*ulsch->harq_processes[harq_pid]->nb_rb * 12;
- }
-
- Q_RI = Q_m*Qprime;
- Qprime_RI = Qprime;
-
- // Compute Q_ack (p. 23 36-212)
- Qprime = ulsch->harq_processes[harq_pid]->O_ACK*ulsch->harq_processes[harq_pid]->Msc_initial*ulsch->harq_processes[harq_pid]->Nsymb_initial * ulsch->beta_offset_harqack_times8;
-
- if (Qprime > 0) {
- if ((Qprime % (8*sumKr)) > 0)
- Qprime = 1+(Qprime/(8*sumKr));
- else
- Qprime = Qprime/(8*sumKr);
-
- if (Qprime > 4*ulsch->harq_processes[harq_pid]->nb_rb * 12)
- Qprime = 4*ulsch->harq_processes[harq_pid]->nb_rb * 12;
- }
-
- Q_ACK = Qprime * Q_m;
- Qprime_ACK = Qprime;
-
- LOG_D(PHY,"UE (%x/%d) O_ACK %d, Mcs_initial %d, Nsymb_initial %d, beta_offset_harqack*8 %d, sum Kr %d, Qprime_ACK %d, Q_ACK %d\n",
- rnti, harq_pid,
- ulsch->harq_processes[harq_pid]->O_ACK,
- ulsch->harq_processes[harq_pid]->Msc_initial,
- ulsch->harq_processes[harq_pid]->Nsymb_initial,
- ulsch->beta_offset_harqack_times8,
- sumKr,
- Qprime_ACK,
- Q_ACK);
-
- // Compute Q_cqi, assume O>11, p. 26 36-212
- if (control_only_flag == 0) {
-
- if (ulsch->O < 12)
- L=0;
- else
- L=8;
-
- if (ulsch->O > 0)
- Qprime = (ulsch->O + L) * ulsch->harq_processes[harq_pid]->Msc_initial*ulsch->harq_processes[harq_pid]->Nsymb_initial * ulsch->beta_offset_cqi_times8;
- else
- Qprime = 0;
-
- if (Qprime > 0) {
- if ((Qprime % (8*sumKr)) > 0)
- Qprime = 1+(Qprime/(8*sumKr));
- else
- Qprime = Qprime/(8*sumKr);
- }
-
- G = ulsch->harq_processes[harq_pid]->nb_rb * (12 * Q_m) * (ulsch->Nsymb_pusch);
-
- if (Qprime > (G - ulsch->O_RI))
- Qprime = G - ulsch->O_RI;
-
- Q_CQI = Q_m * Qprime;
- Qprime_CQI = Qprime;
-
-
-
- G = G - Q_RI - Q_CQI;
- ulsch->harq_processes[harq_pid]->G = G;
-
-/*
- LOG_I(PHY,"ULSCH Encoding G %d, Q_RI %d (O_RI%d, Msc_initial %d, Nsymb_initial%d, beta_offset_ri_times8 %d), Q_CQI %d, Q_ACK %d \n",G,Q_RI,ulsch->O_RI,ulsch->harq_processes[harq_pid]->Msc_initial,ulsch->harq_processes[harq_pid]->Nsymb_initial,ulsch->beta_offset_ri_times8,Q_CQI,Q_ACK);
-
- LOG_I(PHY,"ULSCH Encoding (Nid_cell %d, rnti %x): harq_pid %d round %d, RV %d, mcs %d, O_RI %d, O_ACK %d, G %d\n",
- frame_parms->Nid_cell,ulsch->rnti,
- harq_pid,
- ulsch->harq_processes[harq_pid]->round,
- ulsch->harq_processes[harq_pid]->rvidx,
- ulsch->harq_processes[harq_pid]->mcs,
- ulsch->O_RI,
- ulsch->harq_processes[harq_pid]->O_ACK,
- G);
-*/
-
- if ((int)G < 0) {
- LOG_E(PHY,"FATAL: ulsch_coding.c G < 0 (%d) : Q_RI %d, Q_CQI %d, O %d, betaCQI_times8 %d)\n",G,Q_RI,Q_CQI,ulsch->O,ulsch->beta_offset_cqi_times8);
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
- return(-1);
- }
-
-
- // Data and control multiplexing (5.2.2.7 36-212)
-
- H = G + Q_CQI;
- Hprime = H/Q_m;
-
-
-
- // Fill in the "e"-sequence from 36-212, V8.6 2009-03, p. 16-17 (for each "e") and concatenate the
- // outputs for each code segment, see Section 5.1.5 p.20
-
- for (r=0; rharq_processes[harq_pid]->C; r++) {
-#ifdef DEBUG_ULSCH_CODING
- printf("Rate Matching, Code segment %d (coded bits (G) %d,unpunctured/repeated bits per code segment %d,mod_order %d, nb_rb %d)...\n",
- r,
- G,
- Kr*3,
- Q_m,ulsch->harq_processes[harq_pid]->nb_rb);
-#endif
-
- start_meas(rm_stats);
- r_offset += lte_rate_matching_turbo(ulsch->harq_processes[harq_pid]->RTC[r],
- G,
- ulsch->harq_processes[harq_pid]->w[r],
- ulsch->e+r_offset,
- ulsch->harq_processes[harq_pid]->C, // C
- NSOFT, // Nsoft,
- 0, // this means UL
- 1,
- ulsch->harq_processes[harq_pid]->rvidx,
- get_Qm_ul(ulsch->harq_processes[harq_pid]->mcs),
- 1,
- r,
- ulsch->harq_processes[harq_pid]->nb_rb);
- //ulsch->harq_processes[harq_pid]->mcs); // r
- stop_meas(rm_stats);
-#ifdef DEBUG_ULSCH_CODING
-
- if (r==ulsch->harq_processes[harq_pid]->C-1)
- write_output("enc_output.m","enc",ulsch->e,r_offset,1,4);
-
-#endif
- }
- } else { //control-only PUSCH
- Q_CQI = (ulsch->harq_processes[harq_pid]->nb_rb * (12 * Q_m) * (ulsch->Nsymb_pusch)) - Q_RI;
- H = Q_CQI;
- Hprime = H/Q_m;
- }
-
-
- // Do CQI coding
- if ((ulsch->O>1) && (ulsch->O < 12)) {
- LOG_E(PHY,"short CQI sizes not supported yet\n");
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
- return(-1);
- } else {
- // add 8-bit CRC
- crc = crc8(o_flip,
- ulsch->O)>>24;
-#ifdef DEBUG_ULSCH_CODING
- printf("crc(cqi) tx : %x\n",crc);
-#endif
- memset((void *)&ulsch->o_d[0],LTE_NULL,96);
-
- ccodelte_encode(ulsch->O,
- 1,
- o_flip,
- &ulsch->o_d[96],
- 0);
-
-
- o_RCC = sub_block_interleaving_cc(8+ulsch->O,
- &ulsch->o_d[96],
- ulsch->o_w);
-
- lte_rate_matching_cc(o_RCC,
- Q_CQI,
- ulsch->o_w,
- ulsch->q);
-
- }
-
- i=0;
-
- // Do RI coding
- if (ulsch->O_RI == 1) {
- switch (Q_m) {
- case 2:
- ulsch->q_RI[0] = ulsch->o_RI[0];
- ulsch->q_RI[1] = PUSCH_y;//ulsch->o_RI[0];
- len_RI=2;
- break;
-
- case 4:
- ulsch->q_RI[0] = ulsch->o_RI[0];
- ulsch->q_RI[1] = PUSCH_y;//1;
- ulsch->q_RI[2] = PUSCH_x;//ulsch->o_RI[0];
- ulsch->q_RI[3] = PUSCH_x;//1;
- len_RI=4;
- break;
-
- case 6:
- ulsch->q_RI[0] = ulsch->o_RI[0];
- ulsch->q_RI[1] = PUSCH_y;//1;
- ulsch->q_RI[2] = PUSCH_x;//1;
- ulsch->q_RI[3] = PUSCH_x;//ulsch->o_RI[0];
- ulsch->q_RI[4] = PUSCH_x;//1;
- ulsch->q_RI[5] = PUSCH_x;//1;
- len_RI=6;
- break;
- }
- } else if (ulsch->O_RI>1) {
- LOG_E(PHY,"RI cannot be more than 1 bit yet\n");
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
- return(-1);
- }
-
- // Do ACK coding, Section 5.2.2.6 36.213 (p.23-24 in v8.6)
- wACK_idx = (ulsch->bundling==0) ? 4 : ((Nbundled-1)&3);
-#ifdef DEBUG_ULSCH_CODING
- printf("ulsch_coding.c: Bundling %d, Nbundled %d, wACK_idx %d\n",
- ulsch->bundling,Nbundled,wACK_idx);
-#endif
-
- // 1-bit ACK/NAK
- if (ulsch->harq_processes[harq_pid]->O_ACK == 1) {
- switch (Q_m) {
- case 2:
- ulsch->q_ACK[0] = (ulsch->o_ACK[0]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[1] = (ulsch->bundling==0)? PUSCH_y : ((ulsch->o_ACK[0]+wACK[wACK_idx][1])&1);//ulsch->o_ACK[0];
- len_ACK = 2;
- break;
-
- case 4:
- ulsch->q_ACK[0] = (ulsch->o_ACK[0]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[1] = (ulsch->bundling==0)? PUSCH_y : ((ulsch->o_ACK[0]+wACK[wACK_idx][1])&1);
- ulsch->q_ACK[2] = PUSCH_x;
- ulsch->q_ACK[3] = PUSCH_x;
- len_ACK = 4;
- break;
-
- case 6:
- ulsch->q_ACK[0] = (ulsch->o_ACK[0]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[1] = (ulsch->bundling==0)? PUSCH_y : ((ulsch->o_ACK[0]+wACK[wACK_idx][1])&1);
- ulsch->q_ACK[2] = PUSCH_x;
- ulsch->q_ACK[3] = PUSCH_x;
- ulsch->q_ACK[4] = PUSCH_x;
- ulsch->q_ACK[6] = PUSCH_x;
- len_ACK = 6;
- break;
- }
- }
-
- // two-bit ACK/NAK
- if (ulsch->harq_processes[harq_pid]->O_ACK == 2) {
- ack_parity = (ulsch->o_ACK[0]+ulsch->o_ACK[1])&1;
-
- switch (Q_m) {
- case 2:
- ulsch->q_ACK[0] = (ulsch->o_ACK[0]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[1] = (ulsch->o_ACK[1]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[2] = (ack_parity+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[3] = (ulsch->o_ACK[0]+wACK[wACK_idx][1])&1;
- ulsch->q_ACK[4] = (ulsch->o_ACK[1]+wACK[wACK_idx][1])&1;
- ulsch->q_ACK[5] = (ack_parity+wACK[wACK_idx][1])&1;
- len_ACK = 6;
- break;
-
- case 4:
- ulsch->q_ACK[0] = (ulsch->o_ACK[0]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[1] = (ulsch->o_ACK[1]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[2] = PUSCH_x;
- ulsch->q_ACK[3] = PUSCH_x;//1;
- ulsch->q_ACK[4] = (ack_parity+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[5] = (ulsch->o_ACK[0]+wACK[wACK_idx][1])&1;
- ulsch->q_ACK[6] = PUSCH_x;
- ulsch->q_ACK[7] = PUSCH_x;//1;
- ulsch->q_ACK[8] = (ulsch->o_ACK[1]+wACK[wACK_idx][1])&1;
- ulsch->q_ACK[9] = (ack_parity+wACK[wACK_idx][1])&1;
- ulsch->q_ACK[10] = PUSCH_x;
- ulsch->q_ACK[11] = PUSCH_x;//1;
- len_ACK = 12;
- break;
-
- case 6:
- ulsch->q_ACK[0] = (ulsch->o_ACK[0]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[1] = (ulsch->o_ACK[1]+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[2] = PUSCH_x;
- ulsch->q_ACK[3] = PUSCH_x;
- ulsch->q_ACK[4] = PUSCH_x;
- ulsch->q_ACK[5] = PUSCH_x;
-
- ulsch->q_ACK[6] = (ack_parity+wACK[wACK_idx][0])&1;
- ulsch->q_ACK[7] = (ulsch->o_ACK[0]+wACK[wACK_idx][1])&1;
- ulsch->q_ACK[8] = PUSCH_x;
- ulsch->q_ACK[9] = PUSCH_x;
- ulsch->q_ACK[10] = PUSCH_x;
- ulsch->q_ACK[11] = PUSCH_x;
-
- ulsch->q_ACK[12] = (ulsch->o_ACK[1]+wACK[wACK_idx][1])&1;
- ulsch->q_ACK[13] = (ack_parity+wACK[wACK_idx][1])&1;
- ulsch->q_ACK[14] = PUSCH_x;
- ulsch->q_ACK[15] = PUSCH_x;
- ulsch->q_ACK[16] = PUSCH_x;
- ulsch->q_ACK[17] = PUSCH_x;
- len_ACK = 18;
-
- break;
- }
- }
-
- if (ulsch->harq_processes[harq_pid]->O_ACK > 2) {
- LOG_E(PHY,"ACK cannot be more than 2 bits yet\n");
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
- return(-1);
- }
-
-
- // channel multiplexing/interleaving
-
- start_meas(m_stats);
- Hpp = Hprime + Q_RI;
-
- Cmux = ulsch->Nsymb_pusch;
- Rmux = Hpp*Q_m/Cmux;
- Rmux_prime = Rmux/Q_m;
-
- Qprime_RI = Q_RI / Q_m;
- Qprime_ACK = Q_ACK / Q_m;
- Qprime_CQI = Q_CQI / Q_m;
-
- // printf("Qprime_CQI = %d\n",Qprime_CQI);
- // RI BITS
-
- memset(y,LTE_NULL,Q_m*Hpp);
-
- if (frame_parms->Ncp == 0)
- columnset = cs_ri_normal;
- else
- columnset = cs_ri_extended;
-
- j=0;
-
- for (i=0; i>2);
-
- for (q=0; qq_RI[(q+(Q_m*i))%len_RI];
- // printf("ri[%d] %d => y[%d]\n",q+(Q_m*i)%len_RI,ulsch->q_RI[(q+(Q_m*i))%len_RI],q+(Q_m*((r*Cmux) + columnset[j])),y[q+(Q_m*((r*Cmux) + columnset[j]))]);
- }
-
- j=(j+3)&3;
-
- }
-
-
- // CQI and Data bits
- j=0;
- /*
- for (i=0,iprime=-Qprime_CQI;iq[q+(Q_m*i)];
- //printf("cqi[%d] %d => y[%d]\n",q+(Q_m*i),ulsch->q[q+(Q_m*i)],q+(Q_m*j));
- }
- }
- else {
- for (q=0;qe[q+(Q_m*iprime)];
- // printf("e[%d] %d => y[%d]\n",q+(Q_m*iprime),ulsch->e[q+(Q_m*iprime)],q+(Q_m*j));
- }
- }
- j++;
- }
- */
-
- for (i=0; iq[q+(Q_m*i)];
- // printf("cqi[%d] %d => y[%d] (j %d)\n",q+(Q_m*i),ulsch->q[q+(Q_m*i)],q+(Q_m*j),j);
- }
-
- j++;
- }
-
- j2 = j*Q_m;
-
- switch (Q_m) {
-
- case 2:
-
- for (iprime=0; iprime<(Hprime-Qprime_CQI)<<1; iprime+=2) {
- while (y[j2] != LTE_NULL) j2+=2;
-
- y[j2] = ulsch->e[iprime];
- y[1+j2] = ulsch->e[1+iprime];
- j2+=2;
- }
-
- break;
-
- case 4:
- for (iprime=0; iprime<(Hprime-Qprime_CQI)<<2; iprime+=4) {
- while (y[j2] != LTE_NULL) j2+=4;
-
- y[j2] = ulsch->e[iprime];
- y[1+j2] = ulsch->e[1+iprime];
- y[2+j2] = ulsch->e[2+iprime];
- y[3+j2] = ulsch->e[3+iprime];
- j2+=4;
- }
-
- break;
-
- case 6:
- for (iprime=0; iprime<(Hprime-Qprime_CQI)*6; iprime+=6) {
- while (y[j2] != LTE_NULL) j2+=6;
-
- y[j2] = ulsch->e[iprime];
- y[1+j2] = ulsch->e[1+iprime];
- y[2+j2] = ulsch->e[2+iprime];
- y[3+j2] = ulsch->e[3+iprime];
- y[4+j2] = ulsch->e[4+iprime];
- y[5+j2] = ulsch->e[5+iprime];
- j2+=6;
- }
-
- break;
-
- }
-
- // HARQ-ACK Bits (Note these overwrite some bits)
-
- if (frame_parms->Ncp == 0)
- columnset = cs_ack_normal;
- else
- columnset = cs_ack_extended;
-
- j=0;
-
- for (i=0; i>2);
-
- for (q=0; qq_ACK[(q+(Q_m*i))%len_ACK];
-#ifdef DEBUG_ULSCH_CODING
- printf("ulsch_coding.c: ACK %d => y[%d]=%d (i %d, r*Cmux %d, columnset %d)\n",q+(Q_m*i),
- q+(Q_m*((r*Cmux) + columnset[j])),ulsch->q_ACK[(q+(Q_m*i))%len_ACK],
- i,r*Cmux,columnset[j]);
-#endif
- }
-
- j=(j+3)&3;
-
- }
-
- // write out buffer
- j=0;
-
- switch (Q_m) {
- case 2:
- for (i=0; ih[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- }
-
- break;
-
- case 4:
- for (i=0; ih[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- }
-
- break;
-
- case 6:
- for (i=0; ih[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- ulsch->h[j++] = *yptr++;
- }
-
- break;
-
- default:
- break;
- }
-
- stop_meas(m_stats);
-
- if (j!=(H+Q_RI)) {
- LOG_E(PHY,"Error in output buffer length (j %d, H+Q_RI %d)\n",j,H+Q_RI);
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
- return(-1);
- }
-
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_ENCODING, VCD_FUNCTION_OUT);
- return(0);
-}
-
diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c
deleted file mode 100644
index d1718f6e90..0000000000
--- a/openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c
+++ /dev/null
@@ -1,777 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- * contact@openairinterface.org
- */
-
-/*! \file PHY/LTE_TRANSPORT/ulsch_modulation.c
-* \brief Top-level routines for generating PUSCH physical channel from 36.211 V8.6 2009-03
-* \author R. Knopp, F. Kaltenberger, A. Bhamri
-* \date 2011
-* \version 0.1
-* \company Eurecom
-* \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr,ankit.bhamri@eurecom.fr
-* \note
-* \warning
-*/
-#include "PHY/defs.h"
-#include "PHY/extern.h"
-#include "PHY/CODING/defs.h"
-#include "PHY/CODING/extern.h"
-#include "PHY/LTE_TRANSPORT/defs.h"
-#include "defs.h"
-#include "UTIL/LOG/vcd_signal_dumper.h"
-
-
-
-//#define DEBUG_ULSCH_MODULATION
-
-#ifndef OFDMA_ULSCH
-void dft_lte(int32_t *z,int32_t *d, int32_t Msc_PUSCH, uint8_t Nsymb)
-{
-
-#if defined(__x86_64__) || defined(__i386__)
- __m128i dft_in128[4][1200],dft_out128[4][1200];
-#elif defined(__arm__)
- int16x8_t dft_in128[4][1200],dft_out128[4][1200];
-#endif
- uint32_t *dft_in0=(uint32_t*)dft_in128[0],*dft_out0=(uint32_t*)dft_out128[0];
- uint32_t *dft_in1=(uint32_t*)dft_in128[1],*dft_out1=(uint32_t*)dft_out128[1];
- uint32_t *dft_in2=(uint32_t*)dft_in128[2],*dft_out2=(uint32_t*)dft_out128[2];
- // uint32_t *dft_in3=(uint32_t*)dft_in128[3],*dft_out3=(uint32_t*)dft_out128[3];
-
- uint32_t *d0,*d1,*d2,*d3,*d4,*d5,*d6,*d7,*d8,*d9,*d10,*d11;
-
- uint32_t *z0,*z1,*z2,*z3,*z4,*z5,*z6,*z7,*z8,*z9,*z10,*z11;
- uint32_t i,ip;
-#if defined(__x86_64__) || defined(__i386__)
- __m128i norm128;
-#elif defined(__arm__)
- int16x8_t norm128;
-#endif
- // printf("Doing lte_dft for Msc_PUSCH %d\n",Msc_PUSCH);
-
- d0 = (uint32_t *)d;
- d1 = d0+Msc_PUSCH;
- d2 = d1+Msc_PUSCH;
- d3 = d2+Msc_PUSCH;
- d4 = d3+Msc_PUSCH;
- d5 = d4+Msc_PUSCH;
- d6 = d5+Msc_PUSCH;
- d7 = d6+Msc_PUSCH;
- d8 = d7+Msc_PUSCH;
- d9 = d8+Msc_PUSCH;
- d10 = d9+Msc_PUSCH;
- d11 = d10+Msc_PUSCH;
-
- // printf("symbol 0 (d0 %p, d %p)\n",d0,d);
- for (i=0,ip=0; itdd_config,subframe);
- uint8_t harq_pid = subframe2harq_pid(frame_parms,frame,subframe);
- uint8_t Q_m;
- int32_t *txptr;
- uint32_t symbol_offset;
- uint16_t first_rb;
- uint16_t nb_rb;
- int G;
-
- uint32_t x1, x2, s=0;
- uint8_t c;
-
- if (!ulsch) {
- printf("ulsch_modulation.c: Null ulsch\n");
- return;
- }
-
- // x1 is set in lte_gold_generic
- x2 = (ulsch->rnti<<14) + (subframe<<9) + frame_parms->Nid_cell; //this is c_init in 36.211 Sec 6.3.1
-
- if (harq_pid>=8) {
- printf("ulsch_modulation.c: Illegal harq_pid %d\n",harq_pid);
- return;
- }
-
- first_rb = ulsch->harq_processes[harq_pid]->first_rb;
- nb_rb = ulsch->harq_processes[harq_pid]->nb_rb;
-
- if (nb_rb == 0) {
- printf("ulsch_modulation.c: Frame %d, Subframe %d Illegal nb_rb %d\n",frame,subframe,nb_rb);
- return;
- }
-
- if (first_rb > frame_parms->N_RB_UL) {
- printf("ulsch_modulation.c: Frame %d, Subframe %d Illegal first_rb %d\n",frame,subframe,first_rb);
- return;
- }
-
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_MODULATION, VCD_FUNCTION_IN);
-
- Q_m = get_Qm_ul(ulsch->harq_processes[harq_pid]->mcs);
-
- G = (int)ulsch->harq_processes[harq_pid]->nb_rb * (12 * Q_m) * (ulsch->Nsymb_pusch);
-
-
- // Mapping
- nsymb = (frame_parms->Ncp==0) ? 14:12;
- Msc_PUSCH = ulsch->harq_processes[harq_pid]->nb_rb*12;
-
-#ifdef DEBUG_ULSCH_MODULATION
- LOG_D(PHY,"ulsch_modulation.c: Doing modulation (rnti %x,x2 %x) for G=%d bits, harq_pid %d , nb_rb %d, Q_m %d, Nsymb_pusch %d (nsymb %d), subframe %d\n",
- ulsch->rnti,x2,G,harq_pid,ulsch->harq_processes[harq_pid]->nb_rb,Q_m, ulsch->Nsymb_pusch,nsymb,subframe);
-#endif
-
- // scrambling (Note the placeholding bits are handled in ulsch_coding.c directly!)
- //printf("ulsch bits: ");
- s = lte_gold_generic(&x1, &x2, 1);
- k=0;
-
- //printf("G %d\n",G);
- for (i=0; i<(1+(G>>5)); i++) {
- for (j=0; j<32; j++,k++) {
- c = (uint8_t)((s>>j)&1);
-
- if (ulsch->h[k] == PUSCH_x) {
- // printf("i %d: PUSCH_x\n",i);
- ulsch->b_tilde[k] = 1;
- } else if (ulsch->h[k] == PUSCH_y) {
- // printf("i %d: PUSCH_y\n",i);
- ulsch->b_tilde[k] = ulsch->b_tilde[k-1];
- } else {
- ulsch->b_tilde[k] = (ulsch->h[k]+c)&1;
- // printf("i %d : %d (h %d c %d)\n", (i<<5)+j,ulsch->b_tilde[k],ulsch->h[k],c);
- }
-
- }
-
- s = lte_gold_generic(&x1, &x2, 0);
- }
-
- //printf("\n");
-
-
- gain_lin_QPSK = (short)((amp*ONE_OVER_SQRT2_Q15)>>15);
-
-
- // Modulation
-
- Msymb = G/Q_m;
-
- if(ulsch->cooperation_flag == 2)
- // For Distributed Alamouti Scheme in Collabrative Communication
- {
- for (i=0,j=Q_m; id[i])[0] = (ulsch->b_tilde[j] == 1) ? (gain_lin_QPSK) : -gain_lin_QPSK;
- ((int16_t*)&ulsch->d[i])[1] = (ulsch->b_tilde[j+1] == 1)? (-gain_lin_QPSK) : gain_lin_QPSK;
- // if (id[i],((int16_t*)&ulsch->d[i])[0],((int16_t*)&ulsch->d[i])[1]);
-
- // UE1, x0*
- ((int16_t*)&ulsch->d[i+1])[0] = (ulsch->b_tilde[j-2] == 1) ? (-gain_lin_QPSK) : gain_lin_QPSK;
- ((int16_t*)&ulsch->d[i+1])[1] = (ulsch->b_tilde[j-1] == 1)? (gain_lin_QPSK) : -gain_lin_QPSK;
-
- break;
-
- case 4:
-
-
- //UE1,-x1*
- qam16_table_offset_re = 0;
- qam16_table_offset_im = 0;
-
- if (ulsch->b_tilde[j] == 1)
- qam16_table_offset_re+=2;
-
- if (ulsch->b_tilde[j+1] == 1)
- qam16_table_offset_im+=2;
-
-
-
- if (ulsch->b_tilde[j+2] == 1)
- qam16_table_offset_re+=1;
-
- if (ulsch->b_tilde[j+3] == 1)
- qam16_table_offset_im+=1;
-
-
- ((int16_t*)&ulsch->d[i])[0]=-(int16_t)(((int32_t)amp*qam16_table[qam16_table_offset_re])>>15);
- ((int16_t*)&ulsch->d[i])[1]=(int16_t)(((int32_t)amp*qam16_table[qam16_table_offset_im])>>15);
-
- //UE1,x0*
- qam16_table_offset_re = 0;
- qam16_table_offset_im = 0;
-
- if (ulsch->b_tilde[j-4] == 1)
- qam16_table_offset_re+=2;
-
- if (ulsch->b_tilde[j-3] == 1)
- qam16_table_offset_im+=2;
-
-
- if (ulsch->b_tilde[j-2] == 1)
- qam16_table_offset_re+=1;
-
- if (ulsch->b_tilde[j-1] == 1)
- qam16_table_offset_im+=1;
-
-
- // ((int16_t*)&ulsch->d[i+1])[0]=-(int16_t)(((int32_t)amp*qam16_table[qam16_table_offset_re])>>15);
- // ((int16_t*)&ulsch->d[i+1])[1]=(int16_t)(((int32_t)amp*qam16_table[qam16_table_offset_im])>>15);
- ((int16_t*)&ulsch->d[i+1])[0]=(int16_t)(((int32_t)amp*qam16_table[qam16_table_offset_re])>>15);
- ((int16_t*)&ulsch->d[i+1])[1]=-(int16_t)(((int32_t)amp*qam16_table[qam16_table_offset_im])>>15);
-
-
- break;
-
- case 6:
-
-
-
- //UE1,-x1*FPGA_UE
- qam64_table_offset_re = 0;
- qam64_table_offset_im = 0;
-
- if (ulsch->b_tilde[j] == 1)
- qam64_table_offset_re+=4;
-
- if (ulsch->b_tilde[j+1] == 1)
- qam64_table_offset_im+=4;
-
- if (ulsch->b_tilde[j+2] == 1)
- qam64_table_offset_re+=2;
-
-
- if (ulsch->b_tilde[j+3] == 1)
- qam64_table_offset_im+=2;
-
- if (ulsch->b_tilde[j+4] == 1)
- qam64_table_offset_re+=1;
-
- if (ulsch->b_tilde[j+5] == 1)
- qam64_table_offset_im+=1;
-
-
- ((int16_t*)&ulsch->d[i])[0]=-(int16_t)(((int32_t)amp*qam64_table[qam64_table_offset_re])>>15);
- ((int16_t*)&ulsch->d[i])[1]=(int16_t)(((int32_t)amp*qam64_table[qam64_table_offset_im])>>15);
-
- //UE1,x0*
- qam64_table_offset_re = 0;
- qam64_table_offset_im = 0;
-
- if (ulsch->b_tilde[j-6] == 1)
- qam64_table_offset_re+=4;
-
- if (ulsch->b_tilde[j-5] == 1)
- qam64_table_offset_im+=4;
-
- if (ulsch->b_tilde[j-4] == 1)
- qam64_table_offset_re+=2;
-
-
- if (ulsch->b_tilde[j-3] == 1)
- qam64_table_offset_im+=2;
-
- if (ulsch->b_tilde[j-2] == 1)
- qam64_table_offset_re+=1;
-
- if (ulsch->b_tilde[j-1] == 1)
- qam64_table_offset_im+=1;
-
-
- ((int16_t*)&ulsch->d[i+1])[0]=(int16_t)(((int32_t)amp*qam64_table[qam64_table_offset_re])>>15);
- ((int16_t*)&ulsch->d[i+1])[1]=-(int16_t)(((int32_t)amp*qam64_table[qam64_table_offset_im])>>15);
-
- break;
-
- }//switch
- }//for
- }//cooperation_flag == 2
- else {
- for (i=0,j=0; id[i])[0] = (ulsch->b_tilde[j] == 1) ? (-gain_lin_QPSK) : gain_lin_QPSK;
- ((int16_t*)&ulsch->d[i])[1] = (ulsch->b_tilde[j+1] == 1)? (-gain_lin_QPSK) : gain_lin_QPSK;
- // if (id[i],((int16_t*)&ulsch->d[i])[0],((int16_t*)&ulsch->d[i])[1]);
-
- break;
-
- case 4:
-
- qam16_table_offset_re = 0;
- qam16_table_offset_im = 0;
-
- if (ulsch->b_tilde[j] == 1)
- qam16_table_offset_re+=2;
-
- if (ulsch->b_tilde[j+1] == 1)
- qam16_table_offset_im+=2;
-
- if (ulsch->b_tilde[j+2] == 1)
- qam16_table_offset_re+=1;
-
- if (ulsch->b_tilde[j+3] == 1)
- qam16_table_offset_im+=1;
-
-
- ((int16_t*)&ulsch->d[i])[0]=(int16_t)(((int32_t)amp*qam16_table[qam16_table_offset_re])>>15);
- ((int16_t*)&ulsch->d[i])[1]=(int16_t)(((int32_t)amp*qam16_table[qam16_table_offset_im])>>15);
- // printf("input(16qam) %d (%p): %d,%d\n", i,&ulsch->d[i],((int16_t*)&ulsch->d[i])[0],((int16_t*)&ulsch->d[i])[1]);
- break;
-
- case 6:
-
-
- qam64_table_offset_re = 0;
- qam64_table_offset_im = 0;
-
- if (ulsch->b_tilde[j] == 1)
- qam64_table_offset_re+=4;
-
- if (ulsch->b_tilde[j+1] == 1)
- qam64_table_offset_im+=4;
-
- if (ulsch->b_tilde[j+2] == 1)
- qam64_table_offset_re+=2;
-
- if (ulsch->b_tilde[j+3] == 1)
- qam64_table_offset_im+=2;
-
- if (ulsch->b_tilde[j+4] == 1)
- qam64_table_offset_re+=1;
-
- if (ulsch->b_tilde[j+5] == 1)
- qam64_table_offset_im+=1;
-
-
- ((int16_t*)&ulsch->d[i])[0]=(int16_t)(((int32_t)amp*qam64_table[qam64_table_offset_re])>>15);
- ((int16_t*)&ulsch->d[i])[1]=(int16_t)(((int32_t)amp*qam64_table[qam64_table_offset_im])>>15);
-
- break;
-
- }
- }
- }// normal symbols
-
-
- // Transform Precoding
-
-#ifdef OFDMA_ULSCH
-
- for (i=0; iz[i] = ulsch->d[i];
- }
-
-#else
- dft_lte(ulsch->z,ulsch->d,Msc_PUSCH,ulsch->Nsymb_pusch);
-#endif
-
- DevAssert(txdataF);
-
-#ifdef OFDMA_ULSCH
- re_offset0 = frame_parms->first_carrier_offset + (ulsch->harq_processes[harq_pid]->first_rb*12);
-
- if (re_offset0>frame_parms->ofdm_symbol_size) {
- re_offset0 -= frame_parms->ofdm_symbol_size;
- // re_offset0++;
- }
-
- // printf("re_offset0 %d\n",re_offset0);
-
-
- for (j=0,l=0; l<(nsymb-ulsch->srs_active); l++) {
- re_offset = re_offset0;
- symbol_offset = (int)frame_parms->ofdm_symbol_size*(l+(subframe*nsymb));
-#ifdef DEBUG_ULSCH_MODULATION
- printf("symbol %d (subframe %d): symbol_offset %d\n",l,subframe,symbol_offset);
-#endif
- txptr = &txdataF[0][symbol_offset];
-
- if (((frame_parms->Ncp == 0) && ((l==3) || (l==10)))||
- ((frame_parms->Ncp == 1) && ((l==2) || (l==8)))) {
- }
- // Skip reference symbols
- else {
-
- // printf("copying %d REs\n",Msc_PUSCH);
- for (i=0; iz[j],((int16_t*)&ulsch->z[j])[0],((int16_t*)&ulsch->z[j])[1]);
-#endif
- txptr[re_offset++] = ulsch->z[j];
-
- if (re_offset==frame_parms->ofdm_symbol_size)
- re_offset = 0;
- }
- }
- }
-
-# else // OFDMA_ULSCH = 0
- re_offset0 = frame_parms->first_carrier_offset + (ulsch->harq_processes[harq_pid]->first_rb*12);
-
- if (re_offset0>frame_parms->ofdm_symbol_size) {
- re_offset0 -= frame_parms->ofdm_symbol_size;
- // re_offset0++;
- }
-
- // printf("re_offset0 %d\n",re_offset0);
- // printf("txdataF %p\n",&txdataF[0][0]);
- for (j=0,l=0; l<(nsymb-ulsch->srs_active); l++) {
- re_offset = re_offset0;
- symbol_offset = (uint32_t)frame_parms->ofdm_symbol_size*(l+(subframe*nsymb));
-#ifdef DEBUG_ULSCH_MODULATION
- printf("ulsch_mod (SC-FDMA) symbol %d (subframe %d): symbol_offset %d\n",l,subframe,symbol_offset);
-#endif
- txptr = &txdataF[0][symbol_offset];
-
- if (((frame_parms->Ncp == 0) && ((l==3) || (l==10)))||
- ((frame_parms->Ncp == 1) && ((l==2) || (l==8)))) {
- }
- // Skip reference symbols
- else {
- // printf("copying %d REs\n",Msc_PUSCH);
- for (i=0; i %p\n", re_offset,&ulsch->z[j],((int16_t*)&ulsch->z[j])[0],((int16_t*)&ulsch->z[j])[1],&txptr[re_offset]);
-#endif //DEBUG_ULSCH_MODULATION
- txptr[re_offset++] = ulsch->z[j];
-
- if (re_offset==frame_parms->ofdm_symbol_size)
- re_offset = 0;
- }
- }
- }
-
-#endif
- VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ULSCH_MODULATION, VCD_FUNCTION_OUT);
-
-}
-
diff --git a/openair1/PHY/NR_TRANSPORT/nr_pbch.c b/openair1/PHY/NR_TRANSPORT/nr_pbch.c
index 6ef6be34fa..3e8a17aec6 100644
--- a/openair1/PHY/NR_TRANSPORT/nr_pbch.c
+++ b/openair1/PHY/NR_TRANSPORT/nr_pbch.c
@@ -215,7 +215,7 @@ int nr_generate_pbch(NR_gNB_PBCH *pbch,
uint8_t nushift;
uint8_t *xbyte = pbch->pbch_a;
memset((void*) xbyte, 0, 1);
- uint8_t pbch_a_b[32];
+ //uint8_t pbch_a_b[32];
LOG_I(PHY, "PBCH generation started\n");
diff --git a/openair1/PHY/defs_RU.h b/openair1/PHY/defs_RU.h
index 0bda340c27..3ad007813e 100644
--- a/openair1/PHY/defs_RU.h
+++ b/openair1/PHY/defs_RU.h
@@ -35,7 +35,6 @@
#define MAX_BANDS_PER_RRU 4
-#define MAX_NUM_RU_PER_gNB MAX_NUM_RU_PER_eNB
#ifdef OCP_FRAMEWORK
diff --git a/openair1/PHY/defs_gNB.h b/openair1/PHY/defs_gNB.h
index f5e9efa3cb..18c2ba5cce 100644
--- a/openair1/PHY/defs_gNB.h
+++ b/openair1/PHY/defs_gNB.h
@@ -38,6 +38,7 @@
#include "CODING/nrPolar_tools/nr_polar_pbch_defs.h"
#include "openair2/NR_PHY_INTERFACE/NR_IF_Module.h"
+#define MAX_NUM_RU_PER_gNB MAX_NUM_RU_PER_eNB
typedef struct {
uint8_t pbch_a[NR_POLAR_PBCH_PAYLOAD_BITS>>3];
diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c
index 6241b9c50d..94e9484c76 100644
--- a/openair2/GNB_APP/gnb_config.c
+++ b/openair2/GNB_APP/gnb_config.c
@@ -1980,9 +1980,17 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
}
if (strcmp(RateMatchPattern_mode , "dynamic") == 0){
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).RateMatchPattern_mode[j] = NR_RateMatchPattern__dummy_dynamic;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).RateMatchPattern_mode[j] = NR_RateMatchPattern__mode_dynamic;
+#endif
}else if (strcmp(RateMatchPattern_mode , "semiStatic") == 0){
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).RateMatchPattern_mode[j] = NR_RateMatchPattern__dummy_semiStatic;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).RateMatchPattern_mode[j] = NR_RateMatchPattern__mode_semiStatic;
+#endif
}else {
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%s\" for RateMatchPattern_mode !\n",
RC.config_file_name, i, RateMatchPattern_mode);
@@ -2440,41 +2448,86 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
switch(Common_dci_Format2_3_monitoringPeriodicity){
case 1:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl1;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n1;
+#endif
break;
case 2:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl2;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n2;
+#endif
break;
case 4:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl4;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n4;
+#endif
break;
case 5:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl5;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n5;
+#endif
break;
case 8:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl8;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n8;
+#endif
break;
case 10:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl10;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n10;
+#endif
break;
case 16:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl16;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n16;
+#endif
break;
case 20:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy1_sl20;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_monitoringPeriodicity[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__monitoringPeriodicity_n20;
+#endif
break;
default:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for Common_dci_Format2_3_dummy1 choice: 1,2,4,5,8,10,16,20 !\n",
+ RC.config_file_name, i, Common_dci_Format2_3_monitoringPeriodicity);
+#else
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for Common_dci_Format2_3_monitoringPeriodicity choice: 1,2,4,5,8,10,16,20 !\n",
RC.config_file_name, i, Common_dci_Format2_3_monitoringPeriodicity);
+#endif
break;
}
switch(Common_dci_Format2_3_nrofPDCCH_Candidates){
case 1:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_nrofPDCCH_Candidates[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n1;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_nrofPDCCH_Candidates[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__nrofPDCCH_Candidates_n1;
+#endif
break;
case 2:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_nrofPDCCH_Candidates[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__dummy2_n2;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).Common_dci_Format2_3_nrofPDCCH_Candidates[j] = NR_SearchSpace__searchSpaceType__common__dci_Format2_3__nrofPDCCH_Candidates_n2;
+#endif
break;
default:
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for Common_dci_Format2_3_nrofPDCCH_Candidates choice: 1,2 !\n",
@@ -2598,9 +2651,17 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
}
if (strcmp(RateMatchPatternLTE_CRS_subframeAllocation_choice , "oneFrame") == 0){
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).RateMatchPatternLTE_CRS_subframeAllocation_choice[j] = NR_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_oneFrame;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).RateMatchPatternLTE_CRS_subframeAllocation_choice[j] = NR_EUTRA_MBSFN_SubframeConfig__subframeAllocation_PR_oneFrame;
+#endif
}else if (strcmp(RateMatchPatternLTE_CRS_subframeAllocation_choice , "fourFrames") == 0){
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ NRRRC_CONFIGURATION_REQ (msg_p).RateMatchPatternLTE_CRS_subframeAllocation_choice[j] = NR_EUTRA_MBSFN_SubframeConfig__subframeAllocation1_PR_fourFrames;
+#else
NRRRC_CONFIGURATION_REQ (msg_p).RateMatchPatternLTE_CRS_subframeAllocation_choice[j] = NR_EUTRA_MBSFN_SubframeConfig__subframeAllocation_PR_fourFrames;
+#endif
}else {
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%s\" for RateMatchPatternLTE_CRS_subframeAllocation_choice !\n",
RC.config_file_name, i, RateMatchPatternLTE_CRS_subframeAllocation_choice);
diff --git a/openair2/LAYER2/MAC/mac.h b/openair2/LAYER2/MAC/mac.h
index 3b57d8240b..d9e914f087 100644
--- a/openair2/LAYER2/MAC/mac.h
+++ b/openair2/LAYER2/MAC/mac.h
@@ -77,11 +77,6 @@
#include "targets/ARCH/COMMON/common_lib.h"
-//solve implicit declaration
-#include "PHY/LTE_ESTIMATION/lte_estimation.h"
-#include "PHY/LTE_TRANSPORT/transport_proto.h"
-#include "PHY/LTE_TRANSPORT/transport_common_proto.h"
-
/** @defgroup _mac MAC
* @ingroup _oai2
* @{
diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
index 7e5e00c066..83970b7032 100644
--- a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
@@ -114,8 +114,13 @@ int8_t nr_ue_decode_mib(
uint32_t is_condition_A = (ssb_subcarrier_offset == 0); // 38.213 ch.13
frequency_range_t frequency_range = FR1;
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ uint32_t index_4msb = (mac->mib->pdcch_ConfigSIB1.controlResourceSetZero);
+ uint32_t index_4lsb = (mac->mib->pdcch_ConfigSIB1.searchSpaceZero);
+#else
uint32_t index_4msb = (mac->mib->pdcch_ConfigSIB1 >> 4) & 0xf;
uint32_t index_4lsb = (mac->mib->pdcch_ConfigSIB1 & 0xf);
+#endif
int32_t num_rbs = -1;
int32_t num_symbols = -1;
int32_t rb_offset = -1;
@@ -428,7 +433,11 @@ int8_t nr_ue_decode_mib(
mac->phy_config.config_req.pbch_config.subcarrier_spacing_common = mac->mib->subCarrierSpacingCommon;
mac->phy_config.config_req.pbch_config.ssb_subcarrier_offset = ssb_subcarrier_offset; // after calculation
mac->phy_config.config_req.pbch_config.dmrs_type_a_position = mac->mib->dmrs_TypeA_Position;
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ mac->phy_config.config_req.pbch_config.pdcch_config_sib1 = (mac->mib->pdcch_ConfigSIB1.controlResourceSetZero) * 16 + (mac->mib->pdcch_ConfigSIB1.searchSpaceZero);
+#else
mac->phy_config.config_req.pbch_config.pdcch_config_sib1 = mac->mib->pdcch_ConfigSIB1;
+#endif
mac->phy_config.config_req.pbch_config.cell_barred = mac->mib->cellBarred;
mac->phy_config.config_req.pbch_config.intra_frequency_reselection = mac->mib->intraFreqReselection;
mac->phy_config.config_req.pbch_config.half_frame_bit = half_frame_bit;
diff --git a/openair2/LAYER2/NR_MAC_gNB/config.c b/openair2/LAYER2/NR_MAC_gNB/config.c
index c343891cd3..98bd01e71b 100644
--- a/openair2/LAYER2/NR_MAC_gNB/config.c
+++ b/openair2/LAYER2/NR_MAC_gNB/config.c
@@ -232,7 +232,11 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
mib->message.choice.mib->subCarrierSpacingCommon,
mib->message.choice.mib->ssb_SubcarrierOffset,
mib->message.choice.mib->dmrs_TypeA_Position,
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ mib->message.choice.mib->pdcch_ConfigSIB1.controlResourceSetZero * 16 + mib->message.choice.mib->pdcch_ConfigSIB1.searchSpaceZero,
+#else
mib->message.choice.mib->pdcch_ConfigSIB1,
+#endif
mib->message.choice.mib->cellBarred,
mib->message.choice.mib->intraFreqReselection
);
diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.3.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.3.0.asn1
new file mode 100644
index 0000000000..8ed1ef81f5
--- /dev/null
+++ b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.3.0.asn1
@@ -0,0 +1,17697 @@
+
+EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+
+BCCH-BCH-Message ::= SEQUENCE {
+ message BCCH-BCH-MessageType
+}
+
+BCCH-BCH-MessageType ::= MasterInformationBlock
+
+
+BCCH-BCH-Message-MBMS::= SEQUENCE {
+ message BCCH-BCH-MessageType-MBMS-r14
+}
+
+BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14
+
+
+BCCH-DL-SCH-Message ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType
+}
+
+BCCH-DL-SCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ systemInformation SystemInformation,
+ systemInformationBlockType1 SystemInformationBlockType1
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+BCCH-DL-SCH-Message-BR ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType-BR-r13
+}
+
+BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE {
+ c1 CHOICE {
+ systemInformation-BR-r13 SystemInformation-BR-r13,
+ systemInformationBlockType1-BR-r13 SystemInformationBlockType1-BR-r13
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+BCCH-DL-SCH-Message-MBMS ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType-MBMS-r14
+}
+
+BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE {
+ c1 CHOICE {
+ systemInformation-MBMS-r14 SystemInformation-MBMS-r14,
+ systemInformationBlockType1-MBMS-r14 SystemInformationBlockType1-MBMS-r14
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+MCCH-Message ::= SEQUENCE {
+ message MCCH-MessageType
+}
+
+MCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ mbsfnAreaConfiguration-r9 MBSFNAreaConfiguration-r9
+ },
+ later CHOICE {
+ c2 CHOICE{
+ mbmsCountingRequest-r10 MBMSCountingRequest-r10
+ },
+ messageClassExtension SEQUENCE {}
+ }
+}
+
+
+PCCH-Message ::= SEQUENCE {
+ message PCCH-MessageType
+}
+
+PCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ paging Paging
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-CCCH-Message ::= SEQUENCE {
+ message DL-CCCH-MessageType
+}
+
+DL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishment RRCConnectionReestablishment,
+ rrcConnectionReestablishmentReject RRCConnectionReestablishmentReject,
+ rrcConnectionReject RRCConnectionReject,
+ rrcConnectionSetup RRCConnectionSetup
+ },
+ messageClassExtension CHOICE {
+ c2 CHOICE {
+ rrcEarlyDataComplete-r15 RRCEarlyDataComplete-r15,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtensionFuture-r15 SEQUENCE {}
+ }
+}
+
+
+DL-DCCH-Message ::= SEQUENCE {
+ message DL-DCCH-MessageType
+}
+
+DL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ csfbParametersResponseCDMA2000 CSFBParametersResponseCDMA2000,
+ dlInformationTransfer DLInformationTransfer,
+ handoverFromEUTRAPreparationRequest HandoverFromEUTRAPreparationRequest,
+ mobilityFromEUTRACommand MobilityFromEUTRACommand,
+ rrcConnectionReconfiguration RRCConnectionReconfiguration,
+ rrcConnectionRelease RRCConnectionRelease,
+ securityModeCommand SecurityModeCommand,
+ ueCapabilityEnquiry UECapabilityEnquiry,
+ counterCheck CounterCheck,
+ ueInformationRequest-r9 UEInformationRequest-r9,
+ loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10,
+ rnReconfiguration-r10 RNReconfiguration-r10,
+ rrcConnectionResume-r13 RRCConnectionResume-r13,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+UL-CCCH-Message ::= SEQUENCE {
+ message UL-CCCH-MessageType
+}
+
+UL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishmentRequest RRCConnectionReestablishmentRequest,
+ rrcConnectionRequest RRCConnectionRequest
+ },
+ messageClassExtension CHOICE {
+ c2 CHOICE {
+ rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13
+ },
+ messageClassExtensionFuture-r13 CHOICE {
+ c3 CHOICE {
+ rrcEarlyDataRequest-r15 RRCEarlyDataRequest-r15,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtensionFuture-r15 SEQUENCE {}
+ }
+ }
+}
+
+
+UL-DCCH-Message ::= SEQUENCE {
+ message UL-DCCH-MessageType
+}
+
+UL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ csfbParametersRequestCDMA2000 CSFBParametersRequestCDMA2000,
+ measurementReport MeasurementReport,
+ rrcConnectionReconfigurationComplete RRCConnectionReconfigurationComplete,
+ rrcConnectionReestablishmentComplete RRCConnectionReestablishmentComplete,
+ rrcConnectionSetupComplete RRCConnectionSetupComplete,
+ securityModeComplete SecurityModeComplete,
+ securityModeFailure SecurityModeFailure,
+ ueCapabilityInformation UECapabilityInformation,
+ ulHandoverPreparationTransfer ULHandoverPreparationTransfer,
+ ulInformationTransfer ULInformationTransfer,
+ counterCheckResponse CounterCheckResponse,
+ ueInformationResponse-r9 UEInformationResponse-r9,
+ proximityIndication-r9 ProximityIndication-r9,
+ rnReconfigurationComplete-r10 RNReconfigurationComplete-r10,
+ mbmsCountingResponse-r10 MBMSCountingResponse-r10,
+ interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10
+ },
+ messageClassExtension CHOICE {
+ c2 CHOICE {
+ ueAssistanceInformation-r11 UEAssistanceInformation-r11,
+ inDeviceCoexIndication-r11 InDeviceCoexIndication-r11,
+ mbmsInterestIndication-r11 MBMSInterestIndication-r11,
+ scgFailureInformation-r12 SCGFailureInformation-r12,
+ sidelinkUEInformation-r12 SidelinkUEInformation-r12,
+ wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13,
+ rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13,
+ ulInformationTransferMRDC-r15 ULInformationTransferMRDC-r15,
+ scgFailureInformationNR-r15 SCGFailureInformationNR-r15,
+ measReportAppLayer-r15 MeasReportAppLayer-r15,
+ failureInformation-r15 FailureInformation-r15,
+ spare5 NULL, spare4 NULL, spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtensionFuture-r11 SEQUENCE {}
+ }
+}
+
+
+SC-MCCH-Message-r13 ::= SEQUENCE {
+ message SC-MCCH-MessageType-r13
+}
+
+
+SC-MCCH-MessageType-r13 ::= CHOICE {
+ c1 CHOICE {
+ scptmConfiguration-r13 SCPTMConfiguration-r13
+ },
+ messageClassExtension CHOICE {
+ c2 CHOICE {
+ scptmConfiguration-BR-r14 SCPTMConfiguration-BR-r14,
+ spare NULL
+ },
+ messageClassExtensionFuture-r14 SEQUENCE {}
+ }
+}
+
+
+CounterCheck ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ counterCheck-r8 CounterCheck-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheck-r8-IEs ::= SEQUENCE {
+ drb-CountMSB-InfoList DRB-CountMSB-InfoList,
+ nonCriticalExtension CounterCheck-v8a0-IEs OPTIONAL
+}
+
+CounterCheck-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension CounterCheck-v1530-IEs OPTIONAL
+}
+
+CounterCheck-v1530-IEs ::= SEQUENCE {
+ drb-CountMSB-InfoListExt-r15 DRB-CountMSB-InfoListExt-r15 OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info
+
+DRB-CountMSB-InfoListExt-r15 ::= SEQUENCE (SIZE (1..maxDRBExt-r15)) OF DRB-CountMSB-Info
+
+DRB-CountMSB-Info ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ countMSB-Uplink INTEGER(0..33554431),
+ countMSB-Downlink INTEGER(0..33554431)
+}
+
+
+CounterCheckResponse ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ counterCheckResponse-r8 CounterCheckResponse-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheckResponse-r8-IEs ::= SEQUENCE {
+ drb-CountInfoList DRB-CountInfoList,
+ nonCriticalExtension CounterCheckResponse-v8a0-IEs OPTIONAL
+}
+
+CounterCheckResponse-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension CounterCheckResponse-v1530-IEs OPTIONAL
+}
+
+CounterCheckResponse-v1530-IEs ::= SEQUENCE {
+ drb-CountInfoListExt-r15 DRB-CountInfoListExt-r15 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo
+
+DRB-CountInfoListExt-r15 ::= SEQUENCE (SIZE (1..maxDRBExt-r15)) OF DRB-CountInfo
+
+DRB-CountInfo ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ count-Uplink INTEGER(0..4294967295),
+ count-Downlink INTEGER(0..4294967295)
+}
+
+
+CSFBParametersRequestCDMA2000 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension CSFBParametersRequestCDMA2000-v8a0-IEs OPTIONAL
+}
+
+CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+CSFBParametersResponseCDMA2000 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ csfbParametersResponseCDMA2000-r8 CSFBParametersResponseCDMA2000-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE {
+ rand RAND-CDMA2000,
+ mobilityParameters MobilityParametersCDMA2000,
+ nonCriticalExtension CSFBParametersResponseCDMA2000-v8a0-IEs OPTIONAL
+}
+
+CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+DLInformationTransfer ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ dlInformationTransfer-r8 DLInformationTransfer-r8-IEs,
+ dlInformationTransfer-r15 DLInformationTransfer-r15-IEs,
+ spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+DLInformationTransfer-r8-IEs ::= SEQUENCE {
+ dedicatedInfoType CHOICE {
+ dedicatedInfoNAS DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
+ },
+ nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL
+}
+
+DLInformationTransfer-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DLInformationTransfer-r15-IEs ::= SEQUENCE {
+ dedicatedInfoType-r15 CHOICE {
+ dedicatedInfoNAS-r15 DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT-r15 DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD-r15 DedicatedInfoCDMA2000
+ } OPTIONAL, -- Need ON
+ timeReferenceInfo-r15 TimeReferenceInfo-r15 OPTIONAL, -- Need ON
+ nonCriticalExtension DLInformationTransfer-v8a0-IEs OPTIONAL
+}
+
+
+FailureInformation-r15 ::= SEQUENCE {
+ failedLogicalChannelInfo-r15 FailedLogicalChannelInfo-r15 OPTIONAL,
+ nonCriticalExtension SEQUENCE {}
+}
+
+FailedLogicalChannelInfo-r15 ::= SEQUENCE {
+ failedLogicalChannelIdentity-r15 SEQUENCE {
+ cellGroupIndication-r15 ENUMERATED {mn, sn},
+ logicalChannelIdentity-r15 INTEGER (1..10) OPTIONAL,
+ logicalChannelIdentityExt-r15 INTEGER (32..38) OPTIONAL
+ },
+ failureType ENUMERATED {duplication, spare3, spare2, spare1}
+}
+
+
+HandoverFromEUTRAPreparationRequest ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ handoverFromEUTRAPreparationRequest-r8
+ HandoverFromEUTRAPreparationRequest-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ rand RAND-CDMA2000 OPTIONAL, -- Cond cdma2000-Type
+ mobilityParameters MobilityParametersCDMA2000 OPTIONAL, -- Cond cdma2000-Type
+ nonCriticalExtension HandoverFromEUTRAPreparationRequest-v890-IEs OPTIONAL
+}
+
+HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension HandoverFromEUTRAPreparationRequest-v920-IEs OPTIONAL
+}
+
+HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE {
+ concurrPrepCDMA2000-HRPD-r9 BOOLEAN OPTIONAL, -- Cond cdma2000-Type
+ nonCriticalExtension HandoverFromEUTRAPreparationRequest-v1020-IEs OPTIONAL
+}
+
+HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE {
+ dualRxTxRedirectIndicator-r10 ENUMERATED {true} OPTIONAL, -- Cond cdma2000-1XRTT
+ redirectCarrierCDMA2000-1XRTT-r10 CarrierFreqCDMA2000 OPTIONAL, -- Cond dualRxTxRedirect
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+InDeviceCoexIndication-r11 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ inDeviceCoexIndication-r11 InDeviceCoexIndication-r11-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+InDeviceCoexIndication-r11-IEs ::= SEQUENCE {
+ affectedCarrierFreqList-r11 AffectedCarrierFreqList-r11 OPTIONAL,
+ tdm-AssistanceInfo-r11 TDM-AssistanceInfo-r11 OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension InDeviceCoexIndication-v11d0-IEs OPTIONAL
+}
+
+InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE {
+ ul-CA-AssistanceInfo-r11 SEQUENCE {
+ affectedCarrierFreqCombList-r11 AffectedCarrierFreqCombList-r11 OPTIONAL,
+ victimSystemType-r11 VictimSystemType-r11
+ } OPTIONAL,
+ nonCriticalExtension InDeviceCoexIndication-v1310-IEs OPTIONAL
+}
+
+InDeviceCoexIndication-v1310-IEs ::= SEQUENCE {
+ affectedCarrierFreqList-v1310 AffectedCarrierFreqList-v1310 OPTIONAL,
+ affectedCarrierFreqCombList-r13 AffectedCarrierFreqCombList-r13 OPTIONAL,
+ nonCriticalExtension InDeviceCoexIndication-v1360-IEs OPTIONAL
+}
+
+InDeviceCoexIndication-v1360-IEs ::= SEQUENCE {
+ hardwareSharingProblem-r13 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension InDeviceCoexIndication-v1530-IEs OPTIONAL
+}
+
+InDeviceCoexIndication-v1530-IEs ::= SEQUENCE {
+ mrdc-AssistanceInfo-r15 MRDC-AssistanceInfo-r15 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-r11
+
+AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF AffectedCarrierFreq-v1310
+
+AffectedCarrierFreq-r11 ::= SEQUENCE {
+ carrierFreq-r11 MeasObjectId,
+ interferenceDirection-r11 ENUMERATED {eutra, other, both, spare}
+}
+
+AffectedCarrierFreq-v1310 ::= SEQUENCE {
+ carrierFreq-v1310 MeasObjectId-v1310 OPTIONAL
+}
+
+AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r11
+
+AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqComb-r13
+
+AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..maxServCell-r10)) OF MeasObjectId
+
+AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..maxServCell-r13)) OF MeasObjectId-r13
+
+TDM-AssistanceInfo-r11 ::= CHOICE {
+ drx-AssistanceInfo-r11 SEQUENCE {
+ drx-CycleLength-r11 ENUMERATED {sf40, sf64, sf80, sf128, sf160,
+ sf256, spare2, spare1},
+ drx-Offset-r11 INTEGER (0..255) OPTIONAL,
+ drx-ActiveTime-r11 ENUMERATED {sf20, sf30, sf40, sf60, sf80,
+ sf100, spare2, spare1}
+ },
+ idc-SubframePatternList-r11 IDC-SubframePatternList-r11,
+ ...
+}
+
+IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..maxSubframePatternIDC-r11)) OF IDC-SubframePattern-r11
+
+IDC-SubframePattern-r11 ::= CHOICE {
+ subframePatternFDD-r11 BIT STRING (SIZE (4)),
+ subframePatternTDD-r11 CHOICE {
+ subframeConfig0-r11 BIT STRING (SIZE (70)),
+ subframeConfig1-5-r11 BIT STRING (SIZE (10)),
+ subframeConfig6-r11 BIT STRING (SIZE (60))
+ },
+ ...
+}
+
+VictimSystemType-r11 ::= SEQUENCE {
+ gps-r11 ENUMERATED {true} OPTIONAL,
+ glonass-r11 ENUMERATED {true} OPTIONAL,
+ bds-r11 ENUMERATED {true} OPTIONAL,
+ galileo-r11 ENUMERATED {true} OPTIONAL,
+ wlan-r11 ENUMERATED {true} OPTIONAL,
+ bluetooth-r11 ENUMERATED {true} OPTIONAL
+}
+
+MRDC-AssistanceInfo-r15 ::= SEQUENCE {
+ affectedCarrierFreqCombInfoListMRDC-r15 SEQUENCE (SIZE (1..maxCombIDC-r11)) OF AffectedCarrierFreqCombInfoMRDC-r15,
+ ...
+}
+
+AffectedCarrierFreqCombInfoMRDC-r15 ::= SEQUENCE {
+ victimSystemType-r15 VictimSystemType-r11,
+ interferenceDirectionMRDC-r15 ENUMERATED {eutra-nr, nr, other, eutra-nr-other,
+ nr-other, spare3, spare2, spare1},
+ affectedCarrierFreqCombMRDC-r15 SEQUENCE {
+ affectedCarrierFreqCombEUTRA-r15 AffectedCarrierFreqComb-r15 OPTIONAL,
+ affectedCarrierFreqCombNR-r15 AffectedCarrierFreqCombNR-r15
+ } OPTIONAL
+}
+
+AffectedCarrierFreqComb-r15 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasObjectId-r13
+
+AffectedCarrierFreqCombNR-r15 ::= SEQUENCE (SIZE (1..maxServCellNR-r15)) OF ARFCN-ValueNR-r15
+
+
+InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ interFreqRSTDMeasurementIndication-r10 InterFreqRSTDMeasurementIndication-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE {
+ rstd-InterFreqIndication-r10 CHOICE {
+ start SEQUENCE {
+ rstd-InterFreqInfoList-r10 RSTD-InterFreqInfoList-r10
+ },
+ stop NULL
+ },
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE(1..maxRSTD-Freq-r10)) OF RSTD-InterFreqInfo-r10
+
+RSTD-InterFreqInfo-r10 ::= SEQUENCE {
+ carrierFreq-r10 ARFCN-ValueEUTRA,
+ measPRS-Offset-r10 INTEGER (0..39),
+ ...,
+ [[ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL
+ ]],
+ [[ measPRS-Offset-r15 CHOICE {
+ rstd0-r15 INTEGER (0..79),
+ rstd1-r15 INTEGER (0..159),
+ rstd2-r15 INTEGER (0..319),
+ rstd3-r15 INTEGER (0..639),
+ rstd4-r15 INTEGER (0..1279),
+ rstd5-r15 INTEGER (0..159),
+ rstd6-r15 INTEGER (0..319),
+ rstd7-r15 INTEGER (0..639),
+ rstd8-r15 INTEGER (0..1279),
+ rstd9-r15 INTEGER (0..319),
+ rstd10-r15 INTEGER (0..639),
+ rstd11-r15 INTEGER (0..1279),
+ rstd12-r15 INTEGER (0..319),
+ rstd13-r15 INTEGER (0..639),
+ rstd14-r15 INTEGER (0..1279),
+ rstd15-r15 INTEGER (0..639),
+ rstd16-r15 INTEGER (0..1279),
+ rstd17-r15 INTEGER (0..639),
+ rstd18-r15 INTEGER (0..1279),
+ rstd19-r15 INTEGER (0..639),
+ rstd20-r15 INTEGER (0..1279)
+ } OPTIONAL
+ ]]
+}
+
+
+LoggedMeasurementConfiguration-r10 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ loggedMeasurementConfiguration-r10 LoggedMeasurementConfiguration-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+
+LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE {
+ traceReference-r10 TraceReference-r10,
+ traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
+ tce-Id-r10 OCTET STRING (SIZE (1)),
+ absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL, -- Need OR
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10,
+ nonCriticalExtension LoggedMeasurementConfiguration-v1080-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE {
+ lateNonCriticalExtension-r10 OCTET STRING OPTIONAL,
+ nonCriticalExtension LoggedMeasurementConfiguration-v1130-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE {
+ plmn-IdentityList-r11 PLMN-IdentityList3-r11 OPTIONAL, -- Need OR
+ areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL, -- Need OR
+ nonCriticalExtension LoggedMeasurementConfiguration-v1250-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE {
+ targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL, -- Need OP
+ nonCriticalExtension LoggedMeasurementConfiguration-v1530-IEs OPTIONAL
+}
+
+LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE {
+ bt-NameList-r15 BT-NameList-r15 OPTIONAL, --Need OR
+ wlan-NameList-r15 WLAN-NameList-r15 OPTIONAL, --Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..maxMBSFN-Area)) OF TargetMBSFN-Area-r12
+
+TargetMBSFN-Area-r12 ::= SEQUENCE {
+ mbsfn-AreaId-r12 MBSFN-AreaId-r12 OPTIONAL, -- Need OR
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ ...
+}
+
+
+MasterInformationBlock ::= SEQUENCE {
+ dl-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100},
+ phich-Config PHICH-Config,
+ systemFrameNumber BIT STRING (SIZE (8)),
+ schedulingInfoSIB1-BR-r13 INTEGER (0..31),
+ systemInfoUnchanged-BR-r15 BOOLEAN,
+ spare BIT STRING (SIZE (4))
+}
+
+
+
+MasterInformationBlock-MBMS-r14 ::= SEQUENCE {
+ dl-Bandwidth-MBMS-r14 ENUMERATED {
+ n6, n15, n25, n50, n75, n100},
+ systemFrameNumber-r14 BIT STRING (SIZE (6)),
+ additionalNonMBSFNSubframes-r14 INTEGER (0..3),
+ spare BIT STRING (SIZE (13))
+}
+
+
+MBMSCountingRequest-r10 ::= SEQUENCE {
+ countingRequestList-r10 CountingRequestList-r10,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CountingRequestList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingRequestInfo-r10
+
+CountingRequestInfo-r10 ::= SEQUENCE {
+ tmgi-r10 TMGI-r9,
+ ...
+}
+
+
+MBMSCountingResponse-r10 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ countingResponse-r10 MBMSCountingResponse-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MBMSCountingResponse-r10-IEs ::= SEQUENCE {
+ mbsfn-AreaIndex-r10 INTEGER (0..maxMBSFN-Area-1) OPTIONAL,
+ countingResponseList-r10 CountingResponseList-r10 OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CountingResponseList-r10 ::= SEQUENCE (SIZE (1..maxServiceCount)) OF CountingResponseInfo-r10
+
+CountingResponseInfo-r10 ::= SEQUENCE {
+ countingResponseService-r10 INTEGER (0..maxServiceCount-1),
+ ...
+}
+
+
+MBMSInterestIndication-r11 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ interestIndication-r11 MBMSInterestIndication-r11-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MBMSInterestIndication-r11-IEs ::= SEQUENCE {
+ mbms-FreqList-r11 CarrierFreqListMBMS-r11 OPTIONAL,
+ mbms-Priority-r11 ENUMERATED {true} OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MBMSInterestIndication-v1310-IEs OPTIONAL
+}
+
+MBMSInterestIndication-v1310-IEs ::= SEQUENCE {
+ mbms-Services-r13 MBMS-ServiceList-r13 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MBSFNAreaConfiguration-r9 ::= SEQUENCE {
+ commonSF-Alloc-r9 CommonSF-AllocPatternList-r9,
+ commonSF-AllocPeriod-r9 ENUMERATED {
+ rf4, rf8, rf16, rf32, rf64, rf128, rf256},
+ pmch-InfoList-r9 PMCH-InfoList-r9,
+ nonCriticalExtension MBSFNAreaConfiguration-v930-IEs OPTIONAL
+}
+
+MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MBSFNAreaConfiguration-v1250-IEs OPTIONAL
+}
+
+MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE {
+ pmch-InfoListExt-r12 PMCH-InfoListExt-r12 OPTIONAL, -- Need OR
+ nonCriticalExtension MBSFNAreaConfiguration-v1430-IEs OPTIONAL
+}
+
+MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE {
+ commonSF-Alloc-r14 CommonSF-AllocPatternList-r14,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig
+
+CommonSF-AllocPatternList-r14 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430
+
+
+MeasReportAppLayer-r15 ::= SEQUENCE {
+ criticalExtensions CHOICE { measReportAppLayer-r15 MeasReportAppLayer-r15-IEs, criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MeasReportAppLayer-r15-IEs ::= SEQUENCE {
+ measReportAppLayerContainer-r15 OCTET STRING (SIZE(1..8000)) OPTIONAL,
+ serviceType ENUMERATED {qoe, qoemtsi, spare6, spare5, spare4, spare3, spare2, spare1} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MeasurementReport ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ measurementReport-r8 MeasurementReport-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MeasurementReport-r8-IEs ::= SEQUENCE {
+ measResults MeasResults,
+ nonCriticalExtension MeasurementReport-v8a0-IEs OPTIONAL
+}
+
+MeasurementReport-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MobilityFromEUTRACommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs,
+ mobilityFromEUTRACommand-r9 MobilityFromEUTRACommand-r9-IEs,
+ spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE {
+ cs-FallbackIndicator BOOLEAN,
+ purpose CHOICE{
+ handover Handover,
+ cellChangeOrder CellChangeOrder
+ },
+ nonCriticalExtension MobilityFromEUTRACommand-v8a0-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE {
+ bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE {
+ cs-FallbackIndicator BOOLEAN,
+ purpose CHOICE{
+ handover Handover,
+ cellChangeOrder CellChangeOrder,
+ e-CSFB-r9 E-CSFB-r9,
+ ...
+ },
+ nonCriticalExtension MobilityFromEUTRACommand-v930-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension MobilityFromEUTRACommand-v960-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE {
+ bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN
+ nonCriticalExtension MobilityFromEUTRACommand-v1530-IEs OPTIONAL
+}
+
+MobilityFromEUTRACommand-v1530-IEs ::= SEQUENCE {
+ smtc-r15 MTC-SSB-NR-r15 OPTIONAL, -- Need OP
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+Handover ::= SEQUENCE {
+ targetRAT-Type ENUMERATED {
+ utra, geran, cdma2000-1XRTT, cdma2000-HRPD,
+ nr, eutra, spare2, spare1, ...},
+ targetRAT-MessageContainer OCTET STRING,
+ nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERANEPC
+ systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO
+}
+
+CellChangeOrder ::= SEQUENCE {
+ t304 ENUMERATED {
+ ms100, ms200, ms500, ms1000,
+ ms2000, ms4000, ms8000, ms10000-v1310},
+ targetRAT-Type CHOICE {
+ geran SEQUENCE {
+ physCellId PhysCellIdGERAN,
+ carrierFreq CarrierFreqGERAN,
+ networkControlOrder BIT STRING (SIZE (2)) OPTIONAL, -- Need OP
+ systemInformation SI-OrPSI-GERAN OPTIONAL -- Need OP
+ },
+ ...
+ }
+}
+
+SI-OrPSI-GERAN ::= CHOICE {
+ si SystemInfoListGERAN,
+ psi SystemInfoListGERAN
+}
+
+E-CSFB-r9 ::= SEQUENCE {
+ messageContCDMA2000-1XRTT-r9 OCTET STRING OPTIONAL, -- Need ON
+ mobilityCDMA2000-HRPD-r9 ENUMERATED {
+ handover, redirection
+ } OPTIONAL, -- Need OP
+ messageContCDMA2000-HRPD-r9 OCTET STRING OPTIONAL, -- Cond concHO
+ redirectCarrierCDMA2000-HRPD-r9 CarrierFreqCDMA2000 OPTIONAL -- Cond concRedir
+}
+
+
+Paging ::= SEQUENCE {
+ pagingRecordList PagingRecordList OPTIONAL, -- Need ON
+ systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON
+ etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension Paging-v890-IEs OPTIONAL
+}
+
+Paging-v890-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension Paging-v920-IEs OPTIONAL
+}
+
+Paging-v920-IEs ::= SEQUENCE {
+ cmas-Indication-r9 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension Paging-v1130-IEs OPTIONAL
+}
+
+Paging-v1130-IEs ::= SEQUENCE {
+ eab-ParamModification-r11 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension Paging-v1310-IEs OPTIONAL
+}
+
+Paging-v1310-IEs ::= SEQUENCE {
+ redistributionIndication-r13 ENUMERATED {true} OPTIONAL, --Need ON
+ systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension Paging-v1530-IEs OPTIONAL
+}
+
+Paging-v1530-IEs ::= SEQUENCE {
+ accessType ENUMERATED {non3GPP} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+PagingRecordList ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord
+
+PagingRecord ::= SEQUENCE {
+ ue-Identity PagingUE-Identity,
+ cn-Domain ENUMERATED {ps, cs},
+ ...
+}
+
+PagingUE-Identity ::= CHOICE {
+ s-TMSI S-TMSI,
+ imsi IMSI,
+ ...,
+ ng-5G-S-TMSI-r15 NG-5G-S-TMSI-r15,
+ i-RNTI-r15 I-RNTI-r15
+}
+
+IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit
+
+IMSI-Digit ::= INTEGER (0..9)
+
+
+ProximityIndication-r9 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ proximityIndication-r9 ProximityIndication-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ProximityIndication-r9-IEs ::= SEQUENCE {
+ type-r9 ENUMERATED {entering, leaving},
+ carrierFreq-r9 CHOICE {
+ eutra-r9 ARFCN-ValueEUTRA,
+ utra-r9 ARFCN-ValueUTRA,
+ ...,
+ eutra2-v9e0 ARFCN-ValueEUTRA-v9e0
+ },
+ nonCriticalExtension ProximityIndication-v930-IEs OPTIONAL
+}
+
+ProximityIndication-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RNReconfiguration-r10 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rnReconfiguration-r10 RNReconfiguration-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RNReconfiguration-r10-IEs ::= SEQUENCE {
+ rn-SystemInfo-r10 RN-SystemInfo-r10 OPTIONAL, -- Need ON
+ rn-SubframeConfig-r10 RN-SubframeConfig-r10 OPTIONAL, -- Need ON
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RN-SystemInfo-r10 ::= SEQUENCE {
+ systemInformationBlockType1-r10 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON
+ systemInformationBlockType2-r10 SystemInformationBlockType2 OPTIONAL, -- Need ON
+ ...
+}
+
+
+RNReconfigurationComplete-r10 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rnReconfigurationComplete-r10 RNReconfigurationComplete-r10-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RNReconfigurationComplete-r10-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReconfiguration ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReconfiguration-r8 RRCConnectionReconfiguration-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE {
+ measConfig MeasConfig OPTIONAL, -- Need ON
+ mobilityControlInfo MobilityControlInfo OPTIONAL, -- Cond HO
+ dedicatedInfoNASList SEQUENCE (SIZE(1..maxDRB)) OF
+ DedicatedInfoNAS OPTIONAL, -- Cond nonHO
+ radioResourceConfigDedicated RadioResourceConfigDedicated OPTIONAL, -- Cond HO-toEUTRA
+ securityConfigHO SecurityConfigHO OPTIONAL, -- Cond HO-toEPC
+ nonCriticalExtension RRCConnectionReconfiguration-v890-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionReconfiguration-v8m0-IEs) OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfiguration-v920-IEs OPTIONAL
+}
+
+-- Late non-critical extensions:
+RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE {
+ -- Following field is only for pre REL-10 late non-critical extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfiguration-v10i0-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE {
+ antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReconfiguration-v10l0-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE {
+ mobilityControlInfo-v10l0 MobilityControlInfo-v10l0 OPTIONAL,
+ sCellToAddModList-v10l0 SCellToAddModList-v10l0 OPTIONAL, -- Need ON
+ -- Following field is only for late non-critical extensions from REL-10 to REL-11
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfiguration-v12f0-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE {
+ scg-Configuration-v12f0 SCG-Configuration-v12f0 OPTIONAL, -- Cond nonFullConfig
+ -- Following field is only for late non-critical extensions from REL-12
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfiguration-v1370-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated-v1370 RadioResourceConfigDedicated-v1370 OPTIONAL, -- Need ON
+ sCellToAddModListExt-v1370 SCellToAddModListExt-v1370 OPTIONAL, -- Need ON
+ -- Following field is only for late non-critical extensions from REL-13 onwards
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non-critical extensions:
+RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE {
+ otherConfig-r9 OtherConfig-r9 OPTIONAL, -- Need ON
+ fullConfig-r9 ENUMERATED {true} OPTIONAL, -- Cond HO-Reestab
+ nonCriticalExtension RRCConnectionReconfiguration-v1020-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE {
+ sCellToReleaseList-r10 SCellToReleaseList-r10 OPTIONAL, -- Need ON
+ sCellToAddModList-r10 SCellToAddModList-r10 OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReconfiguration-v1130-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE {
+ systemInformationBlockType1Dedicated-r11 OCTET STRING (CONTAINING SystemInformationBlockType1) OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReconfiguration-v1250-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE {
+ wlan-OffloadInfo-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ wlan-OffloadConfigDedicated-r12 WLAN-OffloadConfig-r12,
+ t350-r12 ENUMERATED {min5, min10, min20, min30, min60,
+ min120, min180, spare1} OPTIONAL -- Need OR
+ }
+ } OPTIONAL, -- Need ON
+ scg-Configuration-r12 SCG-Configuration-r12 OPTIONAL, -- Cond nonFullConfig
+ sl-SyncTxControl-r12 SL-SyncTxControl-r12 OPTIONAL, -- Need ON
+ sl-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL, -- Need ON
+ sl-CommConfig-r12 SL-CommConfig-r12 OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReconfiguration-v1310-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE {
+ sCellToReleaseListExt-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON
+ sCellToAddModListExt-r13 SCellToAddModListExt-r13 OPTIONAL, -- Need ON
+ lwa-Configuration-r13 LWA-Configuration-r13 OPTIONAL, -- Need ON
+ lwip-Configuration-r13 LWIP-Configuration-r13 OPTIONAL, -- Need ON
+ rclwi-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReconfiguration-v1430-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE {
+ sl-V2X-ConfigDedicated-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL, -- Need ON
+ sCellToAddModListExt-v1430 SCellToAddModListExt-v1430 OPTIONAL, -- Need ON
+ perCC-GapIndicationRequest-r14 ENUMERATED{true} OPTIONAL, -- Need ON
+ systemInformationBlockType2Dedicated-r14 OCTET STRING (CONTAINING SystemInformationBlockType2) OPTIONAL, -- Cond nonHO
+ nonCriticalExtension RRCConnectionReconfiguration-v1510-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1510-IEs ::= SEQUENCE {
+ nr-Config-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ endc-ReleaseAndAdd-r15 BOOLEAN,
+ nr-SecondaryCellGroupConfig-r15 OCTET STRING OPTIONAL, -- Need ON
+ p-MaxEUTRA-r15 P-Max OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need ON
+ sk-Counter-r15 INTEGER (0.. 65535) OPTIONAL, -- Need ON
+ nr-RadioBearerConfig1-r15 OCTET STRING OPTIONAL, -- Need ON
+ nr-RadioBearerConfig2-r15 OCTET STRING OPTIONAL, -- Need ON
+ tdm-PatternConfig-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeAssignment-r15 SubframeAssignment-r15,
+ harq-Offset-r15 INTEGER (0.. 9)
+ }
+ } OPTIONAL, -- Cond FDD-PCell
+ nonCriticalExtension RRCConnectionReconfiguration-v1530-IEs OPTIONAL
+}
+
+RRCConnectionReconfiguration-v1530-IEs ::= SEQUENCE {
+ securityConfigHO-v1530 SecurityConfigHO-v1530 OPTIONAL, -- Cond HO-5GC
+ sCellGroupToReleaseList-r15 SCellGroupToReleaseList-r15 OPTIONAL, -- Need ON
+ sCellGroupToAddModList-r15 SCellGroupToAddModList-r15 OPTIONAL, -- Need ON
+ dedicatedInfoNASList-r15 SEQUENCE (SIZE(1..maxDRB-r15)) OF
+ DedicatedInfoNAS OPTIONAL, -- Cond nonHO
+ p-MaxUE-FR1-r15 P-Max OPTIONAL, -- Need OR
+ smtc-r15 MTC-SSB-NR-r15 OPTIONAL, -- Need OP
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SL-SyncTxControl-r12 ::= SEQUENCE {
+ networkControlledSyncTx-r12 ENUMERATED {on, off} OPTIONAL -- Need OP
+}
+
+PSCellToAddMod-r12 ::= SEQUENCE {
+ sCellIndex-r12 SCellIndex-r10,
+ cellIdentification-r12 SEQUENCE {
+ physCellId-r12 PhysCellId,
+ dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9
+ } OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-r12 OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigDedicatedPSCell-r12 RadioResourceConfigDedicatedPSCell-r12 OPTIONAL, -- Cond SCellAdd2
+ ...,
+ [[ antennaInfoDedicatedPSCell-v1280 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON
+ ]],
+ [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL -- Need ON
+ ]],
+ [[ radioResourceConfigDedicatedPSCell-v1370 RadioResourceConfigDedicatedPSCell-v1370 OPTIONAL -- Need ON
+ ]]
+}
+
+PSCellToAddMod-v12f0 ::= SEQUENCE {
+ radioResourceConfigCommonPSCell-r12 RadioResourceConfigCommonPSCell-v12f0 OPTIONAL
+}
+
+PSCellToAddMod-v1440 ::= SEQUENCE {
+ radioResourceConfigCommonPSCell-r14 RadioResourceConfigCommonPSCell-v1440 OPTIONAL
+}
+
+PowerCoordinationInfo-r12 ::= SEQUENCE {
+ p-MeNB-r12 INTEGER (1..16),
+ p-SeNB-r12 INTEGER (1..16),
+ powerControlMode-r12 INTEGER (1..2)
+}
+
+SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-r10
+
+SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellToAddMod-v10l0
+
+SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-r13
+
+SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1370
+
+SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellToAddModExt-v1430
+
+SCellGroupToAddModList-r15 ::= SEQUENCE (SIZE (1..maxSCellGroups-r15)) OF SCellGroupToAddMod-r15
+
+SCellToAddMod-r10 ::= SEQUENCE {
+ sCellIndex-r10 SCellIndex-r10,
+ cellIdentification-r10 SEQUENCE {
+ physCellId-r10 PhysCellId,
+ dl-CarrierFreq-r10 ARFCN-ValueEUTRA
+ } OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigCommonSCell-r10 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigDedicatedSCell-r10 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2
+ ...,
+ [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max
+ ]],
+ [[ antennaInfoDedicatedSCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON
+ ]],
+ [[ srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL -- Need ON
+ ]],
+ [[ sCellState-r15 ENUMERATED {activated, dormant} OPTIONAL -- Need ON
+ ]]
+}
+
+SCellToAddMod-v10l0 ::= SEQUENCE {
+ radioResourceConfigCommonSCell-v10l0 RadioResourceConfigCommonSCell-v10l0 OPTIONAL
+}
+
+SCellToAddModExt-r13 ::= SEQUENCE {
+ sCellIndex-r13 SCellIndex-r13,
+ cellIdentification-r13 SEQUENCE {
+ physCellId-r13 PhysCellId,
+ dl-CarrierFreq-r13 ARFCN-ValueEUTRA-r9
+ } OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigCommonSCell-r13 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Cond SCellAdd
+ radioResourceConfigDedicatedSCell-r13 RadioResourceConfigDedicatedSCell-r10 OPTIONAL, -- Cond SCellAdd2
+ antennaInfoDedicatedSCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON
+}
+
+SCellToAddModExt-v1370 ::= SEQUENCE {
+ radioResourceConfigCommonSCell-v1370 RadioResourceConfigCommonSCell-v10l0 OPTIONAL
+}
+
+SCellToAddModExt-v1430 ::= SEQUENCE {
+ srs-SwitchFromServCellIndex-r14 INTEGER (0.. 31) OPTIONAL, -- Need ON
+ ...,
+ [[ sCellState-r15 ENUMERATED {activated, dormant} OPTIONAL -- Need ON
+ ]]
+}
+
+SCellGroupToAddMod-r15 ::= SEQUENCE {
+ sCellGroupIndex-r15 SCellGroupIndex-r15,
+ sCellConfigCommon-r15 SCellConfigCommon-r15 OPTIONAL, -- Need ON
+ sCellToReleaseList-r15 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON
+ sCellToAddModList-r15 SCellToAddModListExt-r13 OPTIONAL -- Need ON
+}
+
+SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF SCellIndex-r10
+
+SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF SCellIndex-r13
+
+SCellGroupToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxSCellGroups-r15)) OF SCellGroupIndex-r15
+
+SCellGroupIndex-r15 ::= INTEGER (1..maxSCellGroups-r15)
+
+SCellConfigCommon-r15 ::= SEQUENCE {
+ radioResourceConfigCommonSCell-r15 RadioResourceConfigCommonSCell-r10 OPTIONAL, -- Need ON
+ radioResourceConfigDedicatedSCell-r15 RadioResourceConfigDedicatedSCell-r10 OPTIONAL,-- Need ON
+ antennaInfoDedicatedSCell-r15 AntennaInfoDedicated-v10i0 OPTIONAL -- Need ON
+}
+
+SCG-Configuration-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ scg-ConfigPartMCG-r12 SEQUENCE {
+ scg-Counter-r12 INTEGER (0.. 65535) OPTIONAL, -- Need ON
+ powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL, -- Need ON
+ ...
+ } OPTIONAL, -- Need ON
+ scg-ConfigPartSCG-r12 SCG-ConfigPartSCG-r12 OPTIONAL -- Need ON
+ }
+}
+
+SCG-Configuration-v12f0 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ scg-ConfigPartSCG-v12f0 SCG-ConfigPartSCG-v12f0 OPTIONAL -- Need ON
+ }
+}
+
+SCG-ConfigPartSCG-r12 ::= SEQUENCE {
+ radioResourceConfigDedicatedSCG-r12 RadioResourceConfigDedicatedSCG-r12 OPTIONAL, -- Need ON
+ sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL, -- Need ON
+ pSCellToAddMod-r12 PSCellToAddMod-r12 OPTIONAL, -- Need ON
+ sCellToAddModListSCG-r12 SCellToAddModList-r10 OPTIONAL, -- Need ON
+ mobilityControlInfoSCG-r12 MobilityControlInfoSCG-r12 OPTIONAL, -- Need ON
+ ...,
+ [[
+ sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL, -- Need ON
+ sCellToAddModListSCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL -- Need ON
+ ]],
+ [[
+ sCellToAddModListSCG-Ext-v1370 SCellToAddModListExt-v1370 OPTIONAL -- Need ON
+ ]],
+ [[
+ pSCellToAddMod-v1440 PSCellToAddMod-v1440 OPTIONAL -- Need ON
+ ]],
+ [[ sCellGroupToReleaseListSCG-r15 SCellGroupToReleaseList-r15 OPTIONAL, -- Need ON
+ sCellGroupToAddModListSCG-r15 SCellGroupToAddModList-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+SCG-ConfigPartSCG-v12f0 ::= SEQUENCE {
+ pSCellToAddMod-v12f0 PSCellToAddMod-v12f0 OPTIONAL, -- Need ON
+ sCellToAddModListSCG-v12f0 SCellToAddModList-v10l0 OPTIONAL -- Need ON
+}
+
+SecurityConfigHO ::= SEQUENCE {
+ handoverType CHOICE {
+ intraLTE SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig
+ keyChangeIndicator BOOLEAN,
+ nextHopChainingCount NextHopChainingCount
+ },
+ interRAT SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ nas-SecurityParamToEUTRA OCTET STRING (SIZE(6))
+ }
+ },
+ ...
+}
+
+SecurityConfigHO-v1530 ::= SEQUENCE {
+ handoverType-v1530 CHOICE {
+ intra5GC-r15 SEQUENCE {
+ securityAlgorithmConfig-r15 SecurityAlgorithmConfig OPTIONAL, -- Cond fullConfig
+ keyChangeIndicator-r15 BOOLEAN,
+ nextHopChainingCount-r15 NextHopChainingCount,
+ nas-Container-r15 OCTET STRING OPTIONAL -- Need ON
+ },
+ ngc-ToEPC-r15 SEQUENCE {
+ securityAlgorithmConfig-r15 SecurityAlgorithmConfig,
+ nextHopChainingCount-r15 NextHopChainingCount
+ },
+ epc-ToNGC-r15 SEQUENCE {
+ securityAlgorithmConfig-r15 SecurityAlgorithmConfig,
+ nas-Container-r15 OCTET STRING
+ }
+ },
+ ...
+}
+
+
+RRCConnectionReconfigurationComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReconfigurationComplete-r8
+ RRCConnectionReconfigurationComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1020-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE {
+ rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL,
+ logMeasAvailable-r10 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1130-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE {
+ connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1250-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE {
+ logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1430-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE {
+ perCC-GapIndicationList-r14 PerCC-GapIndicationList-r14 OPTIONAL,
+ numFreqEffective-r14 INTEGER (1..12) OPTIONAL,
+ numFreqEffectiveReduced-r14 INTEGER (1..12) OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1510-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1510-IEs ::= SEQUENCE {
+ scg-ConfigResponseNR-r15 OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReconfigurationComplete-v1530-IEs OPTIONAL
+}
+
+RRCConnectionReconfigurationComplete-v1530-IEs ::= SEQUENCE {
+ logMeasAvailableBT-r15 ENUMERATED {true} OPTIONAL,
+ logMeasAvailableWLAN-r15 ENUMERATED {true} OPTIONAL,
+ flightPathInfoAvailable-r15 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishment ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReestablishment-r8 RRCConnectionReestablishment-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishment-r8-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated RadioResourceConfigDedicated,
+ nextHopChainingCount NextHopChainingCount,
+ nonCriticalExtension RRCConnectionReestablishment-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentComplete-r8
+ RRCConnectionReestablishmentComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v920-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE {
+ rlf-InfoAvailable-r9 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v1020-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE {
+ logMeasAvailable-r10 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v1130-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE {
+ connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v1250-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE {
+ logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-v1530-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-v1530-IEs ::= SEQUENCE {
+ logMeasAvailableBT-r15 ENUMERATED {true} OPTIONAL,
+ logMeasAvailableWLAN-r15 ENUMERATED {true} OPTIONAL,
+ flightPathInfoAvailable-r15 ENUMERATED {true} OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentReject-r8
+ RRCConnectionReestablishmentReject-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension RRCConnectionReestablishmentReject-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentRequest-r8
+ RRCConnectionReestablishmentRequest-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE {
+ ue-Identity ReestabUE-Identity,
+ reestablishmentCause ReestablishmentCause,
+ spare BIT STRING (SIZE (2))
+}
+
+ReestabUE-Identity ::= SEQUENCE {
+ c-RNTI C-RNTI,
+ physCellId PhysCellId,
+ shortMAC-I ShortMAC-I
+}
+
+ReestablishmentCause ::= ENUMERATED {
+ reconfigurationFailure, handoverFailure,
+ otherFailure, spare1}
+
+
+RRCConnectionReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionReject-r8 RRCConnectionReject-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReject-r8-IEs ::= SEQUENCE {
+ waitTime INTEGER (1..16),
+ nonCriticalExtension RRCConnectionReject-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionReject-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReject-v1020-IEs OPTIONAL
+}
+
+RRCConnectionReject-v1020-IEs ::= SEQUENCE {
+ extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReject-v1130-IEs OPTIONAL
+}
+
+RRCConnectionReject-v1130-IEs ::= SEQUENCE {
+ deprioritisationReq-r11 SEQUENCE {
+ deprioritisationType-r11 ENUMERATED {frequency, e-utra},
+ deprioritisationTimer-r11 ENUMERATED {min5, min10, min15, min30}
+ } OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionReject-v1320-IEs OPTIONAL
+}
+
+RRCConnectionReject-v1320-IEs ::= SEQUENCE {
+ rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionRelease ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionRelease-r8 RRCConnectionRelease-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRelease-r8-IEs ::= SEQUENCE {
+ releaseCause ReleaseCause,
+ redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need ON
+ idleModeMobilityControlInfo IdleModeMobilityControlInfo OPTIONAL, -- Need OP
+ nonCriticalExtension RRCConnectionRelease-v890-IEs OPTIONAL
+}
+
+RRCConnectionRelease-v890-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING RRCConnectionRelease-v9e0-IEs) OPTIONAL,
+ nonCriticalExtension RRCConnectionRelease-v920-IEs OPTIONAL
+}
+
+-- Late non critical extensions
+RRCConnectionRelease-v9e0-IEs ::= SEQUENCE {
+ redirectedCarrierInfo-v9e0 RedirectedCarrierInfo-v9e0 OPTIONAL, -- Cond NoRedirect-r8
+ idleModeMobilityControlInfo-v9e0 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non critical extensions
+RRCConnectionRelease-v920-IEs ::= SEQUENCE {
+ cellInfoList-r9 CHOICE {
+ geran-r9 CellInfoListGERAN-r9,
+ utra-FDD-r9 CellInfoListUTRA-FDD-r9,
+ utra-TDD-r9 CellInfoListUTRA-TDD-r9,
+ ...,
+ utra-TDD-r10 CellInfoListUTRA-TDD-r10
+ } OPTIONAL, -- Cond Redirection
+ nonCriticalExtension RRCConnectionRelease-v1020-IEs OPTIONAL
+}
+
+RRCConnectionRelease-v1020-IEs ::= SEQUENCE {
+ extendedWaitTime-r10 INTEGER (1..1800) OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionRelease-v1320-IEs OPTIONAL
+}
+
+RRCConnectionRelease-v1320-IEs::= SEQUENCE {
+ resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR
+ nonCriticalExtension RRCConnectionRelease-v1530-IEs OPTIONAL
+}
+
+RRCConnectionRelease-v1530-IEs ::= SEQUENCE {
+ drb-ContinueROHC-r15 ENUMERATED {true} OPTIONAL, -- Cond UP-EDT
+ nextHopChainingCount-r15 NextHopChainingCount OPTIONAL, -- Cond UP-EDT
+ measIdleConfig-r15 MeasIdleConfigDedicated-r15 OPTIONAL, -- Need ON
+ rrc-InactiveConfig-r15 RRC-InactiveConfig-r15 OPTIONAL, -- Need OR
+ cn-Type-r15 ENUMERATED {epc,fivegc} OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired,
+ other, cs-FallbackHighPriority-v1020, rrc-Suspend-v1320}
+
+RedirectedCarrierInfo ::= CHOICE {
+ eutra ARFCN-ValueEUTRA,
+ geran CarrierFreqsGERAN,
+ utra-FDD ARFCN-ValueUTRA,
+ utra-TDD ARFCN-ValueUTRA,
+ cdma2000-HRPD CarrierFreqCDMA2000,
+ cdma2000-1xRTT CarrierFreqCDMA2000,
+ ...,
+ utra-TDD-r10 CarrierFreqListUTRA-TDD-r10,
+ nr-r15 CarrierInfoNR-r15
+}
+
+RedirectedCarrierInfo-v9e0 ::= SEQUENCE {
+ eutra-v9e0 ARFCN-ValueEUTRA-v9e0
+}
+
+RRC-InactiveConfig-r15::= SEQUENCE {
+ fullI-RNTI-r15 I-RNTI-r15,
+ shortI-RNTI-r15 ShortI-RNTI-r15,
+ ran-PagingCycle-r15 ENUMERATED { rf32, rf64, rf128, rf256} OPTIONAL, --Need OR
+ ran-NotificationAreaInfo-r15 RAN-NotificationAreaInfo-r15 OPTIONAL, --Need ON
+ periodic-RNAU-timer-r15 ENUMERATED {min5, min10, min20, min30, min60,
+ min120, min360, min720} OPTIONAL, --Need OR
+ nextHopChainingCount-r15 NextHopChainingCount OPTIONAL, --Need ON
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+RAN-NotificationAreaInfo-r15 ::= CHOICE {
+ cellList-r15 PLMN-RAN-AreaCellList-r15,
+ ran-AreaConfigList-r15 PLMN-RAN-AreaConfigList-r15
+}
+
+PLMN-RAN-AreaCellList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r15)) OF PLMN-RAN-AreaCell-r15
+
+-- Total number of cells from all PLMNs does not exceed 32
+PLMN-RAN-AreaCell-r15 ::= SEQUENCE {
+ plmn-Identity-r15 PLMN-Identity OPTIONAL,
+ ran-AreaCells-r15 SEQUENCE (SIZE (1..32)) OF CellIdentity
+}
+
+PLMN-RAN-AreaConfigList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r15)) OF PLMN-RAN-AreaConfig-r15
+
+PLMN-RAN-AreaConfig-r15 ::= SEQUENCE {
+ plmn-Identity-r15 PLMN-Identity OPTIONAL,
+ ran-Area-r15 SEQUENCE (SIZE (1..16)) OF RAN-AreaConfig-r15
+}
+
+-- Total number of TACs from all PLMNs does not exceed 16
+-- Total number of RAN-AreaCodes from all PLMNs does not exceed 32
+
+RAN-AreaConfig-r15 ::= SEQUENCE {
+ trackingAreaCode-5GC-r15 TrackingAreaCode-5GC-r15,
+ ran-AreaCodeList-r15 SEQUENCE (SIZE (1..32)) OF RAN-AreaCode-r15 OPTIONAL --Need OR
+}
+
+CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxFreqUTRA-TDD-r10)) OF ARFCN-ValueUTRA
+
+IdleModeMobilityControlInfo ::= SEQUENCE {
+ freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need ON
+ freqPriorityListGERAN FreqsPriorityListGERAN OPTIONAL, -- Need ON
+ freqPriorityListUTRA-FDD FreqPriorityListUTRA-FDD OPTIONAL, -- Need ON
+ freqPriorityListUTRA-TDD FreqPriorityListUTRA-TDD OPTIONAL, -- Need ON
+ bandClassPriorityListHRPD BandClassPriorityListHRPD OPTIONAL, -- Need ON
+ bandClassPriorityList1XRTT BandClassPriorityList1XRTT OPTIONAL, -- Need ON
+ t320 ENUMERATED {
+ min5, min10, min20, min30, min60, min120, min180,
+ spare1} OPTIONAL, -- Need OR
+ ...,
+ [[ freqPriorityListExtEUTRA-r12 FreqPriorityListExtEUTRA-r12 OPTIONAL -- Need ON
+ ]],
+ [[ freqPriorityListEUTRA-v1310 FreqPriorityListEUTRA-v1310 OPTIONAL, -- Need ON
+ freqPriorityListExtEUTRA-v1310 FreqPriorityListExtEUTRA-v1310 OPTIONAL -- Need ON
+ ]],
+ [[ freqPriorityListNR-r15 FreqPriorityListNR-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE {
+ freqPriorityListEUTRA-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v9e0
+}
+
+FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA
+
+FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-r12
+
+FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310
+
+FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA-v1310
+
+FreqPriorityEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityEUTRA-v9e0 ::= SEQUENCE {
+ carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Cond EARFCN-max
+}
+
+FreqPriorityEUTRA-r12 ::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ cellReselectionPriority-r12 CellReselectionPriority
+}
+
+FreqPriorityEUTRA-v1310 ::= SEQUENCE {
+ cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL -- Need ON
+}
+
+FreqPriorityListNR-r15 ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityNR-r15
+
+FreqPriorityNR-r15 ::= SEQUENCE {
+ carrierFreq-r15 ARFCN-ValueNR-r15,
+ cellReselectionPriority-r15 CellReselectionPriority,
+ cellReselectionSubPriority-r15 CellReselectionSubPriority-r13 OPTIONAL -- Need OR
+}
+
+FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF FreqsPriorityGERAN
+
+FreqsPriorityGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF FreqPriorityUTRA-FDD
+
+FreqPriorityUTRA-FDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF FreqPriorityUTRA-TDD
+
+FreqPriorityUTRA-TDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority
+}
+
+BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriorityHRPD
+
+BandClassPriorityHRPD ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority
+}
+
+BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassPriority1XRTT
+
+BandClassPriority1XRTT ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority
+}
+
+CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..maxCellInfoGERAN-r9)) OF CellInfoGERAN-r9
+
+CellInfoGERAN-r9 ::= SEQUENCE {
+ physCellId-r9 PhysCellIdGERAN,
+ carrierFreq-r9 CarrierFreqGERAN,
+ systemInformation-r9 SystemInfoListGERAN
+}
+
+CarrierInfoNR-r15 ::= SEQUENCE {
+ carrierFreq-r15 ARFCN-ValueNR-r15,
+ subcarrierSpacingSSB-r15 ENUMERATED {kHz15, kHz30, kHz120, kHz240},
+ smtc-r15 MTC-SSB-NR-r15 OPTIONAL -- Need OP
+}
+
+CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-FDD-r9
+
+CellInfoUTRA-FDD-r9 ::= SEQUENCE {
+ physCellId-r9 PhysCellIdUTRA-FDD,
+ utra-BCCH-Container-r9 OCTET STRING
+}
+
+CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r9
+
+CellInfoUTRA-TDD-r9 ::= SEQUENCE {
+ physCellId-r9 PhysCellIdUTRA-TDD,
+ utra-BCCH-Container-r9 OCTET STRING
+}
+
+CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..maxCellInfoUTRA-r9)) OF CellInfoUTRA-TDD-r10
+
+CellInfoUTRA-TDD-r10 ::= SEQUENCE {
+ physCellId-r10 PhysCellIdUTRA-TDD,
+ carrierFreq-r10 ARFCN-ValueUTRA,
+ utra-BCCH-Container-r10 OCTET STRING
+}
+
+
+RRCConnectionRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionRequest-r8 RRCConnectionRequest-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRequest-r8-IEs ::= SEQUENCE {
+ ue-Identity InitialUE-Identity,
+ establishmentCause EstablishmentCause,
+ spare BIT STRING (SIZE (1))
+}
+
+InitialUE-Identity ::= CHOICE {
+ s-TMSI S-TMSI,
+ randomValue BIT STRING (SIZE (40))
+}
+
+EstablishmentCause ::= ENUMERATED {
+ emergency, highPriorityAccess, mt-Access, mo-Signalling,
+ mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1}
+
+
+RRCConnectionResume-r13 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionResume-r13 RRCConnectionResume-r13-IEs,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionResume-r13-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated-r13 RadioResourceConfigDedicated OPTIONAL, -- Need ON
+ nextHopChainingCount-r13 NextHopChainingCount,
+ measConfig-r13 MeasConfig OPTIONAL, -- Need ON
+ antennaInfoDedicatedPCell-r13 AntennaInfoDedicated-v10i0 OPTIONAL, -- Need ON
+ drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ rrcConnectionResume-v1430-IEs RRCConnectionResume-v1430-IEs OPTIONAL
+}
+
+RRCConnectionResume-v1430-IEs ::= SEQUENCE {
+ otherConfig-r14 OtherConfig-r9 OPTIONAL, -- Need ON
+ rrcConnectionResume-v1510-IEs RRCConnectionResume-v1510-IEs OPTIONAL
+}
+
+RRCConnectionResume-v1510-IEs ::= SEQUENCE {
+ sk-Counter-r15 INTEGER (0.. 65535) OPTIONAL, -- Need ON
+ nr-RadioBearerConfig1-r15 OCTET STRING OPTIONAL, -- Need ON
+ nr-RadioBearerConfig2-r15 OCTET STRING OPTIONAL, -- Need ON
+ nonCriticalExtension RRCConnectionResume-v1530-IEs OPTIONAL
+}
+
+RRCConnectionResume-v1530-IEs ::= SEQUENCE {
+ fullConfig-r15 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionResumeComplete-r13 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE {
+ selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL,
+ dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL,
+ rlf-InfoAvailable-r13 ENUMERATED {true} OPTIONAL,
+ logMeasAvailable-r13 ENUMERATED {true} OPTIONAL,
+ connEstFailInfoAvailable-r13 ENUMERATED {true} OPTIONAL,
+ mobilityState-r13 ENUMERATED {normal, medium, high, spare} OPTIONAL,
+ mobilityHistoryAvail-r13 ENUMERATED {true} OPTIONAL,
+ logMeasAvailableMBSFN-r13 ENUMERATED {true} OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionResumeComplete-v1530-IEs OPTIONAL
+}
+
+RRCConnectionResumeComplete-v1530-IEs ::= SEQUENCE {
+ logMeasAvailableBT-r15 ENUMERATED {true} OPTIONAL,
+ logMeasAvailableWLAN-r15 ENUMERATED {true} OPTIONAL,
+ idleMeasAvailable-r15 ENUMERATED {true} OPTIONAL, flightPathInfoAvailable-r15 ENUMERATED {true} OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionResumeRequest-r13 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-r13-IEs,
+ rrcConnectionResumeRequest-r15 RRCConnectionResumeRequest-5GC-r15-IEs
+ }
+}
+
+RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE {
+ resumeIdentity-r13 CHOICE {
+ resumeID-r13 ResumeIdentity-r13,
+ truncatedResumeID-r13 BIT STRING (SIZE (24))
+ },
+ shortResumeMAC-I-r13 BIT STRING (SIZE (16)),
+ resumeCause-r13 ResumeCause,
+ spare BIT STRING (SIZE (1))
+}
+
+RRCConnectionResumeRequest-5GC-r15-IEs ::= SEQUENCE {
+ resumeIdentity-r15 CHOICE {
+ fullI-RNTI-r15 I-RNTI-r15,
+ shortI-RNTI-r15 ShortI-RNTI-r15
+ },
+ shortResumeMAC-I-r15 BIT STRING (SIZE (16)),
+ resumeCause-r15 ResumeCause-r15,
+ spare BIT STRING (SIZE (1))
+}
+
+ResumeCause ::= ENUMERATED {
+ emergency, highPriorityAccess, mt-Access, mo-Signalling,
+ mo-Data, delayTolerantAccess-v1020, mo-VoiceCall-v1280, spare1}
+
+ResumeCause-r15 ::= ENUMERATED {
+ emergency, highPriorityAccess, mt-Access, mo-Signalling,
+ mo-Data, rna-Update, mo-VoiceCall, spare1
+}
+
+
+RRCConnectionSetup ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionSetup-r8 RRCConnectionSetup-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetup-r8-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated RadioResourceConfigDedicated,
+ nonCriticalExtension RRCConnectionSetup-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionSetup-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionSetupComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionSetupComplete-r8 RRCConnectionSetupComplete-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE {
+ selectedPLMN-Identity INTEGER (1..maxPLMN-r11),
+ registeredMME RegisteredMME OPTIONAL,
+ dedicatedInfoNAS DedicatedInfoNAS,
+ nonCriticalExtension RRCConnectionSetupComplete-v8a0-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1020-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE {
+ gummei-Type-r10 ENUMERATED {native, mapped} OPTIONAL,
+ rlf-InfoAvailable-r10 ENUMERATED {true} OPTIONAL,
+ logMeasAvailable-r10 ENUMERATED {true} OPTIONAL,
+ rn-SubframeConfigReq-r10 ENUMERATED {required, notRequired} OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1130-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE {
+ connEstFailInfoAvailable-r11 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1250-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE {
+ mobilityState-r12 ENUMERATED {normal, medium, high, spare} OPTIONAL,
+ mobilityHistoryAvail-r12 ENUMERATED {true} OPTIONAL,
+ logMeasAvailableMBSFN-r12 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1320-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE {
+ ce-ModeB-r13 ENUMERATED {supported} OPTIONAL,
+ s-TMSI-r13 S-TMSI OPTIONAL,
+ attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL,
+ up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL,
+ cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1330-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE {
+ ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1430-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE {
+ dcn-ID-r14 INTEGER (0..65535) OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-v1530-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-v1530-IEs ::= SEQUENCE {
+ logMeasAvailableBT-r15 ENUMERATED {true} OPTIONAL,
+ logMeasAvailableWLAN-r15 ENUMERATED {true} OPTIONAL,
+ idleMeasAvailable-r15 ENUMERATED {true} OPTIONAL,
+ flightPathInfoAvailable-r15 ENUMERATED {true} OPTIONAL,
+ connectTo5GC-r15 ENUMERATED {true} OPTIONAL,
+ registeredAMF-r15 RegisteredAMF-r15 OPTIONAL,
+ s-NSSAI-list-r15 SEQUENCE(SIZE (1..maxNrofS-NSSAI-r15)) OF S-NSSAI-r15 OPTIONAL,
+ ng-5G-S-TMSI-Bits-r15 CHOICE {
+ ng-5G-S-TMSI-r15 NG-5G-S-TMSI-r15,
+ ng-5G-S-TMSI-Part2-r15 BIT STRING (SIZE (8))
+ } OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RegisteredMME ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ mmegi BIT STRING (SIZE (16)),
+ mmec MMEC
+}
+
+RegisteredAMF-r15 ::= SEQUENCE {
+ plmn-Identity-r15 PLMN-Identity OPTIONAL,
+ amf-Identifier-r15 AMF-Identifier-r15
+}
+
+
+RRCEarlyDataComplete-r15 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcEarlyDataComplete-r15 RRCEarlyDataComplete-r15-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCEarlyDataComplete-r15-IEs ::= SEQUENCE {
+ dedicatedInfoNAS-r15 DedicatedInfoNAS OPTIONAL, -- Need ON
+ extendedWaitTime-r15 INTEGER (1..1800) OPTIONAL, -- Need ON
+ idleModeMobilityControlInfo-r15 IdleModeMobilityControlInfo OPTIONAL, -- Need OP
+ idleModeMobilityControlInfoExt-r15 IdleModeMobilityControlInfo-v9e0 OPTIONAL, -- Cond IdleInfoEUTRA
+ redirectedCarrierInfo-r15 RedirectedCarrierInfo-r15-IEs OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RedirectedCarrierInfo-r15-IEs ::= CHOICE {
+ eutra-r15 ARFCN-ValueEUTRA-r9,
+ geran-r15 CarrierFreqsGERAN,
+ utra-FDD-r15 ARFCN-ValueUTRA,
+ cdma2000-HRPD-r15 CarrierFreqCDMA2000,
+ cdma2000-1xRTT-r15 CarrierFreqCDMA2000,
+ utra-TDD-r15 CarrierFreqListUTRA-TDD-r10
+}
+
+
+RRCEarlyDataRequest-r15 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcEarlyDataRequest-r15 RRCEarlyDataRequest-r15-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCEarlyDataRequest-r15-IEs ::= SEQUENCE {
+ s-TMSI-r15 S-TMSI,
+ establishmentCause-r15 ENUMERATED { mo-Data-r15, delayTolerantAccess-r15},
+ dedicatedInfoNAS-r15 DedicatedInfoNAS,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SCGFailureInformation-r12 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ scgFailureInformation-r12 SCGFailureInformation-r12-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SCGFailureInformation-r12-IEs ::= SEQUENCE {
+ failureReportSCG-r12 FailureReportSCG-r12 OPTIONAL,
+ nonCriticalExtension SCGFailureInformation-v1310-IEs OPTIONAL
+}
+
+SCGFailureInformation-v1310-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING SCGFailureInformation-v12d0-IEs) OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Late non-critical extensions:
+SCGFailureInformation-v12d0-IEs ::= SEQUENCE {
+ failureReportSCG-v12d0 FailureReportSCG-v12d0 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non-critical extensions:
+FailureReportSCG-r12 ::= SEQUENCE {
+ failureType-r12 ENUMERATED {t313-Expiry, randomAccessProblem,
+ rlc-MaxNumRetx, scg-ChangeFailure },
+ measResultServFreqList-r12 MeasResultServFreqList-r10 OPTIONAL,
+ measResultNeighCells-r12 MeasResultList2EUTRA-r9 OPTIONAL,
+ ...,
+ [[ failureType-v1290 ENUMERATED {maxUL-TimingDiff-v1290} OPTIONAL
+ ]],
+ [[ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL
+ ]]
+}
+
+FailureReportSCG-v12d0 ::= SEQUENCE {
+ measResultNeighCells-v12d0 MeasResultList2EUTRA-v9e0 OPTIONAL
+}
+
+
+SCGFailureInformationNR-r15 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ scgFailureInformationNR-r15 SCGFailureInformationNR-r15-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SCGFailureInformationNR-r15-IEs ::= SEQUENCE {
+ failureReportSCG-NR-r15 FailureReportSCG-NR-r15 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+FailureReportSCG-NR-r15 ::= SEQUENCE {
+ failureType-r15 ENUMERATED {
+ t310-Expiry, randomAccessProblem,
+ rlc-MaxNumRetx,
+ scg-ChangeFailure, scg-reconfigFailure,
+ srb3-IntegrityFailure},
+ measResultFreqListNR-r15 MeasResultFreqListFailNR-r15 OPTIONAL,
+ measResultSCG-r15 OCTET STRING OPTIONAL,
+ ...
+}
+
+MeasResultFreqListFailNR-r15 ::= SEQUENCE (SIZE (1..maxFreqNR-r15)) OF MeasResultFreqFailNR-r15
+
+MeasResultFreqFailNR-r15 ::= SEQUENCE {
+ carrierFreq-r15 ARFCN-ValueNR-r15,
+ measResultCellList-r15 MeasResultCellListNR-r15 OPTIONAL,
+ ...
+}
+
+
+SCPTMConfiguration-r13 ::= SEQUENCE {
+ sc-mtch-InfoList-r13 SC-MTCH-InfoList-r13,
+ scptm-NeighbourCellList-r13 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SCPTMConfiguration-v1340 OPTIONAL
+}
+
+SCPTMConfiguration-v1340 ::= SEQUENCE {
+ p-b-r13 INTEGER (0..3) OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SCPTMConfiguration-BR-r14 ::= SEQUENCE {
+ sc-mtch-InfoList-r14 SC-MTCH-InfoList-BR-r14,
+ scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-r13 OPTIONAL, -- Need OP
+ p-b-r14 INTEGER (0..3) OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SecurityModeCommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ securityModeCommand-r8 SecurityModeCommand-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeCommand-r8-IEs ::= SEQUENCE {
+ securityConfigSMC SecurityConfigSMC,
+ nonCriticalExtension SecurityModeCommand-v8a0-IEs OPTIONAL
+}
+
+SecurityModeCommand-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SecurityConfigSMC ::= SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ ...
+}
+
+
+SecurityModeComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeComplete-r8 SecurityModeComplete-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeComplete-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SecurityModeComplete-v8a0-IEs OPTIONAL
+}
+
+SecurityModeComplete-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SecurityModeFailure ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeFailure-r8 SecurityModeFailure-r8-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeFailure-r8-IEs ::= SEQUENCE {
+ nonCriticalExtension SecurityModeFailure-v8a0-IEs OPTIONAL
+}
+
+SecurityModeFailure-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SidelinkUEInformation-r12 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ sidelinkUEInformation-r12 SidelinkUEInformation-r12-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SidelinkUEInformation-r12-IEs ::= SEQUENCE {
+ commRxInterestedFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ commTxResourceReq-r12 SL-CommTxResourceReq-r12 OPTIONAL,
+ discRxInterest-r12 ENUMERATED {true} OPTIONAL,
+ discTxResourceReq-r12 INTEGER (1..63) OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SidelinkUEInformation-v1310-IEs OPTIONAL
+}
+
+SidelinkUEInformation-v1310-IEs ::= SEQUENCE {
+ commTxResourceReqUC-r13 SL-CommTxResourceReq-r12 OPTIONAL,
+ commTxResourceInfoReqRelay-r13 SEQUENCE {
+ commTxResourceReqRelay-r13 SL-CommTxResourceReq-r12 OPTIONAL,
+ commTxResourceReqRelayUC-r13 SL-CommTxResourceReq-r12 OPTIONAL,
+ ue-Type-r13 ENUMERATED {relayUE, remoteUE}
+ } OPTIONAL,
+ discTxResourceReq-v1310 SEQUENCE {
+ carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL,
+ discTxResourceReqAddFreq-r13 SL-DiscTxResourceReqPerFreqList-r13 OPTIONAL
+ } OPTIONAL,
+ discTxResourceReqPS-r13 SL-DiscTxResourceReq-r13 OPTIONAL,
+ discRxGapReq-r13 SL-GapRequest-r13 OPTIONAL,
+ discTxGapReq-r13 SL-GapRequest-r13 OPTIONAL,
+ discSysInfoReportFreqList-r13 SL-DiscSysInfoReportFreqList-r13 OPTIONAL,
+ nonCriticalExtension SidelinkUEInformation-v1430-IEs OPTIONAL
+}
+
+SidelinkUEInformation-v1430-IEs ::= SEQUENCE {
+ v2x-CommRxInterestedFreqList-r14 SL-V2X-CommFreqList-r14 OPTIONAL,
+ p2x-CommTxType-r14 ENUMERATED {true} OPTIONAL,
+ v2x-CommTxResourceReq-r14 SL-V2X-CommTxFreqList-r14 OPTIONAL,
+ nonCriticalExtension SidelinkUEInformation-v1530-IEs OPTIONAL
+}
+
+SidelinkUEInformation-v1530-IEs ::= SEQUENCE {
+ reliabilityInfoListSL-r15 SL-ReliabilityList-r15 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+SL-CommTxResourceReq-r12 ::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ destinationInfoList-r12 SL-DestinationInfoList-r12
+}
+
+SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceReq-r13
+
+SL-DiscTxResourceReq-r13 ::= SEQUENCE {
+ carrierFreqDiscTx-r13 INTEGER (1..maxFreq) OPTIONAL,
+ discTxResourceReq-r13 INTEGER (1..63)
+}
+
+SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-DestinationIdentity-r12
+
+SL-DestinationIdentity-r12 ::= BIT STRING (SIZE (24))
+
+SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscSysInfoReportFreq-r13)) OF SL-DiscSysInfoReport-r13
+
+SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF INTEGER (0..maxFreqV2X-1-r14)
+
+SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF SL-V2X-CommTxResourceReq-r14
+
+SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE {
+ carrierFreqCommTx-r14 INTEGER (0.. maxFreqV2X-1-r14) OPTIONAL,
+ v2x-TypeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL,
+ v2x-DestinationInfoList-r14 SL-DestinationInfoList-r12 OPTIONAL
+}
+
+
+SystemInformation-BR-r13 ::= SystemInformation
+
+SystemInformation-MBMS-r14 ::= SystemInformation
+
+SystemInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r8 SystemInformation-r8-IEs,
+ criticalExtensionsFuture-r15 CHOICE {
+ posSystemInformation-r15 PosSystemInformation-r15-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+ }
+}
+SystemInformation-r8-IEs ::= SEQUENCE {
+ sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
+ sib2 SystemInformationBlockType2,
+ sib3 SystemInformationBlockType3,
+ sib4 SystemInformationBlockType4,
+ sib5 SystemInformationBlockType5,
+ sib6 SystemInformationBlockType6,
+ sib7 SystemInformationBlockType7,
+ sib8 SystemInformationBlockType8,
+ sib9 SystemInformationBlockType9,
+ sib10 SystemInformationBlockType10,
+ sib11 SystemInformationBlockType11,
+ ...,
+ sib12-v920 SystemInformationBlockType12-r9,
+ sib13-v920 SystemInformationBlockType13-r9,
+ sib14-v1130 SystemInformationBlockType14-r11,
+ sib15-v1130 SystemInformationBlockType15-r11,
+ sib16-v1130 SystemInformationBlockType16-r11,
+ sib17-v1250 SystemInformationBlockType17-r12,
+ sib18-v1250 SystemInformationBlockType18-r12,
+ sib19-v1250 SystemInformationBlockType19-r12,
+ sib20-v1310 SystemInformationBlockType20-r13,
+ sib21-v1430 SystemInformationBlockType21-r14,
+ sib24-v1530 SystemInformationBlockType24-r15,
+ sib25-v1530 SystemInformationBlockType25-r15,
+ sib26-v1530 SystemInformationBlockType26-r15
+ },
+ nonCriticalExtension SystemInformation-v8a0-IEs OPTIONAL
+}
+
+SystemInformation-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+PosSystemInformation-r15-IEs ::= SEQUENCE {
+ posSIB-TypeAndInfo-r15 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
+ posSib1-1-r15 SystemInformationBlockPos-r15,
+ posSib1-2-r15 SystemInformationBlockPos-r15,
+ posSib1-3-r15 SystemInformationBlockPos-r15,
+ posSib1-4-r15 SystemInformationBlockPos-r15,
+ posSib1-5-r15 SystemInformationBlockPos-r15,
+ posSib1-6-r15 SystemInformationBlockPos-r15,
+ posSib1-7-r15 SystemInformationBlockPos-r15,
+ posSib2-1-r15 SystemInformationBlockPos-r15,
+ posSib2-2-r15 SystemInformationBlockPos-r15,
+ posSib2-3-r15 SystemInformationBlockPos-r15,
+ posSib2-4-r15 SystemInformationBlockPos-r15,
+ posSib2-5-r15 SystemInformationBlockPos-r15,
+ posSib2-6-r15 SystemInformationBlockPos-r15,
+ posSib2-7-r15 SystemInformationBlockPos-r15,
+ posSib2-8-r15 SystemInformationBlockPos-r15,
+ posSib2-9-r15 SystemInformationBlockPos-r15,
+ posSib2-10-r15 SystemInformationBlockPos-r15,
+ posSib2-11-r15 SystemInformationBlockPos-r15,
+ posSib2-12-r15 SystemInformationBlockPos-r15,
+ posSib2-13-r15 SystemInformationBlockPos-r15,
+ posSib2-14-r15 SystemInformationBlockPos-r15,
+ posSib2-15-r15 SystemInformationBlockPos-r15,
+ posSib2-16-r15 SystemInformationBlockPos-r15,
+ posSib2-17-r15 SystemInformationBlockPos-r15,
+ posSib2-18-r15 SystemInformationBlockPos-r15,
+ posSib2-19-r15 SystemInformationBlockPos-r15,
+ posSib3-1-r15 SystemInformationBlockPos-r15,
+ ...
+ },
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1
+
+SystemInformationBlockType1 ::= SEQUENCE {
+ cellAccessRelatedInfo SEQUENCE {
+ plmn-IdentityList PLMN-IdentityList,
+ trackingAreaCode TrackingAreaCode,
+ cellIdentity CellIdentity,
+ cellBarred ENUMERATED {barred, notBarred},
+ intraFreqReselection ENUMERATED {allowed, notAllowed},
+ csg-Indication BOOLEAN,
+ csg-Identity CSG-Identity OPTIONAL -- Need OR
+ },
+ cellSelectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ q-RxLevMinOffset INTEGER (1..8) OPTIONAL -- Need OP
+ },
+ p-Max P-Max OPTIONAL, -- Need OP
+ freqBandIndicator FreqBandIndicator,
+ schedulingInfoList SchedulingInfoList,
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ si-WindowLength ENUMERATED {
+ ms1, ms2, ms5, ms10, ms15, ms20,
+ ms40},
+ systemInfoValueTag INTEGER (0..31),
+ nonCriticalExtension SystemInformationBlockType1-v890-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v890-IEs::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL,
+ nonCriticalExtension SystemInformationBlockType1-v920-IEs OPTIONAL
+}
+
+-- Late non critical extensions
+SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE {
+ multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType1-v9e0-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE {
+ freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL, -- Cond FBI-max
+ multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL, -- Cond mFBI-max
+ nonCriticalExtension SystemInformationBlockType1-v10j0-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE {
+ freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR
+ multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType1-v10l0-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE {
+ freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR
+ multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non critical extensions
+SystemInformationBlockType1-v920-IEs ::= SEQUENCE {
+ ims-EmergencySupport-r9 ENUMERATED {true} OPTIONAL, -- Need OR
+ cellSelectionInfo-v920 CellSelectionInfo-v920 OPTIONAL, -- Cond RSRQ
+ nonCriticalExtension SystemInformationBlockType1-v1130-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1130-IEs ::= SEQUENCE {
+ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR
+ cellSelectionInfo-v1130 CellSelectionInfo-v1130 OPTIONAL, -- Cond WB-RSRQ
+ nonCriticalExtension SystemInformationBlockType1-v1250-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1250-IEs ::= SEQUENCE {
+ cellAccessRelatedInfo-v1250 SEQUENCE {
+ category0Allowed-r12 ENUMERATED {true} OPTIONAL -- Need OP
+ },
+ cellSelectionInfo-v1250 CellSelectionInfo-v1250 OPTIONAL, -- Cond RSRQ2
+ freqBandIndicatorPriority-r12 ENUMERATED {true} OPTIONAL, -- Cond mFBI
+ nonCriticalExtension SystemInformationBlockType1-v1310-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1310-IEs ::= SEQUENCE {
+ hyperSFN-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OR
+ eDRX-Allowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP
+ bandwidthReducedAccessRelatedInfo-r13 SEQUENCE {
+ si-WindowLength-BR-r13 ENUMERATED {
+ ms20, ms40, ms60, ms80, ms120,
+ ms160, ms200, spare},
+ si-RepetitionPattern-r13 ENUMERATED {everyRF, every2ndRF, every4thRF,
+ every8thRF},
+ schedulingInfoList-BR-r13 SchedulingInfoList-BR-r13 OPTIONAL, -- Cond SI-BR
+ fdd-DownlinkOrTddSubframeBitmapBR-r13 CHOICE {
+ subframePattern10-r13 BIT STRING (SIZE (10)),
+ subframePattern40-r13 BIT STRING (SIZE (40))
+ } OPTIONAL, -- Need OP
+ fdd-UplinkSubframeBitmapBR-r13 BIT STRING (SIZE (10)) OPTIONAL, -- Need OP
+ startSymbolBR-r13 INTEGER (1..4),
+ si-HoppingConfigCommon-r13 ENUMERATED {on,off},
+ si-ValidityTime-r13 ENUMERATED {true} OPTIONAL, -- Need OP
+ systemInfoValueTagList-r13 SystemInfoValueTagList-r13 OPTIONAL -- Need OR
+ } OPTIONAL, -- Cond BW-reduced
+ nonCriticalExtension SystemInformationBlockType1-v1320-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1320-IEs ::= SEQUENCE {
+ freqHoppingParametersDL-r13 SEQUENCE {
+ mpdcch-pdsch-HoppingNB-r13 ENUMERATED {nb2, nb4} OPTIONAL, -- Need OR
+ interval-DLHoppingConfigCommonModeA-r13 CHOICE {
+ interval-FDD-r13 ENUMERATED {int1, int2, int4, int8},
+ interval-TDD-r13 ENUMERATED {int1, int5, int10, int20}
+ } OPTIONAL, -- Need OR
+ interval-DLHoppingConfigCommonModeB-r13 CHOICE {
+ interval-FDD-r13 ENUMERATED {int2, int4, int8, int16},
+ interval-TDD-r13 ENUMERATED { int5, int10, int20, int40}
+ } OPTIONAL, -- Need OR
+ mpdcch-pdsch-HoppingOffset-r13 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR
+ } OPTIONAL, -- Cond Hopping
+ nonCriticalExtension SystemInformationBlockType1-v1350-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1350-IEs ::= SEQUENCE {
+ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL, -- Need OP
+ nonCriticalExtension SystemInformationBlockType1-v1360-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1360-IEs ::= SEQUENCE {
+ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL, -- Cond QrxlevminCE1
+ nonCriticalExtension SystemInformationBlockType1-v1430-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1430-IEs ::= SEQUENCE {
+ eCallOverIMS-Support-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ tdd-Config-v1430 TDD-Config-v1430 OPTIONAL, -- Cond TDD-OR
+ cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF
+ CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType1-v1450-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1450-IEs ::= SEQUENCE {
+ tdd-Config-v1450 TDD-Config-v1450 OPTIONAL, -- Cond TDD-OR
+ nonCriticalExtension SystemInformationBlockType1-v1530-IEs OPTIONAL
+}
+
+SystemInformationBlockType1-v1530-IEs ::= SEQUENCE {
+ hsdn-Cell-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ cellSelectionInfoCE-v1530 CellSelectionInfoCE-v1530 OPTIONAL, -- Need OP
+ crs-IntfMitigConfig-r15 CHOICE {
+ crs-IntfMitigEnabled-15 NULL,
+ crs-IntfMitigNumPRBs-r15 ENUMERATED {n6, n24}
+ } OPTIONAL, -- Need OR
+ cellBarred-CRS-r15 ENUMERATED {barred, notBarred},
+ plmn-IdentityList-v1530 PLMN-IdentityList-v1530 OPTIONAL, -- Need OR
+ posSchedulingInfoList-r15 PosSchedulingInfoList-r15 OPTIONAL, -- Need OR
+ cellAccessRelatedInfo-5GC-r15 SEQUENCE {
+ cellBarred-5GC-r15 ENUMERATED {barred, notBarred},
+ cellBarred-5GC-CRS-r15 ENUMERATED {barred, notBarred},
+ cellAccessRelatedInfoList-5GC-r15 SEQUENCE (SIZE (1..maxPLMN-r11)) OF
+ CellAccessRelatedInfo-5GC-r15
+ } OPTIONAL, -- Need OP
+ ims-EmergencySupport5GC-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ eCallOverIMS-Support5GC-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+PLMN-IdentityList ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo
+
+PLMN-IdentityInfo ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellReservedForOperatorUse ENUMERATED {reserved, notReserved}
+}
+
+PLMN-IdentityList-v1530 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-v1530
+
+PLMN-IdentityInfo-v1530 ::= SEQUENCE {
+ cellReservedForOperatorUse-CRS-r15 ENUMERATED {reserved, notReserved}
+}
+
+PLMN-IdentityList-r15::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-r15
+
+PLMN-IdentityInfo-r15 ::= SEQUENCE {
+ plmn-Identity-5GC-r15 CHOICE{
+ plmn-Identity-r15 PLMN-Identity,
+ plmn-Index-r15 INTEGER (1..maxPLMN-r11)
+ },
+ cellReservedForOperatorUse-r15 ENUMERATED {reserved, notReserved},
+ cellReservedForOperatorUse-CRS-r15 ENUMERATED {reserved, notReserved}
+}
+
+SchedulingInfoList ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo
+
+SchedulingInfo ::= SEQUENCE {
+ si-Periodicity ENUMERATED {
+ rf8, rf16, rf32, rf64, rf128, rf256, rf512},
+ sib-MappingInfo SIB-MappingInfo
+}
+
+SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-BR-r13
+
+SchedulingInfo-BR-r13 ::= SEQUENCE {
+ si-Narrowband-r13 INTEGER (1..maxAvailNarrowBands-r13),
+ si-TBS-r13 ENUMERATED {b152, b208, b256, b328, b408, b504, b600, b712,
+ b808, b936}
+}
+
+SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type
+
+SIB-Type ::= ENUMERATED {
+ sibType3, sibType4, sibType5, sibType6,
+ sibType7, sibType8, sibType9, sibType10,
+ sibType11, sibType12-v920, sibType13-v920,
+ sibType14-v1130, sibType15-v1130,
+ sibType16-v1130, sibType17-v1250, sibType18-v1250,
+ ..., sibType19-v1250, sibType20-v1310, sibType21-v1430,
+ sibType24-v1530, sibType25-v1530, sibType26-v1530}
+
+SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SystemInfoValueTagSI-r13
+
+SystemInfoValueTagSI-r13 ::= INTEGER (0..3)
+
+CellSelectionInfo-v920 ::= SEQUENCE {
+ q-QualMin-r9 Q-QualMin-r9,
+ q-QualMinOffset-r9 INTEGER (1..8) OPTIONAL -- Need OP
+}
+
+CellSelectionInfo-v1130 ::= SEQUENCE {
+ q-QualMinWB-r11 Q-QualMin-r9
+}
+
+CellSelectionInfo-v1250 ::= SEQUENCE {
+ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9
+}
+
+CellAccessRelatedInfo-r14 ::= SEQUENCE {
+ plmn-IdentityList-r14 PLMN-IdentityList,
+ trackingAreaCode-r14 TrackingAreaCode,
+ cellIdentity-r14 CellIdentity
+}
+
+CellAccessRelatedInfo-5GC-r15 ::= SEQUENCE {
+ plmn-IdentityList-r15 PLMN-IdentityList-r15,
+ ran-AreaCode-r15 RAN-AreaCode-r15 OPTIONAL, -- Need OR
+ trackingAreaCode-5GC-r15 TrackingAreaCode-5GC-r15,
+ cellIdentity-5GC-r15 CellIdentity-5GC-r15
+}
+
+CellIdentity-5GC-r15 ::= CHOICE{
+ cellIdentity-r15 CellIdentity,
+ cellId-Index-r15 INTEGER (1..maxPLMN-r11)
+}
+
+PosSchedulingInfoList-r15 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF PosSchedulingInfo-r15
+
+PosSchedulingInfo-r15 ::= SEQUENCE {
+ posSI-Periodicity-r15 ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512},
+ posSIB-MappingInfo-r15 PosSIB-MappingInfo-r15
+}
+
+PosSIB-MappingInfo-r15 ::= SEQUENCE (SIZE (1..maxSIB)) OF PosSIB-Type-r15
+
+PosSIB-Type-r15 ::= SEQUENCE {
+ encrypted-r15 ENUMERATED { true } OPTIONAL, -- Need OP
+ gnss-id-r15 GNSS-ID-r15 OPTIONAL, -- Need OP
+ sbas-id-r15 SBAS-ID-r15 OPTIONAL, -- Need OP
+ posSibType-r15 ENUMERATED { posSibType1-1,
+ posSibType1-2,
+ posSibType1-3,
+ posSibType1-4,
+ posSibType1-5,
+ posSibType1-6,
+ posSibType1-7,
+ posSibType2-1,
+ posSibType2-2,
+ posSibType2-3,
+ posSibType2-4,
+ posSibType2-5,
+ posSibType2-6,
+ posSibType2-7,
+ posSibType2-8,
+ posSibType2-9,
+ posSibType2-10,
+ posSibType2-11,
+ posSibType2-12,
+ posSibType2-13,
+ posSibType2-14,
+ posSibType2-15,
+ posSibType2-16,
+ posSibType2-17,
+ posSibType2-18,
+ posSibType2-19,
+ posSibType3-1,
+ ...},
+ ...
+}
+
+
+SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE {
+ cellAccessRelatedInfo-r14 SEQUENCE {
+ plmn-IdentityList-r14 PLMN-IdentityList-MBMS-r14,
+ trackingAreaCode-r14 TrackingAreaCode,
+ cellIdentity-r14 CellIdentity
+ },
+ freqBandIndicator-r14 FreqBandIndicator-r11,
+ multiBandInfoList-r14 MultiBandInfoList-r11 OPTIONAL, -- Need OR
+ schedulingInfoList-MBMS-r14 SchedulingInfoList-MBMS-r14,
+ si-WindowLength-r14 ENUMERATED {
+ ms1, ms2, ms5, ms10, ms15, ms20,ms40, ms80},
+ systemInfoValueTag-r14 INTEGER (0..31),
+ nonMBSFN-SubframeConfig-r14 NonMBSFN-SubframeConfig-r14 OPTIONAL, --Need OR
+ pdsch-ConfigCommon-r14 PDSCH-ConfigCommon,
+ systemInformationBlockType13-r14 SystemInformationBlockType13-r9 OPTIONAL, --Need OR
+ cellAccessRelatedInfoList-r14 SEQUENCE (SIZE (1..maxPLMN-1-r14)) OF
+ CellAccessRelatedInfo-r14 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Identity
+
+SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo-MBMS-r14
+
+SchedulingInfo-MBMS-r14 ::= SEQUENCE {
+ si-Periodicity-r14 ENUMERATED {
+ rf16, rf32, rf64, rf128, rf256, rf512},
+ sib-MappingInfo-r14 SIB-MappingInfo-MBMS-r14
+}
+
+SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-MBMS-r14
+
+SIB-Type-MBMS-r14 ::= ENUMERATED {
+ sibType10, sibType11, sibType12-v920, sibType13-v920,
+ sibType15-v1130, sibType16-v1130, ...}
+
+
+NonMBSFN-SubframeConfig-r14 ::= SEQUENCE {
+ radioFrameAllocationPeriod-r14 ENUMERATED {rf4, rf8, rf16, rf32, rf64, rf128, rf512},
+ radioFrameAllocationOffset-r14 INTEGER (0..7),
+ subframeAllocation-r14 BIT STRING (SIZE(9))
+}
+
+
+UEAssistanceInformation-r11 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueAssistanceInformation-r11 UEAssistanceInformation-r11-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEAssistanceInformation-r11-IEs ::= SEQUENCE {
+ powerPrefIndication-r11 ENUMERATED {normal, lowPowerConsumption} OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UEAssistanceInformation-v1430-IEs OPTIONAL
+}
+
+UEAssistanceInformation-v1430-IEs ::= SEQUENCE {
+ bw-Preference-r14 BW-Preference-r14 OPTIONAL,
+ sps-AssistanceInformation-r14 SEQUENCE {
+ trafficPatternInfoListSL-r14 TrafficPatternInfoList-r14 OPTIONAL,
+ trafficPatternInfoListUL-r14 TrafficPatternInfoList-r14 OPTIONAL
+ } OPTIONAL,
+ rlm-Report-r14 SEQUENCE {
+ rlm-Event-r14 ENUMERATED {earlyOutOfSync, earlyInSync},
+ excessRep-MPDCCH-r14 ENUMERATED {excessRep1, excessRep2} OPTIONAL
+ } OPTIONAL, delayBudgetReport-r14 DelayBudgetReport-r14 OPTIONAL,
+ nonCriticalExtension UEAssistanceInformation-v1450-IEs OPTIONAL
+}
+
+UEAssistanceInformation-v1450-IEs ::= SEQUENCE {
+ overheatingAssistance-r14 OverheatingAssistance-r14 OPTIONAL,
+ nonCriticalExtension UEAssistanceInformation-v1530-IEs OPTIONAL
+}
+
+UEAssistanceInformation-v1530-IEs ::= SEQUENCE {
+ sps-AssistanceInformation-v1530 SEQUENCE {
+ trafficPatternInfoListSL-v1530 TrafficPatternInfoList-v1530
+ } OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+BW-Preference-r14 ::= SEQUENCE {
+ dl-Preference-r14 ENUMERATED {mhz1dot4, mhz5, mhz20 } OPTIONAL,
+ ul-Preference-r14 ENUMERATED {mhz1dot4, mhz5} OPTIONAL
+}
+
+TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-r14
+
+TrafficPatternInfo-r14 ::= SEQUENCE {
+ trafficPeriodicity-r14 ENUMERATED {
+ sf20, sf50, sf100, sf200, sf300, sf400, sf500,
+ sf600, sf700, sf800, sf900, sf1000},
+ timingOffset-r14 INTEGER (0..10239),
+ priorityInfoSL-r14 SL-Priority-r13 OPTIONAL,
+ logicalChannelIdentityUL-r14 INTEGER (3..10) OPTIONAL,
+ messageSize-r14 BIT STRING (SIZE (6))
+}
+
+TrafficPatternInfoList-v1530 ::= SEQUENCE (SIZE (1..maxTrafficPattern-r14)) OF TrafficPatternInfo-v1530
+
+TrafficPatternInfo-v1530 ::= SEQUENCE {
+ trafficDestination-r15 SL-DestinationIdentity-r12 OPTIONAL,
+ reliabilityInfoSL-r15 SL-Reliability-r15 OPTIONAL
+}
+
+DelayBudgetReport-r14::= CHOICE {
+ type1 ENUMERATED {
+ msMinus1280, msMinus640, msMinus320, msMinus160,
+ msMinus80, msMinus60, msMinus40, msMinus20, ms0, ms20, ms40, ms60, ms80, ms160, ms320, ms640, ms1280},
+
+ type2 ENUMERATED {
+ msMinus192, msMinus168,msMinus144, msMinus120,
+ msMinus96, msMinus72, msMinus48, msMinus24, ms0, ms24, ms48, ms72, ms96, ms120, ms144, ms168, ms192}
+}
+
+OverheatingAssistance-r14 ::= SEQUENCE {
+ reducedUE-Category SEQUENCE {
+ reducedUE-CategoryDL INTEGER (0..19),
+ reducedUE-CategoryUL INTEGER (0..21)
+ } OPTIONAL,
+ reducedMaxCCs SEQUENCE {
+ reducedCCsDL INTEGER (0..31),
+ reducedCCsUL INTEGER (0..31)
+ } OPTIONAL
+}
+
+
+UECapabilityEnquiry ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueCapabilityEnquiry-r8 UECapabilityEnquiry-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityEnquiry-r8-IEs ::= SEQUENCE {
+ ue-CapabilityRequest UE-CapabilityRequest,
+ nonCriticalExtension UECapabilityEnquiry-v8a0-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UECapabilityEnquiry-v1180-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v1180-IEs ::= SEQUENCE {
+ requestedFrequencyBands-r11 SEQUENCE (SIZE (1..16)) OF FreqBandIndicator-r11 OPTIONAL,
+ nonCriticalExtension UECapabilityEnquiry-v1310-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v1310-IEs ::= SEQUENCE {
+ requestReducedFormat-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ requestSkipFallbackComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ requestedMaxCCsDL-r13 INTEGER (2..32) OPTIONAL, -- Need ON
+ requestedMaxCCsUL-r13 INTEGER (2..32) OPTIONAL, -- Need ON
+ requestReducedIntNonContComb-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension UECapabilityEnquiry-v1430-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v1430-IEs ::= SEQUENCE {
+ requestDiffFallbackCombList-r14 BandCombinationList-r14 OPTIONAL, -- Need ON
+ nonCriticalExtension UECapabilityEnquiry-v1510-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v1510-IEs ::= SEQUENCE {
+ requestedFreqBandsNR-MRDC-r15 OCTET STRING OPTIONAL,
+ nonCriticalExtension UECapabilityEnquiry-v1530-IEs OPTIONAL
+}
+
+UECapabilityEnquiry-v1530-IEs ::= SEQUENCE {
+ requestSTTI-SPT-Capability-r15 ENUMERATED {true} OPTIONAL,
+ eutra-nr-only-r15 ENUMERATED {true} OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+UE-CapabilityRequest ::= SEQUENCE (SIZE (1..maxRAT-Capabilities)) OF RAT-Type
+
+
+UECapabilityInformation ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueCapabilityInformation-r8 UECapabilityInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityInformation-r8-IEs ::= SEQUENCE {
+ ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList,
+ nonCriticalExtension UECapabilityInformation-v8a0-IEs OPTIONAL
+}
+
+UECapabilityInformation-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UECapabilityInformation-v1250-IEs OPTIONAL
+}
+
+UECapabilityInformation-v1250-IEs ::= SEQUENCE {
+ ue-RadioPagingInfo-r12 UE-RadioPagingInfo-r12 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UEInformationRequest-r9 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueInformationRequest-r9 UEInformationRequest-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEInformationRequest-r9-IEs ::= SEQUENCE {
+ rach-ReportReq-r9 BOOLEAN,
+ rlf-ReportReq-r9 BOOLEAN,
+ nonCriticalExtension UEInformationRequest-v930-IEs OPTIONAL
+}
+
+UEInformationRequest-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UEInformationRequest-v1020-IEs OPTIONAL
+}
+
+UEInformationRequest-v1020-IEs ::= SEQUENCE {
+ logMeasReportReq-r10 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension UEInformationRequest-v1130-IEs OPTIONAL
+}
+
+UEInformationRequest-v1130-IEs ::= SEQUENCE {
+ connEstFailReportReq-r11 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension UEInformationRequest-v1250-IEs OPTIONAL
+}
+
+UEInformationRequest-v1250-IEs ::= SEQUENCE {
+ mobilityHistoryReportReq-r12 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension UEInformationRequest-v1530-IEs OPTIONAL
+}
+
+UEInformationRequest-v1530-IEs ::= SEQUENCE {
+ idleModeMeasurementReq-r15 ENUMERATED {true} OPTIONAL, -- Need ON
+ flightPathInfoReq-r15 FlightPathInfoReportConfig-r15 OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UEInformationResponse-r9 ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueInformationResponse-r9 UEInformationResponse-r9-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEInformationResponse-r9-IEs ::= SEQUENCE {
+ rach-Report-r9 SEQUENCE {
+ numberOfPreamblesSent-r9 NumberOfPreamblesSent-r11,
+ contentionDetected-r9 BOOLEAN
+ } OPTIONAL,
+ rlf-Report-r9 RLF-Report-r9 OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v930-IEs OPTIONAL
+}
+
+-- Late non critical extensions
+UEInformationResponse-v9e0-IEs ::= SEQUENCE {
+ rlf-Report-v9e0 RLF-Report-v9e0 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non critical extensions
+UEInformationResponse-v930-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING UEInformationResponse-v9e0-IEs) OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v1020-IEs OPTIONAL
+}
+
+UEInformationResponse-v1020-IEs ::= SEQUENCE {
+ logMeasReport-r10 LogMeasReport-r10 OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v1130-IEs OPTIONAL
+}
+
+UEInformationResponse-v1130-IEs ::= SEQUENCE {
+ connEstFailReport-r11 ConnEstFailReport-r11 OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v1250-IEs OPTIONAL
+}
+
+UEInformationResponse-v1250-IEs ::= SEQUENCE {
+ mobilityHistoryReport-r12 MobilityHistoryReport-r12 OPTIONAL,
+ nonCriticalExtension UEInformationResponse-v1530-IEs OPTIONAL
+}
+
+UEInformationResponse-v1530-IEs ::= SEQUENCE {
+ measResultListIdle-r15 MeasResultListIdle-r15 OPTIONAL,
+ flightPathInfoReport-r15 FlightPathInfoReport-r15 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+RLF-Report-r9 ::= SEQUENCE {
+ measResultLastServCell-r9 SEQUENCE {
+ rsrpResult-r9 RSRP-Range,
+ rsrqResult-r9 RSRQ-Range OPTIONAL
+ },
+ measResultNeighCells-r9 SEQUENCE {
+ measResultListEUTRA-r9 MeasResultList2EUTRA-r9 OPTIONAL,
+ measResultListUTRA-r9 MeasResultList2UTRA-r9 OPTIONAL,
+ measResultListGERAN-r9 MeasResultListGERAN OPTIONAL,
+ measResultsCDMA2000-r9 MeasResultList2CDMA2000-r9 OPTIONAL
+ } OPTIONAL,
+ ...,
+ [[ locationInfo-r10 LocationInfo-r10 OPTIONAL,
+ failedPCellId-r10 CHOICE {
+ cellGlobalId-r10 CellGlobalIdEUTRA,
+ pci-arfcn-r10 SEQUENCE {
+ physCellId-r10 PhysCellId,
+ carrierFreq-r10 ARFCN-ValueEUTRA
+ }
+ } OPTIONAL,
+ reestablishmentCellId-r10 CellGlobalIdEUTRA OPTIONAL,
+ timeConnFailure-r10 INTEGER (0..1023) OPTIONAL,
+ connectionFailureType-r10 ENUMERATED {rlf, hof} OPTIONAL,
+ previousPCellId-r10 CellGlobalIdEUTRA OPTIONAL
+ ]],
+ [[ failedPCellId-v1090 SEQUENCE {
+ carrierFreq-v1090 ARFCN-ValueEUTRA-v9e0
+ } OPTIONAL
+ ]],
+ [[ basicFields-r11 SEQUENCE {
+ c-RNTI-r11 C-RNTI,
+ rlf-Cause-r11 ENUMERATED {
+ t310-Expiry, randomAccessProblem,
+ rlc-MaxNumRetx, t312-Expiry-r12},
+ timeSinceFailure-r11 TimeSinceFailure-r11
+ } OPTIONAL,
+ previousUTRA-CellId-r11 SEQUENCE {
+ carrierFreq-r11 ARFCN-ValueUTRA,
+ physCellId-r11 CHOICE {
+ fdd-r11 PhysCellIdUTRA-FDD,
+ tdd-r11 PhysCellIdUTRA-TDD
+ },
+ cellGlobalId-r11 CellGlobalIdUTRA OPTIONAL
+ } OPTIONAL,
+ selectedUTRA-CellId-r11 SEQUENCE {
+ carrierFreq-r11 ARFCN-ValueUTRA,
+ physCellId-r11 CHOICE {
+ fdd-r11 PhysCellIdUTRA-FDD,
+ tdd-r11 PhysCellIdUTRA-TDD
+ }
+ } OPTIONAL
+ ]],
+ [[ failedPCellId-v1250 SEQUENCE {
+ tac-FailedPCell-r12 TrackingAreaCode
+ } OPTIONAL,
+ measResultLastServCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ lastServCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL,
+ measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL
+ ]],
+ [[ drb-EstablishedWithQCI-1-r13 ENUMERATED {qci1} OPTIONAL
+ ]],
+ [[ measResultLastServCell-v1360 RSRP-Range-v1360 OPTIONAL
+ ]],
+ [[ logMeasResultListBT-r15 LogMeasResultListBT-r15 OPTIONAL,
+ logMeasResultListWLAN-r15 LogMeasResultListWLAN-r15 OPTIONAL
+ ]]
+}
+
+RLF-Report-v9e0 ::= SEQUENCE {
+ measResultListEUTRA-v9e0 MeasResultList2EUTRA-v9e0
+}
+
+MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-r9
+
+MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v9e0
+
+MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2EUTRA-v1250
+
+MeasResult2EUTRA-r9 ::= SEQUENCE {
+ carrierFreq-r9 ARFCN-ValueEUTRA,
+ measResultList-r9 MeasResultListEUTRA
+}
+
+MeasResult2EUTRA-v9e0 ::= SEQUENCE {
+ carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL
+}
+
+MeasResult2EUTRA-v1250 ::= SEQUENCE {
+ rsrq-Type-r12 RSRQ-Type-r12 OPTIONAL
+}
+
+MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2UTRA-r9
+
+MeasResult2UTRA-r9 ::= SEQUENCE {
+ carrierFreq-r9 ARFCN-ValueUTRA,
+ measResultList-r9 MeasResultListUTRA
+}
+
+MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2CDMA2000-r9
+
+MeasResult2CDMA2000-r9 ::= SEQUENCE {
+ carrierFreq-r9 CarrierFreqCDMA2000,
+ measResultList-r9 MeasResultsCDMA2000
+}
+
+LogMeasReport-r10 ::= SEQUENCE {
+ absoluteTimeStamp-r10 AbsoluteTimeInfo-r10,
+ traceReference-r10 TraceReference-r10,
+ traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
+ tce-Id-r10 OCTET STRING (SIZE (1)),
+ logMeasInfoList-r10 LogMeasInfoList-r10,
+ logMeasAvailable-r10 ENUMERATED {true} OPTIONAL,
+ ...,
+ [[ logMeasAvailableBT-r15 ENUMERATED {true} OPTIONAL,
+ logMeasAvailableWLAN-r15 ENUMERATED {true} OPTIONAL
+ ]]
+}
+
+LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..maxLogMeasReport-r10)) OF LogMeasInfo-r10
+
+LogMeasInfo-r10 ::= SEQUENCE {
+ locationInfo-r10 LocationInfo-r10 OPTIONAL,
+ relativeTimeStamp-r10 INTEGER (0..7200),
+ servCellIdentity-r10 CellGlobalIdEUTRA,
+ measResultServCell-r10 SEQUENCE {
+ rsrpResult-r10 RSRP-Range,
+ rsrqResult-r10 RSRQ-Range
+ },
+ measResultNeighCells-r10 SEQUENCE {
+ measResultListEUTRA-r10 MeasResultList2EUTRA-r9 OPTIONAL,
+ measResultListUTRA-r10 MeasResultList2UTRA-r9 OPTIONAL,
+ measResultListGERAN-r10 MeasResultList2GERAN-r10 OPTIONAL,
+ measResultListCDMA2000-r10 MeasResultList2CDMA2000-r9 OPTIONAL
+ } OPTIONAL,
+ ...,
+ [[ measResultListEUTRA-v1090 MeasResultList2EUTRA-v9e0 OPTIONAL
+ ]],
+ [[ measResultListMBSFN-r12 MeasResultListMBSFN-r12 OPTIONAL,
+ measResultServCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ servCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL,
+ measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL
+ ]],
+ [[ inDeviceCoexDetected-r13 ENUMERATED {true} OPTIONAL
+ ]],
+ [[ measResultServCell-v1360 RSRP-Range-v1360 OPTIONAL
+ ]],
+ [[ logMeasResultListBT-r15 LogMeasResultListBT-r15 OPTIONAL,
+ logMeasResultListWLAN-r15 LogMeasResultListWLAN-r15 OPTIONAL
+ ]]
+}
+
+MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..maxMBSFN-Area)) OF MeasResultMBSFN-r12
+
+MeasResultMBSFN-r12 ::= SEQUENCE {
+ mbsfn-Area-r12 SEQUENCE {
+ mbsfn-AreaId-r12 MBSFN-AreaId-r12,
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9
+ },
+ rsrpResultMBSFN-r12 RSRP-Range,
+ rsrqResultMBSFN-r12 MBSFN-RSRQ-Range-r12,
+ signallingBLER-Result-r12 BLER-Result-r12 OPTIONAL,
+ dataBLER-MCH-ResultList-r12 DataBLER-MCH-ResultList-r12 OPTIONAL,
+ ...
+}
+
+DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1.. maxPMCH-PerMBSFN)) OF DataBLER-MCH-Result-r12
+
+DataBLER-MCH-Result-r12 ::= SEQUENCE {
+ mch-Index-r12 INTEGER (1..maxPMCH-PerMBSFN),
+ dataBLER-Result-r12 BLER-Result-r12
+}
+
+BLER-Result-r12 ::= SEQUENCE {
+ bler-r12 BLER-Range-r12,
+ blocksReceived-r12 SEQUENCE {
+ n-r12 BIT STRING (SIZE (3)),
+ m-r12 BIT STRING (SIZE (8))
+ }
+}
+
+BLER-Range-r12 ::= INTEGER(0..31)
+
+MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..maxCellListGERAN)) OF MeasResultListGERAN
+
+ConnEstFailReport-r11 ::= SEQUENCE {
+ failedCellId-r11 CellGlobalIdEUTRA,
+ locationInfo-r11 LocationInfo-r10 OPTIONAL,
+ measResultFailedCell-r11 SEQUENCE {
+ rsrpResult-r11 RSRP-Range,
+ rsrqResult-r11 RSRQ-Range OPTIONAL
+ },
+ measResultNeighCells-r11 SEQUENCE {
+ measResultListEUTRA-r11 MeasResultList2EUTRA-r9 OPTIONAL,
+ measResultListUTRA-r11 MeasResultList2UTRA-r9 OPTIONAL,
+ measResultListGERAN-r11 MeasResultListGERAN OPTIONAL,
+ measResultsCDMA2000-r11 MeasResultList2CDMA2000-r9 OPTIONAL
+ } OPTIONAL,
+ numberOfPreamblesSent-r11 NumberOfPreamblesSent-r11,
+ contentionDetected-r11 BOOLEAN,
+ maxTxPowerReached-r11 BOOLEAN,
+ timeSinceFailure-r11 TimeSinceFailure-r11,
+ measResultListEUTRA-v1130 MeasResultList2EUTRA-v9e0 OPTIONAL,
+ ...,
+ [[ measResultFailedCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ failedCellRSRQ-Type-r12 RSRQ-Type-r12 OPTIONAL,
+ measResultListEUTRA-v1250 MeasResultList2EUTRA-v1250 OPTIONAL
+ ]],
+ [[ measResultFailedCell-v1360 RSRP-Range-v1360 OPTIONAL
+ ]],
+ [[ logMeasResultListBT-r15 LogMeasResultListBT-r15 OPTIONAL,
+ logMeasResultListWLAN-r15 LogMeasResultListWLAN-r15 OPTIONAL
+ ]]
+}
+
+NumberOfPreamblesSent-r11::= INTEGER (1..200)
+
+TimeSinceFailure-r11 ::= INTEGER (0..172800)
+
+MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
+
+FlightPathInfoReport-r15 ::= SEQUENCE {
+ flightPath-r15 SEQUENCE (SIZE (1..maxWayPoint-r15)) OF WayPointLocation-r15 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+WayPointLocation-r15 ::= SEQUENCE {
+ wayPointLocation-r15 LocationInfo-r10,
+ timeStamp-r15 AbsoluteTimeInfo-r10 OPTIONAL
+}
+
+
+ULHandoverPreparationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulHandoverPreparationTransfer-r8 ULHandoverPreparationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ meid BIT STRING (SIZE (56)) OPTIONAL,
+ dedicatedInfo DedicatedInfoCDMA2000,
+ nonCriticalExtension ULHandoverPreparationTransfer-v8a0-IEs OPTIONAL
+}
+
+ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULInformationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulInformationTransfer-r8 ULInformationTransfer-r8-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULInformationTransfer-r8-IEs ::= SEQUENCE {
+ dedicatedInfoType CHOICE {
+ dedicatedInfoNAS DedicatedInfoNAS,
+ dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
+ dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
+ },
+ nonCriticalExtension ULInformationTransfer-v8a0-IEs OPTIONAL
+}
+
+ULInformationTransfer-v8a0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULInformationTransferMRDC-r15 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ulInformationTransferMRDC-r15 ULInformationTransferMRDC-r15-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULInformationTransferMRDC-r15-IEs ::= SEQUENCE {
+ ul-DCCH-MessageNR-r15 OCTET STRING OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+WLANConnectionStatusReport-r13 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ wlanConnectionStatusReport-r13 WLANConnectionStatusReport-r13-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+WLANConnectionStatusReport-r13-IEs ::= SEQUENCE {
+ wlan-Status-r13 WLAN-Status-r13,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension WLANConnectionStatusReport-v1430-IEs OPTIONAL
+}
+
+WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE {
+ wlan-Status-v1430 WLAN-Status-v1430,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformationBlockPos-r15 ::= SEQUENCE {
+ assistanceDataSIB-Element-r15 OCTET STRING,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+
+SystemInformationBlockType2 ::= SEQUENCE {
+ ac-BarringInfo SEQUENCE {
+ ac-BarringForEmergency BOOLEAN,
+ ac-BarringForMO-Signalling AC-BarringConfig OPTIONAL, -- Need OP
+ ac-BarringForMO-Data AC-BarringConfig OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OP
+ radioResourceConfigCommon RadioResourceConfigCommonSIB,
+ ue-TimersAndConstants UE-TimersAndConstants,
+ freqInfo SEQUENCE {
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP
+ ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100}
+ OPTIONAL, -- Need OP
+ additionalSpectrumEmission AdditionalSpectrumEmission
+ },
+ mbsfn-SubframeConfigList MBSFN-SubframeConfigList OPTIONAL, -- Need OR
+ timeAlignmentTimerCommon TimeAlignmentTimer,
+ ...,
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v8h0-IEs) OPTIONAL,
+ [[ ssac-BarringForMMTEL-Voice-r9 AC-BarringConfig OPTIONAL, -- Need OP
+ ssac-BarringForMMTEL-Video-r9 AC-BarringConfig OPTIONAL -- Need OP
+ ]],
+ [[ ac-BarringForCSFB-r10 AC-BarringConfig OPTIONAL -- Need OP
+ ]],
+ [[ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringPerPLMN-List-r12 AC-BarringPerPLMN-List-r12 OPTIONAL -- Need OP
+ ]],
+ [[ voiceServiceCauseIndication-r12 ENUMERATED {true} OPTIONAL -- Need OP
+ ]],
+ [[ acdc-BarringForCommon-r13 ACDC-BarringForCommon-r13 OPTIONAL, -- Need OP
+ acdc-BarringPerPLMN-List-r13 ACDC-BarringPerPLMN-List-r13 OPTIONAL -- Need OP
+ ]],
+ [[
+ udt-RestrictingForCommon-r13 UDT-Restricting-r13 OPTIONAL, -- Need OR
+ udt-RestrictingPerPLMN-List-r13 UDT-RestrictingPerPLMN-List-r13 OPTIONAL, -- Need OR
+ cIoT-EPS-OptimisationInfo-r13 CIOT-EPS-OptimisationInfo-r13 OPTIONAL, -- Need OP
+ useFullResumeID-r13 ENUMERATED {true} OPTIONAL -- Need OP
+ ]],
+ [[ unicastFreqHoppingInd-r13 ENUMERATED {true} OPTIONAL -- Need OP
+ ]],
+ [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL, -- Need OP
+ videoServiceCauseIndication-r14 ENUMERATED {true} OPTIONAL -- Need OP
+ ]],
+ [[ plmn-InfoList-r15 PLMN-InfoList-r15 OPTIONAL -- Need OP
+ ]],
+ [[ cp-EDT-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ up-EDT-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ idleModeMeasurements-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ reducedCP-LatencyEnabled-r15 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE {
+ multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType2-v9e0-IEs OPTIONAL
+}
+
+SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE {
+ ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond ul-FreqMax
+ nonCriticalExtension SystemInformationBlockType2-v9i0-IEs OPTIONAL
+}
+
+SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE {
+-- Following field is for any non-critical extensions from REL-9
+ nonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType2-v10m0-IEs) OPTIONAL,
+ dummy SEQUENCE {} OPTIONAL
+}
+
+SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE {
+ freqInfo-v10l0 SEQUENCE {
+ additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0
+ } OPTIONAL,
+ multiBandInfoList-v10l0 SEQUENCE (SIZE (1..maxMultiBands)) OF
+ AdditionalSpectrumEmission-v10l0 OPTIONAL,
+-- Following field is for non-critical extensions from REL-10
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+AC-BarringConfig ::= SEQUENCE {
+ ac-BarringFactor ENUMERATED {
+ p00, p05, p10, p15, p20, p25, p30, p40,
+ p50, p60, p70, p75, p80, p85, p90, p95},
+ ac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512},
+ ac-BarringForSpecialAC BIT STRING (SIZE(5))
+}
+
+MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig
+
+MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF MBSFN-SubframeConfig-v1430
+
+AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF AC-BarringPerPLMN-r12
+
+AC-BarringPerPLMN-r12 ::= SEQUENCE {
+ plmn-IdentityIndex-r12 INTEGER (1..maxPLMN-r11),
+ ac-BarringInfo-r12 SEQUENCE {
+ ac-BarringForEmergency-r12 BOOLEAN,
+ ac-BarringForMO-Signalling-r12 AC-BarringConfig OPTIONAL, -- Need OP
+ ac-BarringForMO-Data-r12 AC-BarringConfig OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OP
+ ac-BarringSkipForMMTELVoice-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringSkipForMMTELVideo-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringSkipForSMS-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ac-BarringForCSFB-r12 AC-BarringConfig OPTIONAL, -- Need OP
+ ssac-BarringForMMTEL-Voice-r12 AC-BarringConfig OPTIONAL, -- Need OP
+ ssac-BarringForMMTEL-Video-r12 AC-BarringConfig OPTIONAL -- Need OP
+}
+
+ACDC-BarringForCommon-r13 ::= SEQUENCE {
+ acdc-HPLMNonly-r13 BOOLEAN,
+ barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13
+}
+
+ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF ACDC-BarringPerPLMN-r13
+
+ACDC-BarringPerPLMN-r13 ::= SEQUENCE {
+ plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11),
+ acdc-OnlyForHPLMN-r13 BOOLEAN,
+ barringPerACDC-CategoryList-r13 BarringPerACDC-CategoryList-r13
+}
+
+BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..maxACDC-Cat-r13)) OF BarringPerACDC-Category-r13
+
+BarringPerACDC-Category-r13 ::= SEQUENCE {
+ acdc-Category-r13 INTEGER (1..maxACDC-Cat-r13),
+ acdc-BarringConfig-r13 SEQUENCE {
+ ac-BarringFactor-r13 ENUMERATED {
+ p00, p05, p10, p15, p20, p25, p30, p40,
+ p50, p60, p70, p75, p80, p85, p90, p95},
+ ac-BarringTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512}
+ } OPTIONAL -- Need OP
+}
+
+UDT-Restricting-r13 ::= SEQUENCE {
+ udt-Restricting-r13 ENUMERATED {true} OPTIONAL, --Need OR
+ udt-RestrictingTime-r13 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512} OPTIONAL --Need OR
+}
+
+UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF UDT-RestrictingPerPLMN-r13
+
+UDT-RestrictingPerPLMN-r13 ::= SEQUENCE {
+ plmn-IdentityIndex-r13 INTEGER (1..maxPLMN-r11),
+ udt-Restricting-r13 UDT-Restricting-r13 OPTIONAL --Need OR
+}
+
+CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF CIOT-OptimisationPLMN-r13
+
+CIOT-OptimisationPLMN-r13::= SEQUENCE {
+ up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP
+ cp-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL, -- Need OP
+ attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP
+}
+
+PLMN-InfoList-r15 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-Info-r15
+
+PLMN-Info-r15 ::= SEQUENCE {
+ upperLayerIndication-r15 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+
+SystemInformationBlockType3 ::= SEQUENCE {
+ cellReselectionInfoCommon SEQUENCE {
+ q-Hyst ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24},
+ speedStateReselectionPars SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ q-HystSF SEQUENCE {
+ sf-Medium ENUMERATED {
+ dB-6, dB-4, dB-2, dB0},
+ sf-High ENUMERATED {
+ dB-6, dB-4, dB-2, dB0}
+ }
+ } OPTIONAL -- Need OP
+ },
+ cellReselectionServingFreqInfo SEQUENCE {
+ s-NonIntraSearch ReselectionThreshold OPTIONAL, -- Need OP
+ threshServingLow ReselectionThreshold,
+ cellReselectionPriority CellReselectionPriority
+ },
+ intraFreqCellReselectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ p-Max P-Max OPTIONAL, -- Need OP
+ s-IntraSearch ReselectionThreshold OPTIONAL, -- Need OP
+ allowedMeasBandwidth AllowedMeasBandwidth OPTIONAL, -- Need OP
+ presenceAntennaPort1 PresenceAntennaPort1,
+ neighCellConfig NeighCellConfig,
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+ },
+ ...,
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType3-v10j0-IEs) OPTIONAL,
+ [[ s-IntraSearch-v920 SEQUENCE {
+ s-IntraSearchP-r9 ReselectionThreshold,
+ s-IntraSearchQ-r9 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Need OP
+ s-NonIntraSearch-v920 SEQUENCE {
+ s-NonIntraSearchP-r9 ReselectionThreshold,
+ s-NonIntraSearchQ-r9 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Need OP
+ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP
+ threshServingLowQ-r9 ReselectionThresholdQ-r9 OPTIONAL -- Need OP
+ ]],
+ [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ
+ ]],
+ [[ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ
+ ]],
+ [[ cellReselectionServingFreqInfo-v1310 CellReselectionServingFreqInfo-v1310 OPTIONAL, -- Need OP
+ redistributionServingInfo-r13 RedistributionServingInfo-r13 OPTIONAL, --Need OR
+ cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP
+ t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP
+ ]],
+ [[ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP
+ ]],
+ [[ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1
+ ]],
+ [[ cellReselectionInfoCommon-v1460 CellReselectionInfoCommon-v1460 OPTIONAL -- Need OR
+ ]],
+ [[ cellReselectionInfoHSDN-r15 CellReselectionInfoHSDN-r15 OPTIONAL, -- Need OR
+ cellSelectionInfoCE-v1530 CellSelectionInfoCE-v1530 OPTIONAL, -- Need OP
+ crs-IntfMitigNeighCellsCE-r15 ENUMERATED {enabled} OPTIONAL -- Need OP
+ ]]
+}
+
+RedistributionServingInfo-r13 ::= SEQUENCE {
+ redistributionFactorServing-r13 INTEGER(0..10),
+ redistributionFactorCell-r13 ENUMERATED{true} OPTIONAL, --Need OP
+ t360-r13 ENUMERATED {min4, min8, min16, min32,infinity,
+ spare3,spare2,spare1},
+ redistrOnPagingOnly-r13 ENUMERATED {true} OPTIONAL --Need OP
+}
+
+CellReselectionServingFreqInfo-v1310 ::= SEQUENCE {
+ cellReselectionSubPriority-r13 CellReselectionSubPriority-r13
+}
+
+-- Late non critical extensions
+SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE {
+ freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR
+ multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType3-v10l0-IEs OPTIONAL
+}
+
+SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE {
+ freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR
+ multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CellReselectionInfoCommon-v1460 ::= SEQUENCE {
+ s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15}
+}
+
+CellReselectionInfoHSDN-r15 ::= SEQUENCE {
+ cellEquivalentSize-r15 INTEGER(2..16)
+}
+
+
+SystemInformationBlockType4 ::= SEQUENCE {
+ intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR
+ intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR
+ csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ [[ intraFreqNeighHSDN-CellList-r15 IntraFreqNeighHSDN-CellList-r15 OPTIONAL -- Need OR
+ ]]
+}
+
+IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo
+
+IntraFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..maxCellIntra)) OF PhysCellIdRange
+
+IntraFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange,
+ ...
+}
+
+IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+
+SystemInformationBlockType5 ::= SEQUENCE {
+ interFreqCarrierFreqList InterFreqCarrierFreqList,
+ ...,
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType5-v8h0-IEs) OPTIONAL,
+ [[ interFreqCarrierFreqList-v1250 InterFreqCarrierFreqList-v1250 OPTIONAL, -- Need OR
+ interFreqCarrierFreqListExt-r12 InterFreqCarrierFreqListExt-r12 OPTIONAL -- Need OR
+ ]],
+ [[ interFreqCarrierFreqListExt-v1280 InterFreqCarrierFreqListExt-v1280 OPTIONAL -- Need OR
+ ]],
+ [[ interFreqCarrierFreqList-v1310 InterFreqCarrierFreqList-v1310 OPTIONAL, -- Need OR
+ interFreqCarrierFreqListExt-v1310 InterFreqCarrierFreqListExt-v1310 OPTIONAL -- Need OR
+ ]],
+ [[ interFreqCarrierFreqList-v1350 InterFreqCarrierFreqList-v1350 OPTIONAL, -- Need OR
+ interFreqCarrierFreqListExt-v1350 InterFreqCarrierFreqListExt-v1350 OPTIONAL -- Need OR
+ ]],
+ [[ interFreqCarrierFreqListExt-v1360 InterFreqCarrierFreqListExt-v1360 OPTIONAL -- Need OR
+ ]],
+ [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP
+ ]],
+ [[ interFreqCarrierFreqList-v1530 InterFreqCarrierFreqList-v1530 OPTIONAL, -- Need OR
+ interFreqCarrierFreqListExt-v1530 InterFreqCarrierFreqListExt-v1530 OPTIONAL, -- Need OR
+ measIdleConfigSIB-r15 MeasIdleConfigSIB-r15 OPTIONAL -- Need OR
+ ]]
+}
+
+-- Late non critical extensions
+SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE {
+ interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP
+ nonCriticalExtension SystemInformationBlockType5-v9e0-IEs OPTIONAL
+}
+
+SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE {
+ interFreqCarrierFreqList-v9e0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v9e0 OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType5-v10j0-IEs OPTIONAL
+}
+
+SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE {
+ interFreqCarrierFreqList-v10j0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10j0 OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType5-v10l0-IEs OPTIONAL
+}
+
+SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE {
+ interFreqCarrierFreqList-v10l0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v10l0 OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType5-v13a0-IEs OPTIONAL
+}
+
+SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE {
+ -- Late non critical extensions from REL-10 upto REL-12
+ lateNonCriticalExtension OCTET STRING OPTIONAL, -- Need OR
+ interFreqCarrierFreqList-v13a0 InterFreqCarrierFreqList-v13a0 OPTIONAL, -- Need OR
+ -- Late non critical extensions from REL-13
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo
+
+InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1250
+
+InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310
+
+InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350
+
+InterFreqCarrierFreqList-v13a0 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1360
+
+InterFreqCarrierFreqList-v1530 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1530
+
+InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-r12
+
+InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v10j0
+
+InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1310
+
+InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1.. maxFreq)) OF InterFreqCarrierFreqInfo-v1350
+
+InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1360
+
+InterFreqCarrierFreqListExt-v1530 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v1530
+
+InterFreqCarrierFreqInfo ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ q-RxLevMin Q-RxLevMin,
+ p-Max P-Max OPTIONAL, -- Need OP
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ allowedMeasBandwidth AllowedMeasBandwidth,
+ presenceAntennaPort1 PresenceAntennaPort1,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ neighCellConfig NeighCellConfig,
+ q-OffsetFreq Q-OffsetRange DEFAULT dB0,
+ interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need OR
+ interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need OR
+ ...,
+ [[ q-QualMin-r9 Q-QualMin-r9 OPTIONAL, -- Need OP
+ threshX-Q-r9 SEQUENCE {
+ threshX-HighQ-r9 ReselectionThresholdQ-r9,
+ threshX-LowQ-r9 ReselectionThresholdQ-r9
+ } OPTIONAL -- Cond RSRQ
+ ]],
+ [[ q-QualMinWB-r11 Q-QualMin-r9 OPTIONAL -- Cond WB-RSRQ
+ ]]
+}
+
+InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE {
+ multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR
+}
+
+InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE {
+ dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0 OPTIONAL, -- Cond dl-FreqMax
+ multiBandInfoList-v9e0 MultiBandInfoList-v9e0 OPTIONAL -- Need OR
+}
+
+InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE {
+ freqBandInfo-r10 NS-PmaxList-r10 OPTIONAL, -- Need OR
+ multiBandInfoList-v10j0 MultiBandInfoList-v10j0 OPTIONAL -- Need OR
+}
+
+InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE {
+ freqBandInfo-v10l0 NS-PmaxList-v10l0 OPTIONAL, -- Need OR
+ multiBandInfoList-v10l0 MultiBandInfoList-v10l0 OPTIONAL -- Need OR
+}
+
+InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE {
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL -- Cond RSRQ2
+}
+
+InterFreqCarrierFreqInfo-r12 ::= SEQUENCE {
+ dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ q-RxLevMin-r12 Q-RxLevMin,
+ p-Max-r12 P-Max OPTIONAL, -- Need OP
+ t-ReselectionEUTRA-r12 T-Reselection,
+ t-ReselectionEUTRA-SF-r12 SpeedStateScaleFactors OPTIONAL, -- Need OP
+ threshX-High-r12 ReselectionThreshold,
+ threshX-Low-r12 ReselectionThreshold,
+ allowedMeasBandwidth-r12 AllowedMeasBandwidth,
+ presenceAntennaPort1-r12 PresenceAntennaPort1,
+ cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP
+ neighCellConfig-r12 NeighCellConfig,
+ q-OffsetFreq-r12 Q-OffsetRange DEFAULT dB0,
+ interFreqNeighCellList-r12 InterFreqNeighCellList OPTIONAL, -- Need OR
+ interFreqBlackCellList-r12 InterFreqBlackCellList OPTIONAL, -- Need OR
+ q-QualMin-r12 Q-QualMin-r9 OPTIONAL, -- Need OP
+ threshX-Q-r12 SEQUENCE {
+ threshX-HighQ-r12 ReselectionThresholdQ-r9,
+ threshX-LowQ-r12 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Cond RSRQ
+ q-QualMinWB-r12 Q-QualMin-r9 OPTIONAL, -- Cond WB-RSRQ
+ multiBandInfoList-r12 MultiBandInfoList-r11 OPTIONAL, -- Need OR
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ q-QualMinRSRQ-OnAllSymbols-r12 Q-QualMin-r9 OPTIONAL, -- Cond RSRQ2
+...
+}
+
+InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE {
+ cellReselectionSubPriority-r13 CellReselectionSubPriority-r13 OPTIONAL, -- Need OP
+ redistributionInterFreqInfo-r13 RedistributionInterFreqInfo-r13 OPTIONAL, --Need OP
+ cellSelectionInfoCE-r13 CellSelectionInfoCE-r13 OPTIONAL, -- Need OP
+ t-ReselectionEUTRA-CE-r13 T-ReselectionEUTRA-CE-r13 OPTIONAL -- Need OP
+}
+
+InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE {
+ cellSelectionInfoCE1-r13 CellSelectionInfoCE1-r13 OPTIONAL -- Need OP
+}
+
+InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE {
+ cellSelectionInfoCE1-v1360 CellSelectionInfoCE1-v1360 OPTIONAL -- Cond QrxlevminCE1
+}
+
+InterFreqCarrierFreqInfo-v1530 ::= SEQUENCE {
+ hsdn-Indication-r15 BOOLEAN,
+ interFreqNeighHSDN-CellList-r15 InterFreqNeighHSDN-CellList-r15 OPTIONAL, -- Need OR
+ cellSelectionInfoCE-v1530 CellSelectionInfoCE-v1530 OPTIONAL -- Need OP
+}
+
+InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
+
+InterFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellIdRange
+
+InterFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange
+}
+
+InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
+
+RedistributionInterFreqInfo-r13 ::= SEQUENCE {
+ redistributionFactorFreq-r13 RedistributionFactor-r13 OPTIONAL, --Need OP
+ redistributionNeighCellList-r13 RedistributionNeighCellList-r13 OPTIONAL --Need OP
+}
+
+RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF RedistributionNeighCell-r13
+
+RedistributionNeighCell-r13 ::= SEQUENCE {
+ physCellId-r13 PhysCellId,
+ redistributionFactorCell-r13 RedistributionFactor-r13
+}
+
+RedistributionFactor-r13 ::= INTEGER(1..10)
+
+
+SystemInformationBlockType6 ::= SEQUENCE {
+ carrierFreqListUTRA-FDD CarrierFreqListUTRA-FDD OPTIONAL, -- Need OR
+ carrierFreqListUTRA-TDD CarrierFreqListUTRA-TDD OPTIONAL, -- Need OR
+ t-ReselectionUTRA T-Reselection,
+ t-ReselectionUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need OP
+ ...,
+ lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType6-v8h0-IEs) OPTIONAL,
+ [[ carrierFreqListUTRA-FDD-v1250 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF
+ CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-FDD
+ carrierFreqListUTRA-TDD-v1250 SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF
+ CarrierFreqInfoUTRA-v1250 OPTIONAL, -- Cond UTRA-TDD
+ carrierFreqListUTRA-FDD-Ext-r12 CarrierFreqListUTRA-FDD-Ext-r12 OPTIONAL, -- Cond UTRA-FDD
+ carrierFreqListUTRA-TDD-Ext-r12 CarrierFreqListUTRA-TDD-Ext-r12 OPTIONAL -- Cond UTRA-TDD
+ ]]
+}
+
+SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE {
+ carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Cond UTRA-FDD
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+CarrierFreqInfoUTRA-v1250 ::= SEQUENCE {
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL -- Need OP
+}
+
+CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqUTRA-FDD
+
+CarrierFreqUTRA-FDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-60..-13),
+ p-MaxUTRA INTEGER (-50..33),
+ q-QualMin INTEGER (-24..0),
+ ...,
+ [[ threshX-Q-r9 SEQUENCE {
+ threshX-HighQ-r9 ReselectionThresholdQ-r9,
+ threshX-LowQ-r9 ReselectionThresholdQ-r9
+ } OPTIONAL -- Cond RSRQ
+ ]]
+}
+
+CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE {
+ multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR
+}
+
+CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF
+ CarrierFreqUTRA-FDD-Ext-r12
+
+CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueUTRA,
+ cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High-r12 ReselectionThreshold,
+ threshX-Low-r12 ReselectionThreshold,
+ q-RxLevMin-r12 INTEGER (-60..-13),
+ p-MaxUTRA-r12 INTEGER (-50..33),
+ q-QualMin-r12 INTEGER (-24..0),
+ threshX-Q-r12 SEQUENCE {
+ threshX-HighQ-r12 ReselectionThresholdQ-r9,
+ threshX-LowQ-r12 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Cond RSRQ
+ multiBandInfoList-r12 SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL, -- Need OR
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ...
+}
+
+CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF CarrierFreqUTRA-TDD
+
+CarrierFreqUTRA-TDD ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-60..-13),
+ p-MaxUTRA INTEGER (-50..33),
+ ...
+}
+
+CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..maxUTRA-TDD-Carrier)) OF
+ CarrierFreqUTRA-TDD-r12
+
+CarrierFreqUTRA-TDD-r12 ::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueUTRA,
+ cellReselectionPriority-r12 CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High-r12 ReselectionThreshold,
+ threshX-Low-r12 ReselectionThreshold,
+ q-RxLevMin-r12 INTEGER (-60..-13),
+ p-MaxUTRA-r12 INTEGER (-50..33),
+ reducedMeasPerformance-r12 ENUMERATED {true} OPTIONAL, -- Need OP
+ ...
+}
+
+FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86)
+
+
+SystemInformationBlockType7 ::= SEQUENCE {
+ t-ReselectionGERAN T-Reselection,
+ t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR
+ carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..maxGNFG)) OF CarrierFreqsInfoGERAN
+
+CarrierFreqsInfoGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ commonInfo SEQUENCE {
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ ncc-Permitted BIT STRING (SIZE (8)),
+ q-RxLevMin INTEGER (0..45),
+ p-MaxGERAN INTEGER (0..39) OPTIONAL, -- Need OP
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold
+ },
+ ...
+}
+
+
+SystemInformationBlockType8 ::= SEQUENCE {
+ systemTimeInfo SystemTimeInfoCDMA2000 OPTIONAL, -- Need OR
+ searchWindowSize INTEGER (0..15) OPTIONAL, -- Need OR
+ parametersHRPD SEQUENCE {
+ preRegistrationInfoHRPD PreRegistrationInfoHRPD,
+ cellReselectionParametersHRPD CellReselectionParametersCDMA2000 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ parameters1XRTT SEQUENCE {
+ csfb-RegistrationParam1XRTT CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP
+ longCodeState1XRTT BIT STRING (SIZE (42)) OPTIONAL, -- Need OR
+ cellReselectionParameters1XRTT CellReselectionParametersCDMA2000 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ [[ csfb-SupportForDualRxUEs-r9 BOOLEAN OPTIONAL, -- Need OR
+ cellReselectionParametersHRPD-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-HRPD
+ cellReselectionParameters1XRTT-v920 CellReselectionParametersCDMA2000-v920 OPTIONAL, -- Cond NCL-1XRTT
+ csfb-RegistrationParam1XRTT-v920 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT
+ ac-BarringConfig1XRTT-r9 AC-BarringConfig1XRTT-r9 OPTIONAL -- Cond REG-1XRTT
+ ]],
+ [[ csfb-DualRxTxSupport-r10 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT
+ ]],
+ [[ sib8-PerPLMN-List-r11 SIB8-PerPLMN-List-r11 OPTIONAL -- Need OR
+ ]]
+}
+
+CellReselectionParametersCDMA2000 ::= SEQUENCE {
+ bandClassList BandClassListCDMA2000,
+ neighCellList NeighCellListCDMA2000,
+ t-ReselectionCDMA2000 T-Reselection,
+ t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+}
+
+CellReselectionParametersCDMA2000-r11 ::= SEQUENCE {
+ bandClassList BandClassListCDMA2000,
+ neighCellList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-r11,
+ t-ReselectionCDMA2000 T-Reselection,
+ t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP
+}
+
+CellReselectionParametersCDMA2000-v920 ::= SEQUENCE {
+ neighCellList-v920 NeighCellListCDMA2000-v920
+}
+
+NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000
+
+NeighCellCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000
+}
+
+NeighCellCDMA2000-r11 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ neighFreqInfoList-r11 SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-r11
+}
+
+NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000
+
+NeighCellsPerBandclassCDMA2000 ::= SEQUENCE {
+ arfcn ARFCN-ValueCDMA2000,
+ physCellIdList PhysCellIdListCDMA2000
+}
+
+NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE {
+ arfcn ARFCN-ValueCDMA2000,
+ physCellIdList-r11 SEQUENCE (SIZE (1..40)) OF PhysCellIdCDMA2000
+}
+
+NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920
+
+NeighCellCDMA2000-v920 ::= SEQUENCE {
+ neighCellsPerFreqList-v920 NeighCellsPerBandclassListCDMA2000-v920
+}
+
+NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920
+
+NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE {
+ physCellIdList-v920 PhysCellIdListCDMA2000-v920
+}
+
+PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdCDMA2000
+
+PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF PhysCellIdCDMA2000
+
+BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandClassInfoCDMA2000
+
+BandClassInfoCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need OP
+ threshX-High INTEGER (0..63),
+ threshX-Low INTEGER (0..63),
+ ...
+}
+
+AC-BarringConfig1XRTT-r9 ::= SEQUENCE {
+ ac-Barring0to9-r9 INTEGER (0..63),
+ ac-Barring10-r9 INTEGER (0..7),
+ ac-Barring11-r9 INTEGER (0..7),
+ ac-Barring12-r9 INTEGER (0..7),
+ ac-Barring13-r9 INTEGER (0..7),
+ ac-Barring14-r9 INTEGER (0..7),
+ ac-Barring15-r9 INTEGER (0..7),
+ ac-BarringMsg-r9 INTEGER (0..7),
+ ac-BarringReg-r9 INTEGER (0..7),
+ ac-BarringEmg-r9 INTEGER (0..7)
+}
+
+SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF SIB8-PerPLMN-r11
+
+SIB8-PerPLMN-r11 ::= SEQUENCE {
+ plmn-Identity-r11 INTEGER (1..maxPLMN-r11),
+ parametersCDMA2000-r11 CHOICE {
+ explicitValue ParametersCDMA2000-r11,
+ defaultValue NULL
+ }
+}
+
+ParametersCDMA2000-r11 ::= SEQUENCE {
+ systemTimeInfo-r11 CHOICE {
+ explicitValue SystemTimeInfoCDMA2000,
+ defaultValue NULL
+ } OPTIONAL, -- Need OR
+ searchWindowSize-r11 INTEGER (0..15),
+ parametersHRPD-r11 SEQUENCE {
+ preRegistrationInfoHRPD-r11 PreRegistrationInfoHRPD,
+ cellReselectionParametersHRPD-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ parameters1XRTT-r11 SEQUENCE {
+ csfb-RegistrationParam1XRTT-r11 CSFB-RegistrationParam1XRTT OPTIONAL, -- Need OP
+ csfb-RegistrationParam1XRTT-Ext-r11 CSFB-RegistrationParam1XRTT-v920 OPTIONAL, -- Cond REG-1XRTT-PerPLMN
+ longCodeState1XRTT-r11 BIT STRING (SIZE (42)) OPTIONAL, -- Cond PerPLMN-LC
+ cellReselectionParameters1XRTT-r11 CellReselectionParametersCDMA2000-r11 OPTIONAL, -- Need OR
+ ac-BarringConfig1XRTT-r11 AC-BarringConfig1XRTT-r9 OPTIONAL, -- Cond REG-1XRTT-PerPLMN
+ csfb-SupportForDualRxUEs-r11 BOOLEAN OPTIONAL, -- Need OR
+ csfb-DualRxTxSupport-r11 ENUMERATED {true} OPTIONAL -- Cond REG-1XRTT-PerPLMN
+ } OPTIONAL, -- Need OR
+ ...
+}
+
+
+SystemInformationBlockType9 ::= SEQUENCE {
+ hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+
+SystemInformationBlockType10 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningType OCTET STRING (SIZE (2)),
+ dummy OCTET STRING (SIZE (50)) OPTIONAL, -- Need OP
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+
+SystemInformationBlockType11 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment},
+ warningMessageSegmentNumber INTEGER (0..63),
+ warningMessageSegment OCTET STRING,
+ dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1
+ ...,
+ lateNonCriticalExtension OCTET STRING OPTIONAL
+}
+
+
+SystemInformationBlockType12-r9 ::= SEQUENCE {
+ messageIdentifier-r9 BIT STRING (SIZE (16)),
+ serialNumber-r9 BIT STRING (SIZE (16)),
+ warningMessageSegmentType-r9 ENUMERATED {notLastSegment, lastSegment},
+ warningMessageSegmentNumber-r9 INTEGER (0..63),
+ warningMessageSegment-r9 OCTET STRING,
+ dataCodingScheme-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ warningAreaCoordinatesSegment-r15 OCTET STRING OPTIONAL -- Need OR
+ ]]
+}
+
+
+SystemInformationBlockType13-r9 ::= SEQUENCE {
+ mbsfn-AreaInfoList-r9 MBSFN-AreaInfoList-r9,
+ notificationConfig-r9 MBMS-NotificationConfig-r9,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[
+ notificationConfig-v1430 MBMS-NotificationConfig-v1430 OPTIONAL
+ ]]
+}
+
+
+SystemInformationBlockType14-r11 ::= SEQUENCE {
+ eab-Param-r11 CHOICE {
+ eab-Common-r11 EAB-Config-r11,
+ eab-PerPLMN-List-r11 SEQUENCE (SIZE (1..maxPLMN-r11)) OF EAB-ConfigPLMN-r11
+ } OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ eab-PerRSRP-r15 ENUMERATED {thresh0, thresh1, thresh2, thresh3} OPTIONAL -- Need OR
+ ]]
+}
+
+EAB-ConfigPLMN-r11 ::= SEQUENCE {
+ eab-Config-r11 EAB-Config-r11 OPTIONAL -- Need OR
+}
+
+EAB-Config-r11 ::= SEQUENCE {
+ eab-Category-r11 ENUMERATED {a, b, c},
+ eab-BarringBitmap-r11 BIT STRING (SIZE (10))
+}
+
+
+SystemInformationBlockType15-r11 ::= SEQUENCE {
+ mbms-SAI-IntraFreq-r11 MBMS-SAI-List-r11 OPTIONAL, -- Need OR
+ mbms-SAI-InterFreqList-r11 MBMS-SAI-InterFreqList-r11 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ mbms-SAI-InterFreqList-v1140 MBMS-SAI-InterFreqList-v1140 OPTIONAL -- Cond InterFreq
+ ]],
+ [[ mbms-IntraFreqCarrierType-r14 MBMS-CarrierType-r14 OPTIONAL, -- Need OR
+ mbms-InterFreqCarrierTypeList-r14
+ MBMS-InterFreqCarrierTypeList-r14 OPTIONAL -- Need OR
+ ]]
+}
+
+MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..maxSAI-MBMS-r11)) OF MBMS-SAI-r11
+
+MBMS-SAI-r11 ::= INTEGER (0..65535)
+
+MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-r11
+
+MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-v1140
+
+MBMS-SAI-InterFreq-r11 ::= SEQUENCE {
+ dl-CarrierFreq-r11 ARFCN-ValueEUTRA-r9,
+ mbms-SAI-List-r11 MBMS-SAI-List-r11
+}
+
+MBMS-SAI-InterFreq-v1140 ::= SEQUENCE {
+ multiBandInfoList-r11 MultiBandInfoList-r11 OPTIONAL -- Need OR
+}
+
+MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-CarrierType-r14
+
+MBMS-CarrierType-r14 ::= SEQUENCE {
+ carrierType-r14 ENUMERATED {mbms, fembmsMixed, fembmsDedicated},
+ frameOffset-r14 INTEGER (0..3) OPTIONAL -- Need OR
+}
+
+
+SystemInformationBlockType16-r11 ::= SEQUENCE {
+ timeInfo-r11 SEQUENCE {
+ timeInfoUTC-r11 INTEGER (0..549755813887),
+ dayLightSavingTime-r11 BIT STRING (SIZE (2)) OPTIONAL, -- Need OR
+ leapSeconds-r11 INTEGER (-127..128) OPTIONAL, -- Need OR
+ localTimeOffset-r11 INTEGER (-63..64) OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ timeReferenceInfo-r15 TimeReferenceInfo-r15 OPTIONAL -- Need OR
+ ]]
+}
+
+
+SystemInformationBlockType17-r12 ::= SEQUENCE {
+ wlan-OffloadInfoPerPLMN-List-r12 SEQUENCE (SIZE (1..maxPLMN-r11)) OF
+ WLAN-OffloadInfoPerPLMN-r12 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE {
+ wlan-OffloadConfigCommon-r12 WLAN-OffloadConfig-r12 OPTIONAL, -- Need OR
+ wlan-Id-List-r12 WLAN-Id-List-r12 OPTIONAL, -- Need OR
+ ...
+}
+
+WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r12)) OF WLAN-Identifiers-r12
+
+WLAN-Identifiers-r12 ::= SEQUENCE {
+ ssid-r12 OCTET STRING (SIZE (1..32)) OPTIONAL, -- Need OR
+ bssid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR
+ hessid-r12 OCTET STRING (SIZE (6)) OPTIONAL, -- Need OR
+ ...
+}
+
+
+SystemInformationBlockType18-r12 ::= SEQUENCE {
+ commConfig-r12 SEQUENCE {
+ commRxPool-r12 SL-CommRxPoolList-r12,
+ commTxPoolNormalCommon-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR
+ commTxPoolExceptional-r12 SL-CommTxPoolList-r12 OPTIONAL, -- Need OR
+ commSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ commTxPoolNormalCommonExt-r13 SL-CommTxPoolListExt-r13 OPTIONAL, -- Need OR
+ commTxResourceUC-ReqAllowed-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ commTxAllowRelayCommon-r13 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+
+SystemInformationBlockType19-r12 ::= SEQUENCE {
+ discConfig-r12 SEQUENCE {
+ discRxPool-r12 SL-DiscRxPoolList-r12,
+ discTxPoolCommon-r12 SL-DiscTxPoolList-r12 OPTIONAL, -- Need OR
+ discTxPowerInfo-r12 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx
+ discSyncConfig-r12 SL-SyncConfigList-r12 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ discInterFreqList-r12 SL-CarrierFreqInfoList-r12 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ discConfig-v1310 SEQUENCE {
+ discInterFreqList-v1310 SL-CarrierFreqInfoList-v1310 OPTIONAL, -- Need OR
+ gapRequestsAllowedCommon ENUMERATED {true} OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ discConfigRelay-r13 SEQUENCE {
+ relayUE-Config-r13 SL-DiscConfigRelayUE-r13,
+ remoteUE-Config-r13 SL-DiscConfigRemoteUE-r13
+ } OPTIONAL, -- Need OR
+ discConfigPS-13 SEQUENCE {
+ discRxPoolPS-r13 SL-DiscRxPoolList-r12,
+ discTxPoolPS-Common-r13 SL-DiscTxPoolList-r12 OPTIONAL -- Need OR
+ } OPTIONAL -- Need OR
+ ]]
+}
+
+SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-r12
+
+SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-CarrierFreqInfo-v1310
+
+SL-CarrierFreqInfo-r12::= SEQUENCE {
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9,
+ plmn-IdentityList-r12 PLMN-IdentityList4-r12 OPTIONAL -- Need OP
+}
+
+SL-DiscConfigRelayUE-r13 ::= SEQUENCE {
+ threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR
+ threshLow-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR
+ hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12, dBinf} OPTIONAL, -- Cond ThreshHigh
+ hystMin-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL -- Cond ThreshLow
+}
+
+SL-DiscConfigRemoteUE-r13 ::= SEQUENCE {
+ threshHigh-r13 RSRP-RangeSL4-r13 OPTIONAL, -- Need OR
+ hystMax-r13 ENUMERATED {dB0, dB3, dB6, dB9, dB12} OPTIONAL, -- Cond ThreshHigh
+ reselectionInfoIC-r13 ReselectionInfoRelay-r13
+}
+
+ReselectionInfoRelay-r13 ::= SEQUENCE {
+ q-RxLevMin-r13 Q-RxLevMin,
+ -- Note that the mapping of invidual values may be different for PC5, but the granularity/
+ -- number of values is same as for Uu
+ filterCoefficient-r13 FilterCoefficient,
+ minHyst-r13 ENUMERATED {dB0, dB3,
+ dB6, dB9, dB12, dBinf} OPTIONAL -- Need OR
+}
+
+SL-CarrierFreqInfo-v1310::= SEQUENCE {
+ discResourcesNonPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR
+ discResourcesPS-r13 SL-ResourcesInterFreq-r13 OPTIONAL, -- Need OR
+ discConfigOther-r13 SL-DiscConfigOtherInterFreq-r13 OPTIONAL, -- Need OR
+ ...
+}
+
+PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo2-r12
+
+PLMN-IdentityInfo2-r12 ::= CHOICE {
+ plmn-Index-r12 INTEGER (1..maxPLMN-r11),
+ plmnIdentity-r12 PLMN-Identity
+}
+
+SL-DiscTxResourcesInterFreq-r13 ::= CHOICE {
+ acquireSI-FromCarrier-r13 NULL,
+ discTxPoolCommon-r13 SL-DiscTxPoolList-r12,
+ requestDedicated-r13 NULL,
+ noTxOnCarrier-r13 NULL
+}
+
+SL-DiscConfigOtherInterFreq-r13::= SEQUENCE {
+ txPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL, -- Cond Tx
+ refCarrierCommon-r13 ENUMERATED {pCell} OPTIONAL, -- Need OR
+ discSyncConfig-r13 SL-SyncConfigListNFreq-r13 OPTIONAL, -- Need OR
+ discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL -- Need OR
+}
+
+SL-ResourcesInterFreq-r13 ::= SEQUENCE {
+ discRxResourcesInterFreq-r13 SL-DiscRxPoolList-r12 OPTIONAL, -- Need OR
+ discTxResourcesInterFreq-r13 SL-DiscTxResourcesInterFreq-r13 OPTIONAL -- Need OR
+}
+
+
+SystemInformationBlockType20-r13 ::= SEQUENCE {
+ sc-mcch-RepetitionPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256},
+ sc-mcch-Offset-r13 INTEGER (0..10),
+ sc-mcch-FirstSubframe-r13 INTEGER (0..9),
+ sc-mcch-duration-r13 INTEGER (2..9) OPTIONAL,
+ sc-mcch-ModificationPeriod-r13 ENUMERATED {rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256,
+ rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536},
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ br-BCCH-Config-r14 SEQUENCE {
+ dummy ENUMERATED {rf1},
+ dummy2 ENUMERATED {rf1},
+ mpdcch-Narrowband-SC-MCCH-r14 INTEGER (1..maxAvailNarrowBands-r13),
+ mpdcch-NumRepetition-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16,
+ r32, r64, r128, r256},
+ mpdcch-StartSF-SC-MCCH-r14 CHOICE {
+ fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4,
+ v5, v8, v10},
+ tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10, v20}
+ },
+ mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14 ENUMERATED {off, ce-ModeA, ce-ModeB},
+ sc-mcch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9,
+ sc-mcch-Offset-BR-r14 INTEGER (0..10),
+ sc-mcch-RepetitionPeriod-BR-r14 ENUMERATED {rf32, rf128, rf512, rf1024,
+ rf2048, rf4096, rf8192, rf16384},
+ sc-mcch-ModificationPeriod-BR-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024,
+ rf2048, rf4096, rf8192, rf16384, rf32768,
+ rf65536, rf131072, rf262144, rf524288,
+ rf1048576}
+ } OPTIONAL, -- Need OR
+ sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-r14 OPTIONAL, -- Need OP
+ pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14
+ ENUMERATED { r16, r32 } OPTIONAL, -- Need OR
+ pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14
+ ENUMERATED {
+ r192, r256, r384, r512, r768, r1024,
+ r1536, r2048} OPTIONAL -- Need OR
+ ]],
+ [[ sc-mcch-RepetitionPeriod-v1470 ENUMERATED {rf1} OPTIONAL, -- Need OR
+ sc-mcch-ModificationPeriod-v1470 ENUMERATED {rf1} OPTIONAL -- Need OR
+ ]]
+}
+
+SC-MCCH-SchedulingInfo-r14::= SEQUENCE {
+ onDurationTimerSCPTM-r14 ENUMERATED {psf10, psf20, psf100, psf300,
+ psf500, psf1000, psf1200, psf1600},
+ drx-InactivityTimerSCPTM-r14 ENUMERATED {psf0, psf1, psf2, psf4, psf8, psf16,
+ psf32, psf64, psf128, psf256, ps512,
+ psf1024, psf2048, psf4096, psf8192, psf16384},
+ schedulingPeriodStartOffsetSCPTM-r14 CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf2048 INTEGER(0..2047),
+ sf4096 INTEGER(0..4095),
+ sf8192 INTEGER(0..8191)
+ },
+ ...
+}
+
+
+SystemInformationBlockType21-r14 ::= SEQUENCE {
+ sl-V2X-ConfigCommon-r14 SL-V2X-ConfigCommon-r14 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+SL-V2X-ConfigCommon-r14 ::= SEQUENCE {
+ v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR
+ v2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR
+ p2x-CommTxPoolNormalCommon-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR
+ v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR
+ v2x-SyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR
+ v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR
+ v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR
+ zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR
+ typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR
+ thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR
+ anchorCarrierFreqList-r14 SL-AnchorCarrierFreqList-V2X-r14 OPTIONAL, -- Need OR
+ offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR
+ cbr-CommonTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR
+}
+
+
+
+SystemInformationBlockType24-r15 ::= SEQUENCE {
+ carrierFreqListNR-r15 CarrierFreqListNR-r15 OPTIONAL, -- Need OR
+ t-ReselectionNR-r15 T-Reselection,
+ t-ReselectionNR-SF-r15 SpeedStateScaleFactors OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+CarrierFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxFreq)) OF CarrierFreqNR-r15
+
+CarrierFreqNR-r15 ::= SEQUENCE {
+ carrierFreq-r15 ARFCN-ValueNR-r15,
+ multiBandInfoList-r15 MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR
+ multiBandInfoListSUL-r15 MultiFrequencyBandListNR-r15 OPTIONAL, -- Need OR
+ measTimingConfig-r15 MTC-SSB-NR-r15 OPTIONAL, -- Need OR
+ subcarrierSpacingSSB-r15 ENUMERATED {kHz15, kHz30, kHz120, kHz240},
+ ss-RSSI-Measurement-r15 SS-RSSI-Measurement-r15 OPTIONAL, -- Cond RSRQ2
+ cellReselectionPriority-r15 CellReselectionPriority OPTIONAL, -- Need OP
+ cellReselectionSubPriority-r15 CellReselectionSubPriority-r13 OPTIONAL, -- Need OR
+ threshX-High-r15 ReselectionThreshold,
+ threshX-Low-r15 ReselectionThreshold,
+ threshX-Q-r15 SEQUENCE {
+ threshX-HighQ-r15 ReselectionThresholdQ-r9,
+ threshX-LowQ-r15 ReselectionThresholdQ-r9
+ } OPTIONAL, -- Cond RSRQ
+ q-RxLevMin-r15 INTEGER (-70..-22),
+ q-RxLevMinSUL-r15 INTEGER (-70..-22) OPTIONAL, -- Need OR
+ p-MaxNR-r15 P-MaxNR-r15,
+ ns-PmaxListNR-r15 NS-PmaxListNR-r15 OPTIONAL, -- Need OR
+ q-QualMin-r15 Q-QualMin-r9 OPTIONAL, -- Need OP
+ deriveSSB-IndexFromCell-r15 BOOLEAN,
+ maxRS-IndexCellQual-r15 MaxRS-IndexCellQualNR-r15 OPTIONAL, -- Need OR
+ threshRS-Index-r15 ThresholdListNR-r15 OPTIONAL, -- Need OR
+ ...
+}
+
+
+SystemInformationBlockType25-r15 ::= SEQUENCE {
+ uac-BarringForCommon-r15 UAC-BarringPerCatList-r15 OPTIONAL,
+ uac-BarringPerPLMN-List-r15 UAC-BarringPerPLMN-List-r15 OPTIONAL,
+ uac-BarringInfoSetList-r15 UAC-BarringInfoSetList-r15,
+ uac-AC1-SelectAssistInfo-r15 CHOICE {
+ plmnCommon-r15 UAC-AC1-SelectAssistInfo-r15,
+ individualPLMNList-r15 SEQUENCE (SIZE (2..maxPLMN-r11)) OF UAC-AC1-SelectAssistInfo-r15
+ } OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+UAC-BarringPerPLMN-List-r15::= SEQUENCE (SIZE (1.. maxPLMN-r11)) OF UAC-BarringPerPLMN-r15
+
+UAC-BarringPerPLMN-r15 ::= SEQUENCE {
+ plmn-IdentityIndex-r15 INTEGER (1.. maxPLMN-r11),
+ uac-AC-BarringListType-r15 CHOICE{
+ uac-ImplicitAC-BarringList-r15 SEQUENCE (SIZE(maxAccessCat-1-r15)) OF UAC-BarringInfoSetIndex-r15,
+ uac-ExplicitAC-BarringList-r15 UAC-BarringPerCatList-r15
+ } OPTIONAL
+}
+
+UAC-BarringPerCatList-r15 ::= SEQUENCE (SIZE (1..maxAccessCat-1-r15)) OF UAC-BarringPerCat-r15
+
+UAC-BarringPerCat-r15 ::= SEQUENCE {
+ accessCategory-r15 INTEGER (1..maxAccessCat-1-r15),
+ uac-barringInfoSetIndex-r15 UAC-BarringInfoSetIndex-r15
+}
+
+UAC-BarringInfoSetIndex-r15 ::= INTEGER (1..maxBarringInfoSet-r15)
+UAC-BarringInfoSetList-r15 ::= SEQUENCE (SIZE (1..maxBarringInfoSet-r15)) OF UAC-BarringInfoSet-r15
+
+
+UAC-BarringInfoSet-r15 ::= SEQUENCE {
+ uac-BarringFactor-r15 ENUMERATED {
+ p00, p05, p10, p15, p20, p25, p30, p40,
+ p50, p60, p70, p75, p80, p85, p90, p95},
+ uac-BarringTime-r15 ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512},
+ uac-BarringForAccessIdentity-r15 BIT STRING (SIZE(7))
+}
+
+UAC-AC1-SelectAssistInfo-r15::= ENUMERATED {a, b, c}
+
+
+SystemInformationBlockType26-r15 ::= SEQUENCE {
+ v2x-InterFreqInfoList-r15 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need OR
+ cbr-pssch-TxConfigList-r15 SL-CBR-PPPP-TxConfigList-r15 OPTIONAL, -- Need OR
+ v2x-PacketDuplicationConfig-r15 SL-V2X-PacketDuplicationConfig-r15 OPTIONAL, -- Need OR
+ syncFreqList-r15 SL-V2X-SyncFreqList-r15 OPTIONAL, -- Need OR
+ slss-TxMultiFreq-r15 ENUMERATED{true} OPTIONAL, -- Need OR
+ v2x-FreqSelectionConfigList-r15 SL-V2X-FreqSelectionConfigList-r15 OPTIONAL, -- Need OR
+ threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, -- Need OR
+ ...
+}
+
+
+AntennaInfoCommon ::= SEQUENCE {
+ antennaPortsCount ENUMERATED {an1, an2, an4, spare1}
+}
+
+AntennaInfoDedicated ::= SEQUENCE {
+ transmissionMode ENUMERATED {
+ tm1, tm2, tm3, tm4, tm5, tm6,
+ tm7, tm8-v920},
+ codebookSubsetRestriction CHOICE {
+ n2TxAntenna-tm3 BIT STRING (SIZE (2)),
+ n4TxAntenna-tm3 BIT STRING (SIZE (4)),
+ n2TxAntenna-tm4 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm4 BIT STRING (SIZE (64)),
+ n2TxAntenna-tm5 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm5 BIT STRING (SIZE (16)),
+ n2TxAntenna-tm6 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm6 BIT STRING (SIZE (16))
+ } OPTIONAL, -- Cond TM
+ ue-TransmitAntennaSelection CHOICE{
+ release NULL,
+ setup ENUMERATED {closedLoop, openLoop}
+ }
+}
+
+AntennaInfoDedicated-v920 ::= SEQUENCE {
+ codebookSubsetRestriction-v920 CHOICE {
+ n2TxAntenna-tm8-r9 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm8-r9 BIT STRING (SIZE (32))
+ } OPTIONAL -- Cond TM8
+}
+
+AntennaInfoDedicated-r10 ::= SEQUENCE {
+ transmissionMode-r10 ENUMERATED {
+ tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8-v920,
+ tm9-v1020, tm10-v1130, spare6, spare5, spare4,
+ spare3, spare2, spare1},
+ codebookSubsetRestriction-r10 BIT STRING OPTIONAL, -- Cond TMX
+ ue-TransmitAntennaSelection CHOICE{
+ release NULL,
+ setup ENUMERATED {closedLoop, openLoop}
+ }
+}
+
+AntennaInfoDedicated-v10i0::= SEQUENCE {
+ maxLayersMIMO-r10 ENUMERATED {twoLayers, fourLayers, eightLayers} OPTIONAL -- Need OR
+}
+
+AntennaInfoDedicated-v1250 ::= SEQUENCE {
+ alternativeCodebookEnabledFor4TX-r12 BOOLEAN
+}
+
+AntennaInfoDedicated-v1430 ::= SEQUENCE {
+ ce-UE-TxAntennaSelection-config-r14 ENUMERATED {on} OPTIONAL -- Need OR
+}
+
+AntennaInfoDedicatedSTTI-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ transmissionModeDL-MBSFN-r15 ENUMERATED {tm9, tm10} OPTIONAL, -- Need OR
+ transmissionModeDL-nonMBSFN-r15 ENUMERATED {tm1, tm2, tm3, tm4, tm6, tm8, tm9,
+ tm10} OPTIONAL, --_Need OR
+ codebookSubsetRestriction CHOICE {
+ n2TxAntenna-tm3-r15 BIT STRING (SIZE (2)),
+ n4TxAntenna-tm3-r15 BIT STRING (SIZE (4)),
+ n2TxAntenna-tm4-r15 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm4-r15 BIT STRING (SIZE (64)),
+ n2TxAntenna-tm5-r15 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm5-r15 BIT STRING (SIZE (16)),
+ n2TxAntenna-tm6-r15 BIT STRING (SIZE (4)),
+ n4TxAntenna-tm6-r15 BIT STRING (SIZE (16)),
+ n2TxAntenna-tm8-r15 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm8-r15 BIT STRING (SIZE (64)),
+ n2TxAntenna-tm9and10-r15 BIT STRING (SIZE (6)),
+ n4TxAntenna-tm9and10-r15 BIT STRING (SIZE (96)),
+ n8TxAntenna-tm9and10-r15 BIT STRING (SIZE (109))
+ } OPTIONAL, -- Cond TM
+ maxLayersMIMO-STTI-r15 ENUMERATED {twoLayers, fourLayers} OPTIONAL, -- Need OR
+ slotSubslotPDSCH-TxDiv-2Layer-r15 BOOLEAN,
+ slotSubslotPDSCH-TxDiv-4Layer-r15 BOOLEAN
+ }
+}
+
+AntennaInfoDedicated-v1530 ::= CHOICE {
+ release NULL,
+ setup CHOICE {
+ ue-TxAntennaSelection-SRS-1T4R-Config-r15 NULL,
+ ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15 ENUMERATED {two, three}
+ }
+}
+
+
+AntennaInfoUL-r10 ::= SEQUENCE {
+ transmissionModeUL-r10 ENUMERATED {tm1, tm2, spare6, spare5,
+ spare4, spare3, spare2, spare1} OPTIONAL, -- Need OR
+ fourAntennaPortActivated-r10 ENUMERATED {setup} OPTIONAL -- Need OR
+}
+
+AntennaInfoUL-STTI-r15 ::= SEQUENCE {
+ transmissionModeUL-STTI-r15 ENUMERATED {tm1, tm2} OPTIONAL -- Need OR
+}
+
+
+AUL-Config-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ aul-CRNTI-r15 C-RNTI,
+ aul-Subframes-r15 BIT STRING (SIZE (40)),
+ aul-HARQ-Processes-r15 INTEGER (1..16),
+ transmissionModeUL-AUL-r15 ENUMERATED {tm1,tm2},
+ aul-StartingFullBW-InsideMCOT-r15 BIT STRING (SIZE (5)),
+ aul-StartingFullBW-OutsideMCOT-r15 BIT STRING (SIZE (7)),
+ aul-StartingPartialBW-InsideMCOT-r15 ENUMERATED {o34, o43, o52, o61, oOS1},
+ aul-StartingPartialBW-OutsideMCOT-r15 ENUMERATED {o16, o25, o34, o43, o52, o61, oOS1},
+ aul-RetransmissionTimer-r15 ENUMERATED {psf4, psf5, psf6, psf8, psf10, psf12, psf20, psf28, psf37, psf44, psf68, psf84, psf100,
+ psf116, psf132, psf164, psf324},
+ endingSymbolAUL-r15 INTEGER(12..13),
+ subframeOffsetCOT-Sharing-r15 INTEGER(2..4),
+ contentionWindowSizeTimer-r15 ENUMERATED {n0, n5, n10}
+ }
+}
+
+
+CQI-ReportAperiodic-r10 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic,
+ aperiodicCSI-Trigger-r10 SEQUENCE {
+ trigger1-r10 BIT STRING (SIZE (8)),
+ trigger2-r10 BIT STRING (SIZE (8))
+ } OPTIONAL -- Need OR
+ }
+}
+
+CQI-ReportAperiodic-v1250 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ aperiodicCSI-Trigger-v1250 SEQUENCE {
+ trigger-SubframeSetIndicator-r12 ENUMERATED {s1, s2},
+ trigger1-SubframeSetIndicator-r12 BIT STRING (SIZE (8)),
+ trigger2-SubframeSetIndicator-r12 BIT STRING (SIZE (8))
+ }
+ }
+}
+
+CQI-ReportAperiodic-v1310 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ aperiodicCSI-Trigger-v1310 SEQUENCE {
+ trigger1-r13 BIT STRING (SIZE (32)),
+ trigger2-r13 BIT STRING (SIZE (32)),
+ trigger3-r13 BIT STRING (SIZE (32)),
+ trigger4-r13 BIT STRING (SIZE (32)),
+ trigger5-r13 BIT STRING (SIZE (32)),
+ trigger6-r13 BIT STRING (SIZE (32))
+ } OPTIONAL, -- Need ON
+ aperiodicCSI-Trigger2-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ trigger1-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger2-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger3-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger4-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger5-SubframeSetIndicator-r13 BIT STRING (SIZE (32)),
+ trigger6-SubframeSetIndicator-r13 BIT STRING (SIZE (32))
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+CQI-ReportAperiodicProc-r11 ::= SEQUENCE {
+ cqi-ReportModeAperiodic-r11 CQI-ReportModeAperiodic,
+ trigger01-r11 BOOLEAN,
+ trigger10-r11 BOOLEAN,
+ trigger11-r11 BOOLEAN
+}
+
+CQI-ReportAperiodicProc-v1310 ::= SEQUENCE {
+ trigger001-r13 BOOLEAN,
+ trigger010-r13 BOOLEAN,
+ trigger011-r13 BOOLEAN,
+ trigger100-r13 BOOLEAN,
+ trigger101-r13 BOOLEAN,
+ trigger110-r13 BOOLEAN,
+ trigger111-r13 BOOLEAN
+}
+
+CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE {
+ triggers-r14 CHOICE {
+ oneBit-r14 SEQUENCE {
+ trigger1-Indicator-r14 BIT STRING (SIZE (8))
+ },
+ twoBit-r14 SEQUENCE {
+ trigger01-Indicator-r14 BIT STRING (SIZE (8)),
+ trigger10-Indicator-r14 BIT STRING (SIZE (8)),
+ trigger11-Indicator-r14 BIT STRING (SIZE (8))
+ },
+ threeBit-r14 SEQUENCE {
+ trigger001-Indicator-r14 BIT STRING (SIZE (32)),
+ trigger010-Indicator-r14 BIT STRING (SIZE (32)),
+ trigger011-Indicator-r14 BIT STRING (SIZE (32)),
+ trigger100-Indicator-r14 BIT STRING (SIZE (32)) ,
+ trigger101-Indicator-r14 BIT STRING (SIZE (32)),
+ trigger110-Indicator-r14 BIT STRING (SIZE (32)),
+ trigger111-Indicator-r14 BIT STRING (SIZE (32))
+ }
+ } OPTIONAL -- Need OR
+}
+
+CQI-ReportModeAperiodic ::= ENUMERATED {
+ rm12, rm20, rm22, rm30, rm31,
+ rm32-v1250, rm10-v1310, rm11-v1310
+}
+
+
+CQI-ReportBoth-r11 ::= SEQUENCE {
+ csi-IM-ConfigToReleaseList-r11 CSI-IM-ConfigToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-IM-ConfigToAddModList-r11 CSI-IM-ConfigToAddModList-r11 OPTIONAL, -- Need ON
+ csi-ProcessToReleaseList-r11 CSI-ProcessToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-ProcessToAddModList-r11 CSI-ProcessToAddModList-r11 OPTIONAL -- Need ON
+}
+
+CQI-ReportBoth-v1250 ::= SEQUENCE {
+ csi-IM-ConfigToReleaseListExt-r12 CSI-IM-ConfigId-v1250 OPTIONAL, -- Need ON
+ csi-IM-ConfigToAddModListExt-r12 CSI-IM-ConfigExt-r12 OPTIONAL -- Need ON
+}
+
+CQI-ReportBoth-v1310 ::= SEQUENCE {
+ csi-IM-ConfigToReleaseListExt-r13 CSI-IM-ConfigToReleaseListExt-r13 OPTIONAL, -- Need ON
+ csi-IM-ConfigToAddModListExt-r13 CSI-IM-ConfigToAddModListExt-r13 OPTIONAL -- Need ON
+}
+
+CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-Config-r11
+
+CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigExt-r12
+
+CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-IM-r11)) OF CSI-IM-ConfigId-r11
+
+CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-IM-v1310)) OF CSI-IM-ConfigId-v1310
+
+CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-Process-r11
+
+CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF CSI-ProcessId-r11
+
+CQI-ReportBothProc-r11 ::= SEQUENCE {
+ ri-Ref-CSI-ProcessId-r11 CSI-ProcessId-r11 OPTIONAL, -- Need OR
+ pmi-RI-Report-r11 ENUMERATED {setup} OPTIONAL -- Need OR
+}
+
+
+CQI-ReportConfig ::= SEQUENCE {
+ cqi-ReportModeAperiodic CQI-ReportModeAperiodic OPTIONAL, -- Need OR
+ nomPDSCH-RS-EPRE-Offset INTEGER (-1..6),
+ cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON
+}
+
+CQI-ReportConfig-v920 ::= SEQUENCE {
+ cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Cond cqi-Setup
+ pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL -- Cond PMIRI
+}
+
+CQI-ReportConfig-r10 ::= SEQUENCE {
+ cqi-ReportAperiodic-r10 CQI-ReportAperiodic-r10 OPTIONAL, -- Need ON
+ nomPDSCH-RS-EPRE-Offset INTEGER (-1..6),
+ cqi-ReportPeriodic-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON
+ pmi-RI-Report-r9 ENUMERATED {setup} OPTIONAL, -- Cond PMIRIPCell
+ csi-SubframePatternConfig-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ csi-MeasSubframeSet1-r10 MeasSubframePattern-r10,
+ csi-MeasSubframeSet2-r10 MeasSubframePattern-r10
+ }
+ } OPTIONAL -- Need ON
+}
+
+CQI-ReportConfig-v1130 ::= SEQUENCE {
+ cqi-ReportPeriodic-v1130 CQI-ReportPeriodic-v1130,
+ cqi-ReportBoth-r11 CQI-ReportBoth-r11
+}
+
+CQI-ReportConfig-v1250 ::= SEQUENCE {
+ csi-SubframePatternConfig-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ csi-MeasSubframeSets-r12 BIT STRING (SIZE (10))
+ }
+ } OPTIONAL, -- Need ON
+ cqi-ReportBoth-v1250 CQI-ReportBoth-v1250 OPTIONAL, -- Need ON
+ cqi-ReportAperiodic-v1250 CQI-ReportAperiodic-v1250 OPTIONAL, -- Need ON
+ altCQI-Table-r12 ENUMERATED {
+ allSubframes, csi-SubframeSet1,
+ csi-SubframeSet2, spare1} OPTIONAL -- Need OP
+}
+
+CQI-ReportConfig-v1310 ::= SEQUENCE {
+ cqi-ReportBoth-v1310 CQI-ReportBoth-v1310 OPTIONAL, -- Need ON
+ cqi-ReportAperiodic-v1310 CQI-ReportAperiodic-v1310 OPTIONAL, -- Need ON
+ cqi-ReportPeriodic-v1310 CQI-ReportPeriodic-v1310 OPTIONAL -- Need ON
+}
+
+CQI-ReportConfig-v1320 ::= SEQUENCE {
+ cqi-ReportPeriodic-v1320 CQI-ReportPeriodic-v1320 OPTIONAL -- Need ON
+}
+
+CQI-ReportConfig-v1430 ::= SEQUENCE {
+ cqi-ReportAperiodicHybrid-r14 CQI-ReportAperiodicHybrid-r14 OPTIONAL -- Need ON
+}
+
+CQI-ReportConfig-v1530 ::= SEQUENCE {
+ altCQI-Table-1024QAM-r15 ENUMERATED {
+ allSubframes, csi-SubframeSet1,
+ csi-SubframeSet2, spare1} OPTIONAL -- Need OP
+}
+
+CQI-ReportConfig-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON
+ cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON
+ altCQI-Table-1024QAM-r15 ENUMERATED {allSubframes, csi-SubframeSet1,
+ csi-SubframeSet2, spare1} OPTIONAL -- Need OP
+ }
+}
+
+CQI-ReportConfigSCell-r10 ::= SEQUENCE {
+ cqi-ReportModeAperiodic-r10 CQI-ReportModeAperiodic OPTIONAL, -- Need OR
+ nomPDSCH-RS-EPRE-Offset-r10 INTEGER (-1..6),
+ cqi-ReportPeriodicSCell-r10 CQI-ReportPeriodic-r10 OPTIONAL, -- Need ON
+ pmi-RI-Report-r10 ENUMERATED {setup} OPTIONAL -- Cond PMIRISCell
+}
+
+CQI-ReportConfigSCell-r15 ::= SEQUENCE {
+ cqi-ReportPeriodicSCell-r15 CQI-ReportPeriodicSCell-r15 OPTIONAL, -- Need ON
+ altCQI-Table-1024QAM-r15 ENUMERATED {allSubframes, csi-SubframeSet1,
+ csi-SubframeSet2, spare1} OPTIONAL -- Need OP
+}
+
+
+CQI-ReportPeriodic ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-PUCCH-ResourceIndex INTEGER (0..1185),
+ cqi-pmi-ConfigIndex INTEGER (0..1023),
+ cqi-FormatIndicatorPeriodic CHOICE {
+ widebandCQI NULL,
+ subbandCQI SEQUENCE {
+ k INTEGER (1..4)
+ }
+ },
+ ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR
+ simultaneousAckNackAndCQI BOOLEAN
+ }
+}
+
+CQI-ReportPeriodic-r10 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-PUCCH-ResourceIndex-r10 INTEGER (0..1184),
+ cqi-PUCCH-ResourceIndexP1-r10 INTEGER (0..1184) OPTIONAL, -- Need OR
+ cqi-pmi-ConfigIndex INTEGER (0..1023),
+ cqi-FormatIndicatorPeriodic-r10 CHOICE {
+ widebandCQI-r10 SEQUENCE {
+ csi-ReportMode-r10 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR
+ },
+ subbandCQI-r10 SEQUENCE {
+ k INTEGER (1..4),
+ periodicityFactor-r10 ENUMERATED {n2, n4}
+ }
+ },
+ ri-ConfigIndex INTEGER (0..1023) OPTIONAL, -- Need OR
+ simultaneousAckNackAndCQI BOOLEAN,
+ cqi-Mask-r9 ENUMERATED {setup} OPTIONAL, -- Need OR
+ csi-ConfigIndex-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-pmi-ConfigIndex2-r10 INTEGER (0..1023),
+ ri-ConfigIndex2-r10 INTEGER (0..1023) OPTIONAL -- Need OR
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+
+CQI-ReportPeriodic-v1130 ::= SEQUENCE {
+ simultaneousAckNackAndCQI-Format3-r11 ENUMERATED {setup} OPTIONAL, -- Need OR
+ cqi-ReportPeriodicProcExtToReleaseList-r11 CQI-ReportPeriodicProcExtToReleaseList-r11 OPTIONAL, -- Need ON
+ cqi-ReportPeriodicProcExtToAddModList-r11 CQI-ReportPeriodicProcExtToAddModList-r11 OPTIONAL -- Need ON
+}
+
+CQI-ReportPeriodic-v1310 ::= SEQUENCE {
+ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL, -- Need OR
+ simultaneousAckNackAndCQI-Format4-Format5-r13 ENUMERATED {setup} OPTIONAL-- Need OR
+}
+
+CQI-ReportPeriodic-v1320 ::= SEQUENCE {
+ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR
+}
+
+CQI-ReportPeriodicSCell-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-pmi-ConfigIndexDormant-r15 INTEGER (0..1023),
+ ri-ConfigIndexDormant-r15 INTEGER (0..1023) OPTIONAL, -- Need OR
+ csi-SubframePatternDormant-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ csi-MeasSubframeSet1-r15 MeasSubframePattern-r10,
+ csi-MeasSubframeSet2-r15 MeasSubframePattern-r10
+ }
+ } OPTIONAL, -- Need ON
+ cqi-FormatIndicatorDormant-r15 CHOICE {
+ widebandCQI-r15 SEQUENCE {
+ csi-ReportMode-r15 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR
+ },
+ subbandCQI-r15 SEQUENCE {
+ k-r15 INTEGER (1..4),
+ periodicityFactor-r15 ENUMERATED {n2, n4}
+ }
+ } OPTIONAL -- Need OR
+ }
+}
+
+CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExt-r11
+
+CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCQI-ProcExt-r11)) OF CQI-ReportPeriodicProcExtId-r11
+
+CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE {
+ cqi-ReportPeriodicProcExtId-r11 CQI-ReportPeriodicProcExtId-r11,
+ cqi-pmi-ConfigIndex-r11 INTEGER (0..1023),
+ cqi-FormatIndicatorPeriodic-r11 CHOICE {
+ widebandCQI-r11 SEQUENCE {
+ csi-ReportMode-r11 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR
+ },
+ subbandCQI-r11 SEQUENCE {
+ k INTEGER (1..4),
+ periodicityFactor-r11 ENUMERATED {n2, n4}
+ }
+ },
+ ri-ConfigIndex-r11 INTEGER (0..1023) OPTIONAL, -- Need OR
+ csi-ConfigIndex-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-pmi-ConfigIndex2-r11 INTEGER (0..1023),
+ ri-ConfigIndex2-r11 INTEGER (0..1023) OPTIONAL -- Need OR
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ cri-ReportConfig-r13 CRI-ReportConfig-r13 OPTIONAL -- Need ON
+ ]],
+ [[ periodicityFactorWB-r13 ENUMERATED {n2, n4} OPTIONAL -- Need ON
+ ]]
+}
+
+CQI-ShortConfigSCell-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cqi-pmi-ConfigIndexShort-r15 INTEGER (0..1023),
+ ri-ConfigIndexShort-r15 INTEGER (0..1023) OPTIONAL, -- Need OR
+ cqi-FormatIndicatorShort-r15 CHOICE {
+ widebandCQI-Short-r15 SEQUENCE {
+ csi-ReportModeShort-r15 ENUMERATED {submode1, submode2} OPTIONAL -- Need OR
+ },
+ subbandCQI-Short-r15 SEQUENCE {
+ k-r15 INTEGER (1..4),
+ periodicityFactor-r15 ENUMERATED {n2, n4}
+ }
+ } OPTIONAL -- Need OR
+ }
+}
+
+CRI-ReportConfig-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ cri-ConfigIndex-r13 CRI-ConfigIndex-r13,
+ cri-ConfigIndex2-r13 CRI-ConfigIndex-r13 OPTIONAL -- Need OR
+ }
+}
+
+CRI-ConfigIndex-r13 ::= INTEGER (0..1023)
+
+
+CQI-ReportPeriodicProcExtId-r11 ::= INTEGER (1..maxCQI-ProcExt-r11)
+
+
+CrossCarrierSchedulingConfig-r10 ::= SEQUENCE {
+ schedulingCellInfo-r10 CHOICE {
+ own-r10 SEQUENCE { -- No cross carrier scheduling
+ cif-Presence-r10 BOOLEAN
+ },
+ other-r10 SEQUENCE { -- Cross carrier scheduling
+ schedulingCellId-r10 ServCellIndex-r10,
+ pdsch-Start-r10 INTEGER (1..4)
+ }
+ }
+}
+
+CrossCarrierSchedulingConfig-r13 ::= SEQUENCE {
+ schedulingCellInfo-r13 CHOICE {
+ own-r13 SEQUENCE { -- No cross carrier scheduling
+ cif-Presence-r13 BOOLEAN
+ },
+ other-r13 SEQUENCE { -- Cross carrier scheduling
+ schedulingCellId-r13 ServCellIndex-r13,
+ pdsch-Start-r13 INTEGER (1..4),
+ cif-InSchedulingCell-r13 INTEGER (1..7)
+ }
+ }
+}
+
+CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE {
+ schedulingCellId-r14 ServCellIndex-r13,
+ cif-InSchedulingCell-r14 INTEGER (1..7)
+}
+
+CSI-IM-Config-r11 ::= SEQUENCE {
+ csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11,
+ resourceConfig-r11 INTEGER (0..31),
+ subframeConfig-r11 INTEGER (0..154),
+ ...,
+ [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL -- Need ON
+ ]]
+}
+
+CSI-IM-ConfigExt-r12 ::= SEQUENCE {
+ csi-IM-ConfigId-v1250 CSI-IM-ConfigId-v1250,
+ resourceConfig-r12 INTEGER (0..31),
+ subframeConfig-r12 INTEGER (0..154),
+ ...,
+ [[ interferenceMeasRestriction-r13 BOOLEAN OPTIONAL, -- Need ON
+ csi-IM-ConfigId-v1310 CSI-IM-ConfigId-v1310 OPTIONAL -- Need ON
+ ]]
+}
+
+
+CSI-IM-ConfigId-r11 ::= INTEGER (1..maxCSI-IM-r11)
+CSI-IM-ConfigId-r12 ::= INTEGER (1..maxCSI-IM-r12)
+CSI-IM-ConfigId-v1250 ::= INTEGER (maxCSI-IM-r12)
+CSI-IM-ConfigId-v1310 ::= INTEGER (minCSI-IM-r13..maxCSI-IM-r13)
+CSI-IM-ConfigId-r13 ::= INTEGER (1..maxCSI-IM-r13)
+
+
+CSI-Process-r11 ::= SEQUENCE {
+ csi-ProcessId-r11 CSI-ProcessId-r11,
+ csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11,
+ csi-IM-ConfigId-r11 CSI-IM-ConfigId-r11,
+ p-C-AndCBSRList-r11 P-C-AndCBSR-Pair-r13a,
+ cqi-ReportBothProc-r11 CQI-ReportBothProc-r11 OPTIONAL, -- Need OR
+ cqi-ReportPeriodicProcId-r11 INTEGER (0..maxCQI-ProcExt-r11) OPTIONAL, -- Need OR
+ cqi-ReportAperiodicProc-r11 CQI-ReportAperiodicProc-r11 OPTIONAL, -- Need OR
+ ...,
+ [[ alternativeCodebookEnabledFor4TXProc-r12 ENUMERATED {true} OPTIONAL, -- Need ON
+ csi-IM-ConfigIdList-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r12
+ } OPTIONAL, -- Need ON
+ cqi-ReportAperiodicProc2-r12 CHOICE {
+ release NULL,
+ setup CQI-ReportAperiodicProc-r11
+ } OPTIONAL -- Need ON
+ ]],
+ [[ cqi-ReportAperiodicProc-v1310 CHOICE {
+ release NULL,
+ setup CQI-ReportAperiodicProc-v1310
+ } OPTIONAL, -- Need ON
+ cqi-ReportAperiodicProc2-v1310 CHOICE {
+ release NULL,
+ setup CQI-ReportAperiodicProc-v1310
+ } OPTIONAL, -- Need ON
+ eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON
+ ]],
+ [[ dummy CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON
+ eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON
+ advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ eMIMO-Type-v1480 CSI-RS-ConfigEMIMO-v1480 OPTIONAL -- Need ON
+ ]],
+ [[ feCOMP-CSI-Enabled-v1530 BOOLEAN OPTIONAL, -- Need ON
+ eMIMO-Type-v1530 CSI-RS-ConfigEMIMO-v1530 OPTIONAL -- Need ON
+ ]]
+}
+
+
+CSI-ProcessId-r11 ::= INTEGER (1..maxCSI-Proc-r11)
+
+
+CSI-RS-Config-r10 ::= SEQUENCE {
+ csi-RS-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ antennaPortsCount-r10 ENUMERATED {an1, an2, an4, an8},
+ resourceConfig-r10 INTEGER (0..31),
+ subframeConfig-r10 INTEGER (0..154),
+ p-C-r10 INTEGER (-8..15)
+ }
+ } OPTIONAL, -- Need ON
+ zeroTxPowerCSI-RS-r10 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL -- Need ON
+}
+
+CSI-RS-Config-v1250 ::= SEQUENCE {
+ zeroTxPowerCSI-RS2-r12 ZeroTxPowerCSI-RS-Conf-r12 OPTIONAL, -- Need ON
+ ds-ZeroTxPowerCSI-RS-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ zeroTxPowerCSI-RS-List-r12 SEQUENCE (SIZE (1..maxDS-ZTP-CSI-RS-r12)) OF ZeroTxPowerCSI-RS-r12
+ }
+ } OPTIONAL -- Need ON
+}
+
+CSI-RS-Config-v1310 ::= SEQUENCE {
+ eMIMO-Type-r13 CSI-RS-ConfigEMIMO-r13 OPTIONAL -- Need ON
+}
+
+CSI-RS-Config-v1430 ::= SEQUENCE {
+ dummy CSI-RS-ConfigEMIMO-v1430 OPTIONAL, -- Need ON
+ eMIMO-Hybrid-r14 CSI-RS-ConfigEMIMO-Hybrid-r14 OPTIONAL, -- Need ON
+ advancedCodebookEnabled-r14 BOOLEAN OPTIONAL -- Need ON
+}
+
+CSI-RS-Config-v1480 ::= SEQUENCE {
+ eMIMO-Type-v1480 CSI-RS-ConfigEMIMO-v1480 OPTIONAL -- Need ON
+}
+
+CSI-RS-Config-v1530 ::= SEQUENCE {
+ eMIMO-Type-v1530 CSI-RS-ConfigEMIMO-v1530 OPTIONAL -- Need ON
+}
+
+CSI-RS-Config-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON
+ csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL, -- Need ON
+ csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON
+ csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL -- Need ON
+ }
+}
+
+ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE {
+ release NULL,
+ setup ZeroTxPowerCSI-RS-r12
+}
+
+ZeroTxPowerCSI-RS-r12 ::= SEQUENCE {
+ zeroTxPowerResourceConfigList-r12 BIT STRING (SIZE (16)),
+ zeroTxPowerSubframeConfig-r12 INTEGER (0..154)
+}
+
+
+CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE {
+ csi-RS-ConfigNZPIdListExt-r13 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR
+ csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR
+ p-C-AndCBSR-PerResourceConfigList-r13 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR
+ ace-For4Tx-PerResourceConfigList-r13 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR
+ alternativeCodebookEnabledBeamformed-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ channelMeasRestriction-r13 ENUMERATED {on} OPTIONAL -- Need OR
+}
+
+CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE {
+ csi-RS-ConfigNZPIdListExt-r14 SEQUENCE (SIZE (1..7)) OF CSI-RS-ConfigNZPId-r13 OPTIONAL, -- Need OR
+ csi-IM-ConfigIdList-r14 SEQUENCE (SIZE (1..8)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR
+ p-C-AndCBSR-PerResourceConfigList-r14 SEQUENCE (SIZE (1..8)) OF P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR
+ ace-For4Tx-PerResourceConfigList-r14 SEQUENCE (SIZE (1..7)) OF BOOLEAN OPTIONAL, -- Need OR
+ alternativeCodebookEnabledBeamformed-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ channelMeasRestriction-r14 ENUMERATED {on} OPTIONAL, -- Need OR
+ csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11
+ OPTIONAL, -- Need OR
+ nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR
+ csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR
+}
+
+CSI-RS-ConfigBeamformed-v1430::= SEQUENCE {
+ csi-RS-ConfigNZP-ApList-r14 SEQUENCE (SIZE (1..8)) OF CSI-RS-ConfigNZP-r11
+ OPTIONAL, -- Need OR
+ nzp-ResourceConfigOriginal-v1430 CSI-RS-Config-NZP-v1430 OPTIONAL, -- Need OR
+ csi-RS-NZP-Activation-r14 CSI-RS-ConfigNZP-Activation-r14 OPTIONAL -- Need OR
+}
+
+CSI-RS-Config-NZP-v1430::= SEQUENCE {
+ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR
+ frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR
+}
+
+CSI-RS-ConfigNZP-Activation-r14::= SEQUENCE {
+ csi-RS-NZP-mode-r14 ENUMERATED {semiPersistent, aperiodic},
+ activatedResources-r14 INTEGER (0..4)
+}
+
+
+CSI-RS-ConfigEMIMO-r13 ::= CHOICE {
+ release NULL,
+ setup CHOICE {
+ nonPrecoded-r13 CSI-RS-ConfigNonPrecoded-r13,
+ beamformed-r13 CSI-RS-ConfigBeamformed-r13
+ }
+}
+
+CSI-RS-ConfigEMIMO-v1430 ::= CHOICE {
+ release NULL,
+ setup CHOICE {
+ nonPrecoded-v1430 CSI-RS-ConfigNonPrecoded-v1430,
+ beamformed-v1430 CSI-RS-ConfigBeamformed-v1430
+ }
+}
+
+CSI-RS-ConfigEMIMO-v1480 ::= CHOICE {
+ release NULL,
+ setup CHOICE {
+ nonPrecoded-v1480 CSI-RS-ConfigNonPrecoded-v1480,
+ beamformed-v1480 CSI-RS-ConfigBeamformed-v1430
+ }
+}
+
+CSI-RS-ConfigEMIMO-v1530 ::= CHOICE {
+ release NULL,
+ setup CHOICE {
+ nonPrecoded-v1530 CSI-RS-ConfigNonPrecoded-v1530
+ }
+}
+
+CSI-RS-ConfigEMIMO2-r14 ::= CHOICE {
+ release NULL,
+ setup CSI-RS-ConfigBeamformed-r14
+}
+
+CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ periodicityOffsetIndex-r14 INTEGER (0..1023) OPTIONAL, -- Need OR
+ eMIMO-Type2-r14 CSI-RS-ConfigEMIMO2-r14 OPTIONAL -- Need ON
+ }
+}
+
+
+
+CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE {
+ p-C-AndCBSRList-r13 P-C-AndCBSR-Pair-r13 OPTIONAL, -- Need OR
+ codebookConfigN1-r13 ENUMERATED {n1, n2, n3, n4, n8},
+ codebookConfigN2-r13 ENUMERATED {n1, n2, n3, n4, n8},
+ codebookOverSamplingRateConfig-O1-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR
+ codebookOverSamplingRateConfig-O2-r13 ENUMERATED {n4, n8} OPTIONAL, -- Need OR
+ codebookConfig-r13 INTEGER (1..4),
+ csi-IM-ConfigIdList-r13 SEQUENCE (SIZE (1..2)) OF CSI-IM-ConfigId-r13 OPTIONAL, -- Need OR
+ csi-RS-ConfigNZP-EMIMO-r13 CSI-RS-ConfigNZP-EMIMO-r13 OPTIONAL -- Need ON
+}
+
+CSI-RS-ConfigNonPrecoded-v1430::= SEQUENCE {
+ csi-RS-ConfigNZP-EMIMO-v1430 CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON
+ codebookConfigN1-v1430 ENUMERATED {n5, n6, n7, n10, n12, n14, n16},
+ codebookConfigN2-v1430 ENUMERATED {n5, n6, n7},
+ nzp-ResourceConfigTM9-Original-v1430 CSI-RS-Config-NZP-v1430
+}
+
+CSI-RS-ConfigNonPrecoded-v1480::= SEQUENCE {
+ csi-RS-ConfigNZP-EMIMO-v1480 CSI-RS-ConfigNZP-EMIMO-v1430 OPTIONAL, -- Need ON
+ codebookConfigN1-v1480 ENUMERATED {n5, n6, n7, n10, n12, n14, n16} OPTIONAL, -- Need OR
+ codebookConfigN2-r1480 ENUMERATED {n5, n6, n7} OPTIONAL, -- Need OR
+ nzp-ResourceConfigTM9-Original-v1480 CSI-RS-Config-NZP-v1430
+}
+
+CSI-RS-ConfigNonPrecoded-v1530 ::= SEQUENCE {
+ p-C-AndCBSRList-r15 P-C-AndCBSR-Pair-r15 OPTIONAL -- Need OR
+}
+
+
+CSI-RS-ConfigNZP-r11 ::= SEQUENCE {
+ csi-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11,
+ antennaPortsCount-r11 ENUMERATED {an1, an2, an4, an8},
+ resourceConfig-r11 INTEGER (0..31),
+ subframeConfig-r11 INTEGER (0..154),
+ scramblingIdentity-r11 INTEGER (0..503),
+ qcl-CRS-Info-r11 SEQUENCE {
+ qcl-ScramblingIdentity-r11 INTEGER (0..503),
+ crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1},
+ mbsfn-SubframeConfigList-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeConfigList MBSFN-SubframeConfigList
+ }
+ } OPTIONAL -- Need ON
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ csi-RS-ConfigNZPId-v1310 CSI-RS-ConfigNZPId-v1310 OPTIONAL -- Need ON
+ ]],
+ [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR
+ frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR
+ ]],
+ [[ mbsfn-SubframeConfigList-v1430 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430
+ }
+ } OPTIONAL -- Need OP
+ ]]
+}
+
+CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nzp-resourceConfigList-r13 SEQUENCE (SIZE (1..2)) OF NZP-ResourceConfig-r13,
+ cdmType-r13 ENUMERATED {cdm2, cdm4} OPTIONAL -- Need OR
+ }
+}
+
+CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE {
+ -- All extensions are for Non-Precoded so could be grouped by setup/ release choice
+ nzp-resourceConfigListExt-r14 SEQUENCE (SIZE (0..4)) OF NZP-ResourceConfig-r13,
+ cdmType-v1430 ENUMERATED {cdm8 } OPTIONAL -- Need OR
+}
+
+NZP-ResourceConfig-r13 ::= SEQUENCE {
+ resourceConfig-r13 ResourceConfig-r13,
+ ...,
+ [[ transmissionComb-r14 NZP-TransmissionComb-r14 OPTIONAL, -- Need OR
+ frequencyDensity-r14 NZP-FrequencyDensity-r14 OPTIONAL -- Need OR
+ ]]
+}
+
+ResourceConfig-r13 ::= INTEGER (0..31)
+
+NZP-TransmissionComb-r14 ::= INTEGER (0..2)
+NZP-FrequencyDensity-r14 ::= ENUMERATED {d1, d2, d3}
+
+
+CSI-RS-ConfigNZPId-r11 ::= INTEGER (1..maxCSI-RS-NZP-r11)
+CSI-RS-ConfigNZPId-v1310 ::= INTEGER (minCSI-RS-NZP-r13..maxCSI-RS-NZP-r13)
+CSI-RS-ConfigNZPId-r13 ::= INTEGER (1..maxCSI-RS-NZP-r13)
+
+
+CSI-RS-ConfigZP-r11 ::= SEQUENCE {
+ csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11,
+ resourceConfigList-r11 BIT STRING (SIZE (16)),
+ subframeConfig-r11 INTEGER (0..154),
+ ...
+}
+
+CSI-RS-ConfigZP-ApList-r14 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE (SIZE (1.. maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11
+}
+
+
+CSI-RS-ConfigZPId-r11 ::= INTEGER (1..maxCSI-RS-ZP-r11)
+
+
+DataInactivityTimer-r14 ::= ENUMERATED {
+ s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60,
+ s80, s100, s120, s150, s180}
+
+
+DMRS-Config-r11 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ scramblingIdentity-r11 INTEGER (0..503),
+ scramblingIdentity2-r11 INTEGER (0..503)
+ }
+}
+DMRS-Config-v1310 ::= SEQUENCE {
+ dmrs-tableAlt-r13 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+
+DRB-Identity ::= INTEGER (1..32)
+
+
+EPDCCH-Config-r11 ::= SEQUENCE{
+ config-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframePatternConfig-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframePattern-r11 MeasSubframePattern-r10
+ }
+ } OPTIONAL, -- Need ON
+ startSymbol-r11 INTEGER (1..4) OPTIONAL, -- Need OP
+ setConfigToReleaseList-r11 EPDCCH-SetConfigToReleaseList-r11 OPTIONAL, -- Need ON
+ setConfigToAddModList-r11 EPDCCH-SetConfigToAddModList-r11 OPTIONAL -- Need ON
+ }
+ }
+}
+
+EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfig-r11
+
+EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE(1..maxEPDCCH-Set-r11)) OF EPDCCH-SetConfigId-r11
+
+EPDCCH-SetConfig-r11 ::= SEQUENCE {
+ setConfigId-r11 EPDCCH-SetConfigId-r11,
+ transmissionType-r11 ENUMERATED {localised, distributed},
+ resourceBlockAssignment-r11 SEQUENCE{
+ numberPRB-Pairs-r11 ENUMERATED {n2, n4, n8},
+ resourceBlockAssignment-r11 BIT STRING (SIZE(4..38))
+ },
+ dmrs-ScramblingSequenceInt-r11 INTEGER (0..503),
+ pucch-ResourceStartOffset-r11 INTEGER (0..2047),
+ re-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11 OPTIONAL, -- Need OR
+ ...,
+ [[ csi-RS-ConfigZPId2-r12 CHOICE {
+ release NULL,
+ setup CSI-RS-ConfigZPId-r11
+ } OPTIONAL -- Need ON
+ ]],
+ [[ numberPRB-Pairs-v1310 CHOICE {
+ release NULL,
+ setup ENUMERATED {n6}
+ } OPTIONAL, -- Need ON
+ mpdcch-config-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ csi-NumRepetitionCE-r13 ENUMERATED {sf1, sf2, sf4, sf8, sf16, sf32},
+ mpdcch-pdsch-HoppingConfig-r13 ENUMERATED {on,off},
+ mpdcch-StartSF-UESS-r13 CHOICE {
+ fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4,
+ v5, v8, v10}, tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10,
+ v20, spare1}
+ },
+ mpdcch-NumRepetition-r13 ENUMERATED {r1, r2, r4, r8, r16,
+ r32, r64, r128, r256},
+ mpdcch-Narrowband-r13 INTEGER (1.. maxAvailNarrowBands-r13)
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+EPDCCH-SetConfigId-r11 ::= INTEGER (0..1)
+
+
+EIMTA-MainConfig-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ eimta-RNTI-r12 C-RNTI,
+ eimta-CommandPeriodicity-r12 ENUMERATED {sf10, sf20, sf40, sf80},
+ eimta-CommandSubframeSet-r12 BIT STRING (SIZE(10))
+ }
+}
+
+EIMTA-MainConfigServCell-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ eimta-UL-DL-ConfigIndex-r12 INTEGER (1..5),
+ eimta-HARQ-ReferenceConfig-r12 ENUMERATED {sa2, sa4, sa5},
+ mbsfn-SubframeConfigList-v1250 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeConfigList-r12 MBSFN-SubframeConfigList
+ }
+ }
+ }
+}
+
+
+LogicalChannelConfig ::= SEQUENCE {
+ ul-SpecificParameters SEQUENCE {
+ priority INTEGER (1..16),
+ prioritisedBitRate ENUMERATED {
+ kBps0, kBps8, kBps16, kBps32, kBps64, kBps128,
+ kBps256, infinity, kBps512-v1020, kBps1024-v1020,
+ kBps2048-v1020, spare5, spare4, spare3, spare2,
+ spare1},
+ bucketSizeDuration ENUMERATED {
+ ms50, ms100, ms150, ms300, ms500, ms1000, spare2,
+ spare1},
+ logicalChannelGroup INTEGER (0..3) OPTIONAL -- Need OR
+ } OPTIONAL, -- Cond UL
+ ...,
+ [[ logicalChannelSR-Mask-r9 ENUMERATED {setup} OPTIONAL -- Cond SRmask
+ ]],
+ [[ logicalChannelSR-Prohibit-r12 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ laa-UL-Allowed-r14 BOOLEAN OPTIONAL, -- Need ON
+ bitRateQueryProhibitTimer-r14 ENUMERATED {
+ s0, s0dot4, s0dot8, s1dot6, s3, s6, s12,
+ s30} OPTIONAL --Need OR
+ ]],
+ [[ allowedTTI-Lengths-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ shortTTI-r15 BOOLEAN,
+ subframeTTI-r15 BOOLEAN
+ }
+ } OPTIONAL, -- Need ON
+ logicalChannelSR-Restriction-r15 CHOICE {
+ release NULL,
+ setup ENUMERATED {spucch, pucch}
+ } OPTIONAL, -- Need ON
+ channellAccessPriority-r15 CHOICE {
+ release NULL,
+ setup INTEGER (1..4)
+ } OPTIONAL, -- Need ON
+ lch-CellRestriction-r15 BIT STRING (SIZE (maxServCell-r13)) OPTIONAL -- Need ON
+ ]]
+}
+
+
+LWA-Configuration-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ lwa-Config-r13 LWA-Config-r13
+ }
+}
+
+LWA-Config-r13 ::= SEQUENCE {
+ lwa-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON
+ lwa-WT-Counter-r13 INTEGER (0..65535) OPTIONAL, -- Need ON
+ ...,
+ [[ wt-MAC-Address-r14 OCTET STRING (SIZE (6)) OPTIONAL -- Need ON
+ ]]
+}
+
+
+LWIP-Configuration-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ lwip-Config-r13 LWIP-Config-r13
+ }
+}
+
+LWIP-Config-r13 ::= SEQUENCE {
+ lwip-MobilityConfig-r13 WLAN-MobilityConfig-r13 OPTIONAL, -- Need ON
+ tunnelConfigLWIP-r13 TunnelConfigLWIP-r13 OPTIONAL, -- Need ON
+ ...
+}
+
+
+MAC-MainConfig ::= SEQUENCE {
+ ul-SCH-Config SEQUENCE {
+ maxHARQ-Tx ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n7, n8,
+ n10, n12, n16, n20, n24, n28,
+ spare2, spare1} OPTIONAL, -- Need ON
+ periodicBSR-Timer PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON
+ retxBSR-Timer RetxBSR-Timer-r12,
+ ttiBundling BOOLEAN
+ } OPTIONAL, -- Need ON
+ drx-Config DRX-Config OPTIONAL, -- Need ON
+ timeAlignmentTimerDedicated TimeAlignmentTimer,
+ phr-Config CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ periodicPHR-Timer ENUMERATED {sf10, sf20, sf50, sf100, sf200,
+ sf500, sf1000, infinity},
+ prohibitPHR-Timer ENUMERATED {sf0, sf10, sf20, sf50, sf100,
+ sf200, sf500, sf1000},
+ dl-PathlossChange ENUMERATED {dB1, dB3, dB6, infinity}
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ sr-ProhibitTimer-r9 INTEGER (0..7) OPTIONAL -- Need ON
+ ]],
+ [[ mac-MainConfig-v1020 SEQUENCE {
+ sCellDeactivationTimer-r10 ENUMERATED {
+ rf2, rf4, rf8, rf16, rf32, rf64, rf128,
+ spare} OPTIONAL, -- Need OP
+ extendedBSR-Sizes-r10 ENUMERATED {setup} OPTIONAL, -- Need OR
+ extendedPHR-r10 ENUMERATED {setup} OPTIONAL -- Need OR
+ } OPTIONAL -- Need ON
+ ]],
+ [[ stag-ToReleaseList-r11 STAG-ToReleaseList-r11 OPTIONAL, -- Need ON
+ stag-ToAddModList-r11 STAG-ToAddModList-r11 OPTIONAL, -- Need ON
+ drx-Config-v1130 DRX-Config-v1130 OPTIONAL -- Need ON
+ ]],
+ [[ e-HARQ-Pattern-r12 BOOLEAN OPTIONAL, -- Need ON
+ dualConnectivityPHR CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ phr-ModeOtherCG-r12 ENUMERATED {real, virtual}
+ }
+ } OPTIONAL, -- Need ON
+ logicalChannelSR-Config-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ logicalChannelSR-ProhibitTimer-r12 ENUMERATED {sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1}
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ drx-Config-v1310 DRX-Config-v1310 OPTIONAL, -- Need ON
+ extendedPHR2-r13 BOOLEAN OPTIONAL, -- Need ON
+ eDRX-Config-CycleStartOffset-r13 CHOICE {
+ release NULL,
+ setup
+ CHOICE {
+ sf5120 INTEGER(0..1),
+ sf10240 INTEGER(0..3)
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ drx-Config-r13 CHOICE {
+ release NULL,
+ setup DRX-Config-r13
+ } OPTIONAL -- Need ON
+ ]],
+ [[ skipUplinkTx-r14 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ skipUplinkTxSPS-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ skipUplinkTxDynamic-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ }
+ } OPTIONAL, -- Need ON
+ dataInactivityTimerConfig-r14 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ dataInactivityTimer-r14 DataInactivityTimer-r14
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ shortTTI-AndSPT-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ drx-Config-r15 DRX-Config-r15 OPTIONAL, -- Need ON
+ periodicBSR-Timer-r15 ENUMERATED {
+ sf1, sf5, sf10, sf16, sf20, sf32, sf40,
+ sf64, sf80, sf128, sf160, sf320, sf640,
+ sf1280, sf2560, infinity}
+ OPTIONAL, -- Need ON
+ proc-Timeline-r15 ENUMERATED {nplus4set1, nplus6set1,
+ nplus6set2, nplus8set2 } OPTIONAL, -- Need ON
+ ssr-ProhibitTimer-r15 INTEGER (0..7) OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need ON
+ mpdcch-UL-HARQ-ACK-FeedbackConfig-r15 BOOLEAN OPTIONAL, -- Need ON
+ dormantStateTimers-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sCellHibernationTimer-r15 ENUMERATED {
+ rf2, rf4, rf8, rf16, rf32, rf64, rf128, spare} OPTIONAL, -- Need OR
+ dormantSCellDeactivationTimer-r15 ENUMERATED {
+ rf2, rf4, rf8, rf16, rf32, rf64,
+ rf128, rf320, rf640, rf1280, rf2560,
+ rf5120, rf10240, spare3, spare2, spare1} OPTIONAL -- Need OR
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+MAC-MainConfigSCell-r11 ::= SEQUENCE {
+ stag-Id-r11 STAG-Id-r11 OPTIONAL, -- Need OP
+ ...
+}
+
+DRX-Config ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ onDurationTimer ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200},
+ drx-InactivityTimer ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200, psf300, psf500, psf750,
+ psf1280, psf1920, psf2560, psf0-v1020,
+ spare9, spare8, spare7, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ drx-RetransmissionTimer ENUMERATED {
+ psf1, psf2, psf4, psf6, psf8, psf16,
+ psf24, psf33},
+ longDRX-CycleStartOffset CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf1280 INTEGER(0..1279),
+ sf2048 INTEGER(0..2047),
+ sf2560 INTEGER(0..2559)
+ },
+ shortDRX SEQUENCE {
+ shortDRX-Cycle ENUMERATED {
+ sf2, sf5, sf8, sf10, sf16, sf20,
+ sf32, sf40, sf64, sf80, sf128, sf160,
+ sf256, sf320, sf512, sf640},
+ drxShortCycleTimer INTEGER (1..16)
+ } OPTIONAL -- Need OR
+ }
+}
+
+DRX-Config-v1130 ::= SEQUENCE {
+ drx-RetransmissionTimer-v1130 ENUMERATED {psf0-v1130} OPTIONAL, --Need OR
+ longDRX-CycleStartOffset-v1130 CHOICE {
+ sf60-v1130 INTEGER(0..59),
+ sf70-v1130 INTEGER(0..69)
+ } OPTIONAL, --Need OR
+ shortDRX-Cycle-v1130 ENUMERATED {sf4-v1130} OPTIONAL --Need OR
+}
+DRX-Config-v1310 ::= SEQUENCE {
+ longDRX-CycleStartOffset-v1310 SEQUENCE {
+ sf60-v1310 INTEGER(0..59)
+ } OPTIONAL --Need OR
+}
+
+DRX-Config-r13 ::= SEQUENCE {
+ onDurationTimer-v1310 ENUMERATED {psf300, psf400, psf500, psf600,
+ psf800, psf1000, psf1200, psf1600} OPTIONAL, --Need OR
+ drx-RetransmissionTimer-v1310 ENUMERATED {psf40, psf64, psf80, psf96, psf112,
+ psf128, psf160, psf320}
+ OPTIONAL, --Need OR
+ drx-ULRetransmissionTimer-r13 ENUMERATED {psf0, psf1, psf2, psf4, psf6, psf8, psf16,
+ psf24, psf33, psf40, psf64, psf80, psf96,
+ psf112, psf128, psf160, psf320}
+ OPTIONAL --Need OR
+}
+
+DRX-Config-r15 ::= SEQUENCE {
+ drx-RetransmissionTimerShortTTI-r15 ENUMERATED {
+ tti10, tti20, tti40, tti64, tti80, tti96,
+ tti112,tti128, tti160, tti320} OPTIONAL, --Need OR
+ drx-UL-RetransmissionTimerShortTTI-r15 ENUMERATED {
+ tti0, tti1, tti2, tti4, tti6, tti8, tti16,
+ tti24, tti33, tti40, tti64, tti80, tti96, tti112,
+ tti128, tti160, tti320} OPTIONAL --Need OR
+}
+
+PeriodicBSR-Timer-r12 ::= ENUMERATED {
+ sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, sf1280, sf2560,
+ infinity, spare1}
+
+RetxBSR-Timer-r12 ::= ENUMERATED {
+ sf320, sf640, sf1280, sf2560, sf5120,
+ sf10240, spare2, spare1}
+
+STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-Id-r11
+
+STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..maxSTAG-r11)) OF STAG-ToAddMod-r11
+
+STAG-ToAddMod-r11 ::= SEQUENCE {
+ stag-Id-r11 STAG-Id-r11,
+ timeAlignmentTimerSTAG-r11 TimeAlignmentTimer,
+ ...
+}
+
+STAG-Id-r11::= INTEGER (1..maxSTAG-r11)
+
+
+P-C-AndCBSR-r11 ::= SEQUENCE {
+ p-C-r11 INTEGER (-8..15),
+ codebookSubsetRestriction-r11 BIT STRING
+}
+
+P-C-AndCBSR-r13 ::= SEQUENCE {
+ p-C-r13 INTEGER (-8..15),
+ cbsr-Selection-r13 CHOICE{
+ nonPrecoded-r13 SEQUENCE {
+ codebookSubsetRestriction1-r13 BIT STRING,
+ codebookSubsetRestriction2-r13 BIT STRING
+ },
+ beamformedK1a-r13 SEQUENCE {
+ codebookSubsetRestriction3-r13 BIT STRING
+ },
+ beamformedKN-r13 SEQUENCE {
+ codebookSubsetRestriction-r13 BIT STRING
+ }
+ },
+ ...
+}
+
+P-C-AndCBSR-r15 ::= SEQUENCE {
+ p-C-r15 INTEGER (-8..15),
+ codebookSubsetRestriction4-r15 BIT STRING
+}
+
+P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11
+
+P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13
+
+P-C-AndCBSR-Pair-r15 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r15
+
+
+PDCCH-ConfigSCell-r13 ::= SEQUENCE {
+ skipMonitoringDCI-format0-1A-r13 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+PDCCH-ConfigLAA-r14 ::= SEQUENCE {
+ maxNumberOfSchedSubframes-Format0B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR
+ maxNumberOfSchedSubframes-Format4B-r14 ENUMERATED {sf2, sf3, sf4} OPTIONAL, -- Need OR
+ skipMonitoringDCI-Format0A-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ skipMonitoringDCI-Format4A-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ pdcch-CandidateReductions-Format0A-r14
+ PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON
+ pdcch-CandidateReductions-Format4A-r14
+ PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON
+ pdcch-CandidateReductions-Format0B-r14
+ PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL, -- Need ON
+ pdcch-CandidateReductions-Format4B-r14
+ PDCCH-CandidateReductionsLAA-UL-r14 OPTIONAL -- Need ON
+}
+
+PDCCH-CandidateReductionValue-r13 ::= ENUMERATED {n0, n33, n66, n100}
+
+PDCCH-CandidateReductionValue-r14 ::= ENUMERATED {n0, n50, n100, n150}
+
+PDCCH-CandidateReductions-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ pdcch-candidateReductionAL1-r13 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL2-r13 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL3-r13 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL4-r13 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL5-r13 PDCCH-CandidateReductionValue-r13
+ }
+}
+
+PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ pdcch-candidateReductionAL1-r14 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL2-r14 PDCCH-CandidateReductionValue-r13,
+ pdcch-candidateReductionAL3-r14 PDCCH-CandidateReductionValue-r14,
+ pdcch-candidateReductionAL4-r14 PDCCH-CandidateReductionValue-r14,
+ pdcch-candidateReductionAL5-r14 PDCCH-CandidateReductionValue-r14
+ }
+}
+
+
+PDCP-Config ::= SEQUENCE {
+ discardTimer ENUMERATED {
+ ms50, ms100, ms150, ms300, ms500,
+ ms750, ms1500, infinity
+ } OPTIONAL, -- Cond Setup
+ rlc-AM SEQUENCE {
+ statusReportRequired BOOLEAN
+ } OPTIONAL, -- Cond Rlc-AM
+ rlc-UM SEQUENCE {
+ pdcp-SN-Size ENUMERATED {len7bits, len12bits}
+ } OPTIONAL, -- Cond Rlc-UM
+ 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
+ },
+ ...
+ }
+ },
+ ...,
+ [[ rn-IntegrityProtection-r10 ENUMERATED {enabled} OPTIONAL -- Cond RN
+ ]],
+ [[ pdcp-SN-Size-v1130 ENUMERATED {len15bits} OPTIONAL -- Cond Rlc-AM2
+ ]],
+ [[ ul-DataSplitDRB-ViaSCG-r12 BOOLEAN OPTIONAL, -- Need ON
+ t-Reordering-r12 ENUMERATED {
+ ms0, ms20, ms40, ms60, ms80, ms100, ms120, ms140,
+ ms160, ms180, ms200, ms220, ms240, ms260, ms280, ms300,
+ ms500, ms750, spare14, spare13, spare12, spare11, spare10,
+ spare9, spare8, spare7, spare6, spare5, spare4, spare3,
+ spare2, spare1} OPTIONAL -- Cond SetupS
+ ]],
+ [[ ul-DataSplitThreshold-r13 CHOICE {
+ release NULL,
+ setup ENUMERATED {
+ b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800,
+ b25600, b51200, b102400, b204800, b409600, b819200,
+ spare1}
+ } OPTIONAL, -- Need ON
+ pdcp-SN-Size-v1310 ENUMERATED {len18bits} OPTIONAL, -- Cond Rlc-AM3
+ statusFeedback-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ statusPDU-TypeForPolling-r13 ENUMERATED {type1, type2} OPTIONAL, -- Need ON
+ statusPDU-Periodicity-Type1-r13 ENUMERATED {
+ ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90,
+ ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000,
+ ms10000, ms20000, ms50000} OPTIONAL, -- Need ON
+ statusPDU-Periodicity-Type2-r13 ENUMERATED {
+ ms5, ms10, ms20, ms30, ms40, ms50, ms60, ms70, ms80, ms90,
+ ms100, ms150, ms200, ms300, ms500, ms1000, ms2000, ms5000,
+ ms10000, ms20000, ms50000} OPTIONAL, -- Need ON
+ statusPDU-Periodicity-Offset-r13 ENUMERATED {
+ ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500,
+ ms2500, ms5000, ms25000} OPTIONAL -- Need ON
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ ul-LWA-Config-r14 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ ul-LWA-DRB-ViaWLAN-r14 BOOLEAN,
+ ul-LWA-DataSplitThreshold-r14 ENUMERATED {
+ b0, b100, b200, b400, b800, b1600, b3200, b6400,
+ b12800, b25600, b51200, b102400, b204800, b409600,
+ b819200 } OPTIONAL -- Need OR
+ }
+ } OPTIONAL, -- Need ON
+ uplinkOnlyHeaderCompression-r14 CHOICE {
+ notUsed-r14 NULL,
+ rohc-r14 SEQUENCE {
+ maxCID-r14 INTEGER (1..16383) DEFAULT 15,
+ profiles-r14 SEQUENCE {
+ profile0x0006-r14 BOOLEAN
+ },
+ ...
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ uplinkDataCompression-r15 SEQUENCE {
+ bufferSize-r15 ENUMERATED {kbyte2, kbyte4, kbyte8, spare1},
+ dictionary-r15 ENUMERATED {sip-SDP, operator} OPTIONAL, -- Need OR
+ ...
+ } OPTIONAL,-- Cond Rlc-AM2
+ pdcp-DuplicationConfig-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ pdcp-Duplication-r15 ENUMERATED {configured, activated}
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+
+PDSCH-ConfigCommon ::= SEQUENCE {
+ referenceSignalPower INTEGER (-60..50),
+ p-b INTEGER (0..3)
+}
+
+PDSCH-ConfigCommon-v1310 ::= SEQUENCE {
+ pdsch-maxNumRepetitionCEmodeA-r13 ENUMERATED {
+ r16, r32 } OPTIONAL, -- Need OR
+ pdsch-maxNumRepetitionCEmodeB-r13 ENUMERATED {
+ r192, r256, r384, r512, r768, r1024,
+ r1536, r2048} OPTIONAL -- Need OR
+}
+
+PDSCH-ConfigDedicated::= SEQUENCE {
+ p-a ENUMERATED {
+ dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3}
+}
+
+PDSCH-ConfigDedicated-v1130 ::= SEQUENCE {
+ dmrs-ConfigPDSCH-r11 DMRS-Config-r11 OPTIONAL, -- Need ON
+ qcl-Operation ENUMERATED {typeA, typeB} OPTIONAL, -- Need OR
+ re-MappingQCLConfigToReleaseList-r11 RE-MappingQCLConfigToReleaseList-r11 OPTIONAL, -- Need ON
+ re-MappingQCLConfigToAddModList-r11 RE-MappingQCLConfigToAddModList-r11 OPTIONAL -- Need ON
+}
+
+PDSCH-ConfigDedicated-v1280 ::= SEQUENCE {
+ tbsIndexAlt-r12 ENUMERATED {a26, a33} OPTIONAL -- Need OR
+}
+
+PDSCH-ConfigDedicated-v1310 ::= SEQUENCE {
+ dmrs-ConfigPDSCH-v1310 DMRS-Config-v1310 OPTIONAL -- Need ON
+}
+
+PDSCH-ConfigDedicated-v1430 ::= SEQUENCE {
+ ce-PDSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL, -- Need OP
+ ce-PDSCH-TenProcesses-r14 ENUMERATED {on} OPTIONAL, -- Need OR
+ ce-HARQ-AckBundling-r14 ENUMERATED {on} OPTIONAL, -- Need OR
+ ce-SchedulingEnhancement-r14 ENUMERATED {range1, range2} OPTIONAL, -- Need OR
+ tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR
+}
+
+PDSCH-ConfigDedicated-v1530 ::= SEQUENCE {
+ qcl-Operation-v1530 ENUMERATED {typeC} OPTIONAL, -- Need OR
+ tbs-IndexAlt3-r15 ENUMERATED {a37} OPTIONAL, -- Need OR
+ -- eNote (ToDo): Clarify that eMTC fields (i.e. fields starting with ce-) do not apply
+ -- for SCell (merging issue)
+ ce-CQI-AlternativeTableConfig-r15 ENUMERATED {on} OPTIONAL, -- Need OR
+ ce-PDSCH-64QAM-Config-r15 ENUMERATED {on} OPTIONAL, -- Need OR
+ ce-PDSCH-FlexibleStartPRB-AllocConfig-r15 ENUMERATED {on} OPTIONAL, -- Need OR
+ altMCS-TableScalingConfig-r15 ENUMERATED {oDot5, oDot625, oDot75, oDot875} OPTIONAL -- Need OR
+}
+
+PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE {
+ tbsIndexAlt2-r14 ENUMERATED {b33} OPTIONAL -- Need OR
+}
+
+RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-Config-r11
+
+RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxRE-MapQCL-r11)) OF PDSCH-RE-MappingQCL-ConfigId-r11
+
+PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE {
+ pdsch-RE-MappingQCL-ConfigId-r11 PDSCH-RE-MappingQCL-ConfigId-r11,
+ optionalSetOfFields-r11 SEQUENCE {
+ crs-PortsCount-r11 ENUMERATED {n1, n2, n4, spare1},
+ crs-FreqShift-r11 INTEGER (0..5),
+ mbsfn-SubframeConfigList-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeConfigList MBSFN-SubframeConfigList
+ }
+ } OPTIONAL, -- Need ON
+ pdsch-Start-r11 ENUMERATED {reserved, n1, n2, n3, n4, assigned}
+ } OPTIONAL, -- Need OP
+ csi-RS-ConfigZPId-r11 CSI-RS-ConfigZPId-r11,
+ qcl-CSI-RS-ConfigNZPId-r11 CSI-RS-ConfigNZPId-r11 OPTIONAL, -- Need OR
+ ...,
+ [[ mbsfn-SubframeConfigList-v1430 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ subframeConfigList-v1430 MBSFN-SubframeConfigList-v1430
+ }
+ } OPTIONAL -- Need OP
+ ]],
+ [[ codewordOneConfig-v1530 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ crs-PortsCount-v1530 ENUMERATED {n1, n2, n4, spare1},
+ crs-FreqShift-v1530 INTEGER (0..5),
+ mbsfn-SubframeConfigList-v1530 MBSFN-SubframeConfigList OPTIONAL,
+ mbsfn-SubframeConfigListExt-v1530 MBSFN-SubframeConfigList-v1430 OPTIONAL,
+ pdsch-Start-v1530 ENUMERATED {reserved, n1, n2, n3, n4, assigned},
+ csi-RS-ConfigZPId-v1530 CSI-RS-ConfigZPId-r11,
+ qcl-CSI-RS-ConfigNZPId-v1530 CSI-RS-ConfigNZPId-r11 OPTIONAL
+ }
+ } OPTIONAL -- Cond TypeC
+ ]]
+}
+
+
+PDSCH-RE-MappingQCL-ConfigId-r11 ::= INTEGER (1..maxRE-MapQCL-r11)
+
+PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF PerCC-GapIndication-r14
+
+PerCC-GapIndication-r14 ::= SEQUENCE {
+ servCellId-r14 ServCellIndex-r13,
+ gapIndication-r14 ENUMERATED {gap, ncsg, nogap-noNcsg}
+}
+
+
+PHICH-Config ::= SEQUENCE {
+ phich-Duration ENUMERATED {normal, extended},
+ phich-Resource ENUMERATED {oneSixth, half, one, two}
+}
+
+
+PhysicalConfigDedicated ::= SEQUENCE {
+ pdsch-ConfigDedicated PDSCH-ConfigDedicated OPTIONAL, -- Need ON
+ pucch-ConfigDedicated PUCCH-ConfigDedicated OPTIONAL, -- Need ON
+ pusch-ConfigDedicated PUSCH-ConfigDedicated OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated UplinkPowerControlDedicated OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUCCH TPC-PDCCH-Config OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUSCH TPC-PDCCH-Config OPTIONAL, -- Need ON
+ cqi-ReportConfig CQI-ReportConfig OPTIONAL, -- Cond CQI-r8
+ soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON
+ antennaInfo CHOICE {
+ explicitValue AntennaInfoDedicated,
+ defaultValue NULL
+ } OPTIONAL, -- Cond AI-r8
+ schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON
+ ...,
+ [[ cqi-ReportConfig-v920 CQI-ReportConfig-v920 OPTIONAL, -- Cond CQI-r8
+ antennaInfo-v920 AntennaInfoDedicated-v920 OPTIONAL -- Cond AI-r8
+ ]],
+ [[ antennaInfo-r10 CHOICE {
+ explicitValue-r10 AntennaInfoDedicated-r10,
+ defaultValue NULL
+ } OPTIONAL, -- Cond AI-r10
+ antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON
+ cif-Presence-r10 BOOLEAN OPTIONAL, -- Need ON
+ cqi-ReportConfig-r10 CQI-ReportConfig-r10 OPTIONAL, -- Cond CQI-r10
+ csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-v1020 PUCCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1020 PUSCH-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ schedulingRequestConfig-v1020 SchedulingRequestConfig-v1020 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-v1020
+ SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodic-r10
+ SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated-v1020
+ UplinkPowerControlDedicated-v1020 OPTIONAL -- Need ON
+ ]],
+ [[ additionalSpectrumEmissionCA-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ additionalSpectrumEmissionPCell-r10 AdditionalSpectrumEmission
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ -- DL configuration as well as configuration applicable for DL and UL
+ csi-RS-ConfigNZPToReleaseList-r11
+ CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToAddModList-r11
+ CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToReleaseList-r11
+ CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON
+ epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ -- UL configuration
+ cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-v1130 PUCCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1130 PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated-v1130
+ UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON
+ ]],
+ [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Cond AI-r10
+ eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON
+ eimta-MainConfigPCell-r12 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-v1250 PUCCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON
+ cqi-ReportConfigPCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated-v1250
+ UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1250 PUSCH-ConfigDedicated-v1250 OPTIONAL, -- Need ON
+ csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON
+ ]],
+ [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON
+ ]],
+ [[ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-r13 PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-r13 PUSCH-ConfigDedicated-r13 OPTIONAL, -- Need ON
+ pdcch-CandidateReductions-r13
+ PDCCH-CandidateReductions-r13 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-v1310
+ SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedUpPTsExt-r13
+ SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodic-v1310
+ SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13
+ SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON
+ csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON
+ ce-Mode-r13 CHOICE {
+ release NULL,
+ setup ENUMERATED {ce-ModeA,ce-ModeB}
+ } OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON
+ ]],
+ [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON
+ ]],
+ [[ typeA-SRS-TPC-PDCCH-Group-r14 CHOICE {
+ release NULL,
+ setup SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config-r14
+ } OPTIONAL, -- Need ON
+ must-Config-r14 CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ k-max-r14 ENUMERATED {l1, l3},
+ p-a-must-r14 ENUMERATED {
+ dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3} OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need ON
+ pusch-EnhancementsConfig-r14 PUSCH-EnhancementsConfig-r14 OPTIONAL, -- Need ON
+ ce-pdsch-pusch-EnhancementConfig-r14 ENUMERATED {on} OPTIONAL, -- Need OR
+ antennaInfo-v1430 AntennaInfoDedicated-v1430 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-v1430 PUCCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v1430 PDSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicated-v1430 OPTIONAL, -- Need ON
+ soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRSPCell
+ soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt
+ soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL, -- Cond AperiodicSRS
+ soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Cond AperiodicSRSExt
+ csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON
+ csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON
+ semiOpenLoop-r14 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ csi-RS-Config-v1480 CSI-RS-Config-v1480 OPTIONAL -- Need ON
+ ]],
+ [[ physicalConfigDedicatedSTTI-r15 PhysicalConfigDedicatedSTTI-r15 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v1530 PDSCH-ConfigDedicated-v1530 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1530 PUSCH-ConfigDedicated-v1530 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1530 CQI-ReportConfig-v1530 OPTIONAL,-- Need ON
+ antennaInfo-v1530 AntennaInfoDedicated-v1530 OPTIONAL,-- Need ON
+ csi-RS-Config-v1530 CSI-RS-Config-v1530 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated-v1530
+ UplinkPowerControlDedicated-v1530 OPTIONAL, -- Need ON
+ semiStaticCFI-Config-r15 CHOICE{
+ release NULL,
+ setup CHOICE{
+ cfi-Config-r15 CFI-Config-r15,
+ cfi-PatternConfig-r15 CFI-PatternConfig-r15
+ }
+ } OPTIONAL, -- Need ON
+ blindPDSCH-Repetition-Config-r15 CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ blindSubframePDSCH-Repetitions-r15 BOOLEAN,
+ blindSlotSubslotPDSCH-Repetitions-r15 BOOLEAN,
+ maxNumber-SubframePDSCH-Repetitions-r15 ENUMERATED {n4,n6} OPTIONAL, -- Need ON
+ maxNumber-SlotSubslotPDSCH-Repetitions-r15 ENUMERATED {n4,n6} OPTIONAL, -- Need ON
+ rv-SubframePDSCH-Repetitions-r15 ENUMERATED {dlrvseq1, dlrvseq2} OPTIONAL, -- Need ON
+ rv-SlotsublotPDSCH-Repetitions-r15 ENUMERATED {dlrvseq1, dlrvseq2} OPTIONAL, -- Need ON
+ numberOfProcesses-SubframePDSCH-Repetitions-r15 INTEGER(1..16) OPTIONAL, -- Need ON
+ numberOfProcesses-SlotSubslotPDSCH-Repetitions-r15 INTEGER(1..16) OPTIONAL, -- Need ON
+ mcs-restrictionSubframePDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL, -- Need ON
+ mcs-restrictionSlotSubslotPDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL -- Need ON
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+PhysicalConfigDedicated-v1370 ::= SEQUENCE {
+ pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5
+}
+
+PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE {
+ -- DL configuration as well as configuration applicable for DL and UL
+ nonUL-Configuration-r10 SEQUENCE {
+ antennaInfo-r10
+ AntennaInfoDedicated-r10 OPTIONAL, -- Need ON
+ crossCarrierSchedulingConfig-r10
+ CrossCarrierSchedulingConfig-r10 OPTIONAL, -- Need ON
+ csi-RS-Config-r10 CSI-RS-Config-r10 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-r10 PDSCH-ConfigDedicated OPTIONAL -- Need ON
+ } OPTIONAL, -- Cond SCellAdd
+ -- UL configuration
+ ul-Configuration-r10 SEQUENCE {
+ antennaInfoUL-r10 AntennaInfoUL-r10 OPTIONAL, -- Need ON
+ pusch-ConfigDedicatedSCell-r10
+ PUSCH-ConfigDedicatedSCell-r10 OPTIONAL, -- Cond PUSCH-SCell1
+ uplinkPowerControlDedicatedSCell-r10
+ UplinkPowerControlDedicatedSCell-r10 OPTIONAL, -- Need ON
+ cqi-ReportConfigSCell-r10 CQI-ReportConfigSCell-r10 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-r10
+ SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-v1020
+ SoundingRS-UL-ConfigDedicated-v1020 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodic-r10
+ SoundingRS-UL-ConfigDedicatedAperiodic-r10 OPTIONAL -- Need ON
+ } OPTIONAL, -- Cond CommonUL
+ ...,
+ [[ -- DL configuration as well as configuration applicable for DL and UL
+ csi-RS-ConfigNZPToReleaseList-r11
+ CSI-RS-ConfigNZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToAddModList-r11
+ CSI-RS-ConfigNZPToAddModList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToReleaseList-r11
+ CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToAddModList-r11
+ CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON
+ epdcch-Config-r11 EPDCCH-Config-r11 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v1130 PDSCH-ConfigDedicated-v1130 OPTIONAL, -- Need ON
+ -- UL configuration
+ cqi-ReportConfig-v1130 CQI-ReportConfig-v1130 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1130
+ PUSCH-ConfigDedicated-v1130 OPTIONAL, -- Cond PUSCH-SCell1
+ uplinkPowerControlDedicatedSCell-v1130
+ UplinkPowerControlDedicated-v1130 OPTIONAL -- Need ON
+ ]],
+ [[ antennaInfo-v1250 AntennaInfoDedicated-v1250 OPTIONAL, -- Need ON
+ eimta-MainConfigSCell-r12
+ EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON
+ cqi-ReportConfigSCell-v1250 CQI-ReportConfig-v1250 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicatedSCell-v1250
+ UplinkPowerControlDedicated-v1250 OPTIONAL, -- Need ON
+ csi-RS-Config-v1250 CSI-RS-Config-v1250 OPTIONAL -- Need ON
+ ]],
+ [[ pdsch-ConfigDedicated-v1280 PDSCH-ConfigDedicated-v1280 OPTIONAL -- Need ON
+ ]],
+ [[ pucch-Cell-r13 ENUMERATED {true} OPTIONAL, -- Cond PUCCH-SCell1
+ pucch-SCell CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ pucch-ConfigDedicated-r13
+ PUCCH-ConfigDedicated-r13 OPTIONAL, -- Need ON
+ schedulingRequestConfig-r13
+ SchedulingRequestConfigSCell-r13 OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUCCH-SCell-r13
+ TPC-PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-r13
+ PUSCH-ConfigDedicated-r13 OPTIONAL, -- Cond PUSCH-SCell
+ uplinkPowerControlDedicated-r13
+ UplinkPowerControlDedicatedSCell-v1310 OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need ON
+ crossCarrierSchedulingConfig-r13
+ CrossCarrierSchedulingConfig-r13 OPTIONAL, -- Cond Cross-Carrier-Config
+ pdcch-ConfigSCell-r13 PDCCH-ConfigSCell-r13 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1310 CQI-ReportConfig-v1310 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v1310 PDSCH-ConfigDedicated-v1310 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicated-v1310
+ SoundingRS-UL-ConfigDedicated-v1310 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedUpPTsExt-r13
+ SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodic-v1310
+ SoundingRS-UL-ConfigDedicatedAperiodic-v1310 OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13
+ SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 OPTIONAL, -- Need ON
+ csi-RS-Config-v1310 CSI-RS-Config-v1310 OPTIONAL, -- Need ON
+ laa-SCellConfiguration-r13 LAA-SCellConfiguration-r13 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToAddModListExt-r13 CSI-RS-ConfigNZPToAddModListExt-r13 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToReleaseListExt-r13 CSI-RS-ConfigNZPToReleaseListExt-r13 OPTIONAL -- Need ON
+ ]],
+ [[ cqi-ReportConfig-v1320 CQI-ReportConfig-v1320 OPTIONAL -- Need ON
+ ]],
+ [[ laa-SCellConfiguration-v1430 LAA-SCellConfiguration-v1430
+ OPTIONAL, -- Need ON
+ typeB-SRS-TPC-PDCCH-Config-r14 SRS-TPC-PDCCH-Config-r14 OPTIONAL, -- Need ON
+
+ uplinkPUSCH-LessPowerControlDedicated-v1430 UplinkPUSCH-LessPowerControlDedicated-v1430 OPTIONAL, -- Need ON
+ soundingRS-UL-PeriodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-UL-ConfigDedicated OPTIONAL, -- Cond PeriodicSRS
+ soundingRS-UL-PeriodicConfigDedicatedUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 OPTIONAL, -- Cond PeriodicSRSExt
+ soundingRS-UL-AperiodicConfigDedicatedList-r14 SEQUENCE (SIZE (1..2)) OF SoundingRS-AperiodicSet-r14 OPTIONAL, -- Cond AperiodicSRS
+ soundingRS-UL-ConfigDedicatedApUpPTsExtList-r14 SEQUENCE (SIZE (1..4)) OF SoundingRS-AperiodicSetUpPTsExt-r14 OPTIONAL, -- Cond AperiodicSRSExt
+ must-Config-r14 CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ k-max-r14 ENUMERATED {l1, l3},
+ p-a-must-r14 ENUMERATED {
+ dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3} OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1430 PUSCH-ConfigDedicatedSCell-v1430 OPTIONAL, -- Need ON
+ csi-RS-Config-v1430 CSI-RS-Config-v1430 OPTIONAL, -- Need ON
+ csi-RS-ConfigZP-ApList-r14 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1430 CQI-ReportConfig-v1430 OPTIONAL, -- Need ON
+ semiOpenLoop-r14 BOOLEAN OPTIONAL, -- Need ON
+ pdsch-ConfigDedicatedSCell-v1430 PDSCH-ConfigDedicatedSCell-v1430 OPTIONAL -- Need ON
+ ]],
+ [[ csi-RS-Config-v1480 CSI-RS-Config-v1480 OPTIONAL -- Need ON
+ ]],
+ [[ physicalConfigDedicatedSTTI-r15 PhysicalConfigDedicatedSTTI-r15 OPTIONAL, -- Need ON
+ pdsch-ConfigDedicated-v1530 PDSCH-ConfigDedicated-v1530 OPTIONAL, -- Need ON
+ cqi-ReportConfig-v1530 CQI-ReportConfig-v1530 OPTIONAL, -- Need ON
+ cqi-ReportConfigSCell-r15 CQI-ReportConfigSCell-r15 OPTIONAL, -- Need ON
+ cqi-ShortConfigSCell-r15 CQI-ShortConfigSCell-r15 OPTIONAL, -- Need ON
+ csi-RS-Config-v1530 CSI-RS-Config-v1530 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicatedSCell-v1530
+ UplinkPowerControlDedicated-v1530 OPTIONAL, -- Need ON
+ laa-SCellConfiguration-v1530 LAA-SCellConfiguration-v1530 OPTIONAL, -- Need ON
+ pusch-ConfigDedicated-v1530 PUSCH-ConfigDedicatedScell-v1530 OPTIONAL, -- Cond AUL
+ semiStaticCFI-Config-r15 CHOICE{
+ release NULL,
+ setup CHOICE{
+ cfi-Config-r15 CFI-Config-r15,
+ cfi-PatternConfig-r15 CFI-PatternConfig-r15
+ }
+ } OPTIONAL, -- Need ON
+ blindPDSCH-Repetition-Config-r15 CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ blindSubframePDSCH-Repetitions-r15 BOOLEAN,
+ blindSlotSubslotPDSCH-Repetitions-r15 BOOLEAN,
+ maxNumber-SubframePDSCH-Repetitions-r15 ENUMERATED {n4,n6} OPTIONAL, -- Need ON
+ maxNumber-SlotSubslotPDSCH-Repetitions-r15 ENUMERATED {n4,n6} OPTIONAL, -- Need ON
+ rv-SubframePDSCH-Repetitions-r15 ENUMERATED {dlrvseq1, dlrvseq2} OPTIONAL, -- Need ON
+ rv-SlotsublotPDSCH-Repetitions-r15 ENUMERATED {dlrvseq1, dlrvseq2} OPTIONAL, -- Need ON
+ numberOfProcesses-SubframePDSCH-Repetitions-r15 INTEGER(1..16) OPTIONAL, -- Need ON
+ numberOfProcesses-SlotSubslotPDSCH-Repetitions-r15 INTEGER(1..16) OPTIONAL, -- Need ON
+ mcs-restrictionSubframePDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL, -- Need ON
+ mcs-restrictionSlotSubslotPDSCH-Repetitions-r15 ENUMERATED {n0, n1} OPTIONAL -- Need ON
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE {
+ pucch-SCell-v1370 CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ pucch-ConfigDedicated-v1370 PUCCH-ConfigDedicated-v1370 OPTIONAL -- Cond PUCCH-Format4or5
+ }
+ }
+}
+
+CFI-Config-r15 ::= SEQUENCE {
+ cfi-SubframeNonMBSFN-r15 INTEGER (1..4) OPTIONAL, -- Need ON
+ cfi-SlotSubslotNonMBSFN-r15 INTEGER (1..3) OPTIONAL, -- Need ON
+ cfi-SubframeMBSFN-r15 INTEGER (1..2) OPTIONAL, -- Need ON
+ cfi-SlotSubslotMBSFN-r15 INTEGER (1..2) OPTIONAL -- Need ON
+}
+
+CFI-PatternConfig-r15 ::= SEQUENCE {
+ cfi-PatternSubframe-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..4) OPTIONAL, -- Need ON
+ cfi-PatternSlotSubslot-r15 SEQUENCE (SIZE(10)) OF INTEGER (1..3) OPTIONAL -- Need ON
+}
+
+LAA-SCellConfiguration-r13 ::= SEQUENCE {
+ subframeStartPosition-r13 ENUMERATED {s0, s07},
+ laa-SCellSubframeConfig-r13 BIT STRING (SIZE(8))
+}
+
+LAA-SCellConfiguration-v1430 ::= SEQUENCE {
+ crossCarrierSchedulingConfig-UL-r14 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ crossCarrierSchedulingConfigLAA-UL-r14 CrossCarrierSchedulingConfigLAA-UL-r14
+ }
+ } OPTIONAL, -- Cond Cross-Carrier-ConfigUL
+ lbt-Config-r14 LBT-Config-r14 OPTIONAL, -- Need ON
+ pdcch-ConfigLAA-r14 PDCCH-ConfigLAA-r14 OPTIONAL, -- Need ON
+ absenceOfAnyOtherTechnology-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ soundingRS-UL-ConfigDedicatedAperiodic-v1430
+ SoundingRS-UL-ConfigDedicatedAperiodic-v1430 OPTIONAL -- Need ON
+}
+
+LAA-SCellConfiguration-v1530 ::= SEQUENCE {
+ aul-Config-r15 AUL-Config-r15 OPTIONAL, -- Need ON
+ pusch-ModeConfigLAA-r15 PUSCH-ModeConfigLAA-r15 OPTIONAL -- Need OR
+}
+
+PUSCH-ModeConfigLAA-r15 ::= SEQUENCE {
+ laa-PUSCH-Mode1 BOOLEAN,
+ laa-PUSCH-Mode2 BOOLEAN,
+ laa-PUSCH-Mode3 BOOLEAN
+}
+
+LBT-Config-r14 ::= CHOICE{
+ maxEnergyDetectionThreshold-r14 INTEGER(-85..-52),
+ energyDetectionThresholdOffset-r14 INTEGER(-13..20)
+}
+
+
+CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZP-r11
+
+CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZP-r11
+
+CSI-RS-ConfigNZPToAddModList-r15 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r13)) OF CSI-RS-ConfigNZP-r11
+
+CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r11)) OF CSI-RS-ConfigNZPId-r11
+
+CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-v1310)) OF CSI-RS-ConfigNZPId-v1310
+
+CSI-RS-ConfigNZPToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxCSI-RS-NZP-r13)) OF CSI-RS-ConfigNZPId-r13
+
+CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZP-r11
+
+CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..maxCSI-RS-ZP-r11)) OF CSI-RS-ConfigZPId-r11
+
+PhysicalConfigDedicatedSTTI-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ antennaInfoDedicatedSTTI-r15 AntennaInfoDedicatedSTTI-r15 OPTIONAL, -- Need ON
+ antennaInfoUL-STTI-r15 AntennaInfoUL-STTI-r15 OPTIONAL, -- Need ON
+ pucch-ConfigDedicated-v1530 PUCCH-ConfigDedicated-v1530 OPTIONAL, -- Need ON
+ schedulingRequestConfig-v1530 SchedulingRequestConfig-v1530 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicatedSTTI-r15 UplinkPowerControlDedicatedSTTI-r15 OPTIONAL, --Need ON
+ cqi-ReportConfig-r15 CQI-ReportConfig-r15 OPTIONAL, -- Need ON
+ csi-RS-Config-r15 CSI-RS-Config-r15 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToReleaseList-r15 CSI-RS-ConfigNZPToReleaseList-r15 OPTIONAL, -- Need ON
+ csi-RS-ConfigNZPToAddModList-r15 CSI-RS-ConfigNZPToAddModList-r15 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToReleaseList-r15 CSI-RS-ConfigZPToReleaseList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZPToAddModList-r11 CSI-RS-ConfigZPToAddModList-r11 OPTIONAL, -- Need ON
+ csi-RS-ConfigZP-ApList-r15 CSI-RS-ConfigZP-ApList-r14 OPTIONAL, -- Need ON
+ eimta-MainConfig-r12 EIMTA-MainConfig-r12 OPTIONAL, -- Need ON
+ eimta-MainConfigServCell-r15 EIMTA-MainConfigServCell-r12 OPTIONAL, -- Need ON
+ semiOpenLoopSTTI-r15 BOOLEAN,
+ slotOrSubslotPDSCH-Config-r15 SlotOrSubslotPDSCH-Config-r15 OPTIONAL, -- Need ON
+ slotOrSubslotPUSCH-Config-r15 SlotOrSubslotPUSCH-Config-r15 OPTIONAL, -- Need ON
+ spdcch-Config-r15 SPDCCH-Config-r15 OPTIONAL, -- Need ON
+ spucch-Config-r15 SPUCCH-Config-r15 OPTIONAL, -- Need ON
+ srs-DCI7-TriggeringConfig-r15 BOOLEAN,
+ shortProcessingTime-r15 BOOLEAN,
+ shortTTI-r15 ShortTTI-r15 OPTIONAL -- Need ON
+ }
+}
+
+SoundingRS-AperiodicSet-r14 ::= SEQUENCE{
+ srs-CC-SetIndexList-r14
+ SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14
+ OPTIONAL, -- Cond SRS-Trigger-TypeA
+ soundingRS-UL-ConfigDedicatedAperiodic-r14
+ SoundingRS-UL-ConfigDedicatedAperiodic-r10
+}
+
+SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE{
+ srs-CC-SetIndexList-r14
+ SEQUENCE (SIZE (1..4)) OF SRS-CC-SetIndex-r14
+ OPTIONAL, -- Cond SRS-Trigger-TypeA
+ soundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r14
+ SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13
+}
+
+ShortTTI-r15 ::= SEQUENCE {
+ dl-STTI-Length-r15 ShortTTI-Length-r15 OPTIONAL, -- Need OR
+ ul-STTI-Length-r15 ShortTTI-Length-r15 OPTIONAL -- Need OR
+}
+
+ShortTTI-Length-r15 ::= ENUMERATED {slot, subslot}
+
+
+P-Max ::= INTEGER (-30..33)
+
+
+PRACH-ConfigSIB ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ prach-ConfigInfo PRACH-ConfigInfo
+}
+
+PRACH-ConfigSIB-v1310 ::= SEQUENCE {
+ rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13,
+ mpdcch-startSF-CSS-RA-r13 CHOICE {
+ fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8,
+ v10},
+ tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare}
+ } OPTIONAL, -- Cond MP
+ prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR
+ prach-ParametersListCE-r13 PRACH-ParametersListCE-r13
+}
+
+PRACH-ConfigSIB-v1530 ::= SEQUENCE {
+ edt-PRACH-ParametersListCE-r15 SEQUENCE (SIZE(1..maxCE-Level-r13)) OF EDT-PRACH-ParametersCE-r15
+}
+
+PRACH-Config ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON
+}
+
+PRACH-Config-v1310 ::= SEQUENCE {
+ rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsPrachInfoList-r13 OPTIONAL, -- Cond MP
+ mpdcch-startSF-CSS-RA-r13 CHOICE {
+ fdd-r13 ENUMERATED {v1, v1dot5, v2, v2dot5, v4, v5, v8,
+ v10},
+ tdd-r13 ENUMERATED {v1, v2, v4, v5, v8, v10, v20, spare}
+ } OPTIONAL, -- Cond MP
+ prach-HoppingOffset-r13 INTEGER (0..94) OPTIONAL, -- Need OR
+ prach-ParametersListCE-r13 PRACH-ParametersListCE-r13 OPTIONAL, -- Cond MP
+ initial-CE-level-r13 INTEGER (0..3) OPTIONAL -- Need OR
+}
+
+PRACH-Config-v1430 ::= SEQUENCE {
+ rootSequenceIndexHighSpeed-r14 INTEGER (0..837),
+ zeroCorrelationZoneConfigHighSpeed-r14 INTEGER (0..12),
+ prach-ConfigIndexHighSpeed-r14 INTEGER (0..63),
+ prach-FreqOffsetHighSpeed-r14 INTEGER (0..94)
+}
+
+PRACH-ConfigSCell-r10 ::= SEQUENCE {
+ prach-ConfigIndex-r10 INTEGER (0..63)
+}
+
+PRACH-ConfigInfo ::= SEQUENCE {
+ prach-ConfigIndex INTEGER (0..63),
+ highSpeedFlag BOOLEAN,
+ zeroCorrelationZoneConfig INTEGER (0..15),
+ prach-FreqOffset INTEGER (0..94)
+}
+
+PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF PRACH-ParametersCE-r13
+
+PRACH-ParametersCE-r13 ::= SEQUENCE {
+ prach-ConfigIndex-r13 INTEGER (0..63),
+ prach-FreqOffset-r13 INTEGER (0..94),
+ prach-StartingSubframe-r13 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128,
+ sf256} OPTIONAL, -- Need OP
+ maxNumPreambleAttemptCE-r13
+ ENUMERATED {n3, n4, n5, n6, n7, n8, n10} OPTIONAL, -- Need OP
+ numRepetitionPerPreambleAttempt-r13 ENUMERATED {n1,n2,n4,n8,n16,n32,n64,n128},
+ mpdcch-NarrowbandsToMonitor-r13 SEQUENCE (SIZE(1..2)) OF
+ INTEGER (1..maxAvailNarrowBands-r13),
+ mpdcch-NumRepetition-RA-r13 ENUMERATED {r1, r2, r4, r8, r16,
+ r32, r64, r128, r256},
+ prach-HoppingConfig-r13 ENUMERATED {on,off}
+}
+
+EDT-PRACH-ParametersCE-r15 ::= SEQUENCE {
+ edt-PRACH-ParametersCE-r15 SEQUENCE {
+ prach-ConfigIndex-r15 INTEGER (0..63),
+ prach-FreqOffset-r15 INTEGER (0..94),
+ prach-StartingSubframe-r15 ENUMERATED {sf2, sf4, sf8, sf16, sf32, sf64, sf128, sf256} OPTIONAL, -- Need OP
+ mpdcch-NarrowbandsToMonitor-r15 SEQUENCE (SIZE(1..2)) OF INTEGER (1..maxAvailNarrowBands-r13)
+ } OPTIONAL -- Need OR
+}
+
+RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE(1..3)) OF RSRP-Range
+
+
+PresenceAntennaPort1 ::= BOOLEAN
+
+
+PUCCH-ConfigCommon ::= SEQUENCE {
+ deltaPUCCH-Shift ENUMERATED {ds1, ds2, ds3},
+ nRB-CQI INTEGER (0..98),
+ nCS-AN INTEGER (0..7),
+ n1PUCCH-AN INTEGER (0..2047)
+}
+
+PUCCH-ConfigCommon-v1310 ::= SEQUENCE {
+ n1PUCCH-AN-InfoList-r13 N1PUCCH-AN-InfoList-r13 OPTIONAL, -- Need OR
+ pucch-NumRepetitionCE-Msg4-Level0-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR
+ pucch-NumRepetitionCE-Msg4-Level1-r13 ENUMERATED {n1, n2, n4, n8} OPTIONAL, -- Need OR
+ pucch-NumRepetitionCE-Msg4-Level2-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL, -- Need OR
+ pucch-NumRepetitionCE-Msg4-Level3-r13 ENUMERATED {n4, n8, n16, n32} OPTIONAL -- Need OR
+}
+
+PUCCH-ConfigCommon-v1430 ::= SEQUENCE {
+ pucch-NumRepetitionCE-Msg4-Level3-r14 ENUMERATED {n64, n128} OPTIONAL -- Need OR
+}
+
+PUCCH-ConfigDedicated ::= SEQUENCE {
+ ackNackRepetition CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ repetitionFactor ENUMERATED {n2, n4, n6, spare1},
+ n1PUCCH-AN-Rep INTEGER (0..2047)
+ }
+ },
+ tdd-AckNackFeedbackMode ENUMERATED {bundling, multiplexing} OPTIONAL -- Cond TDD
+}
+
+PUCCH-ConfigDedicated-v1020 ::= SEQUENCE {
+ pucch-Format-r10 CHOICE {
+ format3-r10 PUCCH-Format3-Conf-r13,
+ channelSelection-r10 SEQUENCE {
+ n1PUCCH-AN-CS-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1PUCCH-AN-CS-List-r10 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10
+ }
+ } OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need OR
+ twoAntennaPortActivatedPUCCH-Format1a1b-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ simultaneousPUCCH-PUSCH-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ n1PUCCH-AN-RepP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR
+}
+
+PUCCH-ConfigDedicated-v1130 ::= SEQUENCE {
+ n1PUCCH-AN-CS-v1130 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1PUCCH-AN-CS-ListP1-r11 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047)
+ }
+ } OPTIONAL, -- Need ON
+ nPUCCH-Param-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nPUCCH-Identity-r11 INTEGER (0..503),
+ n1PUCCH-AN-r11 INTEGER (0..2047)
+ }
+ } OPTIONAL -- Need ON
+}
+
+PUCCH-ConfigDedicated-v1250 ::= SEQUENCE {
+ nkaPUCCH-Param-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nkaPUCCH-AN-r12 INTEGER (0..2047)
+ }
+ }
+}
+
+PUCCH-ConfigDedicated-r13 ::= SEQUENCE {
+--Release 8
+ ackNackRepetition-r13 CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ repetitionFactor-r13 ENUMERATED {n2, n4, n6, spare1},
+ n1PUCCH-AN-Rep-r13 INTEGER (0..2047)
+ }
+ },
+ tdd-AckNackFeedbackMode-r13 ENUMERATED {bundling, multiplexing} OPTIONAL, -- Cond TDD
+--Release 10
+ pucch-Format-r13 CHOICE {
+ format3-r13 SEQUENCE {
+ n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON
+ twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549)
+ }
+ } OPTIONAL -- Need ON
+ },
+ channelSelection-r13 SEQUENCE {
+ n1PUCCH-AN-CS-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1PUCCH-AN-CS-List-r13 SEQUENCE (SIZE (1..2)) OF N1PUCCH-AN-CS-r10,
+ n1PUCCH-AN-CS-ListP1-r13 SEQUENCE (SIZE (2..4)) OF INTEGER (0..2047)
+ }
+ } OPTIONAL -- Need ON
+ },
+ format4-r13 SEQUENCE {
+ format4-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format4-resource-r13,
+ format4-MultiCSI-resourceConfiguration-r13 SEQUENCE (SIZE (1..2)) OF Format4-resource-r13 OPTIONAL -- Need OR
+ },
+ format5-r13 SEQUENCE {
+ format5-resourceConfiguration-r13 SEQUENCE (SIZE (4)) OF Format5-resource-r13,
+ format5-MultiCSI-resourceConfiguration-r13 Format5-resource-r13 OPTIONAL -- Need OR
+ }
+ } OPTIONAL, -- Need OR
+ twoAntennaPortActivatedPUCCH-Format1a1b-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ simultaneousPUCCH-PUSCH-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ n1PUCCH-AN-RepP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR
+--Release 11
+ nPUCCH-Param-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nPUCCH-Identity-r13 INTEGER (0..503),
+ n1PUCCH-AN-r13 INTEGER (0..2047)
+ }
+ } OPTIONAL, -- Need ON
+--Release 12
+ nkaPUCCH-Param-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nkaPUCCH-AN-r13 INTEGER (0..2047)
+ }
+ } OPTIONAL, -- Need ON
+--Release 13
+ spatialBundlingPUCCH-r13 BOOLEAN,
+ spatialBundlingPUSCH-r13 BOOLEAN,
+ harq-TimingTDD-r13 BOOLEAN,
+ codebooksizeDetermination-r13 ENUMERATED {dai,cc} OPTIONAL, -- Need OR
+ maximumPayloadCoderate-r13 INTEGER (0..7) OPTIONAL, -- Need OR
+ pucch-NumRepetitionCE-r13 CHOICE {
+ release NULL,
+ setup CHOICE {
+ modeA SEQUENCE {
+ pucch-NumRepetitionCE-format1-r13 ENUMERATED {r1, r2, r4, r8},
+ pucch-NumRepetitionCE-format2-r13 ENUMERATED {r1, r2, r4, r8}
+ },
+ modeB SEQUENCE {
+ pucch-NumRepetitionCE-format1-r13 ENUMERATED {r4, r8, r16, r32},
+ pucch-NumRepetitionCE-format2-r13 ENUMERATED {r4, r8, r16, r32}
+ }
+ }
+ } OPTIONAL --Need ON
+}
+
+PUCCH-ConfigDedicated-v1370 ::= SEQUENCE {
+ pucch-Format-v1370 CHOICE {
+ release NULL,
+ setup PUCCH-Format3-Conf-r13
+ }
+}
+
+PUCCH-Format3-Conf-r13 ::= SEQUENCE {
+ n3PUCCH-AN-List-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549) OPTIONAL, -- Need ON
+ twoAntennaPortActivatedPUCCH-Format3-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n3PUCCH-AN-ListP1-r13 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549)
+ }
+ } OPTIONAL -- Need ON
+}
+
+PUCCH-ConfigDedicated-v1430 ::= SEQUENCE {
+ pucch-NumRepetitionCE-format1-r14 ENUMERATED {r64,r128} OPTIONAL -- Need OR
+}
+
+PUCCH-ConfigDedicated-v1530 ::= SEQUENCE {
+ n1PUCCH-AN-SPT-r15 INTEGER (0..2047) OPTIONAL, -- Need OR
+ codebooksizeDeterminationSTTI-r15 ENUMERATED {dai,cc} OPTIONAL -- Need OR
+}
+
+Format4-resource-r13 ::= SEQUENCE {
+ startingPRB-format4-r13 INTEGER (0..109),
+ numberOfPRB-format4-r13 INTEGER (0..7)
+}
+
+Format5-resource-r13 ::= SEQUENCE {
+ startingPRB-format5-r13 INTEGER (0..109),
+ cdm-index-format5-r13 INTEGER (0..1)
+}
+
+
+
+N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+
+N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE(1..maxCE-Level-r13)) OF INTEGER (0..2047)
+
+
+PUSCH-ConfigCommon ::= SEQUENCE {
+ pusch-ConfigBasic SEQUENCE {
+ n-SB INTEGER (1..4),
+ hoppingMode ENUMERATED {interSubFrame, intraAndInterSubFrame},
+ pusch-HoppingOffset INTEGER (0..98),
+ enable64QAM BOOLEAN
+ },
+ ul-ReferenceSignalsPUSCH UL-ReferenceSignalsPUSCH
+}
+
+PUSCH-ConfigCommon-v1270 ::= SEQUENCE {
+ enable64QAM-v1270 ENUMERATED {true}
+}
+
+PUSCH-ConfigCommon-v1310 ::= SEQUENCE {
+ pusch-maxNumRepetitionCEmodeA-r13 ENUMERATED {
+ r8, r16, r32 } OPTIONAL, -- Need OR
+ pusch-maxNumRepetitionCEmodeB-r13 ENUMERATED {
+ r192, r256, r384, r512, r768, r1024,
+ r1536, r2048} OPTIONAL, -- Need OR
+ pusch-HoppingOffset-v1310
+ INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL -- Need OR
+}
+
+PUSCH-ConfigDedicated ::= SEQUENCE {
+ betaOffset-ACK-Index INTEGER (0..15),
+ betaOffset-RI-Index INTEGER (0..15),
+ betaOffset-CQI-Index INTEGER (0..15)
+}
+
+PUSCH-ConfigDedicated-v1020 ::= SEQUENCE {
+ betaOffsetMC-r10 SEQUENCE {
+ betaOffset-ACK-Index-MC-r10 INTEGER (0..15),
+ betaOffset-RI-Index-MC-r10 INTEGER (0..15),
+ betaOffset-CQI-Index-MC-r10 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+PUSCH-ConfigDedicated-v1130 ::= SEQUENCE {
+ pusch-DMRS-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nPUSCH-Identity-r11 INTEGER (0..509),
+ nDMRS-CSH-Identity-r11 INTEGER (0..509)
+ }
+ }
+}
+
+PUSCH-ConfigDedicated-v1250::= SEQUENCE {
+ uciOnPUSCH CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ betaOffset-ACK-Index-SubframeSet2-r12 INTEGER (0..15),
+ betaOffset-RI-Index-SubframeSet2-r12 INTEGER (0..15),
+ betaOffset-CQI-Index-SubframeSet2-r12 INTEGER (0..15),
+ betaOffsetMC-r12 SEQUENCE {
+ betaOffset-ACK-Index-MC-SubframeSet2-r12 INTEGER (0..15),
+ betaOffset-RI-Index-MC-SubframeSet2-r12 INTEGER (0..15),
+ betaOffset-CQI-Index-MC-SubframeSet2-r12 INTEGER (0..15)
+ } OPTIONAL -- Need OR
+ }
+ }
+}
+PUSCH-ConfigDedicated-r13 ::= SEQUENCE {
+ betaOffset-ACK-Index-r13 INTEGER (0..15),
+ betaOffset2-ACK-Index-r13 INTEGER (0..15) OPTIONAL, -- Need OR
+ betaOffset-RI-Index-r13 INTEGER (0..15),
+ betaOffset-CQI-Index-r13 INTEGER (0..15),
+ betaOffsetMC-r13 SEQUENCE {
+ betaOffset-ACK-Index-MC-r13 INTEGER (0..15),
+ betaOffset2-ACK-Index-MC-r13 INTEGER (0..15) OPTIONAL, -- Need OR
+ betaOffset-RI-Index-MC-r13 INTEGER (0..15),
+ betaOffset-CQI-Index-MC-r13 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ dmrs-WithOCC-Activated-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ pusch-DMRS-r11 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ nPUSCH-Identity-r13 INTEGER (0..509),
+ nDMRS-CSH-Identity-r13 INTEGER (0..509)
+ }
+ } OPTIONAL, -- Need ON
+ uciOnPUSCH CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ betaOffset-ACK-Index-SubframeSet2-r13 INTEGER (0..15),
+ betaOffset2-ACK-Index-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR
+ betaOffset-RI-Index-SubframeSet2-r13 INTEGER (0..15),
+ betaOffset-CQI-Index-SubframeSet2-r13 INTEGER (0..15),
+ betaOffsetMC-r12 SEQUENCE {
+ betaOffset-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15),
+ betaOffset2-ACK-Index-MC-SubframeSet2-r13 INTEGER (0..15) OPTIONAL, -- Need OR
+ betaOffset-RI-Index-MC-SubframeSet2-r13 INTEGER (0..15),
+ betaOffset-CQI-Index-MC-SubframeSet2-r13 INTEGER (0..15)
+ } OPTIONAL -- Need OR
+ }
+ } OPTIONAL, -- Need ON
+ pusch-HoppingConfig-r13 ENUMERATED {on} OPTIONAL -- Need OR
+}
+
+PUSCH-ConfigDedicated-v1430 ::= SEQUENCE {
+ ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {on} OPTIONAL, -- Need OR
+ ce-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5} OPTIONAL, -- Need OR
+ tdd-PUSCH-UpPTS-r14 TDD-PUSCH-UpPTS-r14 OPTIONAL, -- Need ON
+ ul-DMRS-IFDMA-r14 BOOLEAN,
+ enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need ON
+}
+
+PUSCH-ConfigDedicated-v1530 ::= SEQUENCE {
+ ce-PUSCH-FlexibleStartPRB-AllocConfig-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ offsetCE-ModeB-r15 INTEGER (-1..3) OPTIONAL -- Cond CE-ModeB
+ }
+ },
+ ce-PUSCH-SubPRB-Config-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ locationCE-ModeB-r15 INTEGER (0..5) OPTIONAL, -- Cond CE-ModeB
+ sixToneCyclicShift-r15 INTEGER (0..3),
+ threeToneCyclicShift-r15 INTEGER (0..2)
+ }
+ } OPTIONAL -- Need ON
+}
+
+PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE {
+ groupHoppingDisabled-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ dmrs-WithOCC-Activated-r10 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE {
+ enable256QAM-r14 Enable256QAM-r14 OPTIONAL -- Need OR
+}
+
+PUSCH-ConfigDedicatedScell-v1530 ::= SEQUENCE {
+ uci-OnPUSCH-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ betaOffsetAUL-r15 INTEGER (0..15)
+ }
+ }
+}
+
+TDD-PUSCH-UpPTS-r14 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ symPUSCH-UpPTS-r14 ENUMERATED {sym1, sym2, sym3, sym4, sym5, sym6} OPTIONAL, -- Need ON
+ dmrs-LessUpPTS-Config-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ }
+}
+
+Enable256QAM-r14 ::= CHOICE {
+ release NULL,
+ setup CHOICE {
+ tpc-SubframeSet-Configured-r14 SEQUENCE {
+ subframeSet1-DCI-Format0-r14 BOOLEAN,
+ subframeSet1-DCI-Format4-r14 BOOLEAN,
+ subframeSet2-DCI-Format0-r14 BOOLEAN,
+ subframeSet2-DCI-Format4-r14 BOOLEAN
+ },
+ tpc-SubframeSet-NotConfigured-r14 SEQUENCE {
+ dci-Format0-r14 BOOLEAN,
+ dci-Format4-r14 BOOLEAN
+ }
+ }
+}
+
+PUSCH-EnhancementsConfig-r14 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ pusch-HoppingOffsetPUSCH-Enh-r14 INTEGER (1..100) OPTIONAL, -- Need ON
+ interval-ULHoppingPUSCH-Enh-r14 CHOICE {
+ interval-FDD-PUSCH-Enh-r14 ENUMERATED {int1, int2, int4, int8},
+ interval-TDD-PUSCH-Enh-r14 ENUMERATED {int1, int5, int10, int20}
+ } OPTIONAL -- Need ON
+ }
+}
+
+UL-ReferenceSignalsPUSCH ::= SEQUENCE {
+ groupHoppingEnabled BOOLEAN,
+ groupAssignmentPUSCH INTEGER (0..29),
+ sequenceHoppingEnabled BOOLEAN,
+ cyclicShift INTEGER (0..7)
+}
+
+
+RACH-ConfigCommon ::= SEQUENCE {
+ preambleInfo SEQUENCE {
+ numberOfRA-Preambles ENUMERATED {
+ n4, n8, n12, n16, n20, n24, n28,
+ n32, n36, n40, n44, n48, n52, n56,
+ n60, n64},
+ preamblesGroupAConfig SEQUENCE {
+ sizeOfRA-PreamblesGroupA ENUMERATED {
+ n4, n8, n12, n16, n20, n24, n28,
+ n32, n36, n40, n44, n48, n52, n56,
+ n60},
+ messageSizeGroupA ENUMERATED {b56, b144, b208, b256},
+ messagePowerOffsetGroupB ENUMERATED {
+ minusinfinity, dB0, dB5, dB8, dB10, dB12,
+ dB15, dB18},
+ ...
+ } OPTIONAL -- Need OP
+ },
+ powerRampingParameters PowerRampingParameters,
+ ra-SupervisionInfo SEQUENCE {
+ preambleTransMax PreambleTransMax,
+ ra-ResponseWindowSize ENUMERATED {
+ sf2, sf3, sf4, sf5, sf6, sf7,
+ sf8, sf10},
+ mac-ContentionResolutionTimer ENUMERATED {
+ sf8, sf16, sf24, sf32, sf40, sf48,
+ sf56, sf64}
+ },
+ maxHARQ-Msg3Tx INTEGER (1..8),
+ ...,
+ [[ preambleTransMax-CE-r13 PreambleTransMax OPTIONAL, -- Need OR
+ rach-CE-LevelInfoList-r13 RACH-CE-LevelInfoList-r13 OPTIONAL -- Need OR
+ ]],
+ [[ edt-SmallTBS-Subset-r15 ENUMERATED {true} OPTIONAL -- Cond EDT-OR
+ ]]
+}
+
+RACH-ConfigCommon-v1250 ::= SEQUENCE {
+ txFailParams-r12 SEQUENCE {
+ connEstFailCount-r12 ENUMERATED {n1, n2, n3, n4},
+ connEstFailOffsetValidity-r12 ENUMERATED {s30, s60, s120, s240,
+ s300, s420, s600, s900},
+ connEstFailOffset-r12 INTEGER (0..15) OPTIONAL -- Need OP
+ }
+}
+
+RACH-ConfigCommonSCell-r11 ::= SEQUENCE {
+ powerRampingParameters-r11 PowerRampingParameters,
+ ra-SupervisionInfo-r11 SEQUENCE {
+ preambleTransMax-r11 PreambleTransMax
+ },
+ ...
+}
+
+RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..maxCE-Level-r13)) OF RACH-CE-LevelInfo-r13
+
+RACH-CE-LevelInfo-r13 ::= SEQUENCE {
+ preambleMappingInfo-r13 SEQUENCE {
+ firstPreamble-r13 INTEGER(0..63),
+ lastPreamble-r13 INTEGER(0..63)
+ },
+ ra-ResponseWindowSize-r13 ENUMERATED {sf20, sf50, sf80, sf120, sf180,
+ sf240, sf320, sf400},
+
+ mac-ContentionResolutionTimer-r13 ENUMERATED {sf80, sf100, sf120,
+ sf160, sf200, sf240, sf480, sf960},
+ rar-HoppingConfig-r13 ENUMERATED {on,off},
+ ...,
+ [[ edt-Parameters-r15 SEQUENCE {
+ edt-LastPreamble-r15 INTEGER(0..63),
+ edt-SmallTBS-Enabled-r15 BOOLEAN,
+ edt-TBS-r15 ENUMERATED {b328, b408, b504, b600, b712,
+ b808, b936, b1000or456},
+ mac-ContentionResolutionTimer-r15 ENUMERATED {sf240, sf480, sf960,
+ sf1920, sf3840, sf5760, sf7680, sf10240} OPTIONAL -- Need OP
+ } OPTIONAL -- Cond EDT
+ ]]
+}
+
+PowerRampingParameters ::= SEQUENCE {
+ powerRampingStep ENUMERATED {dB0, dB2,dB4, dB6},
+ preambleInitialReceivedTargetPower ENUMERATED {
+ dBm-120, dBm-118, dBm-116, dBm-114, dBm-112,
+ dBm-110, dBm-108, dBm-106, dBm-104, dBm-102,
+ dBm-100, dBm-98, dBm-96, dBm-94,
+ dBm-92, dBm-90}
+}
+
+PreambleTransMax ::= ENUMERATED {
+ n3, n4, n5, n6, n7, n8, n10, n20, n50,
+ n100, n200}
+
+
+RACH-ConfigDedicated ::= SEQUENCE {
+ ra-PreambleIndex INTEGER (0..63),
+ ra-PRACH-MaskIndex INTEGER (0..15)
+}
+
+
+RadioResourceConfigCommonSIB ::= SEQUENCE {
+ rach-ConfigCommon RACH-ConfigCommon,
+ bcch-Config BCCH-Config,
+ pcch-Config PCCH-Config,
+ prach-Config PRACH-ConfigSIB,
+ pdsch-ConfigCommon PDSCH-ConfigCommon,
+ pusch-ConfigCommon PUSCH-ConfigCommon,
+ pucch-ConfigCommon PUCCH-ConfigCommon,
+ soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon,
+ uplinkPowerControlCommon UplinkPowerControlCommon,
+ ul-CyclicPrefixLength UL-CyclicPrefixLength,
+ ...,
+ [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need OR
+ ]],
+ [[ rach-ConfigCommon-v1250 RACH-ConfigCommon-v1250 OPTIONAL -- Need OR
+ ]],
+ [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR
+ ]],
+ [[ bcch-Config-v1310 BCCH-Config-v1310 OPTIONAL, -- Need OR
+ pcch-Config-v1310 PCCH-Config-v1310 OPTIONAL, -- Need OR
+ freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need OR
+ pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR
+ pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need OR
+ prach-ConfigCommon-v1310 PRACH-ConfigSIB-v1310 OPTIONAL, -- Need OR
+ pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL -- Need OR
+ ]],
+ [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR
+ prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR
+ pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL -- Need OR
+ ]],
+ [[ prach-Config-v1530 PRACH-ConfigSIB-v1530 OPTIONAL, -- Cond EDT
+ ce-RSS-Config-r15 RSS-Config-r15 OPTIONAL, -- Need OR
+ wus-Config-r15 WUS-Config-r15 OPTIONAL, -- Need OR
+ highSpeedConfig-v1530 HighSpeedConfig-v1530 OPTIONAL -- Need OR
+ ]]
+}
+
+RadioResourceConfigCommon ::= SEQUENCE {
+ rach-ConfigCommon RACH-ConfigCommon OPTIONAL, -- Need ON
+ prach-Config PRACH-Config,
+ pdsch-ConfigCommon PDSCH-ConfigCommon OPTIONAL, -- Need ON
+ pusch-ConfigCommon PUSCH-ConfigCommon,
+ phich-Config PHICH-Config OPTIONAL, -- Need ON
+ pucch-ConfigCommon PUCCH-ConfigCommon OPTIONAL, -- Need ON
+ soundingRS-UL-ConfigCommon SoundingRS-UL-ConfigCommon OPTIONAL, -- Need ON
+ uplinkPowerControlCommon UplinkPowerControlCommon OPTIONAL, -- Need ON
+ antennaInfoCommon AntennaInfoCommon OPTIONAL, -- Need ON
+ p-Max P-Max OPTIONAL, -- Need OP
+ tdd-Config TDD-Config OPTIONAL, -- Cond TDD
+ ul-CyclicPrefixLength UL-CyclicPrefixLength,
+ ...,
+ [[ uplinkPowerControlCommon-v1020 UplinkPowerControlCommon-v1020 OPTIONAL -- Need ON
+ ]],
+ [[ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL -- Cond TDD3
+ ]],
+ [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR
+ ]],
+ [[
+ prach-Config-v1310 PRACH-Config-v1310 OPTIONAL, -- Need ON
+ freqHoppingParameters-r13 FreqHoppingParameters-r13 OPTIONAL, -- Need ON
+ pdsch-ConfigCommon-v1310 PDSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON
+ pucch-ConfigCommon-v1310 PUCCH-ConfigCommon-v1310 OPTIONAL, -- Need ON
+ pusch-ConfigCommon-v1310 PUSCH-ConfigCommon-v1310 OPTIONAL, -- Need ON
+ uplinkPowerControlCommon-v1310 UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON
+ ]],
+ [[ highSpeedConfig-r14 HighSpeedConfig-r14 OPTIONAL, -- Need OR
+ prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Need OR
+ pucch-ConfigCommon-v1430 PUCCH-ConfigCommon-v1430 OPTIONAL, -- Need OR
+ tdd-Config-v1430 TDD-Config-v1430 OPTIONAL -- Cond TDD3
+ ]],
+ [[
+ tdd-Config-v1450 TDD-Config-v1450 OPTIONAL -- Cond TDD3
+ ]],
+ [[ uplinkPowerControlCommon-v1530 UplinkPowerControlCommon-v1530 OPTIONAL, -- Need ON
+ highSpeedConfig-v1530 HighSpeedConfig-v1530 OPTIONAL -- Need OR
+ ]]
+}
+
+RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE {
+ basicFields-r12 RadioResourceConfigCommonSCell-r10,
+ pucch-ConfigCommon-r12 PUCCH-ConfigCommon,
+ rach-ConfigCommon-r12 RACH-ConfigCommon,
+ uplinkPowerControlCommonPSCell-r12 UplinkPowerControlCommonPSCell-r12,
+ ...,
+ [[ uplinkPowerControlCommonPSCell-v1310
+ UplinkPowerControlCommon-v1310 OPTIONAL -- Need ON
+ ]],
+ [[ uplinkPowerControlCommonPSCell-v1530
+ UplinkPowerControlCommon-v1530 OPTIONAL -- Need ON
+ ]]
+}
+
+RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE {
+ basicFields-v12f0 RadioResourceConfigCommonSCell-v10l0
+}
+
+RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE {
+ basicFields-v1440 RadioResourceConfigCommonSCell-v1440
+}
+
+RadioResourceConfigCommonSCell-r10 ::= SEQUENCE {
+ -- DL configuration as well as configuration applicable for DL and UL
+ nonUL-Configuration-r10 SEQUENCE {
+ -- 1: Cell characteristics
+ dl-Bandwidth-r10 ENUMERATED {n6, n15, n25, n50, n75, n100},
+ -- 2: Physical configuration, general
+ antennaInfoCommon-r10 AntennaInfoCommon,
+ mbsfn-SubframeConfigList-r10 MBSFN-SubframeConfigList OPTIONAL, -- Need OR
+ -- 3: Physical configuration, control
+ phich-Config-r10 PHICH-Config,
+ -- 4: Physical configuration, physical channels
+ pdsch-ConfigCommon-r10 PDSCH-ConfigCommon,
+ tdd-Config-r10 TDD-Config OPTIONAL -- Cond TDDSCell
+ },
+ -- UL configuration
+ ul-Configuration-r10 SEQUENCE {
+ ul-FreqInfo-r10 SEQUENCE {
+ ul-CarrierFreq-r10 ARFCN-ValueEUTRA OPTIONAL, -- Need OP
+ ul-Bandwidth-r10 ENUMERATED {n6, n15,
+ n25, n50, n75, n100} OPTIONAL, -- Need OP
+ additionalSpectrumEmissionSCell-r10 AdditionalSpectrumEmission
+ },
+ p-Max-r10 P-Max OPTIONAL, -- Need OP
+ uplinkPowerControlCommonSCell-r10 UplinkPowerControlCommonSCell-r10,
+ -- A special version of IE UplinkPowerControlCommon may be introduced
+ -- 3: Physical configuration, control
+ soundingRS-UL-ConfigCommon-r10 SoundingRS-UL-ConfigCommon,
+ ul-CyclicPrefixLength-r10 UL-CyclicPrefixLength,
+ -- 4: Physical configuration, physical channels
+ prach-ConfigSCell-r10 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11
+ pusch-ConfigCommon-r10 PUSCH-ConfigCommon
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ ul-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need OP
+ ]],
+ [[ rach-ConfigCommonSCell-r11 RACH-ConfigCommonSCell-r11 OPTIONAL, -- Cond ULSCell
+ prach-ConfigSCell-r11 PRACH-Config OPTIONAL, -- Cond UL
+ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD2
+ uplinkPowerControlCommonSCell-v1130
+ UplinkPowerControlCommonSCell-v1130 OPTIONAL -- Cond UL
+ ]],
+ [[ pusch-ConfigCommon-v1270 PUSCH-ConfigCommon-v1270 OPTIONAL -- Need OR
+ ]],
+ [[ pucch-ConfigCommon-r13 PUCCH-ConfigCommon OPTIONAL, -- Cond UL
+ uplinkPowerControlCommonSCell-v1310
+ UplinkPowerControlCommonSCell-v1310 OPTIONAL -- Cond UL
+ ]],
+ [[ highSpeedConfigSCell-r14 HighSpeedConfigSCell-r14 OPTIONAL, -- Need OR
+ prach-Config-v1430 PRACH-Config-v1430 OPTIONAL, -- Cond UL
+ ul-Configuration-r14 SEQUENCE {
+ ul-FreqInfo-r14 SEQUENCE {
+ ul-CarrierFreq-r14 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OP
+ ul-Bandwidth-r14 ENUMERATED {n6, n15,
+ n25, n50, n75, n100} OPTIONAL, -- Need OP
+ additionalSpectrumEmissionSCell-r14 AdditionalSpectrumEmission
+ },
+ p-Max-r14 P-Max OPTIONAL, -- Need OP
+ soundingRS-UL-ConfigCommon-r14 SoundingRS-UL-ConfigCommon,
+ ul-CyclicPrefixLength-r14 UL-CyclicPrefixLength,
+ prach-ConfigSCell-r14 PRACH-ConfigSCell-r10 OPTIONAL, -- Cond TDD-OR-NoR11
+ uplinkPowerControlCommonPUSCH-LessCell-v1430 UplinkPowerControlCommonPUSCH-LessCell-v1430 OPTIONAL -- Need OR
+} OPTIONAL, -- Cond ULSRS
+ harq-ReferenceConfig-r14 ENUMERATED {sa2,sa4,sa5} OPTIONAL, -- Need OR
+ soundingRS-FlexibleTiming-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON
+ ]],
+ [[ uplinkPowerControlCommonSCell-v1530 UplinkPowerControlCommon-v1530 OPTIONAL -- Need ON
+ ]]
+}
+
+RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE {
+ -- UL configuration
+ ul-Configuration-v10l0 SEQUENCE {
+ additionalSpectrumEmissionSCell-v10l0 AdditionalSpectrumEmission-v10l0
+ }
+}
+
+RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE {
+ ul-Configuration-v1440 SEQUENCE {
+ ul-FreqInfo-v1440 SEQUENCE {
+ additionalSpectrumEmissionSCell-v1440 AdditionalSpectrumEmission-v10l0
+ }
+ }
+}
+
+BCCH-Config ::= SEQUENCE {
+ modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16}
+}
+
+BCCH-Config-v1310 ::= SEQUENCE {
+ modificationPeriodCoeff-v1310 ENUMERATED {n64}
+}
+
+FreqHoppingParameters-r13 ::= SEQUENCE {
+ dummy ENUMERATED {nb2, nb4} OPTIONAL,
+ dummy2 CHOICE {
+ interval-FDD-r13 ENUMERATED {int1, int2, int4, int8},
+ interval-TDD-r13 ENUMERATED {int1, int5, int10, int20}
+ } OPTIONAL,
+ dummy3 CHOICE {
+ interval-FDD-r13 ENUMERATED {int2, int4, int8, int16},
+ interval-TDD-r13 ENUMERATED { int5, int10, int20, int40}
+ } OPTIONAL,
+ interval-ULHoppingConfigCommonModeA-r13 CHOICE {
+ interval-FDD-r13 ENUMERATED {int1, int2, int4, int8},
+ interval-TDD-r13 ENUMERATED {int1, int5, int10, int20}
+ } OPTIONAL, -- Cond MP-A
+ interval-ULHoppingConfigCommonModeB-r13 CHOICE {
+ interval-FDD-r13 ENUMERATED {int2, int4, int8, int16},
+ interval-TDD-r13 ENUMERATED { int5, int10, int20, int40}
+ } OPTIONAL, -- Cond MP-B
+ dummy4 INTEGER (1..maxAvailNarrowBands-r13) OPTIONAL
+}
+
+PCCH-Config ::= SEQUENCE {
+ defaultPagingCycle ENUMERATED {
+ rf32, rf64, rf128, rf256},
+ nB ENUMERATED {
+ fourT, twoT, oneT, halfT, quarterT, oneEighthT,
+ oneSixteenthT, oneThirtySecondT}
+}
+
+PCCH-Config-v1310 ::= SEQUENCE {
+ paging-narrowBands-r13 INTEGER (1..maxAvailNarrowBands-r13),
+ mpdcch-NumRepetition-Paging-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128, r256},
+ nB-v1310 ENUMERATED {one64thT, one128thT, one256thT}
+ OPTIONAL -- Need OR
+}
+
+UL-CyclicPrefixLength ::= ENUMERATED {len1, len2}
+
+HighSpeedConfig-r14 ::= SEQUENCE {
+ highSpeedEnhancedMeasFlag-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+HighSpeedConfig-v1530 ::= SEQUENCE {
+ highSpeedMeasGapCE-ModeA-r15 ENUMERATED {true}
+}
+
+HighSpeedConfigSCell-r14 ::= SEQUENCE {
+ highSpeedEnhancedDemodulationFlag-r14 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+
+RadioResourceConfigDedicated ::= SEQUENCE {
+ srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn
+ drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toEUTRA
+ drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need ON
+ mac-MainConfig CHOICE {
+ explicitValue MAC-MainConfig,
+ defaultValue NULL
+ } OPTIONAL, -- Cond HO-toEUTRA2
+ sps-Config SPS-Config OPTIONAL, -- Need ON
+ physicalConfigDedicated PhysicalConfigDedicated OPTIONAL, -- Need ON
+ ...,
+ [[ rlf-TimersAndConstants-r9 RLF-TimersAndConstants-r9 OPTIONAL -- Need ON
+ ]],
+ [[ measSubframePatternPCell-r10 MeasSubframePatternPCell-r10 OPTIONAL -- Need ON
+ ]],
+ [[ neighCellsCRS-Info-r11 NeighCellsCRS-Info-r11 OPTIONAL -- Need ON
+ ]],
+ [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON
+ ]],
+ [[ neighCellsCRS-Info-r13 NeighCellsCRS-Info-r13 OPTIONAL, -- Cond CRSIM
+ rlf-TimersAndConstants-r13 RLF-TimersAndConstants-r13 OPTIONAL -- Need ON
+ ]],
+ [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS
+ ]],
+ [[ srb-ToAddModExtList-r15 SRB-ToAddModExtList-r15 OPTIONAL, -- Need ON
+ srb-ToReleaseExtList-r15 INTEGER (4) OPTIONAL, -- Need ON
+
+ sps-Config-v1530 SPS-Config-v1530 OPTIONAL, -- Need ON
+
+ crs-IntfMitigConfig-r15 CHOICE {
+ release NULL,
+ setup CHOICE { crs-IntfMitigEnabled-15 NULL,
+ crs-IntfMitigNumPRBs-r15 ENUMERATED {n6, n24}
+ }
+ } OPTIONAL, -- Need ON
+ neighCellsCRS-Info-r15 NeighCellsCRS-Info-r15 OPTIONAL, -- Need ON
+ drb-ToAddModList-r15 DRB-ToAddModList-r15 OPTIONAL, -- Need ON
+ drb-ToReleaseList-r15 DRB-ToReleaseList-r15 OPTIONAL, -- Need ON
+ srb-ToReleaseListDupl-r15 SRB-ToReleaseListDupl-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+RadioResourceConfigDedicated-v1370 ::= SEQUENCE {
+ physicalConfigDedicated-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON
+}
+
+RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE {
+ -- UE specific configuration extensions applicable for an PSCell
+ physicalConfigDedicatedPSCell-r12 PhysicalConfigDedicated OPTIONAL, -- Need ON
+ sps-Config-r12 SPS-Config OPTIONAL, -- Need ON
+ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL, -- Need ON
+ ...,
+ [[ neighCellsCRS-InfoPSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON
+ ]],
+ [[ sps-Config-v1430 SPS-Config-v1430 OPTIONAL -- Cond SPS2
+ ]],
+ [[ sps-Config-v1530 SPS-Config-v1530 OPTIONAL, -- Need ON
+ crs-IntfMitigEnabled-r15 BOOLEAN OPTIONAL, -- Need ON
+ neighCellsCRS-Info-r15 NeighCellsCRS-Info-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE {
+ physicalConfigDedicatedPSCell-v1370 PhysicalConfigDedicated-v1370 OPTIONAL -- Need ON
+}
+
+RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE {
+ drb-ToAddModListSCG-r12 DRB-ToAddModListSCG-r12 OPTIONAL, -- Need ON
+ mac-MainConfigSCG-r12 MAC-MainConfig OPTIONAL, -- Need ON
+ rlf-TimersAndConstantsSCG-r12 RLF-TimersAndConstantsSCG-r12 OPTIONAL, -- Need ON
+ ...,
+ [[ drb-ToAddModListSCG-r15 DRB-ToAddModListSCG-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE {
+ -- UE specific configuration extensions applicable for an SCell
+ physicalConfigDedicatedSCell-r10 PhysicalConfigDedicatedSCell-r10 OPTIONAL, -- Need ON
+ ...,
+ [[ mac-MainConfigSCell-r11 MAC-MainConfigSCell-r11 OPTIONAL -- Cond SCellAdd
+ ]],
+ [[ naics-Info-r12 NAICS-AssistanceInfo-r12 OPTIONAL -- Need ON
+ ]],
+ [[ neighCellsCRS-InfoSCell-r13 NeighCellsCRS-Info-r13 OPTIONAL -- Need ON
+ ]],
+ [[ physicalConfigDedicatedSCell-v1370 PhysicalConfigDedicatedSCell-v1370 OPTIONAL -- Need ON
+ ]],
+ [[ crs-IntfMitigEnabled-r15 BOOLEAN OPTIONAL, -- Need ON
+ neighCellsCRS-Info-r15 NeighCellsCRS-Info-r15 OPTIONAL, -- Need ON
+ sps-Config-v1530 SPS-Config-v1530 OPTIONAL -- Need ON
+ ]]
+}
+
+SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
+
+SRB-ToAddModExtList-r15 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod
+
+SRB-ToAddMod ::= SEQUENCE {
+ srb-Identity INTEGER (1..2),
+ rlc-Config CHOICE {
+ explicitValue RLC-Config,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ logicalChannelConfig CHOICE {
+ explicitValue LogicalChannelConfig,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ ...,
+ [[ pdcp-verChange-r15 ENUMERATED {true} OPTIONAL, -- Cond NR-PDCP
+ rlc-Config-v1530 RLC-Config-v1530 OPTIONAL, -- Need ON
+ rlc-BearerConfigDupl-r15 RLC-BearerConfig-r15 OPTIONAL, -- Need ON
+ srb-Identity-v1530 INTEGER (4) OPTIONAL -- Need ON
+ ]]
+}
+
+SRB-ToReleaseListDupl-r15 ::= SEQUENCE (SIZE (1..2)) OF INTEGER (1..2)
+
+DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod
+DRB-ToAddModList-r15 ::= SEQUENCE (SIZE (1..maxDRB-r15)) OF DRB-ToAddMod
+
+DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddModSCG-r12
+DRB-ToAddModListSCG-r15 ::= SEQUENCE (SIZE (1..maxDRB-r15)) OF DRB-ToAddModSCG-r12
+
+DRB-ToAddMod ::= SEQUENCE {
+ eps-BearerIdentity INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ drb-Identity DRB-Identity,
+ pdcp-Config PDCP-Config OPTIONAL, -- Cond PDCP
+ rlc-Config RLC-Config OPTIONAL, -- Cond SetupM
+ logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupM
+ logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond SetupM
+ ...,
+ [[ drb-TypeChange-r12 ENUMERATED {toMCG} OPTIONAL, -- Need OP
+ rlc-Config-v1250 RLC-Config-v1250 OPTIONAL -- Need ON
+ ]],
+ [[ rlc-Config-v1310 RLC-Config-v1310 OPTIONAL, -- Need ON
+ drb-TypeLWA-r13 BOOLEAN OPTIONAL, -- Need ON
+ drb-TypeLWIP-r13 ENUMERATED {lwip, lwip-DL-only,
+ lwip-UL-only, eutran} OPTIONAL -- Need ON
+ ]],
+ [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL, -- Need ON
+ lwip-UL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP
+ lwip-DL-Aggregation-r14 BOOLEAN OPTIONAL, -- Cond LWIP
+ lwa-WLAN-AC-r14 ENUMERATED {ac-bk, ac-be, ac-vi, ac-vo} OPTIONAL -- Cond UL-LWA
+ ]],
+ [[ rlc-Config-v1510 RLC-Config-v1510 OPTIONAL -- Need ON
+ ]],
+ [[ rlc-Config-v1530 RLC-Config-v1530 OPTIONAL, -- Need ON
+ rlc-BearerConfigDupl-r15 RLC-BearerConfig-r15 OPTIONAL, -- Need ON
+ logicalChannelIdentity-r15 INTEGER (32..38) OPTIONAL -- Need ON
+ ]]
+}
+
+DRB-ToAddModSCG-r12 ::= SEQUENCE {
+ drb-Identity-r12 DRB-Identity,
+ drb-Type-r12 CHOICE {
+ split-r12 NULL,
+ scg-r12 SEQUENCE {
+ eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ pdcp-Config-r12 PDCP-Config OPTIONAL -- Cond PDCP-S
+ }
+ } OPTIONAL, -- Cond SetupS2
+ rlc-ConfigSCG-r12 RLC-Config OPTIONAL, -- Cond SetupS
+ rlc-Config-v1250 RLC-Config-v1250 OPTIONAL, -- Need ON
+ logicalChannelIdentitySCG-r12 INTEGER (3..10) OPTIONAL, -- Cond DRB-SetupS
+ logicalChannelConfigSCG-r12 LogicalChannelConfig OPTIONAL, -- Cond SetupS
+ ...,
+ [[ rlc-Config-v1430 RLC-Config-v1430 OPTIONAL -- Need ON
+ ]],
+ [[ logicalChannelIdentitySCG-r15 INTEGER (32..38) OPTIONAL, -- Need ON
+ rlc-Config-v1530 RLC-Config-v1530 OPTIONAL, -- Need ON
+ rlc-BearerConfigDupl-r15 RLC-BearerConfig-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity
+DRB-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxDRB-r15)) OF DRB-Identity
+
+MeasSubframePatternPCell-r10 ::= CHOICE {
+ release NULL,
+ setup MeasSubframePattern-r10
+}
+
+NeighCellsCRS-Info-r11 ::= CHOICE {
+ release NULL,
+ setup CRS-AssistanceInfoList-r11
+}
+
+CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r11
+
+CRS-AssistanceInfo-r11 ::= SEQUENCE {
+ physCellId-r11 PhysCellId,
+ antennaPortsCount-r11 ENUMERATED {an1, an2, an4, spare1},
+ mbsfn-SubframeConfigList-r11 MBSFN-SubframeConfigList,
+ ...,
+ [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON
+ ]]
+}
+
+NeighCellsCRS-Info-r13 ::= CHOICE {
+ release NULL,
+ setup CRS-AssistanceInfoList-r13
+}
+
+CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r13
+
+CRS-AssistanceInfo-r13 ::= SEQUENCE {
+ physCellId-r13 PhysCellId,
+ antennaPortsCount-r13 ENUMERATED {an1, an2, an4, spare1},
+ mbsfn-SubframeConfigList-r13 MBSFN-SubframeConfigList OPTIONAL, -- Need ON
+ ...,
+ [[ mbsfn-SubframeConfigList-v1430 MBSFN-SubframeConfigList-v1430 OPTIONAL -- Need ON
+ ]]
+}
+
+NeighCellsCRS-Info-r15 ::= CHOICE {
+ release NULL,
+ setup CRS-AssistanceInfoList-r15
+}
+
+CRS-AssistanceInfoList-r15 ::= SEQUENCE (SIZE (1..maxCellReport)) OF CRS-AssistanceInfo-r15
+
+CRS-AssistanceInfo-r15 ::= SEQUENCE {
+ physCellId-r15 PhysCellId,
+ crs-IntfMitigEnabled-15 ENUMERATED {enabled} OPTIONAL -- Need ON
+}
+
+NAICS-AssistanceInfo-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ neighCellsToReleaseList-r12 NeighCellsToReleaseList-r12 OPTIONAL , -- Need ON
+ neighCellsToAddModList-r12 NeighCellsToAddModList-r12 OPTIONAL, -- Need ON
+ servCellp-a-r12 P-a OPTIONAL -- Need ON
+ }
+}
+
+NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF PhysCellId
+
+NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxNeighCell-r12)) OF NeighCellsInfo-r12
+
+NeighCellsInfo-r12 ::= SEQUENCE {
+ physCellId-r12 PhysCellId,
+ p-b-r12 INTEGER (0..3),
+ crs-PortsCount-r12 ENUMERATED {n1, n2, n4, spare},
+ mbsfn-SubframeConfig-r12 MBSFN-SubframeConfigList OPTIONAL, -- Need ON
+ p-aList-r12 SEQUENCE (SIZE (1..maxP-a-PerNeighCell-r12)) OF P-a,
+ transmissionModeList-r12 BIT STRING (SIZE(8)),
+ resAllocGranularity-r12 INTEGER (1..4),
+ ...
+}
+P-a ::= ENUMERATED { dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3}
+
+RLC-BearerConfig-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ rlc-Config-r15 RLC-Config-r15 OPTIONAL, -- Need ON
+ logicalChannelIdentityConfig-r15 CHOICE {
+ logicalChannelIdentity-r15 INTEGER (1..10),
+ logicalChannelIdentityExt-r15 INTEGER (32..38)
+ },
+ logicalChannelConfig-r15 LogicalChannelConfig OPTIONAL -- Need ON
+ }
+}
+
+
+RCLWI-Configuration-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ rclwi-Config-r13 RCLWI-Config-r13
+ }
+}
+
+RCLWI-Config-r13 ::= SEQUENCE {
+ command CHOICE {
+ steerToWLAN-r13 SEQUENCE {
+ mobilityConfig-r13 WLAN-Id-List-r12
+ },
+ steerToLTE-r13 NULL
+ },
+ ...
+}
+
+
+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
+ },
+ ...
+}
+
+RLC-Config-v1250 ::= SEQUENCE {
+ ul-extended-RLC-LI-Field-r12 BOOLEAN,
+ dl-extended-RLC-LI-Field-r12 BOOLEAN
+}
+
+RLC-Config-v1310 ::= SEQUENCE {
+ ul-extended-RLC-AM-SN-r13 BOOLEAN,
+ dl-extended-RLC-AM-SN-r13 BOOLEAN,
+ pollPDU-v1310 PollPDU-v1310 OPTIONAL -- Need OR
+}
+
+RLC-Config-v1430 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ pollByte-r14 PollByte-r14
+ }
+}
+
+RLC-Config-v1510 ::= SEQUENCE {
+ reestablishRLC-r15 ENUMERATED {true}
+}
+
+RLC-Config-v1530 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ rlc-OutOfOrderDelivery-r15 ENUMERATED {true}
+ }
+}
+
+RLC-Config-r15 ::= SEQUENCE {
+ mode-r15 CHOICE {
+ am-r15 SEQUENCE {
+ ul-AM-RLC-r15 UL-AM-RLC-r15,
+ dl-AM-RLC-r15 DL-AM-RLC-r15
+ },
+ um-Bi-Directional-r15 SEQUENCE {
+ ul-UM-RLC-r15 UL-UM-RLC,
+ dl-UM-RLC-r15 DL-UM-RLC-r15
+ },
+ um-Uni-Directional-UL-r15 SEQUENCE {
+ ul-UM-RLC-r15 UL-UM-RLC
+ },
+ um-Uni-Directional-DL-r15 SEQUENCE {
+ dl-UM-RLC-r15 DL-UM-RLC-r15
+ }
+ },
+ reestablishRLC-r15 ENUMERATED {true} OPTIONAL, -- Need ON
+ rlc-OutOfOrderDelivery-r15 ENUMERATED {true} OPTIONAL, -- Need ON
+ ...
+}
+
+UL-AM-RLC ::= SEQUENCE {
+ t-PollRetransmit T-PollRetransmit,
+ pollPDU PollPDU,
+ pollByte PollByte,
+ maxRetxThreshold ENUMERATED {
+ t1, t2, t3, t4, t6, t8, t16, t32}
+}
+
+UL-AM-RLC-r15 ::= SEQUENCE {
+ t-PollRetransmit-r15 T-PollRetransmit,
+ pollPDU-r15 PollPDU-r15,
+ pollByte-r15 PollByte-r14,
+ maxRetxThreshold-r15 ENUMERATED {
+ t1, t2, t3, t4, t6, t8, t16, t32},
+ extended-RLC-LI-Field-r15 BOOLEAN
+}
+
+DL-AM-RLC ::= SEQUENCE {
+ t-Reordering T-Reordering,
+ t-StatusProhibit T-StatusProhibit
+}
+
+DL-AM-RLC-r15 ::= SEQUENCE {
+ t-Reordering-r15 T-Reordering,
+ t-StatusProhibit-r15 T-StatusProhibit,
+ extended-RLC-LI-Field-r15 BOOLEAN
+}
+
+UL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLength
+}
+
+DL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLength,
+ t-Reordering T-Reordering
+}
+
+DL-UM-RLC-r15 ::= SEQUENCE {
+ sn-FieldLength-r15 SN-FieldLength-r15,
+ t-Reordering-r15 T-Reordering
+}
+
+SN-FieldLength ::= ENUMERATED {size5, size10}
+
+SN-FieldLength-r15 ::= ENUMERATED {size5, size10, size16-r15}
+
+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-v1310,
+ ms1000-v1310, ms2000-v1310, ms4000-v1310,
+ spare5, spare4, spare3, spare2, spare1}
+
+PollPDU ::= ENUMERATED {
+ p4, p8, p16, p32, p64, p128, p256, pInfinity}
+
+PollPDU-v1310 ::= ENUMERATED {
+ p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384}
+
+PollPDU-r15 ::= ENUMERATED {
+ p4, p8, p16, p32, p64, p128, p256, p512, p1024,
+ p2048-r15, p4096-r15, p6144-r15, p8192-r15,
+ p12288-r15, p16384-r15, pInfinity}
+
+PollByte ::= ENUMERATED {
+ kB25, kB50, kB75, kB100, kB125, kB250, kB375,
+ kB500, kB750, kB1000, kB1250, kB1500, kB2000,
+ kB3000, kBinfinity, spare1}
+
+PollByte-r14 ::= ENUMERATED {
+ kB1, kB2, kB5, kB8, kB10, kB15, kB3500,
+ kB4000, kB4500, kB5000, kB5500, kB6000, kB6500,
+ kB7000, kB7500, kB8000, kB9000, kB10000, kB11000, kB12000,
+ kB13000, kB14000, kB15000, kB16000, kB17000, kB18000,
+ kB19000, kB20000, kB25000, kB30000, kB35000, kB40000}
+
+T-Reordering ::= 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, ms1600-v1310}
+
+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-v1310,
+ ms1000-v1310, ms1200-v1310, ms1600-v1310, ms2000-v1310, ms2400-v1310, spare2,
+ spare1}
+
+
+RLF-TimersAndConstants-r9 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ t301-r9 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t310-r9 ENUMERATED {
+ ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n310-r9 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ t311-r9 ENUMERATED {
+ ms1000, ms3000, ms5000, ms10000, ms15000,
+ ms20000, ms30000},
+ n311-r9 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...
+ }
+}
+
+RLF-TimersAndConstants-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ t301-v1310 ENUMERATED {
+ ms2500, ms3000, ms3500, ms4000, ms5000,
+ ms6000, ms8000, ms10000},
+ ...,
+ [[ t310-v1330 ENUMERATED {ms4000, ms6000} OPTIONAL -- Need ON
+ ]]
+ }
+}
+
+RLF-TimersAndConstantsSCG-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ t313-r12 ENUMERATED {
+ ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n313-r12 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ n314-r12 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...
+ }
+}
+
+
+RN-SubframeConfig-r10 ::= SEQUENCE {
+ subframeConfigPattern-r10 CHOICE {
+ subframeConfigPatternFDD-r10 BIT STRING (SIZE(8)),
+ subframeConfigPatternTDD-r10 INTEGER (0..31)
+ } OPTIONAL, -- Need ON
+ rpdcch-Config-r10 SEQUENCE {
+ resourceAllocationType-r10 ENUMERATED {type0, type1, type2Localized, type2Distributed,
+ spare4, spare3, spare2, spare1},
+ resourceBlockAssignment-r10 CHOICE {
+ type01-r10 CHOICE {
+ nrb6-r10 BIT STRING (SIZE(6)),
+ nrb15-r10 BIT STRING (SIZE(8)),
+ nrb25-r10 BIT STRING (SIZE(13)),
+ nrb50-r10 BIT STRING (SIZE(17)),
+ nrb75-r10 BIT STRING (SIZE(19)),
+ nrb100-r10 BIT STRING (SIZE(25))
+ },
+ type2-r10 CHOICE {
+ nrb6-r10 BIT STRING (SIZE(5)),
+ nrb15-r10 BIT STRING (SIZE(7)),
+ nrb25-r10 BIT STRING (SIZE(9)),
+ nrb50-r10 BIT STRING (SIZE(11)),
+ nrb75-r10 BIT STRING (SIZE(12)),
+ nrb100-r10 BIT STRING (SIZE(13))
+ },
+ ...
+ },
+ demodulationRS-r10 CHOICE {
+ interleaving-r10 ENUMERATED {crs},
+ noInterleaving-r10 ENUMERATED {crs, dmrs}
+ },
+ pdsch-Start-r10 INTEGER (1..3),
+ pucch-Config-r10 CHOICE {
+ tdd CHOICE {
+ channelSelectionMultiplexingBundling SEQUENCE {
+ n1PUCCH-AN-List-r10 SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+ },
+ fallbackForFormat3 SEQUENCE {
+ n1PUCCH-AN-P0-r10 INTEGER (0..2047),
+ n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR
+ }
+ },
+ fdd SEQUENCE {
+ n1PUCCH-AN-P0-r10 INTEGER (0..2047),
+ n1PUCCH-AN-P1-r10 INTEGER (0..2047) OPTIONAL -- Need OR
+ }
+ },
+ ...
+ } OPTIONAL, -- Need ON
+ ...
+}
+
+
+RSS-Config-r15 ::= SEQUENCE {
+ duration-r15 ENUMERATED {sf8, sf16, sf32, sf40},
+ freqLocation-r15 INTEGER (0..98),
+ periodicity-r15 ENUMERATED {ms160, ms320, ms640, ms1280},
+ powerBoost-r15 ENUMERATED {dB0, dB3, dB4dot8, dB6},
+ timeOffset-r15 INTEGER (0..31)
+}
+
+
+SchedulingRequestConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sr-PUCCH-ResourceIndex INTEGER (0..2047),
+ sr-ConfigIndex INTEGER (0..157),
+ dsr-TransMax ENUMERATED {
+ n4, n8, n16, n32, n64, spare3, spare2, spare1}
+ }
+}
+
+SchedulingRequestConfig-v1020 ::= SEQUENCE {
+ sr-PUCCH-ResourceIndexP1-r10 INTEGER (0..2047) OPTIONAL -- Need OR
+}
+
+SchedulingRequestConfigSCell-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sr-PUCCH-ResourceIndex-r13 INTEGER (0..2047),
+ sr-PUCCH-ResourceIndexP1-r13 INTEGER (0..2047) OPTIONAL, -- Need OR
+ sr-ConfigIndex-r13 INTEGER (0..157),
+ dsr-TransMax-r13 ENUMERATED {
+ n4, n8, n16, n32, n64, spare3, spare2, spare1}
+ }
+
+}
+
+SchedulingRequestConfig-v1530 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sr-SlotSPUCCH-IndexFH-r15 INTEGER (0..1319) OPTIONAL, -- Need OR
+ sr-SlotSPUCCH-IndexNoFH-r15 INTEGER (0..3959) OPTIONAL, -- Need OR
+ sr-SubslotSPUCCH-ResourceList-r15 SR-SubslotSPUCCH-ResourceList-r15 OPTIONAL, -- Need OR
+ sr-ConfigIndexSlot-r15 INTEGER (0..36) OPTIONAL, -- Need OR
+ sr-ConfigIndexSubslot-r15 INTEGER (0..122) OPTIONAL, -- Need OR
+ dssr-TransMax-r15 ENUMERATED {
+ n4, n8, n16, n32, n64, spare3, spare2, spare1}
+ }
+}
+
+SR-SubslotSPUCCH-ResourceList-r15 ::= SEQUENCE (SIZE(1..4)) OF INTEGER (0..1319)
+
+
+SlotOrSubslotPDSCH-Config-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ altCQI-TableSTTI-r15 ENUMERATED {
+ allSubframes, csi-SubframeSet1,
+ csi-SubframeSet2, spare1} OPTIONAL, -- Need OR
+ altCQI-Table1024QAM-STTI-r15 ENUMERATED {
+ allSubframes, csi-SubframeSet1,
+ csi-SubframeSet2, spare1} OPTIONAL, -- Need OR
+ resourceAllocation-r15 ENUMERATED {
+ resourceAllocationType0,resourceAllocationType2} OPTIONAL, -- Need OR
+ tbsIndexAlt-STTI-r15 ENUMERATED {a33} OPTIONAL, -- Need OR
+ tbsIndexAlt2-STTI-r15 ENUMERATED {b33} OPTIONAL, -- Need OR
+ tbsIndexAlt3-STTI-r15 ENUMERATED {a37} OPTIONAL, -- Need OR
+ ...
+ }
+}
+
+
+SlotOrSubslotPUSCH-Config-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ betaOffsetSlot-ACK-Index-r15 INTEGER(0..15) OPTIONAL, -- Need OR
+ betaOffset2Slot-ACK-Index-r15 INTEGER(0..15) OPTIONAL, -- Need OR
+ betaOffsetSubslot-ACK-Index-r15 SEQUENCE (SIZE(1..2)) OF INTEGER(0..15) OPTIONAL, -- Need OR
+ betaOffset2Subslot-ACK-Index-r15 SEQUENCE (SIZE(1..2)) OF INTEGER(0..15) OPTIONAL, -- Need OR
+ betaOffsetSlot-RI-Index-r15 INTEGER(0..15) OPTIONAL, -- Need OR
+ betaOffsetSubslot-RI-Index-r15 SEQUENCE (SIZE(1..2)) OF INTEGER(0..15) OPTIONAL, -- Need OR
+ betaOffsetSlot-CQI-Index-r15 INTEGER(0..15) OPTIONAL, -- Need OR
+ betaOffsetSubslot-CQI-Index-r15 INTEGER(0..15) OPTIONAL, -- Need OR
+ enable256QAM-SlotOrSubslot-r15 Enable256QAM-r14 OPTIONAL, -- Need ON
+ resourceAllocationOffset-r15 INTEGER (1..2) OPTIONAL, -- Need OR
+ ul-DMRS-IFDMA-SlotOrSubslot-r15 BOOLEAN,
+ ...
+ }
+}
+
+
+SoundingRS-UL-ConfigCommon ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-BandwidthConfig ENUMERATED {bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7},
+ srs-SubframeConfig ENUMERATED {
+ sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7,
+ sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15},
+ ackNackSRS-SimultaneousTransmission BOOLEAN,
+ srs-MaxUpPts ENUMERATED {true} OPTIONAL -- Cond TDD
+ }
+}
+
+SoundingRS-UL-ConfigDedicated ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-Bandwidth ENUMERATED {bw0, bw1, bw2, bw3},
+ srs-HoppingBandwidth ENUMERATED {hbw0, hbw1, hbw2, hbw3},
+ freqDomainPosition INTEGER (0..23),
+ duration BOOLEAN,
+ srs-ConfigIndex INTEGER (0..1023),
+ transmissionComb INTEGER (0..1),
+ cyclicShift ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7}
+ }
+}
+
+SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE {
+ srs-AntennaPort-r10 SRS-AntennaPort
+}
+
+SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ transmissionComb-v1310 INTEGER (2..3) OPTIONAL, -- Need OR
+ cyclicShift-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR
+ transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4},
+ srs-Bandwidth-r13 ENUMERATED {bw0, bw1, bw2, bw3},
+ srs-HoppingBandwidth-r13 ENUMERATED {hbw0, hbw1, hbw2, hbw3},
+ freqDomainPosition-r13 INTEGER (0..23),
+ duration-r13 BOOLEAN,
+ srs-ConfigIndex-r13 INTEGER (0..1023),
+ transmissionComb-r13 INTEGER (0..3),
+ cyclicShift-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7,
+ cs8, cs9, cs10, cs11},
+ srs-AntennaPort-r13 SRS-AntennaPort,
+ transmissionCombNum-r13 ENUMERATED {n2, n4}
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigIndexAp-r10 INTEGER (0..31),
+ srs-ConfigApDCI-Format4-r10 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r10 OPTIONAL,--Need ON
+ srs-ActivateAp-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigApDCI-Format0-r10 SRS-ConfigAp-r10,
+ srs-ConfigApDCI-Format1a2b2c-r10 SRS-ConfigAp-r10,
+ ...
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigApDCI-Format4-v1310 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-v1310 OPTIONAL,--Need ON
+ srs-ActivateAp-v1310 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigApDCI-Format0-v1310 SRS-ConfigAp-v1310 OPTIONAL, -- Need ON
+ srs-ConfigApDCI-Format1a2b2c-v1310 SRS-ConfigAp-v1310 OPTIONAL -- Need ON
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-UpPtsAdd-r13 ENUMERATED {sym2, sym4},
+ srs-ConfigIndexAp-r13 INTEGER (0..31),
+ srs-ConfigApDCI-Format4-r13 SEQUENCE (SIZE (1..3)) OF SRS-ConfigAp-r13 OPTIONAL,--Need ON
+ srs-ActivateAp-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-ConfigApDCI-Format0-r13 SRS-ConfigAp-r13,
+ srs-ConfigApDCI-Format1a2b2c-r13 SRS-ConfigAp-r13
+ }
+ } OPTIONAL -- Need ON
+ }
+}
+
+SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ srs-SubframeIndication-r14 INTEGER (1..4) OPTIONAL -- Need ON
+ }
+}
+
+SRS-ConfigAp-r10 ::= SEQUENCE {
+ srs-AntennaPortAp-r10 SRS-AntennaPort,
+ srs-BandwidthAp-r10 ENUMERATED {bw0, bw1, bw2, bw3},
+ freqDomainPositionAp-r10 INTEGER (0..23),
+ transmissionCombAp-r10 INTEGER (0..1),
+ cyclicShiftAp-r10 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7}
+}
+
+SRS-ConfigAp-v1310 ::= SEQUENCE {
+ transmissionCombAp-v1310 INTEGER (2..3) OPTIONAL, -- Need OR
+ cyclicShiftAp-v1310 ENUMERATED {cs8, cs9, cs10, cs11} OPTIONAL, -- Need OR
+ transmissionCombNum-r13 ENUMERATED {n2, n4} OPTIONAL -- Need OR
+}
+
+SRS-ConfigAp-r13 ::= SEQUENCE {
+ srs-AntennaPortAp-r13 SRS-AntennaPort,
+ srs-BandwidthAp-r13 ENUMERATED {bw0, bw1, bw2, bw3},
+ freqDomainPositionAp-r13 INTEGER (0..23),
+ transmissionCombAp-r13 INTEGER (0..3),
+ cyclicShiftAp-r13 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7,
+ cs8, cs9, cs10, cs11},
+ transmissionCombNum-r13 ENUMERATED {n2, n4}
+}
+
+SRS-AntennaPort ::= ENUMERATED {an1, an2, an4, spare1}
+
+
+SPDCCH-Config-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ spdcch-L1-ReuseIndication-r15 ENUMERATED {n0,n1,n2} OPTIONAL, -- Need OR
+ spdcch-SetConfig-r15 SPDCCH-Set-r15 OPTIONAL -- Need OR
+ }
+}
+
+SPDCCH-Set-r15 ::= SEQUENCE (SIZE (1..4)) OF SPDCCH-Elements-r15
+
+SPDCCH-Elements-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ spdcch-SetConfigId-r15 INTEGER (0..3) OPTIONAL, -- Need OR
+ spdcch-SetReferenceSig-r15 ENUMERATED {crs, dmrs} OPTIONAL, -- Need OR
+ transmissionType-r15 ENUMERATED {localised, distributed} OPTIONAL, -- Need OR
+ spdcch-NoOfSymbols-r15 INTEGER (1..2) OPTIONAL, -- Need OR
+ dmrs-ScramblingSequenceInt-r15 INTEGER (0..503) OPTIONAL, -- Need OR
+ dci7-CandidatesPerAL-PDCCH-r15 SEQUENCE (SIZE(1..4)) OF
+ DCI7-Candidates-r15 OPTIONAL, -- Need OR
+ dci7-CandidateSetsPerAL-SPDCCH-r15 SEQUENCE (SIZE(1..2)) OF
+ DCI7-CandidatesPerAL-SPDCCH-r15 OPTIONAL, -- Need OR
+ resourceBlockAssignment-r15 SEQUENCE{
+ numberRB-InFreq-domain-r15 INTEGER (2..100),
+ resourceBlockAssignment-r15 BIT STRING (SIZE(98))
+ } OPTIONAL, -- Need OR
+ subslotApplicability-r15 BIT STRING (SIZE(5)) OPTIONAL, -- Need OR
+ al-StartingPointSPDCCH-r15 SEQUENCE (SIZE(1..4)) OF
+ INTEGER(0..49) OPTIONAL, -- Need OR
+ subframeType-r15 ENUMERATED {mbsfn, nonmbsfn, all} OPTIONAL, -- Need OR
+ rateMatchingMode-r15 ENUMERATED {m1, m2, m3, m4} OPTIONAL, -- Need OR
+ ...
+ }
+}
+
+DCI7-Candidates-r15 ::= INTEGER (0..6)
+DCI7-CandidatesPerAL-SPDCCH-r15 ::= SEQUENCE (SIZE(1..4)) OF DCI7-Candidates-r15
+
+
+SPS-Config ::= SEQUENCE {
+ semiPersistSchedC-RNTI C-RNTI OPTIONAL, -- Need OR
+ sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON
+ sps-ConfigUL SPS-ConfigUL OPTIONAL -- Need ON
+}
+
+SPS-Config-v1430 ::= SEQUENCE {
+ ul-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR
+ sl-SPS-V-RNTI-r14 C-RNTI OPTIONAL, -- Need OR
+ sps-ConfigUL-ToAddModList-r14 SPS-ConfigUL-ToAddModList-r14 OPTIONAL, -- Need ON
+ sps-ConfigUL-ToReleaseList-r14 SPS-ConfigUL-ToReleaseList-r14 OPTIONAL, -- Need ON
+ sps-ConfigSL-ToAddModList-r14 SPS-ConfigSL-ToAddModList-r14 OPTIONAL, -- Need ON
+ sps-ConfigSL-ToReleaseList-r14 SPS-ConfigSL-ToReleaseList-r14 OPTIONAL -- Need ON
+}
+
+SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigUL
+
+SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14
+
+SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigSL-r14
+
+SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..maxConfigSPS-r14)) OF SPS-ConfigIndex-r14
+
+SPS-Config-v1530 ::= SEQUENCE {
+ -- eNote (ToDo): Remove if common view is that legacy semiPersistSchedC-RNTI and sps-ConfigDL
+ -- are used for STTI
+ -- eNote (ToDo): Clarify restrictions applicable for SCells i.e. only STTI fields and
+ -- only single entry
+ semiPersistSchedC-RNTI-r15 C-RNTI OPTIONAL, -- Need OR
+ sps-ConfigDL SPS-ConfigDL OPTIONAL, -- Need ON
+ sps-ConfigUL-STTI-ToAddModList-r15 SPS-ConfigUL-STTI-ToAddModList-r15 OPTIONAL, -- Need ON
+ sps-ConfigUL-STTI-ToReleaseList-r15 SPS-ConfigUL-STTI-ToReleaseList-r15 OPTIONAL, -- Need ON
+ sps-ConfigUL-ToAddModList-r15 SPS-ConfigUL-ToAddModList-r15 OPTIONAL, -- Need ON
+ sps-ConfigUL-ToReleaseList-r15 SPS-ConfigUL-ToReleaseList-r15 OPTIONAL -- Need ON
+}
+
+SPS-ConfigUL-STTI-ToAddModList-r15 ::= SEQUENCE (SIZE (1..maxConfigSPS-r15)) OF SPS-ConfigUL-STTI-r15
+
+SPS-ConfigUL-STTI-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxConfigSPS-r15)) OF SPS-ConfigIndex-r15
+
+SPS-ConfigUL-ToAddModList-r15 ::= SEQUENCE (SIZE (1..maxConfigSPS-r15)) OF SPS-ConfigUL
+
+SPS-ConfigUL-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..maxConfigSPS-r15)) OF SPS-ConfigIndex-r15
+
+SPS-ConfigDL ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalDL ENUMERATED {
+ sf10, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, spare6,
+ spare5, spare4, spare3, spare2,
+ spare1},
+ numberOfConfSPS-Processes INTEGER (1..8),
+ n1PUCCH-AN-PersistentList N1PUCCH-AN-PersistentList,
+ ...,
+ [[ twoAntennaPortActivated-r10 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1PUCCH-AN-PersistentListP1-r10 N1PUCCH-AN-PersistentList
+ }
+ } OPTIONAL -- Need ON
+ ]]
+ }
+}
+
+SPS-ConfigUL ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalUL ENUMERATED {
+ sf10, sf20, sf32, sf40, sf64, sf80,
+ sf128, sf160, sf320, sf640, sf1-v1430,
+ sf2-v1430, sf3-v1430, sf4-v1430, sf5-v1430,
+ spare1},
+ implicitReleaseAfter ENUMERATED {e2, e3, e4, e8},
+ p0-Persistent SEQUENCE {
+ p0-NominalPUSCH-Persistent INTEGER (-126..24),
+ p0-UE-PUSCH-Persistent INTEGER (-8..7)
+ } OPTIONAL, -- Need OP
+ twoIntervalsConfig ENUMERATED {true} OPTIONAL, -- Cond TDD
+ ...,
+ [[ p0-PersistentSubframeSet2-r12 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ p0-NominalPUSCH-PersistentSubframeSet2-r12 INTEGER (-126..24),
+ p0-UE-PUSCH-PersistentSubframeSet2-r12 INTEGER (-8..7)
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ numberOfConfUlSPS-Processes-r13 INTEGER (1..8) OPTIONAL -- Need OR
+ ]],
+ [[ fixedRV-NonAdaptive-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ sps-ConfigIndex-r14 SPS-ConfigIndex-r14 OPTIONAL, -- Need OR
+ semiPersistSchedIntervalUL-v1430 ENUMERATED {
+ sf50, sf100, sf200, sf300, sf400, sf500,
+ sf600, sf700, sf800, sf900, sf1000, spare5,
+ spare4, spare3, spare2, spare1} OPTIONAL -- Need OR
+
+ ]],
+ [[ cyclicShiftSPS-r15 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7}
+ OPTIONAL, -- Need ON
+ -- eNote (TBC) that no separate STTI field is required (alike in merged CR)
+ harq-ProcID-Offset-r15 INTEGER (0..7) OPTIONAL, -- Need ON
+ rv-SPS-UL-Repetitions-r15 ENUMERATED {ulrvseq1, ulrvseq2, ulrvseq3} OPTIONAL, -- Need ON
+ tpc-PDCCH-ConfigPUSCH-SPS-r15 TPC-PDCCH-Config OPTIONAL, -- Need ON
+ totalNumberPUSCH-SPS-UL-Repetitions-r15 ENUMERATED {n2,n3,n4,n6} OPTIONAL, -- Need ON
+ sps-ConfigIndex-r15 SPS-ConfigIndex-r15 OPTIONAL -- Cond SPS
+ ]]
+ }
+}
+
+SPS-ConfigSL-r14 ::= SEQUENCE {
+ sps-ConfigIndex-r14 SPS-ConfigIndex-r14,
+ semiPersistSchedIntervalSL-r14 ENUMERATED {
+ sf20, sf50, sf100, sf200, sf300, sf400,
+ sf500, sf600, sf700, sf800, sf900, sf1000,
+ spare4, spare3, spare2, spare1}
+}
+
+SPS-ConfigIndex-r14 ::= INTEGER (1..maxConfigSPS-r14)
+
+SPS-ConfigIndex-r15 ::= INTEGER (1..maxConfigSPS-r15)
+
+N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+
+N1SPUCCH-AN-PersistentList-r15 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
+
+SPS-ConfigDL-STTI-r15 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalDL-STTI-r15 ENUMERATED {
+ sTTI1, sTTI2, sTTI3, sTTI4, sTTI6, sTTI8, sTTI12, sTTI16,
+ sTTI20, sTTI40, sTTI60, sTTI80, sTTI120, sTTI240,
+ spare2, spare1},
+ numberOfConfSPS-Processes-STTI-r15 INTEGER (1..12),
+ twoAntennaPortActivated-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1SPUCCH-AN-PersistentListP1-r15 N1SPUCCH-AN-PersistentList-r15
+ }
+ } OPTIONAL, -- Need ON
+ sTTI-StartTimeDL-r15 INTEGER (0..5),
+ tpc-PDCCH-ConfigPUCCH-SPS-r15 TPC-PDCCH-Config OPTIONAL, -- Need ON
+ ...
+ }
+}
+
+SPS-ConfigUL-STTI-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedIntervalUL-STTI-r15 ENUMERATED {
+ sTTI1, sTTI2, sTTI3, sTTI4, sTTI6, sTTI8, sTTI12, sTTI16,
+ sTTI20, sTTI40, sTTI60, sTTI80, sTTI120, sTTI240,
+ spare2, spare1},
+ implicitReleaseAfter ENUMERATED {e2, e3, e4, e8},
+ p0-Persistent-r15 SEQUENCE {
+ p0-NominalSPUSCH-Persistent-r15 INTEGER (-126..24),
+ p0-UE-SPUSCH-Persistent-r15 INTEGER (-8..7)
+ } OPTIONAL, -- Need OP
+ twoIntervalsConfig-r15 ENUMERATED {true} OPTIONAL, -- Cond TDD
+ p0-PersistentSubframeSet2-r15 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ p0-NominalSPUSCH-PersistentSubframeSet2-r15 INTEGER (-126..24),
+ p0-UE-SPUSCH-PersistentSubframeSet2-r15 INTEGER (-8..7)
+ }
+ } OPTIONAL, -- Need ON
+ numberOfConfUL-SPS-Processes-STTI-r15 INTEGER (1..12) OPTIONAL, -- Need OR
+ sTTI-StartTimeUL-r15 INTEGER (0..5),
+ tpc-PDCCH-ConfigPUSCH-SPS-r15 TPC-PDCCH-Config OPTIONAL, -- Need ON
+ cyclicShiftSPS-sTTI-r15 ENUMERATED {cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7} OPTIONAL, -- Need ON
+ ifdma-Config-SPS-r15 BOOLEAN OPTIONAL, -- Need ON
+ harq-ProcID-offset-r15 INTEGER (0..15) OPTIONAL, -- Need ON
+ rv-SPS-STTI-UL-Repetitions-r15 ENUMERATED {ulrvseq1, ulrvseq2, ulrvseq3} OPTIONAL, -- Need ON
+ sps-ConfigIndex-r15 SPS-ConfigIndex-r15 OPTIONAL, -- Need OR
+ tbs-scalingFactorSubslotSPS-UL-Repetitions-r15 ENUMERATED {n6, n12} OPTIONAL, -- Need ON
+ totalNumberPUSCH-SPS-STTI-UL-Repetitions-r15 ENUMERATED {n2,n3,n4,n6} OPTIONAL, -- Need ON
+ ...
+ }
+}
+
+
+
+SPUCCH-Config-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ spucch-Set-r15 SPUCCH-Set-r15 OPTIONAL, -- Need ON
+ twoAntennaPortActivatedSPUCCH-Format1a1b-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ twoAntennaPortActivatedSPUCCH-Format3-r15 SEQUENCE {
+ n3SPUCCH-AN-List-r15 SEQUENCE (SIZE (1..4)) OF INTEGER (0..549)
+ }
+ }
+}
+
+SPUCCH-Set-r15 ::= SEQUENCE (SIZE (1..4)) OF SPUCCH-Elements-r15
+
+SPUCCH-Elements-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ n1SubslotSPUCCH-AN-List-r15 SEQUENCE (SIZE(1..4)) OF INTEGER (0..1319) OPTIONAL, -- Need OR
+ n1SlotSPUCCH-FH-AN-List-r15 INTEGER (0..1319) OPTIONAL, -- Need OR
+ n1SlotSPUCCH-NoFH-AN-List-r15 INTEGER (0..3959) OPTIONAL, -- Need OR
+ n3SPUCCH-AN-List-r15 INTEGER (0..549) OPTIONAL, -- Need OR
+ n4SPUCCHSlot-Resource-r15 SEQUENCE (SIZE(1..2)) OF N4SPUCCH-Resource-r15 OPTIONAL, -- Need OR
+ n4SPUCCHSubslot-Resource-r15 SEQUENCE (SIZE(1..2)) OF N4SPUCCH-Resource-r15 OPTIONAL, -- Need OR
+ n4maxCoderateSlotPUCCH-r15 INTEGER (0..7) OPTIONAL, -- Need OR
+ n4maxCoderateSubslotPUCCH-r15 INTEGER (0..7) OPTIONAL, -- Need OR
+ n4maxCoderateMultiResourceSlotPUCCH-r15 INTEGER (0..7) OPTIONAL, -- Need OR
+ n4maxCoderateMultiResourceSubslotPUCCH-r15 INTEGER (0..7) OPTIONAL -- Need OR
+ }
+}
+
+N4SPUCCH-Resource-r15 ::= SEQUENCE {
+ n4startingPRB-r15 INTEGER (0..109),
+ n4numberOfPRB-r15 INTEGER (0..7)
+}
+
+
+SRS-TPC-PDCCH-Config-r14 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ srs-TPC-RNTI-r14 BIT STRING (SIZE (16)),
+ startingBitOfFormat3B-r14 INTEGER (0..31), fieldTypeFormat3B-r14 INTEGER (1..4),
+ srs-CC-SetIndexlist-r14 SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex-r14 OPTIONAL -- Cond SRS-Trigger-TypeA
+
+ }
+}
+
+SRS-CC-SetIndex-r14 ::= SEQUENCE {
+ cc-SetIndex-r14 INTEGER (0..3),
+ cc-IndexInOneCC-Set-r14 INTEGER (0..7)
+}
+
+
+TDD-Config ::= SEQUENCE {
+ subframeAssignment ENUMERATED {
+ sa0, sa1, sa2, sa3, sa4, sa5, sa6},
+ specialSubframePatterns ENUMERATED {
+ ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7,
+ ssp8}
+}
+
+TDD-Config-v1130 ::= SEQUENCE {
+ specialSubframePatterns-v1130 ENUMERATED {ssp7,ssp9}
+}
+
+TDD-Config-v1430 ::= SEQUENCE {
+ specialSubframePatterns-v1430 ENUMERATED {ssp10}
+}
+
+TDD-Config-v1450 ::= SEQUENCE {
+ specialSubframePatterns-v1450 ENUMERATED {ssp10-CRS-LessDwPTS}
+}
+
+TDD-ConfigSL-r12 ::= SEQUENCE {
+ subframeAssignmentSL-r12 ENUMERATED {
+ none, sa0, sa1, sa2, sa3, sa4, sa5, sa6}
+}
+
+SubframeAssignment-r15 ::= ENUMERATED {sa0, sa1, sa2, sa3, sa4, sa5, sa6}
+
+
+TimeAlignmentTimer ::= ENUMERATED {
+ sf500, sf750, sf1280, sf1920, sf2560, sf5120,
+ sf10240, infinity}
+
+TimeReferenceInfo-r15 ::= SEQUENCE {
+ time-r15 ReferenceTime-r15,
+ uncertainty-r15 INTEGER (0..12) OPTIONAL, -- Need OR
+ timeInfoType-r15 ENUMERATED {localClock} OPTIONAL, -- Need OR
+ referenceSFN-r15 INTEGER (0..1023) OPTIONAL -- Cond TimeRef
+}
+
+ReferenceTime-r15 ::= SEQUENCE {
+ refDays-r15 INTEGER (0..72999),
+ refSeconds-r15 INTEGER (0..86399),
+ refMilliSeconds-r15 INTEGER (0..999),
+ refQuarterMicroSeconds-r15 INTEGER (0..3999)
+}
+
+
+TPC-PDCCH-Config ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ tpc-RNTI BIT STRING (SIZE (16)),
+ tpc-Index TPC-Index
+ }
+}
+
+TPC-PDCCH-ConfigSCell-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ tpc-Index-PUCCH-SCell-r13 TPC-Index
+ }
+}
+
+TPC-Index ::= CHOICE {
+ indexOfFormat3 INTEGER (1..15),
+ indexOfFormat3A INTEGER (1..31)
+}
+
+
+TunnelConfigLWIP-r13 ::= SEQUENCE {
+ ip-Address-r13 IP-Address-r13,
+ ike-Identity-r13 IKE-Identity-r13,
+ ...,
+ [[ lwip-Counter-r13 INTEGER (0..65535) OPTIONAL -- Cond LWIP-Setup
+ ]]
+}
+
+IKE-Identity-r13 ::= SEQUENCE {
+ idI-r13 OCTET STRING
+}
+
+IP-Address-r13 ::= CHOICE {
+ ipv4-r13 BIT STRING (SIZE (32)),
+ ipv6-r13 BIT STRING (SIZE (128))
+}
+
+
+UplinkPowerControlCommon ::= SEQUENCE {
+ p0-NominalPUSCH INTEGER (-126..24),
+ alpha Alpha-r12,
+ p0-NominalPUCCH INTEGER (-127..-96),
+ deltaFList-PUCCH DeltaFList-PUCCH,
+ deltaPreambleMsg3 INTEGER (-1..6)
+}
+
+UplinkPowerControlCommon-v1020 ::= SEQUENCE {
+ deltaF-PUCCH-Format3-r10 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2,
+ deltaF3, deltaF4, deltaF5, deltaF6},
+ deltaF-PUCCH-Format1bCS-r10 ENUMERATED {deltaF1, deltaF2, spare2, spare1}
+}
+
+UplinkPowerControlCommon-v1310 ::= SEQUENCE {
+ deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,deltaF13, deltaF12,
+ deltaF11, deltaF10, spare1} OPTIONAL, -- Need OR
+ deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11, deltaF10, deltaF9,
+ deltaF8, deltaF7, spare1} OPTIONAL -- Need OR
+}
+
+UplinkPowerControlCommon-v1530 ::= SEQUENCE {
+ deltaFList-SPUCCH-r15 DeltaFList-SPUCCH-r15
+}
+
+UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE {
+-- For uplink power control the additional/ missing fields are signalled (compared to SCell)
+ deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2,
+ deltaF3, deltaF4, deltaF5, deltaF6},
+ deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2, spare2, spare1},
+ p0-NominalPUCCH-r12 INTEGER (-127..-96),
+ deltaFList-PUCCH-r12 DeltaFList-PUCCH
+}
+
+
+UplinkPowerControlCommonSCell-r10 ::= SEQUENCE {
+ p0-NominalPUSCH-r10 INTEGER (-126..24),
+ alpha-r10 Alpha-r12
+}
+
+UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE {
+ deltaPreambleMsg3-r11 INTEGER (-1..6)
+}
+
+UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE {
+-- For uplink power control the additional/ missing fields are signalled (compared to SCell)
+ p0-NominalPUCCH INTEGER (-127..-96),
+ deltaFList-PUCCH DeltaFList-PUCCH,
+ deltaF-PUCCH-Format3-r12 ENUMERATED {deltaF-1, deltaF0, deltaF1,
+ deltaF2, deltaF3, deltaF4, deltaF5,
+ deltaF6} OPTIONAL, -- Need OR
+ deltaF-PUCCH-Format1bCS-r12 ENUMERATED {deltaF1, deltaF2,
+ spare2, spare1} OPTIONAL, -- Need OR
+ deltaF-PUCCH-Format4-r13 ENUMERATED {deltaF16, deltaF15, deltaF14,
+ deltaF13, deltaF12, deltaF11, deltaF10,
+ spare1} OPTIONAL, -- Need OR
+ deltaF-PUCCH-Format5-13 ENUMERATED { deltaF13, deltaF12, deltaF11,
+ deltaF10, deltaF9, deltaF8, deltaF7,
+ spare1} OPTIONAL -- Need OR
+}
+
+UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE {
+ p0-Nominal-PeriodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR
+ p0-Nominal-AperiodicSRS-r14 INTEGER (-126..24) OPTIONAL, -- Need OR
+ alpha-SRS-r14 Alpha-r12 OPTIONAL -- Need OR
+}
+
+UplinkPowerControlDedicated ::= SEQUENCE {
+ p0-UE-PUSCH INTEGER (-8..7),
+ deltaMCS-Enabled ENUMERATED {en0, en1},
+ accumulationEnabled BOOLEAN,
+ p0-UE-PUCCH INTEGER (-8..7),
+ pSRS-Offset INTEGER (0..15),
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+UplinkPowerControlDedicated-v1020 ::= SEQUENCE {
+ deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL, -- Need OR
+ pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL -- Need OR
+}
+
+UplinkPowerControlDedicated-v1130 ::= SEQUENCE {
+ pSRS-Offset-v1130 INTEGER (16..31) OPTIONAL, -- Need OR
+ pSRS-OffsetAp-v1130 INTEGER (16..31) OPTIONAL, -- Need OR
+ deltaTxD-OffsetListPUCCH-v1130 DeltaTxD-OffsetListPUCCH-v1130 OPTIONAL -- Need OR
+}
+
+UplinkPowerControlDedicated-v1250 ::= SEQUENCE {
+ set2PowerControlParameter CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ tpc-SubframeSet-r12 BIT STRING (SIZE(10)),
+ p0-NominalPUSCH-SubframeSet2-r12 INTEGER (-126..24),
+ alpha-SubframeSet2-r12 Alpha-r12,
+ p0-UE-PUSCH-SubframeSet2-r12 INTEGER (-8..7)
+ }
+ }
+}
+
+UplinkPowerControlDedicated-v1530 ::= SEQUENCE {
+ alpha-UE-r15 Alpha-r12 OPTIONAL, -- Need OR
+ p0-UE-PUSCH-r15 INTEGER (-16..15) OPTIONAL -- Need OR
+}
+
+UplinkPowerControlDedicatedSTTI-r15 ::= SEQUENCE {
+ accumulationEnabledSTTI-r15 BOOLEAN,
+ deltaTxD-OffsetListSPUCCH-r15 DeltaTxD-OffsetListSPUCCH-r15 OPTIONAL, -- Need OR
+ uplinkPower-CSIPayload BOOLEAN
+}
+
+UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE {
+ p0-UE-PeriodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR
+ p0-UE-AperiodicSRS-r14 INTEGER (-8..7) OPTIONAL, -- Need OR
+ accumulationEnabled-r14 BOOLEAN
+}
+
+UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE {
+ p0-UE-PUSCH-r10 INTEGER (-8..7),
+ deltaMCS-Enabled-r10 ENUMERATED {en0, en1},
+ accumulationEnabled-r10 BOOLEAN,
+ pSRS-Offset-r10 INTEGER (0..15),
+ pSRS-OffsetAp-r10 INTEGER (0..15) OPTIONAL, -- Need OR
+ filterCoefficient-r10 FilterCoefficient DEFAULT fc4,
+ pathlossReferenceLinking-r10 ENUMERATED {pCell, sCell}
+}
+
+UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE {
+--Release 8
+ p0-UE-PUCCH INTEGER (-8..7),
+--Release 10
+ deltaTxD-OffsetListPUCCH-r10 DeltaTxD-OffsetListPUCCH-r10 OPTIONAL -- Need OR
+}
+
+Alpha-r12 ::= ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}
+
+DeltaFList-PUCCH ::= SEQUENCE {
+ deltaF-PUCCH-Format1 ENUMERATED {deltaF-2, deltaF0, deltaF2},
+ deltaF-PUCCH-Format1b ENUMERATED {deltaF1, deltaF3, deltaF5},
+ deltaF-PUCCH-Format2 ENUMERATED {deltaF-2, deltaF0, deltaF1, deltaF2},
+ deltaF-PUCCH-Format2a ENUMERATED {deltaF-2, deltaF0, deltaF2},
+ deltaF-PUCCH-Format2b ENUMERATED {deltaF-2, deltaF0, deltaF2}
+}
+
+DeltaFList-SPUCCH-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ deltaF-slotSPUCCH-Format1-r15 ENUMERATED {deltaF-1, deltaF0, deltaF1, deltaF2,
+ deltaF3, deltaF4, deltaF5, deltaF6} OPTIONAL, --Need OR
+ deltaF-slotSPUCCH-Format1a-r15 ENUMERATED {deltaF1, deltaF2, deltaF3, deltaF4,
+ deltaF5, deltaF6, deltaF7, deltaF8} OPTIONAL, --Need OR
+ deltaF-slotSPUCCH-Format1b-r15 ENUMERATED {deltaF3, deltaF4, deltaF5, deltaF6,
+ deltaF7, deltaF8, deltaF9, deltaF10} OPTIONAL,--Need OR
+ deltaF-slotSPUCCH-Format3-r15 ENUMERATED {deltaF4, deltaF5, deltaF6, deltaF7,
+ deltaF8, deltaF9, deltaF10, deltaF11} OPTIONAL,--Need OR
+ deltaF-slotSPUCCH-RM-Format4-r15 ENUMERATED {deltaF13, deltaF14, deltaF15, deltaF16,
+ deltaF17, deltaF18, deltaF19, deltaF20} OPTIONAL,
+--Need OR
+ deltaF-slotSPUCCH-TBCC-Format4-r15 ENUMERATED {deltaF10, deltaF11, deltaF12, deltaF13,
+ deltaF14, deltaF15, deltaF16, deltaF17} OPTIONAL,
+--Need OR
+ deltaF-subslotSPUCCH-Format1and1a-r15 ENUMERATED {deltaF5, deltaF6, deltaF7, deltaF8,
+ deltaF9, deltaF10, deltaF11, deltaF12} OPTIONAL,
+--Need OR
+ deltaF-subslotSPUCCH-Format1b-r15 ENUMERATED {deltaF6, deltaF7, deltaF8, deltaF9,
+ deltaF10, deltaF11, deltaF12, deltaF13} OPTIONAL,
+--Need OR
+ deltaF-subslotSPUCCH-RM-Format4-r15 ENUMERATED {deltaF15, deltaF16, deltaF17, deltaF18,
+ deltaF19, deltaF20, deltaF21, deltaF22} OPTIONAL,
+--Need OR
+ deltaF-subslotSPUCCH-TBCC-Format4-r15 ENUMERATED {deltaF10, deltaF11, deltaF12, deltaF13,
+ deltaF14, deltaF15, deltaF16, deltaF17} OPTIONAL,
+--Need OR
+ ...
+ }
+}
+
+DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE {
+ deltaTxD-OffsetPUCCH-Format1-r10 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetPUCCH-Format1a1b-r10 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetPUCCH-Format22a2b-r10 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetPUCCH-Format3-r10 ENUMERATED {dB0, dB-2},
+ ...
+
+}
+
+DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE {
+ deltaTxD-OffsetPUCCH-Format1bCS-r11 ENUMERATED {dB0, dB-1}
+}
+
+DeltaTxD-OffsetListSPUCCH-r15 ::= SEQUENCE {
+ deltaTxD-OffsetSPUCCH-Format1-r15 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetSPUCCH-Format1a-r15 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetSPUCCH-Format1b-r15 ENUMERATED {dB0, dB-2},
+ deltaTxD-OffsetSPUCCH-Format3-r15 ENUMERATED {dB0, dB-2},
+ ...
+}
+
+
+WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Id-r13)) OF WLAN-Identifiers-r12
+
+
+WLAN-MobilityConfig-r13 ::= SEQUENCE {
+ wlan-ToReleaseList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON
+ wlan-ToAddList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON
+ associationTimer-r13 ENUMERATED {s10, s30,
+ s60, s120, s240} OPTIONAL, -- Need OR
+ successReportRequested-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ ...,
+ [[ wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL -- Need ON
+ ]]
+}
+
+
+WUS-Config-r15 ::= SEQUENCE {
+ maxDurationFactor-r15 ENUMERATED {one32th, one16th, one8th, one4th},
+ numPOs-r15 ENUMERATED {n1, n2, n4, spare1} DEFAULT n1,
+ freqLocation-r15 ENUMERATED {n0, n2, n4, spare1},
+ timeOffsetDRX-r15 ENUMERATED {ms40, ms80, ms160, ms240},
+ timeOffset-eDRX-Short-r15 ENUMERATED {ms40, ms80, ms160, ms240},
+ timeOffset-eDRX-Long-r15 ENUMERATED {ms1000, ms2000} OPTIONAL -- Need OP
+}
+
+
+NextHopChainingCount ::= INTEGER (0..7)
+
+
+SecurityAlgorithmConfig ::= SEQUENCE {
+ cipheringAlgorithm CipheringAlgorithm-r12,
+ integrityProtAlgorithm ENUMERATED {
+ eia0-v920, eia1, eia2, eia3-v1130, spare4, spare3,
+ spare2, spare1, ...}
+}
+
+CipheringAlgorithm-r12 ::= ENUMERATED {
+ eea0, eea1, eea2, eea3-v1130, spare4, spare3,
+ spare2, spare1, ...}
+
+
+ShortMAC-I ::= BIT STRING (SIZE (16))
+
+
+AdditionalSpectrumEmission ::= INTEGER (1..32)
+
+AdditionalSpectrumEmission-v10l0 ::= INTEGER (33..288)
+
+
+AdditionalSpectrumEmissionNR-r15 ::= INTEGER (0..7)
+
+
+ARFCN-ValueCDMA2000 ::= INTEGER (0..2047)
+
+
+ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)
+
+ARFCN-ValueEUTRA-v9e0 ::= INTEGER (maxEARFCN-Plus1..maxEARFCN2)
+
+ARFCN-ValueEUTRA-r9 ::= INTEGER (0..maxEARFCN2)
+
+
+ARFCN-ValueGERAN ::= INTEGER (0..1023)
+
+
+ARFCN-ValueNR-r15 ::= INTEGER (0.. 3279165)
+
+
+ARFCN-ValueUTRA ::= INTEGER (0..16383)
+
+
+BandclassCDMA2000 ::= ENUMERATED {
+ bc0, bc1, bc2, bc3, bc4, bc5, bc6, bc7, bc8,
+ bc9, bc10, bc11, bc12, bc13, bc14, bc15, bc16,
+ bc17, bc18-v9a0, bc19-v9a0, bc20-v9a0, bc21-v9a0,
+ spare10, spare9, spare8, spare7, spare6, spare5, spare4,
+ spare3, spare2, spare1, ...}
+
+
+BandIndicatorGERAN ::= ENUMERATED {dcs1800, pcs1900}
+
+
+CarrierFreqCDMA2000 ::= SEQUENCE {
+ bandClass BandclassCDMA2000,
+ arfcn ARFCN-ValueCDMA2000
+}
+
+
+CarrierFreqGERAN ::= SEQUENCE {
+ arfcn ARFCN-ValueGERAN,
+ bandIndicator BandIndicatorGERAN
+}
+
+
+CarrierFreqsGERAN ::= SEQUENCE {
+ startingARFCN ARFCN-ValueGERAN,
+ bandIndicator BandIndicatorGERAN,
+ followingARFCNs CHOICE {
+ explicitListOfARFCNs ExplicitListOfARFCNs,
+ equallySpacedARFCNs SEQUENCE {
+ arfcn-Spacing INTEGER (1..8),
+ numberOfFollowingARFCNs INTEGER (0..31)
+ },
+ variableBitMapOfARFCNs OCTET STRING (SIZE (1..16))
+ }
+}
+
+ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF ARFCN-ValueGERAN
+
+
+CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..maxFreqMBMS-r11)) OF ARFCN-ValueEUTRA-r9
+
+
+CDMA2000-Type ::= ENUMERATED {type1XRTT, typeHRPD}
+
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+
+CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellIndex
+
+CellIndex ::= INTEGER (1..maxCellMeas)
+
+
+CellReselectionPriority ::= INTEGER (0..7)
+
+
+CellSelectionInfoCE-r13 ::= SEQUENCE {
+ q-RxLevMinCE-r13 Q-RxLevMin,
+ q-QualMinRSRQ-CE-r13 Q-QualMin-r9 OPTIONAL -- Need OR
+}
+
+CellSelectionInfoCE-v1530 ::= SEQUENCE {
+ powerClass14dBm-Offset-r15 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12}
+}
+
+
+CellSelectionInfoCE1-r13 ::= SEQUENCE {
+ q-RxLevMinCE1-r13 Q-RxLevMin,
+ q-QualMinRSRQ-CE1-r13 Q-QualMin-r9 OPTIONAL -- Need OR
+}
+
+CellSelectionInfoCE1-v1360 ::= SEQUENCE {
+ delta-RxLevMinCE1-v1360 INTEGER (-8..-1)
+}
+
+CellReselectionSubPriority-r13 ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8}
+
+
+CSFB-RegistrationParam1XRTT ::= SEQUENCE {
+ sid BIT STRING (SIZE (15)),
+ nid BIT STRING (SIZE (16)),
+ multipleSID BOOLEAN,
+ multipleNID BOOLEAN,
+ homeReg BOOLEAN,
+ foreignSIDReg BOOLEAN,
+ foreignNIDReg BOOLEAN,
+ parameterReg BOOLEAN,
+ powerUpReg BOOLEAN,
+ registrationPeriod BIT STRING (SIZE (7)),
+ registrationZone BIT STRING (SIZE (12)),
+ totalZone BIT STRING (SIZE (3)),
+ zoneTimer BIT STRING (SIZE (3))
+}
+
+CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE {
+ powerDownReg-r9 ENUMERATED {true}
+}
+
+
+CellGlobalIdEUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity CellIdentity
+}
+
+
+CellGlobalIdUTRA ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ cellIdentity BIT STRING (SIZE (28))
+}
+
+
+CellGlobalIdGERAN ::= SEQUENCE {
+ plmn-Identity PLMN-Identity,
+ locationAreaCode BIT STRING (SIZE (16)),
+ cellIdentity BIT STRING (SIZE (16))
+}
+
+
+CellGlobalIdCDMA2000 ::= CHOICE {
+ cellGlobalId1XRTT BIT STRING (SIZE (47)),
+ cellGlobalIdHRPD BIT STRING (SIZE (128))
+}
+
+
+CellSelectionInfoNFreq-r13 ::= SEQUENCE {
+ -- Cell selection information as in SIB1
+ q-RxLevMin-r13 Q-RxLevMin,
+ q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need OP
+ -- Cell re-selection information as in SIB3
+ q-Hyst-r13 ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24},
+ q-RxLevMinReselection-r13 Q-RxLevMin,
+ t-ReselectionEUTRA-r13 T-Reselection
+}
+
+
+CSG-Identity ::= BIT STRING (SIZE (27))
+
+
+FreqBandIndicator ::= INTEGER (1..maxFBI)
+
+FreqBandIndicator-v9e0 ::= INTEGER (maxFBI-Plus1..maxFBI2)
+
+FreqBandIndicator-r11 ::= INTEGER (1..maxFBI2)
+
+
+FreqBandIndicatorNR-r15 ::= INTEGER (1.. maxFBI-NR-r15)
+
+
+MobilityControlInfo ::= SEQUENCE {
+ targetPhysCellId PhysCellId,
+ carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA2
+ carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA
+ additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA
+ t304 ENUMERATED {
+ ms50, ms100, ms150, ms200, ms500, ms1000,
+ ms2000, ms10000-v1310},
+ newUE-Identity C-RNTI,
+ radioResourceConfigCommon RadioResourceConfigCommon,
+ rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP
+ ...,
+ [[ carrierFreq-v9e0 CarrierFreqEUTRA-v9e0 OPTIONAL -- Need ON
+ ]],
+ [[ drb-ContinueROHC-r11 ENUMERATED {true} OPTIONAL -- Cond HO
+ ]],
+ [[ mobilityControlInfoV2X-r14 MobilityControlInfoV2X-r14 OPTIONAL, -- Need ON
+ handoverWithoutWT-Change-r14 ENUMERATED {keepLWA-Config, sendEndMarker} OPTIONAL, -- Cond HO
+ makeBeforeBreak-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ rach-Skip-r14 RACH-Skip-r14 OPTIONAL, -- Need OR
+ sameSFN-Indication-r14 ENUMERATED {true} OPTIONAL -- Cond HO-SFNsynced
+ ]],
+ [[
+ mib-RepetitionStatus-r14 BOOLEAN OPTIONAL, -- Need OR
+ schedulingInfoSIB1-BR-r14 INTEGER (0..31) OPTIONAL -- Cond HO-SFNsynced
+ ]]
+}
+
+MobilityControlInfo-v10l0 ::= SEQUENCE {
+ additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need ON
+}
+
+MobilityControlInfoSCG-r12 ::= SEQUENCE {
+ t307-r12 ENUMERATED {
+ ms50, ms100, ms150, ms200, ms500, ms1000,
+ ms2000, spare1},
+ ue-IdentitySCG-r12 C-RNTI OPTIONAL, -- Cond SCGEst,
+ rach-ConfigDedicated-r12 RACH-ConfigDedicated OPTIONAL, -- Need OP
+ cipheringAlgorithmSCG-r12 CipheringAlgorithm-r12 OPTIONAL, -- Need ON
+ ...,
+ [[ makeBeforeBreakSCG-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ rach-SkipSCG-r14 RACH-Skip-r14 OPTIONAL -- Need OR
+ ]]
+}
+
+MobilityControlInfoV2X-r14 ::= SEQUENCE {
+ v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR
+ v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR
+ v2x-CommSyncConfig-r14 SL-SyncConfigListV2X-r14 OPTIONAL, -- Need OR
+ cbr-MobilityTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL -- Need OR
+}
+
+CarrierBandwidthEUTRA ::= SEQUENCE {
+ dl-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100, spare10,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1},
+ ul-Bandwidth ENUMERATED {
+ n6, n15, n25, n50, n75, n100, spare10,
+ spare9, spare8, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1} OPTIONAL -- Need OP
+}
+
+CarrierFreqEUTRA ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueEUTRA,
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL -- Cond FDD
+}
+
+CarrierFreqEUTRA-v9e0 ::= SEQUENCE {
+ dl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9,
+ ul-CarrierFreq-v9e0 ARFCN-ValueEUTRA-r9 OPTIONAL -- Cond FDD
+}
+
+RACH-Skip-r14 ::= SEQUENCE {
+ targetTA-r14 CHOICE {
+ ta0-r14 NULL,
+ mcg-PTAG-r14 NULL,
+ scg-PTAG-r14 NULL,
+ mcg-STAG-r14 STAG-Id-r11,
+ scg-STAG-r14 STAG-Id-r11
+ },
+ ul-ConfigInfo-r14 SEQUENCE {
+ numberOfConfUL-Processes-r14 INTEGER (1..8),
+ ul-SchedInterval-r14 ENUMERATED {sf2, sf5, sf10},
+ ul-StartSubframe-r14 INTEGER (0..9),
+ ul-Grant-r14 BIT STRING (SIZE (16))
+ } OPTIONAL -- Need OR
+}
+
+
+MobilityParametersCDMA2000 ::= OCTET STRING
+
+
+MobilityStateParameters ::= SEQUENCE {
+ t-Evaluation ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ t-HystNormal ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ n-CellChangeMedium INTEGER (1..16),
+ n-CellChangeHigh INTEGER (1..16)
+}
+
+
+MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator
+
+MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-v9e0
+
+MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-r10
+
+MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF NS-PmaxList-v10l0
+
+MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-r11
+
+MultiBandInfo-v9e0 ::= SEQUENCE {
+ freqBandIndicator-v9e0 FreqBandIndicator-v9e0 OPTIONAL -- Need OP
+}
+
+
+MultiFrequencyBandListNR-r15 ::= SEQUENCE (SIZE (1.. maxMultiBandsNR-r15)) OF FreqBandIndicatorNR-r15
+
+
+NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-r10
+
+NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..maxNS-Pmax-r10)) OF NS-PmaxValue-v10l0
+
+NS-PmaxValue-r10 ::= SEQUENCE {
+ additionalPmax-r10 P-Max OPTIONAL, -- Need OP
+ additionalSpectrumEmission AdditionalSpectrumEmission
+}
+
+NS-PmaxValue-v10l0 ::= SEQUENCE {
+ additionalSpectrumEmission-v10l0 AdditionalSpectrumEmission-v10l0 OPTIONAL -- Need OP
+}
+
+
+NS-PmaxListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-r15
+
+NS-PmaxValueNR-r15 ::= SEQUENCE {
+ additionalPmaxNR-r15 P-MaxNR-r15 OPTIONAL, -- Need ON
+ additionalSpectrumEmissionNR-r15 AdditionalSpectrumEmissionNR-r15
+}
+
+
+PhysCellId ::= INTEGER (0..503)
+
+
+PhysCellIdRange ::= SEQUENCE {
+ start PhysCellId,
+ range ENUMERATED {
+ n4, n8, n12, n16, n24, n32, n48, n64, n84,
+ n96, n128, n168, n252, n504, spare2,
+ spare1} OPTIONAL -- Need OP
+}
+
+
+PhysCellIdRangeUTRA-FDDList-r9::= SEQUENCE (SIZE (1..maxPhysCellIdRange-r9)) OF PhysCellIdRangeUTRA-FDD-r9
+
+PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE {
+ start-r9 PhysCellIdUTRA-FDD,
+ range-r9 INTEGER (2..512) OPTIONAL -- Need OP
+}
+
+
+PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset)
+
+
+PhysCellIdGERAN ::= SEQUENCE {
+ networkColourCode BIT STRING (SIZE (3)),
+ baseStationColourCode BIT STRING (SIZE (3))
+}
+
+
+PhysCellIdNR-r15 ::= INTEGER (0.. 1007)
+
+
+PhysCellIdUTRA-FDD ::= INTEGER (0..511)
+
+
+PhysCellIdUTRA-TDD ::= INTEGER (0..127)
+
+
+PLMN-Identity ::= SEQUENCE {
+ mcc MCC OPTIONAL, -- Cond MCC
+ mnc MNC
+}
+
+MCC ::= SEQUENCE (SIZE (3)) OF
+ MCC-MNC-Digit
+
+MNC ::= SEQUENCE (SIZE (2..3)) OF
+ MCC-MNC-Digit
+
+MCC-MNC-Digit ::= INTEGER (0..9)
+
+
+
+PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity
+
+
+P-MaxNR-r15 ::= INTEGER (-30..33)
+
+
+PreRegistrationInfoHRPD ::= SEQUENCE {
+ preRegistrationAllowed BOOLEAN,
+ preRegistrationZoneId PreRegistrationZoneIdHRPD OPTIONAL, -- cond PreRegAllowed
+ secondaryPreRegistrationZoneIdList SecondaryPreRegistrationZoneIdListHRPD OPTIONAL -- Need OR
+}
+
+SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF PreRegistrationZoneIdHRPD
+
+PreRegistrationZoneIdHRPD ::= INTEGER (0..255)
+
+
+Q-QualMin-r9 ::= INTEGER (-34..-3)
+
+
+Q-RxLevMin ::= INTEGER (-70..-22)
+
+
+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}
+
+
+Q-OffsetRangeInterRAT ::= INTEGER (-15..15)
+
+
+ReselectionThreshold ::= INTEGER (0..31)
+
+
+ReselectionThresholdQ-r9 ::= INTEGER (0..31)
+
+
+SCellIndex-r10 ::= INTEGER (1..7)
+SCellIndex-r13 ::= INTEGER (1..31)
+
+
+ServCellIndex-r10 ::= INTEGER (0..7)
+ServCellIndex-r13 ::= INTEGER (0..31)
+
+
+SpeedStateScaleFactors ::= SEQUENCE {
+ sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0},
+ sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0}
+}
+
+SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF
+ OCTET STRING (SIZE (1..23))
+
+
+SystemTimeInfoCDMA2000 ::= SEQUENCE {
+ cdma-EUTRA-Synchronisation BOOLEAN,
+ cdma-SystemTime CHOICE {
+ synchronousSystemTime BIT STRING (SIZE (39)),
+ asynchronousSystemTime BIT STRING (SIZE (49))
+ }
+}
+
+
+ThresholdNR-r15 ::= CHOICE{
+ nr-RSRP-r15 RSRP-RangeNR-r15,
+ nr-RSRQ-r15 RSRQ-RangeNR-r15,
+ nr-SINR-r15 RS-SINR-RangeNR-r15
+}
+
+ThresholdListNR-r15 ::= SEQUENCE{
+ nr-RSRP-r15 RSRP-RangeNR-r15 OPTIONAL, -- Need OR
+ nr-RSRQ-r15 RSRQ-RangeNR-r15 OPTIONAL, -- Need OR
+ nr-SINR-r15 RS-SINR-RangeNR-r15 OPTIONAL -- Need OR
+}
+
+
+TrackingAreaCode ::= BIT STRING (SIZE (16))
+TrackingAreaCode-5GC-r15 ::= BIT STRING (SIZE (24))
+
+
+T-Reselection ::= INTEGER (0..7)
+
+
+T-ReselectionEUTRA-CE-r13 ::= INTEGER (0..15)
+
+
+AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100}
+
+
+BT-NameListConfig-r15 ::= CHOICE{
+ release NULL,
+ setup BT-NameList-r15
+}
+
+BT-NameList-r15 ::= SEQUENCE (SIZE (1..maxBT-Name-r15)) OF BT-Name-r15
+
+BT-Name-r15 ::= OCTET STRING (SIZE (1..248))
+
+
+CSI-RSRP-Range-r12 ::= INTEGER(0..97)
+
+
+Hysteresis ::= INTEGER (0..30)
+
+
+LocationInfo-r10 ::= SEQUENCE {
+ locationCoordinates-r10 CHOICE {
+ ellipsoid-Point-r10 OCTET STRING,
+ ellipsoidPointWithAltitude-r10 OCTET STRING,
+ ...,
+ ellipsoidPointWithUncertaintyCircle-r11 OCTET STRING,
+ ellipsoidPointWithUncertaintyEllipse-r11 OCTET STRING,
+ ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11 OCTET STRING,
+ ellipsoidArc-r11 OCTET STRING,
+ polygon-r11 OCTET STRING
+ },
+ horizontalVelocity-r10 OCTET STRING OPTIONAL,
+ gnss-TOD-msec-r10 OCTET STRING OPTIONAL,
+ ...,
+ [[ verticalVelocityInfo-r15 CHOICE {
+ verticalVelocity-r15 OCTET STRING,
+ verticalVelocityAndUncertainty-r15 OCTET STRING
+ } OPTIONAL
+ ]]
+}
+
+
+LogMeasResultListBT-r15 ::= SEQUENCE (SIZE (1..maxBT-IdReport-r15)) OF LogMeasResultBT-r15
+
+LogMeasResultBT-r15 ::= SEQUENCE {
+ bt-Addr-r15 BIT STRING (SIZE (48)),
+ rssi-BT-r15 INTEGER (-128..127) OPTIONAL,
+ ...
+}
+
+
+LogMeasResultListWLAN-r15 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF LogMeasResultWLAN-r15
+
+LogMeasResultWLAN-r15 ::= SEQUENCE {
+ wlan-Identifiers-r15 WLAN-Identifiers-r12,
+ rssiWLAN-r15 WLAN-RSSI-Range-r13 OPTIONAL,
+ rtt-WLAN-r15 WLAN-RTT-r15 OPTIONAL,
+ ...
+}
+
+
+MBSFN-RSRQ-Range-r12 ::= INTEGER(0..31)
+
+MeasConfig ::= SEQUENCE {
+ -- Measurement objects
+ measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need ON
+ measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need ON
+ -- Reporting configurations
+ reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need ON
+ reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need ON
+ -- Measurement identities
+ measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need ON
+ measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need ON
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL, -- Need ON
+ measGapConfig MeasGapConfig OPTIONAL, -- Need ON
+ s-Measure RSRP-Range OPTIONAL, -- Need ON
+ preRegistrationInfoHRPD PreRegistrationInfoHRPD OPTIONAL, -- Need OP
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ measObjectToAddModList-v9e0 MeasObjectToAddModList-v9e0 OPTIONAL -- Need ON
+ ]],
+ [[ allowInterruptions-r11 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ measScaleFactor-r12 CHOICE {
+ release NULL,
+ setup MeasScaleFactor-r12
+ } OPTIONAL, -- Need ON
+ measIdToRemoveListExt-r12 MeasIdToRemoveListExt-r12 OPTIONAL, -- Need ON
+ measIdToAddModListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL, -- Need ON
+ measRSRQ-OnAllSymbols-r12 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[
+ measObjectToRemoveListExt-r13 MeasObjectToRemoveListExt-r13 OPTIONAL, -- Need ON
+ measObjectToAddModListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL, -- Need ON
+ measIdToAddModList-v1310 MeasIdToAddModList-v1310 OPTIONAL, -- Need ON
+ measIdToAddModListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL -- Need ON
+ ]],
+ [[ measGapConfigPerCC-List-r14 MeasGapConfigPerCC-List-r14 OPTIONAL, -- Need ON
+ measGapSharingConfig-r14 MeasGapSharingConfig-r14 OPTIONAL -- Need ON
+ ]],
+ [[ fr1-Gap-r15 BOOLEAN OPTIONAL, -- Need ON
+ mgta-r15 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ measGapConfigDensePRS-r15 MeasGapConfigDensePRS-r15 OPTIONAL, -- Need ON
+ heightThreshRef-r15 CHOICE {
+ release NULL,
+ setup INTEGER (0..31)
+ } OPTIONAL --Need ON
+ ]]
+}
+
+MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId
+
+MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId-v1250
+
+MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId
+
+MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId-v1310
+
+ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId
+
+
+MeasDS-Config-r12 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ dmtc-PeriodOffset-r12 CHOICE {
+ ms40-r12 INTEGER(0..39),
+ ms80-r12 INTEGER(0..79),
+ ms160-r12 INTEGER(0..159),
+ ...
+ },
+ ds-OccasionDuration-r12 CHOICE {
+ durationFDD-r12 INTEGER(1..maxDS-Duration-r12),
+ durationTDD-r12 INTEGER(2..maxDS-Duration-r12)
+ },
+ measCSI-RS-ToRemoveList-r12 MeasCSI-RS-ToRemoveList-r12 OPTIONAL, -- Need ON
+ measCSI-RS-ToAddModList-r12 MeasCSI-RS-ToAddModList-r12 OPTIONAL, -- Need ON
+ ...
+ }
+}
+
+MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12
+
+MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Config-r12
+
+MeasCSI-RS-Id-r12 ::= INTEGER (1..maxCSI-RS-Meas-r12)
+
+MeasCSI-RS-Config-r12 ::= SEQUENCE {
+ measCSI-RS-Id-r12 MeasCSI-RS-Id-r12,
+ physCellId-r12 INTEGER (0..503),
+ scramblingIdentity-r12 INTEGER (0..503),
+ resourceConfig-r12 INTEGER (0..31),
+ subframeOffset-r12 INTEGER (0..4),
+ csi-RS-IndividualOffset-r12 Q-OffsetRange,
+ ...
+}
+
+
+MeasGapConfig ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ gapOffset CHOICE {
+ gp0 INTEGER (0..39),
+ gp1 INTEGER (0..79),
+
+ ...,
+ gp2-r14 INTEGER (0..39),
+ gp3-r14 INTEGER (0..79),
+ gp-ncsg0-r14 INTEGER (0..39),
+ gp-ncsg1-r14 INTEGER (0..79),
+ gp-ncsg2-r14 INTEGER (0..39),
+ gp-ncsg3-r14 INTEGER (0..79),
+ gp-nonUniform1-r14 INTEGER (0..1279),
+ gp-nonUniform2-r14 INTEGER (0..2559),
+ gp-nonUniform3-r14 INTEGER (0..5119),
+ gp-nonUniform4-r14 INTEGER (0..10239),
+ gp4-r15 INTEGER (0..19),
+ gp5-r15 INTEGER (0..159),
+ gp6-r15 INTEGER (0..19),
+ gp7-r15 INTEGER (0..39),
+ gp8-r15 INTEGER (0..79),
+ gp9-r15 INTEGER (0..159),
+ gp10-r15 INTEGER (0..19),
+ gp11-r15 INTEGER (0..159)
+ }
+ }
+}
+
+
+
+MeasGapConfigDensePRS-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ gapOffsetDensePRS-r15 CHOICE {
+ rstd0-r15 INTEGER (0..79),
+ rstd1-r15 INTEGER (0..159),
+ rstd2-r15 INTEGER (0..319),
+ rstd3-r15 INTEGER (0..639),
+ rstd4-r15 INTEGER (0..1279),
+ rstd5-r15 INTEGER (0..159),
+ rstd6-r15 INTEGER (0..319),
+ rstd7-r15 INTEGER (0..639),
+ rstd8-r15 INTEGER (0..1279),
+ rstd9-r15 INTEGER (0..319),
+ rstd10-r15 INTEGER (0..639),
+ rstd11-r15 INTEGER (0..1279),
+ rstd12-r15 INTEGER (0..319),
+ rstd13-r15 INTEGER (0..639),
+ rstd14-r15 INTEGER (0..1279),
+ rstd15-r15 INTEGER (0..639),
+ rstd16-r15 INTEGER (0..1279),
+ rstd17-r15 INTEGER (0..639),
+ rstd18-r15 INTEGER (0..1279),
+ rstd19-r15 INTEGER (0..639),
+ rstd20-r15 INTEGER (0..1279),
+ ...
+ }
+ }
+}
+
+
+MeasGapConfigPerCC-List-r14 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ measGapConfigToRemoveList-r14 MeasGapConfigToRemoveList-r14 OPTIONAL, -- Need ON
+ measGapConfigToAddModList-r14 MeasGapConfigToAddModList-r14 OPTIONAL -- Need ON
+ }
+}
+
+MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF ServCellIndex-r13
+
+MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasGapConfigPerCC-r14
+
+MeasGapConfigPerCC-r14 ::= SEQUENCE {
+ servCellId-r14 ServCellIndex-r13,
+ measGapConfigCC-r14 MeasGapConfig
+}
+
+
+MeasGapSharingConfig-r14 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ measGapSharingScheme-r14 ENUMERATED {scheme00, scheme01, scheme10, scheme11}
+ }
+}
+
+
+MeasId ::= INTEGER (1..maxMeasId)
+
+MeasId-v1250 ::= INTEGER (maxMeasId-Plus1..maxMeasId-r12)
+
+
+MeasIdleConfigSIB-r15 ::= SEQUENCE {
+ measIdleCarrierListEUTRA-r15 EUTRA-CarrierList-r15,
+ ...
+}
+
+MeasIdleConfigDedicated-r15 ::= SEQUENCE {
+ measIdleCarrierListEUTRA-r15 EUTRA-CarrierList-r15 OPTIONAL, -- Need OR
+ measIdleDuration-r15 ENUMERATED {sec10, sec30, sec60, sec120,
+ sec180, sec240, sec300, spare},
+ ...
+}
+
+EUTRA-CarrierList-r15 ::= SEQUENCE (SIZE (1..maxFreqIdle-r15)) OF MeasIdleCarrierEUTRA-r15
+
+MeasIdleCarrierEUTRA-r15::= SEQUENCE {
+ carrierFreq-r15 ARFCN-ValueEUTRA-r9,
+ allowedMeasBandwidth-r15 AllowedMeasBandwidth,
+ validityArea-r15 CellList-r15 OPTIONAL, -- Need OR
+ measCellList-r15 CellList-r15 OPTIONAL, -- Need OR
+ reportQuantities ENUMERATED {rsrp, rsrq, both},
+ qualityThreshold-r15 SEQUENCE {
+ idleRSRP-Threshold-r15 RSRP-Range OPTIONAL, -- Need OR
+ idleRSRQ-Threshold-r15 RSRQ-Range-r13 OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ ...
+}
+
+CellList-r15 ::= SEQUENCE (SIZE (1.. maxCellMeasIdle-r15)) OF PhysCellIdRange
+
+
+MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod
+
+MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310
+
+MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddModExt-r12
+
+MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod-v1310
+
+MeasIdToAddMod ::= SEQUENCE {
+ measId MeasId,
+ measObjectId MeasObjectId,
+ reportConfigId ReportConfigId
+}
+
+MeasIdToAddModExt-r12 ::= SEQUENCE {
+ measId-v1250 MeasId-v1250,
+ measObjectId-r12 MeasObjectId,
+ reportConfigId-r12 ReportConfigId
+}
+
+MeasIdToAddMod-v1310 ::= SEQUENCE {
+ measObjectId-v1310 MeasObjectId-v1310 OPTIONAL
+}
+
+
+MeasObjectCDMA2000 ::= SEQUENCE {
+ cdma2000-Type CDMA2000-Type,
+ carrierFreq CarrierFreqCDMA2000,
+ searchWindowSize INTEGER (0..15) OPTIONAL, -- Need ON
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CellsToAddModListCDMA2000 OPTIONAL, -- Need ON
+ cellForWhichToReportCGI PhysCellIdCDMA2000 OPTIONAL, -- Need ON
+ ...
+}
+
+CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModCDMA2000
+
+CellsToAddModCDMA2000 ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdCDMA2000
+}
+
+
+MeasObjectEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ allowedMeasBandwidth AllowedMeasBandwidth,
+ presenceAntennaPort1 PresenceAntennaPort1,
+ neighCellConfig NeighCellConfig,
+ offsetFreq Q-OffsetRange DEFAULT dB0,
+ -- Cell list
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CellsToAddModList OPTIONAL, -- Need ON
+ -- Black list
+ blackCellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ blackCellsToAddModList BlackCellsToAddModList OPTIONAL, -- Need ON
+ cellForWhichToReportCGI PhysCellId OPTIONAL, -- Need ON
+ ...,
+ [[measCycleSCell-r10 MeasCycleSCell-r10 OPTIONAL, -- Need ON
+ measSubframePatternConfigNeigh-r10 MeasSubframePatternConfigNeigh-r10 OPTIONAL -- Need ON
+ ]],
+ [[widebandRSRQ-Meas-r11 BOOLEAN OPTIONAL -- Cond WB-RSRQ
+ ]],
+ [[ altTTT-CellsToRemoveList-r12 CellIndexList OPTIONAL, -- Need ON
+ altTTT-CellsToAddModList-r12 AltTTT-CellsToAddModList-r12 OPTIONAL, -- Need ON
+ t312-r12 CHOICE {
+ release NULL,
+ setup ENUMERATED {ms0, ms50, ms100, ms200,
+ ms300, ms400, ms500, ms1000}
+ } OPTIONAL, -- Need ON
+ reducedMeasPerformance-r12 BOOLEAN OPTIONAL, -- Need ON
+ measDS-Config-r12 MeasDS-Config-r12 OPTIONAL -- Need ON
+ ]],
+ [[
+ whiteCellsToRemoveList-r13 CellIndexList OPTIONAL, -- Need ON
+ whiteCellsToAddModList-r13 WhiteCellsToAddModList-r13 OPTIONAL, -- Need ON
+ rmtc-Config-r13 RMTC-Config-r13 OPTIONAL, -- Need ON
+ carrierFreq-r13 ARFCN-ValueEUTRA-v9e0 OPTIONAL -- Need ON
+ ]],
+ [[
+ tx-ResourcePoolToRemoveList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON
+ tx-ResourcePoolToAddList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL, -- Need ON
+ fembms-MixedCarrier-r14 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[
+ measSensing-Config-r15 MeasSensing-Config-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+MeasObjectEUTRA-v9e0 ::= SEQUENCE {
+ carrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
+}
+
+CellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddMod
+
+CellsToAddMod ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellId,
+ cellIndividualOffset Q-OffsetRange
+}
+
+BlackCellsToAddModList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF BlackCellsToAddMod
+
+BlackCellsToAddMod ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellIdRange PhysCellIdRange
+}
+
+MeasCycleSCell-r10 ::= ENUMERATED {sf160, sf256, sf320, sf512,
+ sf640, sf1024, sf1280, spare1}
+
+MeasSubframePatternConfigNeigh-r10 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ measSubframePatternNeigh-r10 MeasSubframePattern-r10,
+ measSubframeCellList-r10 MeasSubframeCellList-r10 OPTIONAL -- Cond always
+ }
+}
+
+MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellIdRange
+
+AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF AltTTT-CellsToAddMod-r12
+
+AltTTT-CellsToAddMod-r12 ::= SEQUENCE {
+ cellIndex-r12 INTEGER (1..maxCellMeas),
+ physCellIdRange-r12 PhysCellIdRange
+}
+
+WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF WhiteCellsToAddMod-r13
+
+WhiteCellsToAddMod-r13 ::= SEQUENCE {
+ cellIndex-r13 INTEGER (1..maxCellMeas),
+ physCellIdRange-r13 PhysCellIdRange
+}
+
+RMTC-Config-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ rmtc-Period-r13 ENUMERATED {ms40, ms80, ms160, ms320, ms640},
+ rmtc-SubframeOffset-r13 INTEGER(0..639) OPTIONAL, -- Need ON
+ measDuration-r13 ENUMERATED {sym1, sym14, sym28, sym42, sym70},
+ ...
+ }
+}
+
+Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..maxSL-PoolToMeasure-r14)) OF SL-V2X-TxPoolReportIdentity-r14
+
+
+MeasObjectGERAN ::= SEQUENCE {
+ carrierFreqs CarrierFreqsGERAN,
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ ncc-Permitted BIT STRING(SIZE (8)) DEFAULT '11111111'B,
+ cellForWhichToReportCGI PhysCellIdGERAN OPTIONAL, -- Need ON
+ ...
+}
+
+
+MeasObjectId ::= INTEGER (1..maxObjectId)
+
+MeasObjectId-v1310 ::= INTEGER (maxObjectId-Plus1-r13..maxObjectId-r13)
+
+MeasObjectId-r13 ::= INTEGER (1..maxObjectId-r13)
+
+
+MeasObjectNR-r15 ::= SEQUENCE {
+ carrierFreq-r15 ARFCN-ValueNR-r15,
+ rs-ConfigSSB-r15 RS-ConfigSSB-NR-r15,
+ threshRS-Index-r15 ThresholdListNR-r15 OPTIONAL, -- Need OR
+ maxRS-IndexCellQual-r15 MaxRS-IndexCellQualNR-r15 OPTIONAL, -- Need OR
+ offsetFreq-r15 Q-OffsetRangeInterRAT DEFAULT 0,
+ blackCellsToRemoveList-r15 CellIndexList OPTIONAL, -- Need ON
+ blackCellsToAddModList-r15 CellsToAddModListNR-r15 OPTIONAL, -- Need ON
+ quantityConfigSet-r15 INTEGER (1.. maxQuantSetsNR-r15),
+ cellsForWhichToReportSFTD-r15 SEQUENCE (SIZE (1..maxCellSFTD)) OF PhysCellIdNR-r15 OPTIONAL, -- Need OR
+ ...,
+ [[ cellForWhichToReportCGI-r15 PhysCellIdNR-r15 OPTIONAL, -- Need ON
+ deriveSSB-IndexFromCell-r15 BOOLEAN OPTIONAL, -- Need ON
+ ss-RSSI-Measurement-r15 SS-RSSI-Measurement-r15 OPTIONAL, -- Need ON
+ bandNR-r15 CHOICE {
+ release NULL,
+ setup FreqBandIndicatorNR-r15
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+RS-ConfigSSB-NR-r15 ::= SEQUENCE {
+ measTimingConfig-r15 MTC-SSB-NR-r15,
+
+ subcarrierSpacingSSB-r15 ENUMERATED {kHz15, kHz30, kHz120, kHz240},
+ ...
+}
+
+CellsToAddModListNR-r15 ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModNR-r15
+
+CellsToAddModNR-r15 ::= SEQUENCE {
+ cellIndex-r15 INTEGER (1..maxCellMeas),
+ physCellId-r15 PhysCellIdNR-r15
+}
+
+
+MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod
+
+MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddModExt-r13
+
+MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod-v9e0
+
+MeasObjectToAddMod ::= SEQUENCE {
+ measObjectId MeasObjectId,
+ measObject CHOICE {
+ measObjectEUTRA MeasObjectEUTRA,
+ measObjectUTRA MeasObjectUTRA,
+ measObjectGERAN MeasObjectGERAN,
+ measObjectCDMA2000 MeasObjectCDMA2000,
+ ...,
+ measObjectWLAN-r13 MeasObjectWLAN-r13,
+ measObjectNR-r15 MeasObjectNR-r15
+ }
+}
+
+MeasObjectToAddModExt-r13 ::= SEQUENCE {
+ measObjectId-r13 MeasObjectId-v1310,
+ measObject-r13 CHOICE {
+ measObjectEUTRA-r13 MeasObjectEUTRA,
+ measObjectUTRA-r13 MeasObjectUTRA,
+ measObjectGERAN-r13 MeasObjectGERAN,
+ measObjectCDMA2000-r13 MeasObjectCDMA2000,
+ ...,
+ measObjectWLAN-v1320 MeasObjectWLAN-r13,
+ measObjectNR-r15 MeasObjectNR-r15
+ }
+}
+
+MeasObjectToAddMod-v9e0 ::= SEQUENCE {
+ measObjectEUTRA-v9e0 MeasObjectEUTRA-v9e0 OPTIONAL -- Cond eutra
+}
+
+
+MeasObjectUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueUTRA,
+ offsetFreq Q-OffsetRangeInterRAT DEFAULT 0,
+ cellsToRemoveList CellIndexList OPTIONAL, -- Need ON
+ cellsToAddModList CHOICE {
+ cellsToAddModListUTRA-FDD CellsToAddModListUTRA-FDD,
+ cellsToAddModListUTRA-TDD CellsToAddModListUTRA-TDD
+ } OPTIONAL, -- Need ON
+ cellForWhichToReportCGI CHOICE {
+ utra-FDD PhysCellIdUTRA-FDD,
+ utra-TDD PhysCellIdUTRA-TDD
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ csg-allowedReportingCells-v930 CSG-AllowedReportingCells-r9 OPTIONAL -- Need ON
+ ]],
+ [[ reducedMeasPerformance-r12 BOOLEAN OPTIONAL -- Need ON
+ ]]
+}
+
+CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-FDD
+
+CellsToAddModUTRA-FDD ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdUTRA-FDD
+}
+
+CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CellsToAddModUTRA-TDD
+
+CellsToAddModUTRA-TDD ::= SEQUENCE {
+ cellIndex INTEGER (1..maxCellMeas),
+ physCellId PhysCellIdUTRA-TDD
+}
+
+CSG-AllowedReportingCells-r9 ::= SEQUENCE {
+ physCellIdRangeUTRA-FDDList-r9 PhysCellIdRangeUTRA-FDDList-r9 OPTIONAL -- Need OR
+}
+
+MeasObjectWLAN-r13 ::= SEQUENCE {
+ carrierFreq-r13 CHOICE {
+ bandIndicatorListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13,
+ carrierInfoListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-CarrierInfo-r13)) OF WLAN-CarrierInfo-r13
+ } OPTIONAL, -- Need ON
+ wlan-ToAddModList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON
+ wlan-ToRemoveList-r13 WLAN-Id-List-r13 OPTIONAL, -- Need ON
+ ...
+}
+
+WLAN-BandIndicator-r13 ::= ENUMERATED {band2dot4, band5, band60-v1430, spare5, spare4, spare3, spare2, spare1, ...}
+
+
+MeasResults ::= SEQUENCE {
+ measId MeasId,
+ measResultPCell SEQUENCE {
+ rsrpResult RSRP-Range,
+ rsrqResult RSRQ-Range
+ },
+ measResultNeighCells CHOICE {
+ measResultListEUTRA MeasResultListEUTRA,
+ measResultListUTRA MeasResultListUTRA,
+ measResultListGERAN MeasResultListGERAN,
+ measResultsCDMA2000 MeasResultsCDMA2000,
+ ...,
+ measResultNeighCellListNR-r15 MeasResultCellListNR-r15
+ } OPTIONAL,
+ ...,
+ [[ measResultForECID-r9 MeasResultForECID-r9 OPTIONAL
+ ]],
+ [[ locationInfo-r10 LocationInfo-r10 OPTIONAL,
+ measResultServFreqList-r10 MeasResultServFreqList-r10 OPTIONAL
+ ]],
+ [[ measId-v1250 MeasId-v1250 OPTIONAL,
+ measResultPCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ measResultCSI-RS-List-r12 MeasResultCSI-RS-List-r12 OPTIONAL
+ ]],
+ [[ measResultForRSSI-r13 MeasResultForRSSI-r13 OPTIONAL,
+ measResultServFreqListExt-r13 MeasResultServFreqListExt-r13 OPTIONAL,
+ measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL,
+ measResultPCell-v1310 SEQUENCE {
+ rs-sinr-Result-r13 RS-SINR-Range-r13
+ } OPTIONAL,
+ ul-PDCP-DelayResultList-r13 UL-PDCP-DelayResultList-r13 OPTIONAL,
+ measResultListWLAN-r13 MeasResultListWLAN-r13 OPTIONAL
+ ]],
+ [[ measResultPCell-v1360 RSRP-Range-v1360 OPTIONAL
+ ]],
+ [[ measResultListCBR-r14 MeasResultListCBR-r14 OPTIONAL,
+ measResultListWLAN-r14 MeasResultListWLAN-r14 OPTIONAL
+ ]],
+ [[ measResultServFreqListNR-r15 MeasResultServFreqListNR-r15 OPTIONAL,
+ measResultCellListSFTD-r15 MeasResultCellListSFTD-r15 OPTIONAL
+ ]],
+ [[ logMeasResultListBT-r15 LogMeasResultListBT-r15 OPTIONAL,
+ logMeasResultListWLAN-r15 LogMeasResultListWLAN-r15 OPTIONAL,
+ measResultSensing-r15 MeasResultSensing-r15 OPTIONAL,
+ heightUE-r15 INTEGER (-400..8880) OPTIONAL
+ ]]
+}
+
+MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA
+
+MeasResultEUTRA ::= SEQUENCE {
+ physCellId PhysCellId,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdEUTRA,
+ trackingAreaCode TrackingAreaCode,
+ plmn-IdentityList PLMN-IdentityList2 OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rsrpResult RSRP-Range OPTIONAL,
+ rsrqResult RSRQ-Range OPTIONAL,
+ ...,
+ [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL
+ ]],
+ [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL,
+ measResult-v1250 RSRQ-Range-v1250 OPTIONAL
+ ]],
+ [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL,
+ cgi-Info-v1310 SEQUENCE {
+ freqBandIndicator-r13 FreqBandIndicator-r11 OPTIONAL,
+ multiBandInfoList-r13 MultiBandInfoList-r11 OPTIONAL,
+ freqBandIndicatorPriority-r13 ENUMERATED {true} OPTIONAL
+ } OPTIONAL
+ ]],
+ [[
+ measResult-v1360 RSRP-Range-v1360 OPTIONAL
+ ]],
+ [[
+ cgi-Info-5GC-r15 SEQUENCE (SIZE (1..maxPLMN-r11)) OF CellAccessRelatedInfo-5GC-r15 OPTIONAL
+ ]]
+ }
+}
+
+MeasResultListIdle-r15 ::= SEQUENCE (SIZE (1..maxIdleMeasCarriers-r15)) OF MeasResultIdle-r15
+
+MeasResultIdle-r15 ::= SEQUENCE {
+ measResultServingCell-r15 SEQUENCE {
+ rsrpResult-r15 RSRP-Range,
+ rsrqResult-r15 RSRQ-Range-r13
+ },
+ measResultNeighCells-r15 CHOICE {
+ measResultIdleListEUTRA-r15 MeasResultIdleListEUTRA-r15,
+ ...
+ } OPTIONAL,
+ ...
+}
+
+MeasResultIdleListEUTRA-r15 ::= SEQUENCE (SIZE (1..maxCellMeasIdle-r15)) OF MeasResultIdleEUTRA-r15
+
+MeasResultIdleEUTRA-r15 ::= SEQUENCE {
+ carrierFreq-r15 ARFCN-ValueEUTRA-r9,
+ physCellId-r15 PhysCellId,
+ measResult-r15 SEQUENCE {
+ rsrpResult-r15 RSRP-Range,
+ rsrqResult-r15 RSRQ-Range-r13
+ },
+ ...
+}
+
+MeasResultServFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreqNR-r15
+
+MeasResultServFreqNR-r15 ::= SEQUENCE {
+ carrierFreq-r15 ARFCN-ValueNR-r15,
+ measResultSCell-r15 MeasResultCellNR-r15 OPTIONAL,
+ measResultBestNeighCell-r15 MeasResultCellNR-r15 OPTIONAL,
+ ...
+}
+
+MeasResultCellListNR-r15::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCellNR-r15
+
+MeasResultCellNR-r15 ::= SEQUENCE {
+ pci-r15 PhysCellIdNR-r15,
+ measResultCell-r15 MeasResultNR-r15,
+ measResultRS-IndexList-r15 MeasResultSSB-IndexList-r15 OPTIONAL,
+ ...,
+ [[ cgi-Info-r15 CGI-InfoNR-r15 OPTIONAL
+ ]]
+}
+
+MeasResultNR-r15 ::= SEQUENCE {
+ rsrpResult-r15 RSRP-RangeNR-r15 OPTIONAL,
+ rsrqResult-r15 RSRQ-RangeNR-r15 OPTIONAL,
+ rs-sinr-Result-r15 RS-SINR-RangeNR-r15 OPTIONAL,
+ ...
+}
+
+MeasResultSSB-IndexList-r15::= SEQUENCE (SIZE (1..maxRS-IndexReport-r15)) OF MeasResultSSB-Index-r15
+
+MeasResultSSB-Index-r15 ::= SEQUENCE {
+ ssb-Index-r15 RS-IndexNR-r15,
+ measResultSSB-Index-r15 MeasResultNR-r15 OPTIONAL,
+ ...
+}
+
+MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServFreq-r10
+
+MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServFreq-r13
+
+MeasResultServFreq-r10 ::= SEQUENCE {
+ servFreqId-r10 ServCellIndex-r10,
+ measResultSCell-r10 SEQUENCE {
+ rsrpResultSCell-r10 RSRP-Range,
+ rsrqResultSCell-r10 RSRQ-Range
+ } OPTIONAL,
+ measResultBestNeighCell-r10 SEQUENCE {
+ physCellId-r10 PhysCellId,
+ rsrpResultNCell-r10 RSRP-Range,
+ rsrqResultNCell-r10 RSRQ-Range
+ } OPTIONAL,
+ ...,
+ [[ measResultSCell-v1250 RSRQ-Range-v1250 OPTIONAL,
+ measResultBestNeighCell-v1250 RSRQ-Range-v1250 OPTIONAL
+ ]],
+ [[ measResultSCell-v1310 SEQUENCE {
+ rs-sinr-Result-r13 RS-SINR-Range-r13
+ } OPTIONAL,
+ measResultBestNeighCell-v1310 SEQUENCE {
+ rs-sinr-Result-r13 RS-SINR-Range-r13
+ } OPTIONAL
+ ]]
+}
+
+MeasResultServFreq-r13 ::= SEQUENCE {
+ servFreqId-r13 ServCellIndex-r13,
+ measResultSCell-r13 SEQUENCE {
+ rsrpResultSCell-r13 RSRP-Range,
+ rsrqResultSCell-r13 RSRQ-Range-r13,
+ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL
+ } OPTIONAL,
+ measResultBestNeighCell-r13 SEQUENCE {
+ physCellId-r13 PhysCellId,
+ rsrpResultNCell-r13 RSRP-Range,
+ rsrqResultNCell-r13 RSRQ-Range-r13,
+ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL
+ } OPTIONAL,
+ ...,
+ [[ measResultBestNeighCell-v1360 SEQUENCE {
+ rsrpResultNCell-v1360 RSRP-Range-v1360
+ } OPTIONAL
+ ]]
+}
+
+MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCSI-RS-r12
+
+MeasResultCSI-RS-r12 ::= SEQUENCE {
+ measCSI-RS-Id-r12 MeasCSI-RS-Id-r12,
+ csi-RSRP-Result-r12 CSI-RSRP-Range-r12,
+ ...
+}
+
+MeasResultListUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultUTRA
+
+MeasResultUTRA ::= SEQUENCE {
+ physCellId CHOICE {
+ fdd PhysCellIdUTRA-FDD,
+ tdd PhysCellIdUTRA-TDD
+ },
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdUTRA,
+ locationAreaCode BIT STRING (SIZE (16)) OPTIONAL,
+ routingAreaCode BIT STRING (SIZE (8)) OPTIONAL,
+ plmn-IdentityList PLMN-IdentityList2 OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ utra-RSCP INTEGER (-5..91) OPTIONAL,
+ utra-EcN0 INTEGER (0..49) OPTIONAL,
+ ...,
+ [[ additionalSI-Info-r9 AdditionalSI-Info-r9 OPTIONAL
+ ]],
+ [[ primaryPLMN-Suitable-r12 ENUMERATED {true} OPTIONAL
+ ]]
+ }
+}
+
+MeasResultListGERAN ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultGERAN
+
+MeasResultGERAN ::= SEQUENCE {
+ carrierFreq CarrierFreqGERAN,
+ physCellId PhysCellIdGERAN,
+ cgi-Info SEQUENCE {
+ cellGlobalId CellGlobalIdGERAN,
+ routingAreaCode BIT STRING (SIZE (8)) OPTIONAL
+ } OPTIONAL,
+ measResult SEQUENCE {
+ rssi INTEGER (0..63),
+ ...
+ }
+}
+
+MeasResultsCDMA2000 ::= SEQUENCE {
+ preRegistrationStatusHRPD BOOLEAN,
+ measResultListCDMA2000 MeasResultListCDMA2000
+}
+
+MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultCDMA2000
+
+MeasResultCDMA2000 ::= SEQUENCE {
+ physCellId PhysCellIdCDMA2000,
+ cgi-Info CellGlobalIdCDMA2000 OPTIONAL,
+ measResult SEQUENCE {
+ pilotPnPhase INTEGER (0..32767) OPTIONAL,
+ pilotStrength INTEGER (0..63),
+ ...
+ }
+}
+
+MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultWLAN-r13
+
+MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..maxWLAN-Id-Report-r14)) OF MeasResultWLAN-r13
+
+MeasResultWLAN-r13 ::= SEQUENCE {
+ wlan-Identifiers-r13 WLAN-Identifiers-r12,
+ carrierInfoWLAN-r13 WLAN-CarrierInfo-r13 OPTIONAL,
+ bandWLAN-r13 WLAN-BandIndicator-r13 OPTIONAL,
+ rssiWLAN-r13 WLAN-RSSI-Range-r13,
+ availableAdmissionCapacityWLAN-r13 INTEGER (0..31250) OPTIONAL,
+ backhaulDL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL,
+ backhaulUL-BandwidthWLAN-r13 WLAN-backhaulRate-r12 OPTIONAL,
+ channelUtilizationWLAN-r13 INTEGER (0..255) OPTIONAL,
+ stationCountWLAN-r13 INTEGER (0..65535) OPTIONAL,
+ connectedWLAN-r13 ENUMERATED {true} OPTIONAL,
+ ...
+}
+
+MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..maxCBR-Report-r14)) OF MeasResultCBR-r14
+
+MeasResultCBR-r14 ::= SEQUENCE {
+ poolIdentity-r14 SL-V2X-TxPoolReportIdentity-r14,
+ cbr-PSSCH-r14 SL-CBR-r14,
+ cbr-PSCCH-r14 SL-CBR-r14 OPTIONAL
+}
+
+MeasResultSensing-r15 ::= SEQUENCE {
+ sl-SubframeRef-r15 INTEGER (0..10239),
+ sensingResult-r15 SEQUENCE (SIZE (0..400)) OF SensingResult-r15
+}
+
+SensingResult-r15 ::= SEQUENCE {
+ resourceIndex-r15 INTEGER (1..2000)
+}
+
+MeasResultForECID-r9 ::= SEQUENCE {
+ ue-RxTxTimeDiffResult-r9 INTEGER (0..4095),
+ currentSFN-r9 BIT STRING (SIZE (10))
+}
+
+PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity
+
+AdditionalSI-Info-r9 ::= SEQUENCE {
+ csg-MemberStatus-r9 ENUMERATED {member} OPTIONAL,
+ csg-Identity-r9 CSG-Identity OPTIONAL
+}
+MeasResultForRSSI-r13 ::= SEQUENCE {
+ rssi-Result-r13 RSSI-Range-r13,
+ channelOccupancy-r13 INTEGER (0..100),
+ ...
+}
+
+UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..maxQCI-r13)) OF UL-PDCP-DelayResult-r13
+
+
+UL-PDCP-DelayResult-r13 ::= SEQUENCE {
+ qci-Id-r13 ENUMERATED {qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1},
+ excessDelay-r13 INTEGER (0..31),
+ ...
+}
+
+CGI-InfoNR-r15 ::= SEQUENCE {
+ plmn-IdentityInfoList-r15 PLMN-IdentityInfoListNR-r15 OPTIONAL,
+ frequencyBandList-15 MultiFrequencyBandListNR-r15 OPTIONAL,
+ noSIB1-r15 SEQUENCE {
+ ssb-SubcarrierOffset-r15 INTEGER (0..15),
+ pdcch-ConfigSIB1-r15 INTEGER (0..255)
+ } OPTIONAL,
+ ...
+}
+
+CellIdentityNR-r15 ::= BIT STRING (SIZE (36))
+
+PLMN-IdentityListNR-r15 ::= SEQUENCE (SIZE (1.. maxPLMN-NR-r15)) OF PLMN-Identity
+
+PLMN-IdentityInfoListNR-r15 ::= SEQUENCE (SIZE (1..maxPLMN-NR-r15)) OF PLMN-IdentityInfoNR-r15
+
+PLMN-IdentityInfoNR-r15 ::= SEQUENCE {
+ plmn-IdentityList-r15 PLMN-IdentityListNR-r15,
+ trackingAreaCode-r15 TrackingAreaCodeNR-r15 OPTIONAL,
+ ran-AreaCode-r15 RAN-AreaCode-r15 OPTIONAL,
+ cellIdentity-r15 CellIdentityNR-r15
+}
+
+TrackingAreaCodeNR-r15 ::= BIT STRING (SIZE (24))
+
+
+MeasResultCellListSFTD-r15 ::= SEQUENCE (SIZE (1..maxCellSFTD)) OF MeasResultCellSFTD-r15
+
+MeasResultCellSFTD-r15 ::= SEQUENCE {
+ physCellId-r15 PhysCellIdNR-r15,
+ sfn-OffsetResult-r15 INTEGER (0..1023),
+ frameBoundaryOffsetResult-r15 INTEGER (-30720..30719),
+ rsrpResult-r15 RSRP-RangeNR-r15 OPTIONAL
+}
+
+
+MeasResultSSTD-r13 ::= SEQUENCE {
+ sfn-OffsetResult-r13 INTEGER (0..1023),
+ frameBoundaryOffsetResult-r13 INTEGER (-5..4),
+ subframeBoundaryOffsetResult-r13 INTEGER (0..127)
+}
+
+
+MeasScaleFactor-r12 ::= ENUMERATED {sf-EUTRA-cf1, sf-EUTRA-cf2}
+
+
+MeasSensing-Config-r15 ::= SEQUENCE {
+ sensingSubchannelNumber-r15 INTEGER (1..20),
+ sensingPeriodicity-r15 ENUMERATED {ms20, ms50, ms100, ms200,
+ ms300, ms400, ms500, ms600,
+ ms700, ms800, ms900, ms1000},
+ sensingReselectionCounter-r15 INTEGER (5..75),
+ sensingPriority-r15 INTEGER (1..8)
+}
+
+
+MTC-SSB-NR-r15 ::= SEQUENCE {
+ periodicityAndOffset-r15 CHOICE {
+ sf5-r15 INTEGER (0..4),
+ sf10-r15 INTEGER (0..9),
+ sf20-r15 INTEGER (0..19),
+ sf40-r15 INTEGER (0..39),
+ sf80-r15 INTEGER (0..79),
+ sf160-r15 INTEGER (0..159)
+ },
+ ssb-Duration-r15 ENUMERATED {sf1, sf2, sf3, sf4, sf5 }
+}
+
+
+QuantityConfig ::= SEQUENCE {
+ quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON
+ quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON
+ quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON
+ quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON
+ ...,
+ [[ quantityConfigUTRA-v1020 QuantityConfigUTRA-v1020 OPTIONAL -- Need ON
+ ]],
+ [[ quantityConfigEUTRA-v1250 QuantityConfigEUTRA-v1250 OPTIONAL -- Need ON
+ ]],
+ [[ quantityConfigEUTRA-v1310 QuantityConfigEUTRA-v1310 OPTIONAL, -- Need ON
+ quantityConfigWLAN-r13 QuantityConfigWLAN-r13 OPTIONAL -- Need ON
+ ]],
+ [[ quantityConfigNRList-r15 QuantityConfigNRList-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+QuantityConfigEUTRA ::= SEQUENCE {
+ filterCoefficientRSRP FilterCoefficient DEFAULT fc4,
+ filterCoefficientRSRQ FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigEUTRA-v1250 ::= SEQUENCE {
+ filterCoefficientCSI-RSRP-r12 FilterCoefficient OPTIONAL -- Need OR
+}
+
+QuantityConfigEUTRA-v1310 ::= SEQUENCE {
+ filterCoefficientRS-SINR-r13 FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigUTRA ::= SEQUENCE {
+ measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0},
+ measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP},
+ filterCoefficient FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigUTRA-v1020 ::= SEQUENCE {
+ filterCoefficient2-FDD-r10 FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigGERAN ::= SEQUENCE {
+ measQuantityGERAN ENUMERATED {rssi},
+ filterCoefficient FilterCoefficient DEFAULT fc2
+}
+
+QuantityConfigCDMA2000 ::= SEQUENCE {
+ measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength}
+}
+
+QuantityConfigNRList-r15 ::= SEQUENCE (SIZE (1..maxQuantSetsNR-r15)) OF QuantityConfigNR-r15
+
+QuantityConfigNR-r15 ::= SEQUENCE {
+ measQuantityCellNR-r15 QuantityConfigRS-NR-r15,
+ measQuantityRS-IndexNR-r15 QuantityConfigRS-NR-r15 OPTIONAL
+}
+
+QuantityConfigRS-NR-r15 ::= SEQUENCE {
+ filterCoeff-RSRP-r15 FilterCoefficient DEFAULT fc4,
+ filterCoeff-RSRQ-r15 FilterCoefficient DEFAULT fc4,
+ filterCoefficient-SINR-r13 FilterCoefficient DEFAULT fc4
+}
+
+QuantityConfigWLAN-r13 ::= SEQUENCE {
+ measQuantityWLAN-r13 ENUMERATED {rssiWLAN},
+ filterCoefficient-r13 FilterCoefficient DEFAULT fc4
+}
+
+
+ReportConfigEUTRA ::= SEQUENCE {
+ triggerType CHOICE {
+ event SEQUENCE {
+ eventId CHOICE {
+ eventA1 SEQUENCE {
+ a1-Threshold ThresholdEUTRA
+ },
+ eventA2 SEQUENCE {
+ a2-Threshold ThresholdEUTRA
+ },
+ eventA3 SEQUENCE {
+ a3-Offset INTEGER (-30..30),
+ reportOnLeave BOOLEAN
+ },
+ eventA4 SEQUENCE {
+ a4-Threshold ThresholdEUTRA
+ },
+ eventA5 SEQUENCE {
+ a5-Threshold1 ThresholdEUTRA,
+ a5-Threshold2 ThresholdEUTRA
+ },
+ ...,
+ eventA6-r10 SEQUENCE {
+ a6-Offset-r10 INTEGER (-30..30),
+ a6-ReportOnLeave-r10 BOOLEAN
+ },
+ eventC1-r12 SEQUENCE {
+ c1-Threshold-r12 ThresholdEUTRA-v1250,
+ c1-ReportOnLeave-r12 BOOLEAN
+ },
+ eventC2-r12 SEQUENCE {
+ c2-RefCSI-RS-r12 MeasCSI-RS-Id-r12,
+ c2-Offset-r12 INTEGER (-30..30),
+ c2-ReportOnLeave-r12 BOOLEAN
+ },
+ eventV1-r14 SEQUENCE {
+ v1-Threshold-r14 SL-CBR-r14
+ },
+ eventV2-r14 SEQUENCE {
+ v2-Threshold-r14 SL-CBR-r14
+ },
+ eventH1-r15 SEQUENCE {
+ h1-ThresholdOffset-r15 INTEGER (0..300),
+ h1-Hysteresis-15 INTEGER (1..16)
+ },
+ eventH2-r15 SEQUENCE {
+ h2-ThresholdOffset-r15 INTEGER (0..300),
+ h2-Hysteresis-15 INTEGER (1..16)
+ }
+ },
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger
+ },
+ periodical SEQUENCE {
+ purpose ENUMERATED {
+ reportStrongestCells, reportCGI}
+ }
+ },
+ triggerQuantity ENUMERATED {rsrp, rsrq},
+ reportQuantity ENUMERATED {sameAsTriggerQuantity, both},
+ maxReportCells INTEGER (1..maxCellReport),
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ ...,
+ [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL, -- Cond reportCGI
+ ue-RxTxTimeDiffPeriodical-r9 ENUMERATED {setup} OPTIONAL -- Need OR
+ ]],
+ [[ includeLocationInfo-r10 ENUMERATED {true} OPTIONAL, -- Need OR
+ reportAddNeighMeas-r10 ENUMERATED {setup} OPTIONAL -- Need OR
+ ]],
+ [[ alternativeTimeToTrigger-r12 CHOICE {
+ release NULL,
+ setup TimeToTrigger
+ } OPTIONAL, -- Need ON
+ useT312-r12 BOOLEAN OPTIONAL, -- Need ON
+ usePSCell-r12 BOOLEAN OPTIONAL, -- Need ON
+ aN-Threshold1-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON
+ a5-Threshold2-v1250 RSRQ-RangeConfig-r12 OPTIONAL, -- Need ON
+ reportStrongestCSI-RSs-r12 BOOLEAN OPTIONAL, -- Need ON
+ reportCRS-Meas-r12 BOOLEAN OPTIONAL, -- Need ON
+ triggerQuantityCSI-RS-r12 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ reportSSTD-Meas-r13 BOOLEAN OPTIONAL, -- Need ON
+ rs-sinr-Config-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ triggerQuantity-v1310 ENUMERATED {sinr} OPTIONAL, -- Need ON
+ aN-Threshold1-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON
+ a5-Threshold2-r13 RS-SINR-Range-r13 OPTIONAL, -- Need ON
+ reportQuantity-v1310 ENUMERATED {rsrpANDsinr, rsrqANDsinr, all}
+ }
+ } OPTIONAL, -- Need ON
+ useWhiteCellList-r13 BOOLEAN OPTIONAL, -- Need ON
+ measRSSI-ReportConfig-r13 MeasRSSI-ReportConfig-r13 OPTIONAL, -- Need ON
+ includeMultiBandInfo-r13 ENUMERATED {true} OPTIONAL, -- Cond reportCGI
+ ul-DelayConfig-r13 UL-DelayConfig-r13 OPTIONAL -- Need ON
+ ]],
+ [[ ue-RxTxTimeDiffPeriodicalTDD-r13 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[
+ purpose-v1430 ENUMERATED {reportLocation, sidelink, spare2, spare1}
+ OPTIONAL -- Need ON
+ ]],
+ [[
+ maxReportRS-Index-r15 INTEGER (0..maxRS-IndexReport-r15) OPTIONAL -- Need ON
+ ]],
+ [[ includeBT-Meas-r15 BT-NameListConfig-r15 OPTIONAL, -- Need ON
+ includeWLAN-Meas-r15 WLAN-NameListConfig-r15 OPTIONAL, -- Need ON
+ purpose-r15 ENUMERATED {sensing} OPTIONAL, -- Need ON
+ numberOfTriggeringCells-r15 INTEGER (2..maxCellReport) OPTIONAL, -- Cond a3a4a5
+ a4-a5-ReportOnLeave-r15 BOOLEAN OPTIONAL -- Cond a4a5
+ ]]
+}
+
+RSRQ-RangeConfig-r12 ::= CHOICE {
+ release NULL,
+ setup RSRQ-Range-v1250
+}
+
+ThresholdEUTRA ::= CHOICE{
+ threshold-RSRP RSRP-Range,
+ threshold-RSRQ RSRQ-Range
+}
+
+ThresholdEUTRA-v1250 ::= CSI-RSRP-Range-r12
+
+MeasRSSI-ReportConfig-r13 ::= SEQUENCE {
+ channelOccupancyThreshold-r13 RSSI-Range-r13 OPTIONAL -- Need OR
+}
+
+
+ReportConfigId ::= INTEGER (1..maxReportConfigId)
+
+
+ReportConfigInterRAT ::= SEQUENCE {
+ triggerType CHOICE {
+ event SEQUENCE {
+ eventId CHOICE {
+ eventB1 SEQUENCE {
+ b1-Threshold CHOICE {
+ b1-ThresholdUTRA ThresholdUTRA,
+ b1-ThresholdGERAN ThresholdGERAN,
+ b1-ThresholdCDMA2000 ThresholdCDMA2000
+ }
+ },
+ eventB2 SEQUENCE {
+ b2-Threshold1 ThresholdEUTRA,
+ b2-Threshold2 CHOICE {
+ b2-Threshold2UTRA ThresholdUTRA,
+ b2-Threshold2GERAN ThresholdGERAN,
+ b2-Threshold2CDMA2000 ThresholdCDMA2000
+ }
+ },
+ ...,
+ eventW1-r13 SEQUENCE {
+ w1-Threshold-r13 WLAN-RSSI-Range-r13
+ },
+ eventW2-r13 SEQUENCE {
+ w2-Threshold1-r13 WLAN-RSSI-Range-r13,
+ w2-Threshold2-r13 WLAN-RSSI-Range-r13
+ },
+ eventW3-r13 SEQUENCE {
+ w3-Threshold-r13 WLAN-RSSI-Range-r13
+ },
+ eventB1-NR-r15 SEQUENCE {
+ b1-ThresholdNR-r15 ThresholdNR-r15,
+ reportOnLeave-r15 BOOLEAN
+ },
+ eventB2-NR-r15 SEQUENCE {
+ b2-Threshold1-r15 ThresholdEUTRA,
+ b2-Threshold2NR-r15 ThresholdNR-r15,
+ reportOnLeave-r15 BOOLEAN
+ }
+ },
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger
+ },
+ periodical SEQUENCE {
+ purpose ENUMERATED {
+ reportStrongestCells,
+ reportStrongestCellsForSON,
+ reportCGI}
+ }
+ },
+ maxReportCells INTEGER (1..maxCellReport),
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ ...,
+ [[ si-RequestForHO-r9 ENUMERATED {setup} OPTIONAL -- Cond reportCGI
+ ]],
+ [[ reportQuantityUTRA-FDD-r10 ENUMERATED {both} OPTIONAL -- Need OR
+ ]],
+ [[ includeLocationInfo-r11 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ b2-Threshold1-v1250 CHOICE {
+ release NULL,
+ setup RSRQ-Range-v1250
+ } OPTIONAL -- Need ON
+ ]],
+ [[ reportQuantityWLAN-r13 ReportQuantityWLAN-r13 OPTIONAL -- Need ON
+ ]],
+ [[ reportAnyWLAN-r14 BOOLEAN OPTIONAL -- Need ON
+ ]],
+ [[ reportQuantityCellNR-r15 ReportQuantityNR-r15 OPTIONAL, -- Need ON
+ maxReportRS-Index-r15 INTEGER (0..maxRS-IndexReport-r15) OPTIONAL, -- Need ON
+ reportQuantityRS-IndexNR-r15 ReportQuantityNR-r15 OPTIONAL, -- Need ON
+ reportRS-IndexResultsNR BOOLEAN OPTIONAL, -- Need ON
+ reportSFTD-Meas-r15 ENUMERATED {pSCell, neighborCells } OPTIONAL -- Need ON
+ ]]
+}
+
+ThresholdUTRA ::= CHOICE{
+ utra-RSCP INTEGER (-5..91),
+ utra-EcN0 INTEGER (0..49)
+}
+
+ThresholdGERAN ::= INTEGER (0..63)
+
+ThresholdCDMA2000 ::= INTEGER (0..63)
+
+ReportQuantityNR-r15::= SEQUENCE {
+ ss-rsrp BOOLEAN,
+ ss-rsrq BOOLEAN,
+ ss-sinr BOOLEAN
+}
+
+ReportQuantityWLAN-r13 ::= SEQUENCE {
+ bandRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ carrierInfoRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ availableAdmissionCapacityRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ backhaulDL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ backhaulUL-BandwidthRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ channelUtilizationRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ stationCountRequestWLAN-r13 ENUMERATED {true} OPTIONAL, -- Need OR
+ ...
+}
+
+
+ReportConfigToAddModList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigToAddMod
+
+ReportConfigToAddMod ::= SEQUENCE {
+ reportConfigId ReportConfigId,
+ reportConfig CHOICE {
+ reportConfigEUTRA ReportConfigEUTRA,
+ reportConfigInterRAT ReportConfigInterRAT
+ }
+}
+
+
+
+ReportInterval ::= ENUMERATED {
+ ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240,
+ min1, min6, min12, min30, min60, spare3, spare2, spare1}
+
+
+RS-IndexNR-r15 ::= INTEGER (0.. maxRS-Index-1-r15)
+
+MaxRS-IndexCellQualNR-r15::= INTEGER (1..maxRS-IndexCellQualNR-r15)
+
+
+RSRP-Range ::= INTEGER(0..97)
+
+RSRP-Range-v1360 ::= INTEGER(-17..-1)
+
+RSRP-RangeSL-r12 ::= INTEGER(0..13)
+
+RSRP-RangeSL2-r12 ::= INTEGER(0..7)
+
+RSRP-RangeSL3-r12 ::= INTEGER(0..11)
+
+RSRP-RangeSL4-r13 ::= INTEGER(0..49)
+
+
+RSRP-RangeNR-r15 ::= INTEGER (0..127)
+
+
+RSRQ-Range ::= INTEGER(0..34)
+
+RSRQ-Range-v1250 ::= INTEGER(-30..46)
+
+RSRQ-Range-r13 ::= INTEGER(-30..46)
+
+
+RSRQ-RangeNR-r15 ::= INTEGER (0..127)
+
+
+RSRQ-Type-r12 ::= SEQUENCE {
+ allSymbols-r12 BOOLEAN,
+ wideBand-r12 BOOLEAN
+}
+
+
+RS-SINR-Range-r13 ::= INTEGER(0..127)
+
+
+RS-SINR-RangeNR-r15 ::= INTEGER (0..127)
+
+
+RSSI-Range-r13 ::= INTEGER(0..76)
+
+
+SS-RSSI-Measurement-r15 ::= SEQUENCE {
+ measurementSlots-r15 BIT STRING (SIZE(1..80)),
+ endSymbol-r15 INTEGER(0..3)
+}
+
+
+TimeToTrigger ::= ENUMERATED {
+ ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
+ ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
+ ms5120}
+
+
+UL-DelayConfig-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ delayThreshold-r13 ENUMERATED {
+ ms30, ms40, ms50, ms60, ms70, ms80,
+ ms90,ms100, ms150, ms300, ms500, ms750, spare4, spare3, spare2, spare1}
+ }
+}
+
+
+WLAN-CarrierInfo-r13 ::= SEQUENCE {
+ operatingClass-r13 INTEGER (0..255) OPTIONAL, -- Need ON
+ countryCode-r13 ENUMERATED {unitedStates, europe, japan, global, ...} OPTIONAL, -- Need ON
+ channelNumbers-r13 WLAN-ChannelList-r13 OPTIONAL, -- Need ON
+ ...
+}
+
+WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..maxWLAN-Channels-r13)) OF WLAN-Channel-r13
+
+WLAN-Channel-r13 ::= INTEGER(0..255)
+
+
+WLAN-NameListConfig-r15 ::= CHOICE{
+ release NULL,
+ setup WLAN-NameList-r15
+}
+
+WLAN-NameList-r15 ::= SEQUENCE (SIZE (1..maxWLAN-Name-r15)) OF WLAN-Name-r15
+
+WLAN-Name-r15 ::= OCTET STRING (SIZE (1..32))
+
+
+WLAN-RSSI-Range-r13 ::= INTEGER(0..141)
+
+
+WLAN-RTT-r15 ::= SEQUENCE {
+ rttValue-r15 INTEGER (0..16777215),
+ rttUnits-r15 ENUMERATED { microseconds,
+ hundredsofnanoseconds,
+ tensofnanoseconds,
+ nanoseconds,
+ tenthsofnanoseconds,
+ ... },
+ rttAccuracy-r15 INTEGER (0..255) OPTIONAL,
+ ...
+}
+
+
+WLAN-Status-r13 ::= ENUMERATED {successfulAssociation, failureWlanRadioLink, failureWlanUnavailable, failureTimeout}
+
+WLAN-Status-v1430 ::= ENUMERATED {suspended, resumed}
+
+
+WLAN-SuspendConfig-r14 ::= SEQUENCE {
+ wlan-SuspendResumeAllowed-r14 BOOLEAN OPTIONAL, -- Need ON
+ wlan-SuspendTriggersStatusReport-r14 BOOLEAN OPTIONAL -- Need ON
+}
+
+
+AbsoluteTimeInfo-r10 ::= BIT STRING (SIZE (48))
+
+
+AMF-Identifier-r15 ::= BIT STRING (SIZE (24))
+
+
+AreaConfiguration-r10 ::= CHOICE {
+ cellGlobalIdList-r10 CellGlobalIdList-r10,
+ trackingAreaCodeList-r10 TrackingAreaCodeList-r10
+}
+
+AreaConfiguration-v1130 ::= SEQUENCE {
+ trackingAreaCodeList-v1130 TrackingAreaCodeList-v1130
+}
+
+CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA
+
+TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF TrackingAreaCode
+
+TrackingAreaCodeList-v1130 ::= SEQUENCE {
+ plmn-Identity-perTAC-List-r11 SEQUENCE (SIZE (1..8)) OF PLMN-Identity
+}
+
+
+BandCombinationList-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombination-r14
+
+BandCombination-r14 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandIndication-r14
+
+BandIndication-r14 ::= SEQUENCE {
+ bandEUTRA-r14 FreqBandIndicator-r11,
+ ca-BandwidthClassDL-r14 CA-BandwidthClass-r10,
+ ca-BandwidthClassUL-r14 CA-BandwidthClass-r10 OPTIONAL
+}
+
+
+C-RNTI ::= BIT STRING (SIZE (16))
+
+
+DedicatedInfoCDMA2000 ::= OCTET STRING
+
+
+DedicatedInfoNAS ::= OCTET STRING
+
+
+FilterCoefficient ::= ENUMERATED {
+ fc0, fc1, fc2, fc3, fc4, fc5,
+ fc6, fc7, fc8, fc9, fc11, fc13,
+ fc15, fc17, fc19, spare1, ...}
+
+
+FlightPathInfoReportConfig-r15 ::= SEQUENCE {
+ maxWayPointNumber-r15 INTEGER (1..maxWayPoint-r15),
+ includeTimeStamp-r15 ENUMERATED {true} OPTIONAL
+}
+
+
+GNSS-ID-r15 ::= SEQUENCE {
+ gnss-id-r15 ENUMERATED{ gps, sbas, qzss, galileo, glonass, bds, ... },
+ ...
+}
+
+
+I-RNTI-r15 ::= BIT STRING (SIZE(40))
+
+
+LoggingDuration-r10 ::= ENUMERATED {
+ min10, min20, min40, min60, min90, min120, spare2, spare1}
+
+
+LoggingInterval-r10 ::= ENUMERATED {
+ ms1280, ms2560, ms5120, ms10240, ms20480,
+ ms30720, ms40960, ms61440}
+
+
+MeasSubframePattern-r10 ::= CHOICE {
+ subframePatternFDD-r10 BIT STRING (SIZE (40)),
+ subframePatternTDD-r10 CHOICE {
+ subframeConfig1-5-r10 BIT STRING (SIZE (20)),
+ subframeConfig0-r10 BIT STRING (SIZE (70)),
+ subframeConfig6-r10 BIT STRING (SIZE (60)),
+ ...
+ },
+ ...
+}
+
+
+MMEC ::= BIT STRING (SIZE (8))
+
+
+NeighCellConfig ::= BIT STRING (SIZE (2))
+
+
+NG-5G-S-TMSI-r15::= BIT STRING (SIZE (48))
+
+
+OtherConfig-r9 ::= SEQUENCE {
+ reportProximityConfig-r9 ReportProximityConfig-r9 OPTIONAL, -- Need ON
+ ...,
+ [[ idc-Config-r11 IDC-Config-r11 OPTIONAL, -- Need ON
+ powerPrefIndicationConfig-r11 PowerPrefIndicationConfig-r11 OPTIONAL, -- Need ON
+ obtainLocationConfig-r11 ObtainLocationConfig-r11 OPTIONAL -- Need ON
+ ]],
+ [[ bw-PreferenceIndicationTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20,
+ s30, s60, s90, s120, s300, s600, spare3,
+ spare2, spare1} OPTIONAL, -- Need OR
+ sps-AssistanceInfoReport-r14 BOOLEAN OPTIONAL, -- Need ON
+ delayBudgetReportingConfig-r14 CHOICE{
+ release NULL,
+ setup SEQUENCE{
+ delayBudgetReportingProhibitTimer-r14 ENUMERATED {
+ s0, s0dot4, s0dot8,
+ s1dot6, s3, s6, s12, s30}
+ }
+ } OPTIONAL, -- Need ON
+ rlm-ReportConfig-r14 CHOICE {
+ release NULL,
+ setup SEQUENCE{
+ rlmReportTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20, s30,
+ s60, s90, s120, s300, s600, spare3, spare2, spare1},
+ rlmReportRep-MPDCCH-r14 ENUMERATED {setup} OPTIONAL -- Need OR
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ overheatingAssistanceConfig-r14 CHOICE{
+ release NULL,
+ setup SEQUENCE{
+ overheatingIndicationProhibitTimer-r14 ENUMERATED {s0, s0dot5, s1, s2, s5, s10,
+ s20, s30, s60, s90, s120, s300, s600,
+ spare3, spare2, spare1}
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ measConfigAppLayer-r15 CHOICE{
+ release NULL,
+ setup SEQUENCE{
+ measConfigAppLayerContainer-r15 OCTET STRING (SIZE(1..1000)),
+ serviceType ENUMERATED {qoe, qoemtsi, spare6, spare5, spare4, spare3, spare2, spare1}
+ }
+ } OPTIONAL, -- Need ON
+ ailc-BitConfig-r15 BOOLEAN OPTIONAL, -- Need ON
+ bt-NameListConfig-r15 BT-NameListConfig-r15 OPTIONAL, --Need ON
+ wlan-NameListConfig-r15 WLAN-NameListConfig-r15 OPTIONAL --Need ON
+ ]]
+}
+
+IDC-Config-r11 ::= SEQUENCE {
+ idc-Indication-r11 ENUMERATED {setup} OPTIONAL, -- Need OR
+ autonomousDenialParameters-r11 SEQUENCE {
+ autonomousDenialSubframes-r11 ENUMERATED {n2, n5, n10, n15,
+ n20, n30, spare2, spare1},
+ autonomousDenialValidity-r11 ENUMERATED {
+ sf200, sf500, sf1000, sf2000,
+ spare4, spare3, spare2, spare1}
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ idc-Indication-UL-CA-r11 ENUMERATED {setup} OPTIONAL -- Cond idc-Ind
+ ]],
+ [[ idc-HardwareSharingIndication-r13 ENUMERATED {setup} OPTIONAL -- Need OR
+ ]],
+ [[ idc-Indication-MRDC-r15 CHOICE{
+ release NULL,
+ setup CandidateServingFreqListNR-r15
+ } OPTIONAL -- Cond idc-Ind
+ ]]
+}
+
+ObtainLocationConfig-r11 ::= SEQUENCE {
+ obtainLocation-r11 ENUMERATED {setup} OPTIONAL -- Need OR
+}
+
+PowerPrefIndicationConfig-r11 ::= CHOICE{
+ release NULL,
+ setup SEQUENCE{
+ powerPrefIndicationTimer-r11 ENUMERATED {s0, s0dot5, s1, s2, s5, s10, s20,
+ s30, s60, s90, s120, s300, s600, spare3,
+ spare2, spare1}
+ }
+}
+
+ReportProximityConfig-r9 ::= SEQUENCE {
+ proximityIndicationEUTRA-r9 ENUMERATED {enabled} OPTIONAL, -- Need OR
+ proximityIndicationUTRA-r9 ENUMERATED {enabled} OPTIONAL -- Need OR
+}
+
+CandidateServingFreqListNR-r15 ::= SEQUENCE (SIZE (1..maxFreqIDC-r11)) OF ARFCN-ValueNR-r15
+
+
+RAN-AreaCode-r15 ::= INTEGER (0..255)
+
+
+RAND-CDMA2000 ::= BIT STRING (SIZE (32))
+
+
+RAT-Type ::= ENUMERATED {
+ eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT,
+ nr, eutra-nr, spare1, ...}
+
+
+ResumeIdentity-r13 ::= BIT STRING (SIZE(40))
+
+
+RRC-TransactionIdentifier ::= INTEGER (0..3)
+
+
+SBAS-ID-r15 ::= SEQUENCE {
+ sbas-id-r15 ENUMERATED { waas, egnos, msas, gagan, ...},
+ ...
+}
+
+
+ShortI-RNTI-r15 ::= BIT STRING (SIZE(24))
+
+
+S-NSSAI-r15 ::= CHOICE{
+ sst BIT STRING (SIZE (8)),
+ sst-SD BIT STRING (SIZE (32))
+}
+
+
+S-TMSI ::= SEQUENCE {
+ mmec MMEC,
+ m-TMSI BIT STRING (SIZE (32))
+}
+
+
+TraceReference-r10 ::= SEQUENCE {
+ plmn-Identity-r10 PLMN-Identity,
+ traceId-r10 OCTET STRING (SIZE (3))
+}
+
+
+UE-CapabilityRAT-ContainerList ::=SEQUENCE (SIZE (0..maxRAT-Capabilities)) OF UE-CapabilityRAT-Container
+
+UE-CapabilityRAT-Container ::= SEQUENCE {
+ rat-Type RAT-Type,
+ ueCapabilityRAT-Container OCTET STRING
+}
+
+
+UE-EUTRA-Capability ::= SEQUENCE {
+ accessStratumRelease AccessStratumRelease,
+ ue-Category INTEGER (1..5),
+ pdcp-Parameters PDCP-Parameters,
+ phyLayerParameters PhyLayerParameters,
+ rf-Parameters RF-Parameters,
+ measParameters MeasParameters,
+ featureGroupIndicators BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-Parameters SEQUENCE {
+ utraFDD IRAT-ParametersUTRA-FDD OPTIONAL,
+ utraTDD128 IRAT-ParametersUTRA-TDD128 OPTIONAL,
+ utraTDD384 IRAT-ParametersUTRA-TDD384 OPTIONAL,
+ utraTDD768 IRAT-ParametersUTRA-TDD768 OPTIONAL,
+ geran IRAT-ParametersGERAN OPTIONAL,
+ cdma2000-HRPD IRAT-ParametersCDMA2000-HRPD OPTIONAL,
+ cdma2000-1xRTT IRAT-ParametersCDMA2000-1XRTT OPTIONAL
+ },
+ nonCriticalExtension UE-EUTRA-Capability-v920-IEs OPTIONAL
+}
+
+-- Late non critical extensions
+UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE {
+ featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-r9 UE-EUTRA-CapabilityAddXDD-Mode-r9 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v9c0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE {
+ interRAT-ParametersUTRA-v9c0 IRAT-ParametersUTRA-v9c0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v9d0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE {
+ phyLayerParameters-v9d0 PhyLayerParameters-v9d0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v9e0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE {
+ rf-Parameters-v9e0 RF-Parameters-v9e0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v9h0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE {
+ interRAT-ParametersUTRA-v9h0 IRAT-ParametersUTRA-v9h0 OPTIONAL,
+ -- Following field is only to be used for late REL-9 extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v10c0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE {
+ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v10f0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE {
+ rf-Parameters-v10f0 RF-Parameters-v10f0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v10i0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE {
+ rf-Parameters-v10i0 RF-Parameters-v10i0 OPTIONAL,
+ -- Following field is only to be used for late REL-10 extensions
+ lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v10j0-IEs) OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v11d0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE {
+ rf-Parameters-v10j0 RF-Parameters-v10j0 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE {
+ rf-Parameters-v11d0 RF-Parameters-v11d0 OPTIONAL,
+ otherParameters-v11d0 Other-Parameters-v11d0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v11x0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE {
+ -- Following field is only to be used for late REL-11 extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v12b0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE {
+ rf-Parameters-v12b0 RF-Parameters-v12b0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v12x0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE {
+ -- Following field is only to be used for late REL-12 extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1370-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE {
+ ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1370 UE-EUTRA-CapabilityAddXDD-Mode-v1370 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1380-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE {
+ rf-Parameters-v1380 RF-Parameters-v1380 OPTIONAL,
+ ce-Parameters-v1380 CE-Parameters-v1380,
+ fdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380,
+ tdd-Add-UE-EUTRA-Capabilities-v1380 UE-EUTRA-CapabilityAddXDD-Mode-v1380,
+ nonCriticalExtension UE-EUTRA-Capability-v1390-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE {
+ rf-Parameters-v1390 RF-Parameters-v1390 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v13x0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v13x0-IEs ::= SEQUENCE {
+ -- Following field is only to be used for late REL-13 extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1470-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE {
+ mbms-Parameters-v1470 MBMS-Parameters-v1470 OPTIONAL,
+ phyLayerParameters-v1470 PhyLayerParameters-v1470 OPTIONAL,
+ rf-Parameters-v1470 RF-Parameters-v1470 OPTIONAL,
+ -- Following field is only to be used for late REL-14 extensions
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non critical extensions
+UE-EUTRA-Capability-v920-IEs ::= SEQUENCE {
+ phyLayerParameters-v920 PhyLayerParameters-v920,
+ interRAT-ParametersGERAN-v920 IRAT-ParametersGERAN-v920,
+ interRAT-ParametersUTRA-v920 IRAT-ParametersUTRA-v920 OPTIONAL,
+ interRAT-ParametersCDMA2000-v920 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL,
+ deviceType-r9 ENUMERATED {noBenFromBatConsumpOpt} OPTIONAL,
+ csg-ProximityIndicationParameters-r9 CSG-ProximityIndicationParameters-r9,
+ neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9,
+ son-Parameters-r9 SON-Parameters-r9,
+ nonCriticalExtension UE-EUTRA-Capability-v940-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v940-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING UE-EUTRA-Capability-v9a0-IEs)
+ OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1020-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE {
+ ue-Category-v1020 INTEGER (6..8) OPTIONAL,
+ phyLayerParameters-v1020 PhyLayerParameters-v1020 OPTIONAL,
+ rf-Parameters-v1020 RF-Parameters-v1020 OPTIONAL,
+ measParameters-v1020 MeasParameters-v1020 OPTIONAL,
+ featureGroupIndRel10-r10 BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-ParametersCDMA2000-v1020 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL,
+ ue-BasedNetwPerfMeasParameters-r10 UE-BasedNetwPerfMeasParameters-r10 OPTIONAL,
+ interRAT-ParametersUTRA-TDD-v1020 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1060-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE {
+ fdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1060 UE-EUTRA-CapabilityAddXDD-Mode-v1060 OPTIONAL,
+ rf-Parameters-v1060 RF-Parameters-v1060 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1090-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE {
+ rf-Parameters-v1090 RF-Parameters-v1090 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1130-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE {
+ pdcp-Parameters-v1130 PDCP-Parameters-v1130,
+ phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL,
+ rf-Parameters-v1130 RF-Parameters-v1130,
+ measParameters-v1130 MeasParameters-v1130,
+ interRAT-ParametersCDMA2000-v1130 IRAT-ParametersCDMA2000-v1130,
+ otherParameters-r11 Other-Parameters-r11,
+ fdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1130 UE-EUTRA-CapabilityAddXDD-Mode-v1130 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1170-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE {
+ phyLayerParameters-v1170 PhyLayerParameters-v1170 OPTIONAL,
+ ue-Category-v1170 INTEGER (9..10) OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1180-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE {
+ rf-Parameters-v1180 RF-Parameters-v1180 OPTIONAL,
+ mbms-Parameters-r11 MBMS-Parameters-r11 OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1180 UE-EUTRA-CapabilityAddXDD-Mode-v1180 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v11a0-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE {
+ ue-Category-v11a0 INTEGER (11..12) OPTIONAL,
+ measParameters-v11a0 MeasParameters-v11a0 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1250-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE {
+ phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL,
+ rf-Parameters-v1250 RF-Parameters-v1250 OPTIONAL,
+ rlc-Parameters-r12 RLC-Parameters-r12 OPTIONAL,
+ ue-BasedNetwPerfMeasParameters-v1250 UE-BasedNetwPerfMeasParameters-v1250 OPTIONAL,
+ ue-CategoryDL-r12 INTEGER (0..14) OPTIONAL,
+ ue-CategoryUL-r12 INTEGER (0..13) OPTIONAL,
+ wlan-IW-Parameters-r12 WLAN-IW-Parameters-r12 OPTIONAL,
+ measParameters-v1250 MeasParameters-v1250 OPTIONAL,
+ dc-Parameters-r12 DC-Parameters-r12 OPTIONAL,
+ mbms-Parameters-v1250 MBMS-Parameters-v1250 OPTIONAL,
+ mac-Parameters-r12 MAC-Parameters-r12 OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1250 UE-EUTRA-CapabilityAddXDD-Mode-v1250 OPTIONAL,
+ sl-Parameters-r12 SL-Parameters-r12 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1260-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE {
+ ue-CategoryDL-v1260 INTEGER (15..16) OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1270-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE {
+ rf-Parameters-v1270 RF-Parameters-v1270 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1280-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE {
+ phyLayerParameters-v1280 PhyLayerParameters-v1280 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1310-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE {
+ ue-CategoryDL-v1310 ENUMERATED {n17, m1} OPTIONAL,
+ ue-CategoryUL-v1310 ENUMERATED {n14, m1} OPTIONAL,
+ pdcp-Parameters-v1310 PDCP-Parameters-v1310,
+ rlc-Parameters-v1310 RLC-Parameters-v1310,
+ mac-Parameters-v1310 MAC-Parameters-v1310 OPTIONAL,
+ phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL,
+ rf-Parameters-v1310 RF-Parameters-v1310 OPTIONAL,
+ measParameters-v1310 MeasParameters-v1310 OPTIONAL,
+ dc-Parameters-v1310 DC-Parameters-v1310 OPTIONAL,
+ sl-Parameters-v1310 SL-Parameters-v1310 OPTIONAL,
+ scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL,
+ ce-Parameters-r13 CE-Parameters-r13 OPTIONAL,
+ interRAT-ParametersWLAN-r13 IRAT-ParametersWLAN-r13,
+ laa-Parameters-r13 LAA-Parameters-r13 OPTIONAL,
+ lwa-Parameters-r13 LWA-Parameters-r13 OPTIONAL,
+ wlan-IW-Parameters-v1310 WLAN-IW-Parameters-v1310,
+ lwip-Parameters-r13 LWIP-Parameters-r13,
+ fdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1310 UE-EUTRA-CapabilityAddXDD-Mode-v1310 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1320-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE {
+ ce-Parameters-v1320 CE-Parameters-v1320 OPTIONAL,
+ phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL,
+ rf-Parameters-v1320 RF-Parameters-v1320 OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1320 UE-EUTRA-CapabilityAddXDD-Mode-v1320 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1330-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE {
+ ue-CategoryDL-v1330 INTEGER (18..19) OPTIONAL,
+ phyLayerParameters-v1330 PhyLayerParameters-v1330 OPTIONAL,
+ ue-CE-NeedULGaps-r13 ENUMERATED {true} OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1340-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE {
+ ue-CategoryUL-v1340 INTEGER (15) OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1350-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE {
+ ue-CategoryDL-v1350 ENUMERATED {oneBis} OPTIONAL,
+ ue-CategoryUL-v1350 ENUMERATED {oneBis} OPTIONAL,
+ ce-Parameters-v1350 CE-Parameters-v1350,
+ nonCriticalExtension UE-EUTRA-Capability-v1360-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE {
+ other-Parameters-v1360 Other-Parameters-v1360 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1430-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE {
+ phyLayerParameters-v1430 PhyLayerParameters-v1430,
+ ue-CategoryDL-v1430 ENUMERATED {m2} OPTIONAL,
+ ue-CategoryUL-v1430 ENUMERATED {n16, n17, n18, n19, n20, m2} OPTIONAL,
+ ue-CategoryUL-v1430b ENUMERATED {n21} OPTIONAL,
+ mac-Parameters-v1430 MAC-Parameters-v1430 OPTIONAL,
+ measParameters-v1430 MeasParameters-v1430 OPTIONAL,
+ pdcp-Parameters-v1430 PDCP-Parameters-v1430 OPTIONAL,
+ rlc-Parameters-v1430 RLC-Parameters-v1430,
+ rf-Parameters-v1430 RF-Parameters-v1430 OPTIONAL,
+ laa-Parameters-v1430 LAA-Parameters-v1430 OPTIONAL,
+ lwa-Parameters-v1430 LWA-Parameters-v1430 OPTIONAL,
+ lwip-Parameters-v1430 LWIP-Parameters-v1430 OPTIONAL,
+ otherParameters-v1430 Other-Parameters-v1430,
+ mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL,
+ mobilityParameters-r14 MobilityParameters-r14 OPTIONAL,
+ ce-Parameters-v1430 CE-Parameters-v1430,
+ fdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1430 UE-EUTRA-CapabilityAddXDD-Mode-v1430 OPTIONAL,
+ mbms-Parameters-v1430 MBMS-Parameters-v1430 OPTIONAL,
+ sl-Parameters-v1430 SL-Parameters-v1430 OPTIONAL,
+ ue-BasedNetwPerfMeasParameters-v1430 UE-BasedNetwPerfMeasParameters-v1430 OPTIONAL,
+ highSpeedEnhParameters-r14 HighSpeedEnhParameters-r14 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1440-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE {
+ lwa-Parameters-v1440 LWA-Parameters-v1440,
+ mac-Parameters-v1440 MAC-Parameters-v1440,
+ nonCriticalExtension UE-EUTRA-Capability-v1450-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE {
+ phyLayerParameters-v1450 PhyLayerParameters-v1450 OPTIONAL,
+ rf-Parameters-v1450 RF-Parameters-v1450 OPTIONAL,
+ otherParameters-v1450 OtherParameters-v1450,
+ ue-CategoryDL-v1450 INTEGER (20) OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1460-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE {
+ ue-CategoryDL-v1460 INTEGER (21) OPTIONAL,
+ otherParameters-v1460 Other-Parameters-v1460,
+ nonCriticalExtension UE-EUTRA-Capability-v1510-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1510-IEs ::= SEQUENCE {
+ irat-ParametersNR-r15 IRAT-ParametersNR-r15 OPTIONAL,
+ featureSetsEUTRA-r15 FeatureSetsEUTRA-r15 OPTIONAL,
+ pdcp-ParametersNR-r15 PDCP-ParametersNR-r15 OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-v1510 UE-EUTRA-CapabilityAddXDD-Mode-v1510 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1510 UE-EUTRA-CapabilityAddXDD-Mode-v1510 OPTIONAL,
+ nonCriticalExtension UE-EUTRA-Capability-v1520-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1520-IEs ::= SEQUENCE {
+ measParameters-v1520 MeasParameters-v1520,
+ nonCriticalExtension UE-EUTRA-Capability-v1530-IEs OPTIONAL
+}
+
+UE-EUTRA-Capability-v1530-IEs ::= SEQUENCE {
+ measParameters-v1530 MeasParameters-v1530 OPTIONAL,
+ otherParameters-v1530 Other-Parameters-v1530 OPTIONAL,
+ neighCellSI-AcquisitionParameters-v1530 NeighCellSI-AcquisitionParameters-v1530 OPTIONAL,
+ mac-Parameters-v1530 MAC-Parameters-v1530 OPTIONAL,
+ phyLayerParameters-v1530 PhyLayerParameters-v1530 OPTIONAL,
+ rf-Parameters-v1530 RF-Parameters-v1530 OPTIONAL,
+ pdcp-Parameters-v1530 PDCP-Parameters-v1530 OPTIONAL,
+ ue-CategoryDL-v1530 INTEGER (22..26) OPTIONAL,
+ ue-BasedNetwPerfMeasParameters-v1530 UE-BasedNetwPerfMeasParameters-v1530 OPTIONAL,
+ rlc-Parameters-v1530 RLC-Parameters-v1530 OPTIONAL,
+ sl-Parameters-v1530 SL-Parameters-v1530 OPTIONAL,
+ extendedNumberOfDRBs-r15 ENUMERATED {supported} OPTIONAL,
+ reducedCP-Latency-r15 ENUMERATED {supported} OPTIONAL,
+ laa-Parameters-v1530 LAA-Parameters-v1530 OPTIONAL,
+ ue-CategoryUL-v1530 INTEGER (22..26) OPTIONAL,
+ fdd-Add-UE-EUTRA-Capabilities-v1530 UE-EUTRA-CapabilityAddXDD-Mode-v1530 OPTIONAL,
+ tdd-Add-UE-EUTRA-Capabilities-v1530 UE-EUTRA-CapabilityAddXDD-Mode-v1530 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE {
+ phyLayerParameters-r9 PhyLayerParameters OPTIONAL,
+ featureGroupIndicators-r9 BIT STRING (SIZE (32)) OPTIONAL,
+ featureGroupIndRel9Add-r9 BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-ParametersGERAN-r9 IRAT-ParametersGERAN OPTIONAL,
+ interRAT-ParametersUTRA-r9 IRAT-ParametersUTRA-v920 OPTIONAL,
+ interRAT-ParametersCDMA2000-r9 IRAT-ParametersCDMA2000-1XRTT-v920 OPTIONAL,
+ neighCellSI-AcquisitionParameters-r9 NeighCellSI-AcquisitionParameters-r9 OPTIONAL,
+ ...
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE {
+ phyLayerParameters-v1060 PhyLayerParameters-v1020 OPTIONAL,
+ featureGroupIndRel10-v1060 BIT STRING (SIZE (32)) OPTIONAL,
+ interRAT-ParametersCDMA2000-v1060 IRAT-ParametersCDMA2000-1XRTT-v1020 OPTIONAL,
+ interRAT-ParametersUTRA-TDD-v1060 IRAT-ParametersUTRA-TDD-v1020 OPTIONAL,
+ ...,
+ [[ otdoa-PositioningCapabilities-r10 OTDOA-PositioningCapabilities-r10 OPTIONAL
+ ]]
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE {
+ phyLayerParameters-v1130 PhyLayerParameters-v1130 OPTIONAL,
+ measParameters-v1130 MeasParameters-v1130 OPTIONAL,
+ otherParameters-r11 Other-Parameters-r11 OPTIONAL,
+ ...
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE {
+ mbms-Parameters-r11 MBMS-Parameters-r11
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE {
+ phyLayerParameters-v1250 PhyLayerParameters-v1250 OPTIONAL,
+ measParameters-v1250 MeasParameters-v1250 OPTIONAL
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE {
+ phyLayerParameters-v1310 PhyLayerParameters-v1310 OPTIONAL
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE {
+ phyLayerParameters-v1320 PhyLayerParameters-v1320 OPTIONAL,
+ scptm-Parameters-r13 SCPTM-Parameters-r13 OPTIONAL
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE {
+ ce-Parameters-v1370 CE-Parameters-v1370 OPTIONAL
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE {
+ ce-Parameters-v1380 CE-Parameters-v1380
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE {
+ phyLayerParameters-v1430 PhyLayerParameters-v1430 OPTIONAL,
+ mmtel-Parameters-r14 MMTEL-Parameters-r14 OPTIONAL
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1510 ::= SEQUENCE {
+ pdcp-ParametersNR-r15 PDCP-ParametersNR-r15 OPTIONAL
+}
+
+UE-EUTRA-CapabilityAddXDD-Mode-v1530 ::= SEQUENCE {
+ neighCellSI-AcquisitionParameters-v1530 NeighCellSI-AcquisitionParameters-v1530 OPTIONAL,
+ reducedCP-Latency-r15 ENUMERATED {supported} OPTIONAL
+}
+
+AccessStratumRelease ::= ENUMERATED {
+ rel8, rel9, rel10, rel11, rel12, rel13,
+ rel14, rel15, ...}
+
+FeatureSetsEUTRA-r15 ::= SEQUENCE {
+ featureSetsDL-r15 SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetDL-r15 OPTIONAL,
+ featureSetsDL-PerCC-r15 SEQUENCE (SIZE (1..maxPerCC-FeatureSets-r15)) OF FeatureSetDL-PerCC-r15 OPTIONAL,
+ featureSetsUL-r15 SEQUENCE (SIZE (1..maxFeatureSets-r15)) OF FeatureSetUL-r15 OPTIONAL,
+ featureSetsUL-PerCC-r15 SEQUENCE (SIZE (1..maxPerCC-FeatureSets-r15)) OF FeatureSetUL-PerCC-r15 OPTIONAL,
+ ...
+}
+
+MobilityParameters-r14 ::= SEQUENCE {
+ makeBeforeBreak-r14 ENUMERATED {supported} OPTIONAL,
+ rach-Less-r14 ENUMERATED {supported} OPTIONAL
+}
+
+DC-Parameters-r12 ::= SEQUENCE {
+ drb-TypeSplit-r12 ENUMERATED {supported} OPTIONAL,
+ drb-TypeSCG-r12 ENUMERATED {supported} OPTIONAL
+}
+
+DC-Parameters-v1310 ::= SEQUENCE {
+ pdcp-TransferSplitUL-r13 ENUMERATED {supported} OPTIONAL,
+ ue-SSTD-Meas-r13 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-r12 ::= SEQUENCE {
+ logicalChannelSR-ProhibitTimer-r12 ENUMERATED {supported} OPTIONAL,
+ longDRX-Command-r12 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-v1310 ::= SEQUENCE {
+ extendedMAC-LengthField-r13 ENUMERATED {supported} OPTIONAL,
+ extendedLongDRX-r13 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-v1430 ::= SEQUENCE {
+ shortSPS-IntervalFDD-r14 ENUMERATED {supported} OPTIONAL,
+ shortSPS-IntervalTDD-r14 ENUMERATED {supported} OPTIONAL,
+ skipUplinkDynamic-r14 ENUMERATED {supported} OPTIONAL,
+ skipUplinkSPS-r14 ENUMERATED {supported} OPTIONAL,
+ multipleUplinkSPS-r14 ENUMERATED {supported} OPTIONAL,
+ dataInactMon-r14 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-v1440 ::= SEQUENCE {
+ rai-Support-r14 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-v1530 ::= SEQUENCE {
+ min-Proc-TimelineSubslot-r15 SEQUENCE (SIZE(1..3)) OF ProcessingTimelineSet-r15 OPTIONAL,
+ skipSubframeProcessing-r15 SkipSubframeProcessing-r15 OPTIONAL,
+ earlyData-UP-r15 ENUMERATED {supported} OPTIONAL,
+ dormantSCellState-r15 ENUMERATED {supported} OPTIONAL,
+ directSCellActivation-r15 ENUMERATED {supported} OPTIONAL,
+ directSCellHibernation-r15 ENUMERATED {supported} OPTIONAL,
+ extendedLCID-Duplication-r15 ENUMERATED {supported} OPTIONAL,
+ sps-ServingCell-r15 ENUMERATED {supported} OPTIONAL
+}
+
+ProcessingTimelineSet-r15 ::= ENUMERATED {set1, set2}
+
+RLC-Parameters-r12 ::= SEQUENCE {
+ extended-RLC-LI-Field-r12 ENUMERATED {supported}
+}
+
+RLC-Parameters-v1310 ::= SEQUENCE {
+ extendedRLC-SN-SO-Field-r13 ENUMERATED {supported} OPTIONAL
+}
+
+RLC-Parameters-v1430 ::= SEQUENCE {
+ extendedPollByte-r14 ENUMERATED {supported} OPTIONAL
+}
+
+RLC-Parameters-v1530 ::= SEQUENCE {
+ flexibleUM-AM-Combinations-r15 ENUMERATED {supported} OPTIONAL,
+ rlc-AM-Ooo-Delivery-r15 ENUMERATED {supported} OPTIONAL,
+ rlc-UM-Ooo-Delivery-r15 ENUMERATED {supported} OPTIONAL
+}
+
+PDCP-Parameters ::= SEQUENCE {
+ supportedROHC-Profiles ROHC-ProfileSupportList-r15,
+ maxNumberROHC-ContextSessions ENUMERATED {
+ cs2, cs4, cs8, cs12, cs16, cs24, cs32,
+ cs48, cs64, cs128, cs256, cs512, cs1024,
+ cs16384, spare2, spare1} DEFAULT cs16,
+ ...
+}
+
+PDCP-Parameters-v1130 ::= SEQUENCE {
+ pdcp-SN-Extension-r11 ENUMERATED {supported} OPTIONAL,
+ supportRohcContextContinue-r11 ENUMERATED {supported} OPTIONAL
+}
+
+PDCP-Parameters-v1310 ::= SEQUENCE {
+ pdcp-SN-Extension-18bits-r13 ENUMERATED {supported} OPTIONAL
+}
+
+PDCP-Parameters-v1430 ::= SEQUENCE {
+ supportedUplinkOnlyROHC-Profiles-r14 SEQUENCE {
+ profile0x0006-r14 BOOLEAN
+ },
+ maxNumberROHC-ContextSessions-r14 ENUMERATED {
+ cs2, cs4, cs8, cs12, cs16, cs24, cs32,
+ cs48, cs64, cs128, cs256, cs512, cs1024,
+ cs16384, spare2, spare1} DEFAULT cs16
+}
+
+PDCP-Parameters-v1530 ::= SEQUENCE {
+ supportedUDC-r15 SupportedUDC-r15 OPTIONAL,
+ pdcp-Duplication-r15 ENUMERATED {supported} OPTIONAL
+}
+
+SupportedUDC-r15 ::= SEQUENCE {
+ supportedStandardDic-r15 ENUMERATED {supported} OPTIONAL,
+ supportedOperatorDic-r15 SupportedOperatorDic-r15 OPTIONAL
+}
+
+SupportedOperatorDic-r15 ::= SEQUENCE {
+ versionOfDictionary-r15 INTEGER (0..15),
+ associatedPLMN-ID-r15 PLMN-Identity
+}
+
+PhyLayerParameters ::= SEQUENCE {
+ ue-TxAntennaSelectionSupported BOOLEAN,
+ ue-SpecificRefSigsSupported BOOLEAN
+}
+
+PhyLayerParameters-v920 ::= SEQUENCE {
+ enhancedDualLayerFDD-r9 ENUMERATED {supported} OPTIONAL,
+ enhancedDualLayerTDD-r9 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v9d0 ::= SEQUENCE {
+ tm5-FDD-r9 ENUMERATED {supported} OPTIONAL,
+ tm5-TDD-r9 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v1020 ::= SEQUENCE {
+ twoAntennaPortsForPUCCH-r10 ENUMERATED {supported} OPTIONAL,
+ tm9-With-8Tx-FDD-r10 ENUMERATED {supported} OPTIONAL,
+ pmi-Disabling-r10 ENUMERATED {supported} OPTIONAL,
+ crossCarrierScheduling-r10 ENUMERATED {supported} OPTIONAL,
+ simultaneousPUCCH-PUSCH-r10 ENUMERATED {supported} OPTIONAL,
+ multiClusterPUSCH-WithinCC-r10 ENUMERATED {supported} OPTIONAL,
+ nonContiguousUL-RA-WithinCC-List-r10 NonContiguousUL-RA-WithinCC-List-r10 OPTIONAL
+}
+
+PhyLayerParameters-v1130 ::= SEQUENCE {
+ crs-InterfHandl-r11 ENUMERATED {supported} OPTIONAL,
+ ePDCCH-r11 ENUMERATED {supported} OPTIONAL,
+ multiACK-CSI-Reporting-r11 ENUMERATED {supported} OPTIONAL,
+ ss-CCH-InterfHandl-r11 ENUMERATED {supported} OPTIONAL,
+ tdd-SpecialSubframe-r11 ENUMERATED {supported} OPTIONAL,
+ txDiv-PUCCH1b-ChSelect-r11 ENUMERATED {supported} OPTIONAL,
+ ul-CoMP-r11 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v1170 ::= SEQUENCE {
+ interBandTDD-CA-WithDifferentConfig-r11 BIT STRING (SIZE (2)) OPTIONAL
+}
+
+PhyLayerParameters-v1250 ::= SEQUENCE {
+ e-HARQ-Pattern-FDD-r12 ENUMERATED {supported} OPTIONAL,
+ enhanced-4TxCodebook-r12 ENUMERATED {supported} OPTIONAL,
+ tdd-FDD-CA-PCellDuplex-r12 BIT STRING (SIZE (2)) OPTIONAL,
+ phy-TDD-ReConfig-TDD-PCell-r12 ENUMERATED {supported} OPTIONAL,
+ phy-TDD-ReConfig-FDD-PCell-r12 ENUMERATED {supported} OPTIONAL,
+ pusch-FeedbackMode-r12 ENUMERATED {supported} OPTIONAL,
+ pusch-SRS-PowerControl-SubframeSet-r12 ENUMERATED {supported} OPTIONAL,
+ csi-SubframeSet-r12 ENUMERATED {supported} OPTIONAL,
+ noResourceRestrictionForTTIBundling-r12 ENUMERATED {supported} OPTIONAL,
+ discoverySignalsInDeactSCell-r12 ENUMERATED {supported} OPTIONAL,
+ naics-Capability-List-r12 NAICS-Capability-List-r12 OPTIONAL
+}
+
+PhyLayerParameters-v1280 ::= SEQUENCE {
+ alternativeTBS-Indices-r12 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v1310 ::= SEQUENCE {
+ aperiodicCSI-Reporting-r13 BIT STRING (SIZE (2)) OPTIONAL,
+ codebook-HARQ-ACK-r13 BIT STRING (SIZE (2)) OPTIONAL,
+ crossCarrierScheduling-B5C-r13 ENUMERATED {supported} OPTIONAL,
+ fdd-HARQ-TimingTDD-r13 ENUMERATED {supported} OPTIONAL,
+ maxNumberUpdatedCSI-Proc-r13 INTEGER(5..32) OPTIONAL,
+ pucch-Format4-r13 ENUMERATED {supported} OPTIONAL,
+ pucch-Format5-r13 ENUMERATED {supported} OPTIONAL,
+ pucch-SCell-r13 ENUMERATED {supported} OPTIONAL,
+ spatialBundling-HARQ-ACK-r13 ENUMERATED {supported} OPTIONAL,
+ supportedBlindDecoding-r13 SEQUENCE {
+ maxNumberDecoding-r13 INTEGER(1..32) OPTIONAL,
+ pdcch-CandidateReductions-r13 ENUMERATED {supported} OPTIONAL,
+ skipMonitoringDCI-Format0-1A-r13 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ uci-PUSCH-Ext-r13 ENUMERATED {supported} OPTIONAL,
+ crs-InterfMitigationTM10-r13 ENUMERATED {supported} OPTIONAL,
+ pdsch-CollisionHandling-r13 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v1320 ::= SEQUENCE {
+ mimo-UE-Parameters-r13 MIMO-UE-Parameters-r13 OPTIONAL
+}
+
+PhyLayerParameters-v1330 ::= SEQUENCE {
+ cch-InterfMitigation-RefRecTypeA-r13 ENUMERATED {supported} OPTIONAL,
+ cch-InterfMitigation-RefRecTypeB-r13 ENUMERATED {supported} OPTIONAL,
+ cch-InterfMitigation-MaxNumCCs-r13 INTEGER (1.. maxServCell-r13) OPTIONAL,
+ crs-InterfMitigationTM1toTM9-r13 INTEGER (1.. maxServCell-r13) OPTIONAL
+}
+
+PhyLayerParameters-v1430 ::= SEQUENCE {
+ ce-PUSCH-NB-MaxTBS-r14 ENUMERATED {supported} OPTIONAL,
+ ce-PDSCH-PUSCH-MaxBandwidth-r14 ENUMERATED {bw5, bw20} OPTIONAL,
+ ce-HARQ-AckBundling-r14 ENUMERATED {supported} OPTIONAL,
+ ce-PDSCH-TenProcesses-r14 ENUMERATED {supported} OPTIONAL,
+ ce-RetuningSymbols-r14 ENUMERATED {n0, n1} OPTIONAL,
+ ce-PDSCH-PUSCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL,
+ ce-SchedulingEnhancement-r14 ENUMERATED {supported} OPTIONAL,
+ ce-SRS-Enhancement-r14 ENUMERATED {supported} OPTIONAL,
+ ce-PUCCH-Enhancement-r14 ENUMERATED {supported} OPTIONAL,
+ ce-ClosedLoopTxAntennaSelection-r14 ENUMERATED {supported} OPTIONAL,
+ tdd-SpecialSubframe-r14 ENUMERATED {supported} OPTIONAL,
+ tdd-TTI-Bundling-r14 ENUMERATED {supported} OPTIONAL,
+ dmrs-LessUpPTS-r14 ENUMERATED {supported} OPTIONAL,
+ mimo-UE-Parameters-v1430 MIMO-UE-Parameters-v1430 OPTIONAL,
+ alternativeTBS-Index-r14 ENUMERATED {supported} OPTIONAL,
+ feMBMS-Unicast-Parameters-r14 FeMBMS-Unicast-Parameters-r14 OPTIONAL
+}
+
+PhyLayerParameters-v1450 ::= SEQUENCE {
+ ce-SRS-EnhancementWithoutComb4-r14 ENUMERATED {supported} OPTIONAL,
+ crs-LessDwPTS-r14 ENUMERATED {supported} OPTIONAL}
+
+PhyLayerParameters-v1470 ::= SEQUENCE {
+ mimo-UE-Parameters-v1470 MIMO-UE-Parameters-v1470 OPTIONAL,
+ srs-UpPTS-6sym-r14 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-v1530 ::= SEQUENCE {
+ stti-SPT-Capabilities-r15 SEQUENCE {
+ aperiodicCsi-ReportingSTTI-r15 ENUMERATED {supported} OPTIONAL,
+ dmrs-BasedSPDCCH-MBSFN-r15 ENUMERATED {supported} OPTIONAL,
+ dmrs-BasedSPDCCH-nonMBSFN-r15 ENUMERATED {supported} OPTIONAL,
+ dmrs-PositionPattern-r15 ENUMERATED {supported} OPTIONAL,
+ dmrs-SharingSubslotPDSCH-r15 ENUMERATED {supported} OPTIONAL,
+ dmrs-RepetitionSubslotPDSCH-r15 ENUMERATED {supported} OPTIONAL,
+ epdcch-SPT-differentCells-r15 ENUMERATED {supported} OPTIONAL,
+ epdcch-STTI-differentCells-r15 ENUMERATED {supported} OPTIONAL,
+ maxLayersSlotOrSubslotPUSCH-r15 ENUMERATED {oneLayer,twoLayers,fourLayers}
+ OPTIONAL,
+ maxNumberUpdatedCSI-Proc-SPT-r15 INTEGER(5..32) OPTIONAL,
+ maxNumberUpdatedCSI-Proc-STTI-Comb77-r15 INTEGER(1..32) OPTIONAL,
+ maxNumberUpdatedCSI-Proc-STTI-Comb27-r15 INTEGER(1..32) OPTIONAL,
+ maxNumberUpdatedCSI-Proc-STTI-Comb22-Set1-r15 INTEGER(1..32) OPTIONAL,
+ maxNumberUpdatedCSI-Proc-STTI-Comb22-Set2-r15 INTEGER(1..32) OPTIONAL,
+ mimo-UE-ParametersSTTI-r15 MIMO-UE-Parameters-r13 OPTIONAL,
+ mimo-UE-ParametersSTTI-v1530 MIMO-UE-Parameters-v1430 OPTIONAL,
+ numberOfBlindDecodesUSS-r15 INTEGER(4..32) OPTIONAL,
+ pdsch-SlotSubslotPDSCH-Decoding-r15 ENUMERATED {supported} OPTIONAL,
+ powerUCI-SlotPUSCH ENUMERATED {supported} OPTIONAL,
+ powerUCI-SubslotPUSCH ENUMERATED {supported} OPTIONAL,
+ slotPDSCH-TxDiv-TM9and10 ENUMERATED {supported} OPTIONAL,
+ subslotPDSCH-TxDiv-TM9and10 ENUMERATED {supported} OPTIONAL,
+ spdcch-differentRS-types-r15 ENUMERATED {supported} OPTIONAL,
+ srs-DCI7-TriggeringFS2-r15 ENUMERATED {supported} OPTIONAL,
+ sps-cyclicShift-r15 ENUMERATED {supported} OPTIONAL,
+ spdcch-Reuse-r15 ENUMERATED {supported} OPTIONAL,
+ sps-STTI-r15 ENUMERATED {slot, subslot, slotAndSubslot}
+ OPTIONAL,
+ tm8-slotPDSCH-r15 ENUMERATED {supported} OPTIONAL,
+ tm9-slotSubslot-r15 ENUMERATED {supported} OPTIONAL,
+ tm9-slotSubslotMBSFN-r15 ENUMERATED {supported} OPTIONAL,
+ tm10-slotSubslot-r15 ENUMERATED {supported} OPTIONAL,
+ tm10-slotSubslotMBSFN-r15 ENUMERATED {supported} OPTIONAL,
+ txDiv-SPUCCH-r15 ENUMERATED {supported} OPTIONAL,
+ ul-AsyncHarqSharingDiff-TTI-Lengths-r15 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ ce-Capabilities-r15 SEQUENCE {
+ ce-CRS-IntfMitig-r15 ENUMERATED {supported} OPTIONAL,
+ ce-CQI-AlternativeTable-r15 ENUMERATED {supported} OPTIONAL,
+ ce-PDSCH-FlexibleStartPRB-CE-ModeA-r15 ENUMERATED {supported} OPTIONAL,
+ ce-PDSCH-FlexibleStartPRB-CE-ModeB-r15 ENUMERATED {supported} OPTIONAL,
+ ce-PDSCH-64QAM-r15 ENUMERATED {supported} OPTIONAL,
+ ce-PUSCH-FlexibleStartPRB-CE-ModeA-r15 ENUMERATED {supported} OPTIONAL,
+ ce-PUSCH-FlexibleStartPRB-CE-ModeB-r15 ENUMERATED {supported} OPTIONAL,
+ ce-PUSCH-SubPRB-Allocation-r15 ENUMERATED {supported} OPTIONAL,
+ ce-UL-HARQ-ACK-Feedback-r15 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ shortCQI-ForSCellActivation-r15 ENUMERATED {supported} OPTIONAL,
+ mimo-CBSR-AdvancedCSI-r15 ENUMERATED {supported} OPTIONAL,
+ crs-IntfMitig-r15 ENUMERATED {supported} OPTIONAL,
+ ul-PowerControlEnhancements-r15 ENUMERATED {supported} OPTIONAL,
+ urllc-Capabilities-r15 SEQUENCE {
+ pdsch-RepSubframe-r15 ENUMERATED {supported} OPTIONAL,
+ pdsch-RepSlot-r15 ENUMERATED {supported} OPTIONAL,
+ pdsch-RepSubslot-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-MultiConfigSubframe-r15 INTEGER (0..6) OPTIONAL,
+ pusch-SPS-MaxConfigSubframe-r15 INTEGER (0..31) OPTIONAL,
+ pusch-SPS-MultiConfigSlot-r15 INTEGER (0..6) OPTIONAL,
+ pusch-SPS-MaxConfigSlot-r15 INTEGER (0..31) OPTIONAL,
+ pusch-SPS-MultiConfigSubslot-r15 INTEGER (0..6) OPTIONAL,
+ pusch-SPS-MaxConfigSubslot-r15 INTEGER (0..31) OPTIONAL,
+ pusch-SPS-SlotRepPCell-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-SlotRepPSCell-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-SlotRepSCell-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-SubframeRepPCell-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-SubframeRepPSCell-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-SubframeRepSCell-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-SubslotRepPCell-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-SubslotRepPSCell-r15 ENUMERATED {supported} OPTIONAL,
+ pusch-SPS-SubslotRepSCell-r15 ENUMERATED {supported} OPTIONAL,
+ semiStaticCFI-r15 ENUMERATED {supported} OPTIONAL,
+ semiStaticCFI-Pattern-r15 ENUMERATED {supported} OPTIONAL
+ } OPTIONAL,
+ altMCS-Table-r15 ENUMERATED {supported} OPTIONAL
+}
+
+MIMO-UE-Parameters-r13 ::= SEQUENCE {
+ parametersTM9-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL,
+ parametersTM10-r13 MIMO-UE-ParametersPerTM-r13 OPTIONAL,
+ srs-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL,
+ srs-Enhancements-r13 ENUMERATED {supported} OPTIONAL,
+ interferenceMeasRestriction-r13 ENUMERATED {supported} OPTIONAL
+}
+
+MIMO-UE-Parameters-v1430 ::= SEQUENCE {
+ parametersTM9-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL,
+ parametersTM10-v1430 MIMO-UE-ParametersPerTM-v1430 OPTIONAL
+}
+
+MIMO-UE-Parameters-v1470 ::= SEQUENCE {
+ parametersTM9-v1470 MIMO-UE-ParametersPerTM-v1470,
+ parametersTM10-v1470 MIMO-UE-ParametersPerTM-v1470
+}
+
+MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE {
+ nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL,
+ beamformed-r13 MIMO-UE-BeamformedCapabilities-r13 OPTIONAL,
+ channelMeasRestriction-r13 ENUMERATED {supported} OPTIONAL,
+ dmrs-Enhancements-r13 ENUMERATED {supported} OPTIONAL,
+ csi-RS-EnhancementsTDD-r13 ENUMERATED {supported} OPTIONAL
+}
+
+MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE {
+ nzp-CSI-RS-AperiodicInfo-r14 SEQUENCE {
+ nMaxProc-r14 INTEGER(5..32),
+ nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4}
+ } OPTIONAL,
+ nzp-CSI-RS-PeriodicInfo-r14 SEQUENCE {
+ nMaxResource-r14 ENUMERATED {ffs1, ffs2, ffs3, ffs4}
+ } OPTIONAL,
+ zp-CSI-RS-AperiodicInfo-r14 ENUMERATED {supported} OPTIONAL,
+ ul-dmrs-Enhancements-r14 ENUMERATED {supported} OPTIONAL,
+ densityReductionNP-r14 ENUMERATED {supported} OPTIONAL,
+ densityReductionBF-r14 ENUMERATED {supported} OPTIONAL,
+ hybridCSI-r14 ENUMERATED {supported} OPTIONAL,
+ semiOL-r14 ENUMERATED {supported} OPTIONAL,
+ csi-ReportingNP-r14 ENUMERATED {supported} OPTIONAL,
+ csi-ReportingAdvanced-r14 ENUMERATED {supported} OPTIONAL
+}
+
+MIMO-UE-ParametersPerTM-v1470 ::= SEQUENCE {
+ csi-ReportingAdvancedMaxPorts-r14 ENUMERATED {n8, n12, n16, n20, n24, n28} OPTIONAL
+}
+
+MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE {
+ parametersTM9-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL,
+ parametersTM10-r13 MIMO-CA-ParametersPerBoBCPerTM-r13 OPTIONAL
+}
+
+MIMO-CA-ParametersPerBoBC-r15 ::= SEQUENCE {
+ parametersTM9-r15 MIMO-CA-ParametersPerBoBCPerTM-r15 OPTIONAL,
+ parametersTM10-r15 MIMO-CA-ParametersPerBoBCPerTM-r15 OPTIONAL
+}
+
+MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE {
+ parametersTM9-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL,
+ parametersTM10-v1430 MIMO-CA-ParametersPerBoBCPerTM-v1430 OPTIONAL
+}
+
+MIMO-CA-ParametersPerBoBC-v1470 ::= SEQUENCE {
+ parametersTM9-v1470 MIMO-CA-ParametersPerBoBCPerTM-v1470 ,
+ parametersTM10-v1470 MIMO-CA-ParametersPerBoBCPerTM-v1470
+}
+
+MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE {
+ nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL,
+ beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL,
+ dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL
+}
+
+MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE {
+ csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL,
+ csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL
+}
+
+MIMO-CA-ParametersPerBoBCPerTM-v1470 ::= SEQUENCE {
+ csi-ReportingAdvancedMaxPorts-r14 ENUMERATED {n8, n12, n16, n20, n24, n28} OPTIONAL
+}
+
+MIMO-CA-ParametersPerBoBCPerTM-r15 ::= SEQUENCE {
+ nonPrecoded-r13 MIMO-NonPrecodedCapabilities-r13 OPTIONAL,
+ beamformed-r13 MIMO-BeamformedCapabilityList-r13 OPTIONAL,
+ dmrs-Enhancements-r13 ENUMERATED {different} OPTIONAL,
+ csi-ReportingNP-r14 ENUMERATED {different} OPTIONAL,
+ csi-ReportingAdvanced-r14 ENUMERATED {different} OPTIONAL
+}
+
+MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE {
+ config1-r13 ENUMERATED {supported} OPTIONAL,
+ config2-r13 ENUMERATED {supported} OPTIONAL,
+ config3-r13 ENUMERATED {supported} OPTIONAL,
+ config4-r13 ENUMERATED {supported} OPTIONAL
+}
+
+MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE {
+ altCodebook-r13 ENUMERATED {supported} OPTIONAL,
+ mimo-BeamformedCapabilities-r13 MIMO-BeamformedCapabilityList-r13
+}
+
+MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..maxCSI-Proc-r11)) OF MIMO-BeamformedCapabilities-r13
+
+MIMO-BeamformedCapabilities-r13 ::= SEQUENCE {
+ k-Max-r13 INTEGER (1..8),
+ n-MaxList-r13 BIT STRING (SIZE (1..7)) OPTIONAL
+ }
+
+NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..maxBands)) OF NonContiguousUL-RA-WithinCC-r10
+
+NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE {
+ nonContiguousUL-RA-WithinCC-Info-r10 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters ::= SEQUENCE {
+ supportedBandListEUTRA SupportedBandListEUTRA
+}
+
+RF-Parameters-v9e0 ::= SEQUENCE {
+ supportedBandListEUTRA-v9e0 SupportedBandListEUTRA-v9e0 OPTIONAL
+}
+
+RF-Parameters-v1020 ::= SEQUENCE {
+ supportedBandCombination-r10 SupportedBandCombination-r10
+}
+
+RF-Parameters-v1060 ::= SEQUENCE {
+ supportedBandCombinationExt-r10 SupportedBandCombinationExt-r10
+}
+
+RF-Parameters-v1090 ::= SEQUENCE {
+ supportedBandCombination-v1090 SupportedBandCombination-v1090 OPTIONAL
+}
+
+RF-Parameters-v10f0 ::= SEQUENCE {
+ modifiedMPR-Behavior-r10 BIT STRING (SIZE (32)) OPTIONAL
+}
+
+RF-Parameters-v10i0 ::= SEQUENCE {
+ supportedBandCombination-v10i0 SupportedBandCombination-v10i0 OPTIONAL
+}
+
+RF-Parameters-v10j0 ::= SEQUENCE {
+ multiNS-Pmax-r10 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters-v1130 ::= SEQUENCE {
+ supportedBandCombination-v1130 SupportedBandCombination-v1130 OPTIONAL
+}
+
+RF-Parameters-v1180 ::= SEQUENCE {
+ freqBandRetrieval-r11 ENUMERATED {supported} OPTIONAL,
+ requestedBands-r11 SEQUENCE (SIZE (1.. maxBands)) OF FreqBandIndicator-r11 OPTIONAL,
+ supportedBandCombinationAdd-r11 SupportedBandCombinationAdd-r11 OPTIONAL
+}
+
+RF-Parameters-v11d0 ::= SEQUENCE {
+ supportedBandCombinationAdd-v11d0 SupportedBandCombinationAdd-v11d0 OPTIONAL
+}
+
+RF-Parameters-v1250 ::= SEQUENCE {
+ supportedBandListEUTRA-v1250 SupportedBandListEUTRA-v1250 OPTIONAL,
+ supportedBandCombination-v1250 SupportedBandCombination-v1250 OPTIONAL,
+ supportedBandCombinationAdd-v1250 SupportedBandCombinationAdd-v1250 OPTIONAL,
+ freqBandPriorityAdjustment-r12 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters-v1270 ::= SEQUENCE {
+ supportedBandCombination-v1270 SupportedBandCombination-v1270 OPTIONAL,
+ supportedBandCombinationAdd-v1270 SupportedBandCombinationAdd-v1270 OPTIONAL
+}
+
+RF-Parameters-v1310 ::= SEQUENCE {
+ eNB-RequestedParameters-r13 SEQUENCE {
+ reducedIntNonContCombRequested-r13 ENUMERATED {true} OPTIONAL,
+ requestedCCsDL-r13 INTEGER (2..32) OPTIONAL,
+ requestedCCsUL-r13 INTEGER (2..32) OPTIONAL,
+ skipFallbackCombRequested-r13 ENUMERATED {true} OPTIONAL
+ } OPTIONAL,
+ maximumCCsRetrieval-r13 ENUMERATED {supported} OPTIONAL,
+ skipFallbackCombinations-r13 ENUMERATED {supported} OPTIONAL,
+ reducedIntNonContComb-r13 ENUMERATED {supported} OPTIONAL,
+ supportedBandListEUTRA-v1310 SupportedBandListEUTRA-v1310 OPTIONAL,
+ supportedBandCombinationReduced-r13 SupportedBandCombinationReduced-r13 OPTIONAL
+}
+
+RF-Parameters-v1320 ::= SEQUENCE {
+ supportedBandListEUTRA-v1320 SupportedBandListEUTRA-v1320 OPTIONAL,
+ supportedBandCombination-v1320 SupportedBandCombination-v1320 OPTIONAL,
+ supportedBandCombinationAdd-v1320 SupportedBandCombinationAdd-v1320 OPTIONAL,
+ supportedBandCombinationReduced-v1320 SupportedBandCombinationReduced-v1320 OPTIONAL
+}
+
+RF-Parameters-v1380 ::= SEQUENCE {
+ supportedBandCombination-v1380 SupportedBandCombination-v1380 OPTIONAL,
+ supportedBandCombinationAdd-v1380 SupportedBandCombinationAdd-v1380 OPTIONAL,
+ supportedBandCombinationReduced-v1380 SupportedBandCombinationReduced-v1380 OPTIONAL
+}
+
+RF-Parameters-v1390 ::= SEQUENCE {
+ supportedBandCombination-v1390 SupportedBandCombination-v1390 OPTIONAL,
+ supportedBandCombinationAdd-v1390 SupportedBandCombinationAdd-v1390 OPTIONAL,
+ supportedBandCombinationReduced-v1390 SupportedBandCombinationReduced-v1390 OPTIONAL
+}
+
+RF-Parameters-v12b0 ::= SEQUENCE {
+ maxLayersMIMO-Indication-r12 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters-v1430 ::= SEQUENCE {
+ supportedBandCombination-v1430 SupportedBandCombination-v1430 OPTIONAL,
+ supportedBandCombinationAdd-v1430 SupportedBandCombinationAdd-v1430 OPTIONAL,
+ supportedBandCombinationReduced-v1430 SupportedBandCombinationReduced-v1430 OPTIONAL,
+ eNB-RequestedParameters-v1430 SEQUENCE {
+ requestedDiffFallbackCombList-r14 BandCombinationList-r14
+ } OPTIONAL,
+ diffFallbackCombReport-r14 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters-v1450 ::= SEQUENCE {
+ supportedBandCombination-v1450 SupportedBandCombination-v1450 OPTIONAL,
+ supportedBandCombinationAdd-v1450 SupportedBandCombinationAdd-v1450 OPTIONAL,
+ supportedBandCombinationReduced-v1450 SupportedBandCombinationReduced-v1450 OPTIONAL
+}
+
+RF-Parameters-v1470 ::= SEQUENCE {
+ supportedBandCombination-v1470 SupportedBandCombination-v1470 OPTIONAL,
+ supportedBandCombinationAdd-v1470 SupportedBandCombinationAdd-v1470 OPTIONAL,
+ supportedBandCombinationReduced-v1470 SupportedBandCombinationReduced-v1470 OPTIONAL
+}
+
+RF-Parameters-v1530 ::= SEQUENCE {
+ sTTI-SPT-Supported-r15 ENUMERATED {supported} OPTIONAL,
+ supportedBandCombination-v1530 SupportedBandCombination-v1530 OPTIONAL,
+ supportedBandCombinationAdd-v1530 SupportedBandCombinationAdd-v1530 OPTIONAL,
+ supportedBandCombinationReduced-v1530 SupportedBandCombinationReduced-v1530 OPTIONAL,
+ powerClass-14dBm-r15 ENUMERATED {supported} OPTIONAL
+}
+
+SkipSubframeProcessing-r15 ::= SEQUENCE {
+ skipProcessingDL-Slot-r15 INTEGER (0..3) OPTIONAL,
+ skipProcessingDL-SubSlot-r15 INTEGER (0..3) OPTIONAL,
+ skipProcessingUL-Slot-r15 INTEGER (0..3) OPTIONAL,
+ skipProcessingUL-SubSlot-r15 INTEGER (0..3) OPTIONAL
+}
+
+SPT-Parameters-r15 ::= SEQUENCE {
+ frameStructureType-SPT-r15 BIT STRING (SIZE (3)) OPTIONAL,
+ maxNumberCCs-SPT-r15 INTEGER (1..32) OPTIONAL
+}
+
+STTI-SPT-BandParameters-r15 ::= SEQUENCE {
+ dl-1024QAM-Slot-r15 ENUMERATED {supported} OPTIONAL,
+ dl-1024QAM-SubslotTA-1-r15 ENUMERATED {supported} OPTIONAL,
+ dl-1024QAM-SubslotTA-2-r15 ENUMERATED {supported} OPTIONAL,
+ simultaneousTx-differentTx-duration-r15 ENUMERATED {supported} OPTIONAL,
+ sTTI-CA-MIMO-ParametersDL-r15 CA-MIMO-ParametersDL-r15 OPTIONAL,
+ sTTI-CA-MIMO-ParametersUL-r15 CA-MIMO-ParametersUL-r15,
+ sTTI-FD-MIMO-Coexistence ENUMERATED {supported} OPTIONAL,
+ sTTI-MIMO-CA-ParametersPerBoBCs-r15 MIMO-CA-ParametersPerBoBC-r13 OPTIONAL,
+ sTTI-MIMO-CA-ParametersPerBoBCs-v1530 MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL,
+ sTTI-SupportedCombinations-r15 STTI-SupportedCombinations-r15 OPTIONAL,
+ sTTI-SupportedCSI-Proc-r15 ENUMERATED {n1, n3, n4} OPTIONAL,
+ ul-256QAM-Slot-r15 ENUMERATED {supported} OPTIONAL,
+ ul-256QAM-Subslot-r15 ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+STTI-SupportedCombinations-r15 ::= SEQUENCE {
+ combination-22-r15 DL-UL-CCs-r15 OPTIONAL,
+ combination-77-r15 DL-UL-CCs-r15 OPTIONAL,
+ combination-27-r15 DL-UL-CCs-r15 OPTIONAL,
+ combination-22-27-r15 SEQUENCE (SIZE (1..2)) OF DL-UL-CCs-r15 OPTIONAL,
+ combination-77-22-r15 SEQUENCE (SIZE (1..2)) OF DL-UL-CCs-r15 OPTIONAL,
+ combination-77-27-r15 SEQUENCE (SIZE (1..2)) OF DL-UL-CCs-r15 OPTIONAL
+}
+
+DL-UL-CCs-r15 ::= SEQUENCE {
+ maxNumberDL-CCs-r15 INTEGER (1..32) OPTIONAL,
+ maxNumberUL-CCs-r15 INTEGER (1..32) OPTIONAL
+}
+
+SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-r10
+
+SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParametersExt-r10
+
+SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1090
+
+SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v10i0
+
+SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1130
+
+SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1250
+
+SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1270
+
+SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1320
+
+SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1380
+
+SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1390
+
+SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1430
+
+SupportedBandCombination-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1450
+
+SupportedBandCombination-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1470
+
+SupportedBandCombination-v1530 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandCombinationParameters-v1530
+
+SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-r11
+
+SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v10i0
+
+SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1250
+
+SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1270
+
+SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1320
+
+SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1380
+
+SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1390
+
+SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1430
+
+SupportedBandCombinationAdd-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1450
+
+SupportedBandCombinationAdd-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1470
+
+SupportedBandCombinationAdd-v1530 ::= SEQUENCE (SIZE (1..maxBandComb-r11)) OF BandCombinationParameters-v1530
+
+SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-r13
+
+SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1320
+
+SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1380
+
+SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1390
+
+SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1430
+
+SupportedBandCombinationReduced-v1450 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1450
+
+SupportedBandCombinationReduced-v1470 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1470
+
+SupportedBandCombinationReduced-v1530 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF BandCombinationParameters-v1530
+
+BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r10
+
+BandCombinationParametersExt-r10 ::= SEQUENCE {
+ supportedBandwidthCombinationSet-r10 SupportedBandwidthCombinationSet-r10 OPTIONAL
+}
+
+BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1090
+
+BandCombinationParameters-v10i0::= SEQUENCE {
+ bandParameterList-v10i0 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v10i0 OPTIONAL
+}
+
+BandCombinationParameters-v1130 ::= SEQUENCE {
+ multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL,
+ simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL,
+ bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1130 OPTIONAL,
+ ...
+}
+
+BandCombinationParameters-r11 ::= SEQUENCE {
+ bandParameterList-r11 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-r11,
+ supportedBandwidthCombinationSet-r11 SupportedBandwidthCombinationSet-r10 OPTIONAL,
+ multipleTimingAdvance-r11 ENUMERATED {supported} OPTIONAL,
+ simultaneousRx-Tx-r11 ENUMERATED {supported} OPTIONAL,
+ bandInfoEUTRA-r11 BandInfoEUTRA,
+ ...
+}
+
+BandCombinationParameters-v1250::= SEQUENCE {
+ dc-Support-r12 SEQUENCE {
+ asynchronous-r12 ENUMERATED {supported} OPTIONAL,
+ supportedCellGrouping-r12 CHOICE {
+ threeEntries-r12 BIT STRING (SIZE(3)),
+ fourEntries-r12 BIT STRING (SIZE(7)),
+ fiveEntries-r12 BIT STRING (SIZE(15))
+ } OPTIONAL
+ } OPTIONAL,
+ supportedNAICS-2CRS-AP-r12 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL,
+ commSupportedBandsPerBC-r12 BIT STRING (SIZE (1.. maxBands)) OPTIONAL,
+ ...
+}
+
+BandCombinationParameters-v1270 ::= SEQUENCE {
+ bandParameterList-v1270 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v1270 OPTIONAL
+}
+
+BandCombinationParameters-r13 ::= SEQUENCE {
+ differentFallbackSupported-r13 ENUMERATED {true} OPTIONAL,
+ bandParameterList-r13 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-r13,
+ supportedBandwidthCombinationSet-r13 SupportedBandwidthCombinationSet-r10 OPTIONAL,
+ multipleTimingAdvance-r13 ENUMERATED {supported} OPTIONAL,
+ simultaneousRx-Tx-r13 ENUMERATED {supported} OPTIONAL,
+ bandInfoEUTRA-r13 BandInfoEUTRA,
+ dc-Support-r13 SEQUENCE {
+ asynchronous-r13 ENUMERATED {supported} OPTIONAL,
+ supportedCellGrouping-r13 CHOICE {
+ threeEntries-r13 BIT STRING (SIZE(3)),
+ fourEntries-r13 BIT STRING (SIZE(7)),
+ fiveEntries-r13 BIT STRING (SIZE(15))
+ } OPTIONAL
+ } OPTIONAL,
+ supportedNAICS-2CRS-AP-r13 BIT STRING (SIZE (1..maxNAICS-Entries-r12)) OPTIONAL,
+ commSupportedBandsPerBC-r13 BIT STRING (SIZE (1.. maxBands)) OPTIONAL
+}
+
+BandCombinationParameters-v1320 ::= SEQUENCE {
+ bandParameterList-v1320 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v1320 OPTIONAL,
+ additionalRx-Tx-PerformanceReq-r13 ENUMERATED {supported} OPTIONAL
+}
+
+BandCombinationParameters-v1380 ::= SEQUENCE {
+ bandParameterList-v1380 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v1380 OPTIONAL
+}
+
+BandCombinationParameters-v1390 ::= SEQUENCE {
+ ue-CA-PowerClass-N-r13 ENUMERATED {class2} OPTIONAL
+}
+
+BandCombinationParameters-v1430 ::= SEQUENCE {
+ bandParameterList-v1430 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v1430 OPTIONAL,
+ v2x-SupportedTxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL,
+ v2x-SupportedRxBandCombListPerBC-r14 BIT STRING (SIZE (1.. maxBandComb-r13)) OPTIONAL
+}
+
+BandCombinationParameters-v1450 ::= SEQUENCE {
+ bandParameterList-v1450 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v1450 OPTIONAL
+}
+
+BandCombinationParameters-v1470 ::= SEQUENCE {
+ bandParameterList-v1470 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ BandParameters-v1470 OPTIONAL,
+ srs-MaxSimultaneousCCs-r14 INTEGER (1..31) OPTIONAL
+}
+
+BandCombinationParameters-v1530 ::= SEQUENCE {
+ bandParameterList-v1530 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF BandParameters-v1530 OPTIONAL,
+ spt-Parameters-r15 SPT-Parameters-r15 OPTIONAL
+}
+-- If an additional band combination parameter is defined, which are supported for EN-DC, it shall be defined in the IE CA-ParametersEUTRA in TS 38.331 [82].
+
+SupportedBandwidthCombinationSet-r10 ::= BIT STRING (SIZE (1..maxBandwidthCombSet-r10))
+
+BandParameters-r10 ::= SEQUENCE {
+ bandEUTRA-r10 FreqBandIndicator,
+ bandParametersUL-r10 BandParametersUL-r10 OPTIONAL,
+ bandParametersDL-r10 BandParametersDL-r10 OPTIONAL
+}
+
+BandParameters-v1090 ::= SEQUENCE {
+ bandEUTRA-v1090 FreqBandIndicator-v9e0 OPTIONAL,
+ ...
+}
+
+BandParameters-v10i0::= SEQUENCE {
+ bandParametersDL-v10i0 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v10i0
+}
+
+BandParameters-v1130 ::= SEQUENCE {
+ supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4}
+}
+
+BandParameters-r11 ::= SEQUENCE {
+ bandEUTRA-r11 FreqBandIndicator-r11,
+ bandParametersUL-r11 BandParametersUL-r10 OPTIONAL,
+ bandParametersDL-r11 BandParametersDL-r10 OPTIONAL,
+ supportedCSI-Proc-r11 ENUMERATED {n1, n3, n4} OPTIONAL
+}
+
+BandParameters-v1270 ::= SEQUENCE {
+ bandParametersDL-v1270 SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-v1270
+}
+
+BandParameters-r13 ::= SEQUENCE {
+ bandEUTRA-r13 FreqBandIndicator-r11,
+ bandParametersUL-r13 BandParametersUL-r13 OPTIONAL,
+ bandParametersDL-r13 BandParametersDL-r13 OPTIONAL,
+ supportedCSI-Proc-r13 ENUMERATED {n1, n3, n4} OPTIONAL
+}
+
+BandParameters-v1320 ::= SEQUENCE {
+ bandParametersDL-v1320 MIMO-CA-ParametersPerBoBC-r13
+}
+
+BandParameters-v1380 ::= SEQUENCE {
+ txAntennaSwitchDL-r13 INTEGER (1..32) OPTIONAL,
+ txAntennaSwitchUL-r13 INTEGER (1..32) OPTIONAL
+}
+
+BandParameters-v1430 ::= SEQUENCE {
+ bandParametersDL-v1430 MIMO-CA-ParametersPerBoBC-v1430 OPTIONAL,
+ ul-256QAM-r14 ENUMERATED {supported} OPTIONAL,
+ ul-256QAM-perCC-InfoList-r14 SEQUENCE (SIZE (2..maxServCell-r13)) OF UL-256QAM-perCC-Info-r14 OPTIONAL,
+ retuningTimeInfoBandList-r14 SEQUENCE (SIZE (1..maxSimultaneousBands-r10)) OF
+ RetuningTimeInfo-r14 OPTIONAL
+}
+
+BandParameters-v1450 ::= SEQUENCE {
+ must-CapabilityPerBand-r14 MUST-Parameters-r14 OPTIONAL
+}
+
+BandParameters-v1470 ::= SEQUENCE {
+ bandParametersDL-v1470 MIMO-CA-ParametersPerBoBC-v1470 OPTIONAL
+}
+
+BandParameters-v1530 ::= SEQUENCE {
+ ue-TxAntennaSelection-SRS-1T4R-r15 ENUMERATED {supported} OPTIONAL,
+ ue-TxAntennaSelection-SRS-2T4R-2Pairs-r15 ENUMERATED {supported} OPTIONAL,
+ ue-TxAntennaSelection-SRS-2T4R-3Pairs-r15 ENUMERATED {supported} OPTIONAL,
+ dl-1024QAM-r15 ENUMERATED {supported} OPTIONAL,
+ qcl-TypeC-Operation-r15 ENUMERATED {supported} OPTIONAL,
+ qcl-CRI-BasedCSI-Reporting-r15 ENUMERATED {supported} OPTIONAL,
+ stti-SPT-BandParameters-r15 STTI-SPT-BandParameters-r15 OPTIONAL
+}
+
+V2X-BandParameters-r14 ::= SEQUENCE {
+ v2x-FreqBandEUTRA-r14 FreqBandIndicator-r11,
+ bandParametersTxSL-r14 BandParametersTxSL-r14 OPTIONAL,
+ bandParametersRxSL-r14 BandParametersRxSL-r14 OPTIONAL
+}
+
+V2X-BandParameters-v1530 ::= SEQUENCE {
+ v2x-EnhancedHighReception-r15 ENUMERATED {supported} OPTIONAL
+}
+
+BandParametersTxSL-r14 ::= SEQUENCE {
+ v2x-BandwidthClassTxSL-r14 V2X-BandwidthClassSL-r14,
+ v2x-eNB-Scheduled-r14 ENUMERATED {supported} OPTIONAL,
+ v2x-HighPower-r14 ENUMERATED {supported} OPTIONAL
+}
+
+BandParametersRxSL-r14 ::= SEQUENCE {
+ v2x-BandwidthClassRxSL-r14 V2X-BandwidthClassSL-r14,
+ v2x-HighReception-r14 ENUMERATED {supported} OPTIONAL
+}
+
+V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF V2X-BandwidthClass-r14
+
+UL-256QAM-perCC-Info-r14 ::= SEQUENCE {
+ ul-256QAM-perCC-r14 ENUMERATED {supported} OPTIONAL
+}
+
+FeatureSetDL-r15 ::= SEQUENCE {
+ mimo-CA-ParametersPerBoBC-r15 MIMO-CA-ParametersPerBoBC-r15 OPTIONAL,
+ featureSetPerCC-ListDL-r15 SEQUENCE (SIZE (1..maxServCell-r13)) OF FeatureSetDL-PerCC-Id-r15
+}
+
+FeatureSetDL-PerCC-r15 ::= SEQUENCE {
+ fourLayerTM3-TM4-r15 ENUMERATED {supported} OPTIONAL,
+ supportedMIMO-CapabilityDL-r15 MIMO-CapabilityDL-r10 OPTIONAL,
+ supportedCSI-Proc-r15 ENUMERATED {n1, n3, n4} OPTIONAL
+}
+
+FeatureSetUL-r15 ::= SEQUENCE {
+ featureSetPerCC-ListUL-r15 SEQUENCE (SIZE(1..maxServCell-r13)) OF FeatureSetUL-PerCC-Id-r15
+}
+
+FeatureSetUL-PerCC-r15 ::= SEQUENCE {
+ supportedMIMO-CapabilityUL-r15 MIMO-CapabilityUL-r10 OPTIONAL,
+ ul-256QAM-r15 ENUMERATED {supported} OPTIONAL
+}
+
+FeatureSetDL-PerCC-Id-r15 ::= INTEGER (0..maxPerCC-FeatureSets-r15)
+
+FeatureSetUL-PerCC-Id-r15 ::= INTEGER (0..maxPerCC-FeatureSets-r15)
+
+BandParametersUL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersUL-r10
+
+BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10
+
+CA-MIMO-ParametersUL-r10 ::= SEQUENCE {
+ ca-BandwidthClassUL-r10 CA-BandwidthClass-r10,
+ supportedMIMO-CapabilityUL-r10 MIMO-CapabilityUL-r10 OPTIONAL
+}
+
+CA-MIMO-ParametersUL-r15 ::= SEQUENCE {
+ supportedMIMO-CapabilityUL-r15 MIMO-CapabilityUL-r10 OPTIONAL
+}
+
+BandParametersDL-r10 ::= SEQUENCE (SIZE (1..maxBandwidthClass-r10)) OF CA-MIMO-ParametersDL-r10
+
+BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13
+
+CA-MIMO-ParametersDL-r10 ::= SEQUENCE {
+ ca-BandwidthClassDL-r10 CA-BandwidthClass-r10,
+ supportedMIMO-CapabilityDL-r10 MIMO-CapabilityDL-r10 OPTIONAL
+}
+
+CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE {
+ fourLayerTM3-TM4-r10 ENUMERATED {supported} OPTIONAL
+}
+
+CA-MIMO-ParametersDL-v1270 ::= SEQUENCE {
+ intraBandContiguousCC-InfoList-r12 SEQUENCE (SIZE (1..maxServCell-r10)) OF IntraBandContiguousCC-Info-r12
+}
+
+CA-MIMO-ParametersDL-r13 ::= SEQUENCE {
+ ca-BandwidthClassDL-r13 CA-BandwidthClass-r10,
+ supportedMIMO-CapabilityDL-r13 MIMO-CapabilityDL-r10 OPTIONAL,
+ fourLayerTM3-TM4-r13 ENUMERATED {supported} OPTIONAL,
+ intraBandContiguousCC-InfoList-r13 SEQUENCE (SIZE (1..maxServCell-r13)) OF IntraBandContiguousCC-Info-r12
+}
+
+CA-MIMO-ParametersDL-r15 ::= SEQUENCE {
+ supportedMIMO-CapabilityDL-r15 MIMO-CapabilityDL-r10 OPTIONAL,
+ fourLayerTM3-TM4-r15 ENUMERATED {supported} OPTIONAL,
+ intraBandContiguousCC-InfoList-r15 SEQUENCE (SIZE (1..maxServCell-r13)) OF
+ IntraBandContiguousCC-Info-r12 OPTIONAL
+}
+
+IntraBandContiguousCC-Info-r12 ::= SEQUENCE {
+ fourLayerTM3-TM4-perCC-r12 ENUMERATED {supported} OPTIONAL,
+ supportedMIMO-CapabilityDL-r12 MIMO-CapabilityDL-r10 OPTIONAL,
+ supportedCSI-Proc-r12 ENUMERATED {n1, n3, n4} OPTIONAL
+}
+
+CA-BandwidthClass-r10 ::= ENUMERATED {a, b, c, d, e, f, ...}
+
+V2X-BandwidthClass-r14 ::= ENUMERATED {a, b, c, d, e, f, ..., c1-v1530}
+
+MIMO-CapabilityUL-r10 ::= ENUMERATED {twoLayers, fourLayers}
+
+MIMO-CapabilityDL-r10 ::= ENUMERATED {twoLayers, fourLayers, eightLayers}
+
+MUST-Parameters-r14 ::= SEQUENCE {
+ must-TM234-UpTo2Tx-r14 ENUMERATED {supported} OPTIONAL,
+ must-TM89-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL,
+ must-TM10-UpToOneInterferingLayer-r14 ENUMERATED {supported} OPTIONAL,
+ must-TM89-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL,
+ must-TM10-UpToThreeInterferingLayers-r14 ENUMERATED {supported} OPTIONAL
+}
+
+SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA
+
+SupportedBandListEUTRA-v9e0::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9e0
+
+SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1250
+
+SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1310
+
+SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v1320
+
+SupportedBandEUTRA ::= SEQUENCE {
+ bandEUTRA FreqBandIndicator,
+ halfDuplex BOOLEAN
+}
+
+SupportedBandEUTRA-v9e0 ::= SEQUENCE {
+ bandEUTRA-v9e0 FreqBandIndicator-v9e0 OPTIONAL
+}
+
+SupportedBandEUTRA-v1250 ::= SEQUENCE {
+ dl-256QAM-r12 ENUMERATED {supported} OPTIONAL,
+ ul-64QAM-r12 ENUMERATED {supported} OPTIONAL
+}
+
+SupportedBandEUTRA-v1310 ::= SEQUENCE {
+ ue-PowerClass-5-r13 ENUMERATED {supported} OPTIONAL
+}
+SupportedBandEUTRA-v1320 ::= SEQUENCE {
+ intraFreq-CE-NeedForGaps-r13 ENUMERATED {supported} OPTIONAL,
+ ue-PowerClass-N-r13 ENUMERATED {class1, class2, class4} OPTIONAL
+}
+
+MeasParameters ::= SEQUENCE {
+ bandListEUTRA BandListEUTRA
+}
+
+MeasParameters-v1020 ::= SEQUENCE {
+ bandCombinationListEUTRA-r10 BandCombinationListEUTRA-r10
+}
+
+MeasParameters-v1130 ::= SEQUENCE {
+ rsrqMeasWideband-r11 ENUMERATED {supported} OPTIONAL
+}
+
+MeasParameters-v11a0 ::= SEQUENCE {
+ benefitsFromInterruption-r11 ENUMERATED {true} OPTIONAL
+}
+
+MeasParameters-v1250 ::= SEQUENCE {
+ timerT312-r12 ENUMERATED {supported} OPTIONAL,
+ alternativeTimeToTrigger-r12 ENUMERATED {supported} OPTIONAL,
+ incMonEUTRA-r12 ENUMERATED {supported} OPTIONAL,
+ incMonUTRA-r12 ENUMERATED {supported} OPTIONAL,
+ extendedMaxMeasId-r12 ENUMERATED {supported} OPTIONAL,
+ extendedRSRQ-LowerRange-r12 ENUMERATED {supported} OPTIONAL,
+ rsrq-OnAllSymbols-r12 ENUMERATED {supported} OPTIONAL,
+ crs-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL,
+ csi-RS-DiscoverySignalsMeas-r12 ENUMERATED {supported} OPTIONAL
+}
+
+MeasParameters-v1310 ::= SEQUENCE {
+ rs-SINR-Meas-r13 ENUMERATED {supported} OPTIONAL,
+ whiteCellList-r13 ENUMERATED {supported} OPTIONAL,
+ extendedMaxObjectId-r13 ENUMERATED {supported} OPTIONAL,
+ ul-PDCP-Delay-r13 ENUMERATED {supported} OPTIONAL,
+ extendedFreqPriorities-r13 ENUMERATED {supported} OPTIONAL,
+ multiBandInfoReport-r13 ENUMERATED {supported} OPTIONAL,
+ rssi-AndChannelOccupancyReporting-r13 ENUMERATED {supported} OPTIONAL
+}
+
+MeasParameters-v1430 ::= SEQUENCE {
+ ceMeasurements-r14 ENUMERATED {supported} OPTIONAL,
+ ncsg-r14 ENUMERATED {supported} OPTIONAL,
+ shortMeasurementGap-r14 ENUMERATED {supported} OPTIONAL,
+ perServingCellMeasurementGap-r14 ENUMERATED {supported} OPTIONAL,
+ nonUniformGap-r14 ENUMERATED {supported} OPTIONAL
+}
+
+MeasParameters-v1520 ::= SEQUENCE {
+ measGapPatterns-v1520 BIT STRING (SIZE (8)) OPTIONAL
+}
+
+MeasParameters-v1530 ::= SEQUENCE {
+ qoe-MeasReport-r15 ENUMERATED {supported} OPTIONAL,
+ qoe-MTSI-MeasReport-r15 ENUMERATED {supported} OPTIONAL,
+ ca-IdleModeMeasurements-r15 ENUMERATED {supported} OPTIONAL,
+ ca-IdleModeValidityArea-r15 ENUMERATED {supported} OPTIONAL,
+ heightMeas-r15 ENUMERATED {supported} OPTIONAL,
+ multipleCellsMeasExtension-r15 ENUMERATED {supported} OPTIONAL
+}
+
+BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF BandInfoEUTRA
+
+BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..maxBandComb-r10)) OF BandInfoEUTRA
+
+BandInfoEUTRA ::= SEQUENCE {
+ interFreqBandList InterFreqBandList,
+ interRAT-BandList InterRAT-BandList OPTIONAL
+}
+
+InterFreqBandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterFreqBandInfo
+
+InterFreqBandInfo ::= SEQUENCE {
+ interFreqNeedForGaps BOOLEAN
+}
+
+InterRAT-BandList ::= SEQUENCE (SIZE (1..maxBands)) OF InterRAT-BandInfo
+
+InterRAT-BandInfo ::= SEQUENCE {
+ interRAT-NeedForGaps BOOLEAN
+}
+
+IRAT-ParametersNR-r15 ::= SEQUENCE {
+ en-DC-r15 ENUMERATED {supported} OPTIONAL,
+ eventB2-r15 ENUMERATED {supported} OPTIONAL,
+ supportedBandListNR-r15 SupportedBandListNR-r15 OPTIONAL
+}
+
+PDCP-ParametersNR-r15 ::= SEQUENCE {
+ rohc-Profiles-r15 ROHC-ProfileSupportList-r15,
+ rohc-ContextMaxSessions-r15 ENUMERATED {
+ cs2, cs4, cs8, cs12, cs16, cs24, cs32,
+ cs48, cs64, cs128, cs256, cs512, cs1024,
+ cs16384, spare2, spare1} DEFAULT cs16,
+ rohc-ProfilesUL-Only-r15 SEQUENCE {
+ profile0x0006-r15 BOOLEAN
+ },
+ rohc-ContextContinue-r15 ENUMERATED {supported} OPTIONAL,
+ outOfOrderDelivery-r15 ENUMERATED {supported} OPTIONAL,
+ sn-SizeLo-r15 ENUMERATED {supported} OPTIONAL,
+ ims-VoiceOverNR-PDCP-MCG-Bearer-r15 ENUMERATED {supported} OPTIONAL,
+ ims-VoiceOverNR-PDCP-SCG-Bearer-r15 ENUMERATED {supported} OPTIONAL
+}
+
+ROHC-ProfileSupportList-r15 ::= SEQUENCE {
+ profile0x0001-r15 BOOLEAN,
+ profile0x0002-r15 BOOLEAN,
+ profile0x0003-r15 BOOLEAN,
+ profile0x0004-r15 BOOLEAN,
+ profile0x0006-r15 BOOLEAN,
+ profile0x0101-r15 BOOLEAN,
+ profile0x0102-r15 BOOLEAN,
+ profile0x0103-r15 BOOLEAN,
+ profile0x0104-r15 BOOLEAN
+}
+
+SupportedBandListNR-r15 ::= SEQUENCE (SIZE (1..maxBandsNR-r15)) OF SupportedBandNR-r15
+
+SupportedBandNR-r15 ::= SEQUENCE {
+ bandNR-r15 FreqBandIndicatorNR-r15
+}
+
+IRAT-ParametersUTRA-FDD ::= SEQUENCE {
+ supportedBandListUTRA-FDD SupportedBandListUTRA-FDD
+}
+
+IRAT-ParametersUTRA-v920 ::= SEQUENCE {
+ e-RedirectionUTRA-r9 ENUMERATED {supported}
+}
+
+IRAT-ParametersUTRA-v9c0 ::= SEQUENCE {
+ voiceOverPS-HS-UTRA-FDD-r9 ENUMERATED {supported} OPTIONAL,
+ voiceOverPS-HS-UTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL,
+ srvcc-FromUTRA-FDD-ToUTRA-FDD-r9 ENUMERATED {supported} OPTIONAL,
+ srvcc-FromUTRA-FDD-ToGERAN-r9 ENUMERATED {supported} OPTIONAL,
+ srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9 ENUMERATED {supported} OPTIONAL,
+ srvcc-FromUTRA-TDD128-ToGERAN-r9 ENUMERATED {supported} OPTIONAL
+}
+
+IRAT-ParametersUTRA-v9h0 ::= SEQUENCE {
+ mfbi-UTRA-r9 ENUMERATED {supported}
+}
+
+SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-FDD
+
+SupportedBandUTRA-FDD ::= ENUMERATED {
+ bandI, bandII, bandIII, bandIV, bandV, bandVI,
+ bandVII, bandVIII, bandIX, bandX, bandXI,
+ bandXII, bandXIII, bandXIV, bandXV, bandXVI, ...,
+ bandXVII-8a0, bandXVIII-8a0, bandXIX-8a0, bandXX-8a0,
+ bandXXI-8a0, bandXXII-8a0, bandXXIII-8a0, bandXXIV-8a0,
+ bandXXV-8a0, bandXXVI-8a0, bandXXVII-8a0, bandXXVIII-8a0,
+ bandXXIX-8a0, bandXXX-8a0, bandXXXI-8a0, bandXXXII-8a0}
+
+IRAT-ParametersUTRA-TDD128 ::= SEQUENCE {
+ supportedBandListUTRA-TDD128 SupportedBandListUTRA-TDD128
+}
+
+SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD128
+
+SupportedBandUTRA-TDD128 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD384 ::= SEQUENCE {
+ supportedBandListUTRA-TDD384 SupportedBandListUTRA-TDD384
+}
+
+SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD384
+
+SupportedBandUTRA-TDD384 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD768 ::= SEQUENCE {
+ supportedBandListUTRA-TDD768 SupportedBandListUTRA-TDD768
+}
+
+SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandUTRA-TDD768
+
+SupportedBandUTRA-TDD768 ::= ENUMERATED {
+ a, b, c, d, e, f, g, h, i, j, k, l, m, n,
+ o, p, ...}
+
+IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE {
+ e-RedirectionUTRA-TDD-r10 ENUMERATED {supported}
+}
+
+IRAT-ParametersGERAN ::= SEQUENCE {
+ supportedBandListGERAN SupportedBandListGERAN,
+ interRAT-PS-HO-ToGERAN BOOLEAN
+}
+
+IRAT-ParametersGERAN-v920 ::= SEQUENCE {
+ dtm-r9 ENUMERATED {supported} OPTIONAL,
+ e-RedirectionGERAN-r9 ENUMERATED {supported} OPTIONAL
+}
+
+SupportedBandListGERAN ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandGERAN
+
+SupportedBandGERAN ::= ENUMERATED {
+ gsm450, gsm480, gsm710, gsm750, gsm810, gsm850,
+ gsm900P, gsm900E, gsm900R, gsm1800, gsm1900,
+ spare5, spare4, spare3, spare2, spare1, ...}
+
+IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE {
+ supportedBandListHRPD SupportedBandListHRPD,
+ tx-ConfigHRPD ENUMERATED {single, dual},
+ rx-ConfigHRPD ENUMERATED {single, dual}
+}
+
+SupportedBandListHRPD ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE {
+ supportedBandList1XRTT SupportedBandList1XRTT,
+ tx-Config1XRTT ENUMERATED {single, dual},
+ rx-Config1XRTT ENUMERATED {single, dual}
+}
+
+IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE {
+ e-CSFB-1XRTT-r9 ENUMERATED {supported},
+ e-CSFB-ConcPS-Mob1XRTT-r9 ENUMERATED {supported} OPTIONAL
+}
+
+IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE {
+ e-CSFB-dual-1XRTT-r10 ENUMERATED {supported}
+}
+
+IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE {
+ cdma2000-NW-Sharing-r11 ENUMERATED {supported} OPTIONAL
+}
+
+SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
+
+IRAT-ParametersWLAN-r13 ::= SEQUENCE {
+ supportedBandListWLAN-r13 SEQUENCE (SIZE (1..maxWLAN-Bands-r13)) OF WLAN-BandIndicator-r13 OPTIONAL
+}
+
+CSG-ProximityIndicationParameters-r9 ::= SEQUENCE {
+ intraFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL,
+ interFreqProximityIndication-r9 ENUMERATED {supported} OPTIONAL,
+ utran-ProximityIndication-r9 ENUMERATED {supported} OPTIONAL
+}
+
+NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE {
+ intraFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL,
+ interFreqSI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL,
+ utran-SI-AcquisitionForHO-r9 ENUMERATED {supported} OPTIONAL
+}
+
+NeighCellSI-AcquisitionParameters-v1530 ::= SEQUENCE {
+ reportCGI-NR-EN-DC-r15 ENUMERATED {supported} OPTIONAL,
+ reportCGI-NR-NoEN-DC-r15 ENUMERATED {supported} OPTIONAL
+}
+
+SON-Parameters-r9 ::= SEQUENCE {
+ rach-Report-r9 ENUMERATED {supported} OPTIONAL
+}
+
+UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE {
+ loggedMeasurementsIdle-r10 ENUMERATED {supported} OPTIONAL,
+ standaloneGNSS-Location-r10 ENUMERATED {supported} OPTIONAL
+}
+
+UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE {
+ loggedMBSFNMeasurements-r12 ENUMERATED {supported}
+}
+
+UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE {
+ locationReport-r14 ENUMERATED {supported} OPTIONAL
+}
+
+UE-BasedNetwPerfMeasParameters-v1530 ::= SEQUENCE {
+ loggedMeasBT-r15 ENUMERATED {supported} OPTIONAL,
+ loggedMeasWLAN-r15 ENUMERATED {supported} OPTIONAL,
+ immMeasBT-r15 ENUMERATED {supported} OPTIONAL,
+ immMeasWLAN-r15 ENUMERATED {supported} OPTIONAL
+}
+
+OTDOA-PositioningCapabilities-r10 ::= SEQUENCE {
+ otdoa-UE-Assisted-r10 ENUMERATED {supported},
+ interFreqRSTD-Measurement-r10 ENUMERATED {supported} OPTIONAL
+}
+
+Other-Parameters-r11 ::= SEQUENCE {
+ inDeviceCoexInd-r11 ENUMERATED {supported} OPTIONAL,
+ powerPrefInd-r11 ENUMERATED {supported} OPTIONAL,
+ ue-Rx-TxTimeDiffMeasurements-r11 ENUMERATED {supported} OPTIONAL
+}
+
+Other-Parameters-v11d0 ::= SEQUENCE {
+ inDeviceCoexInd-UL-CA-r11 ENUMERATED {supported} OPTIONAL
+}
+
+Other-Parameters-v1360 ::= SEQUENCE {
+ inDeviceCoexInd-HardwareSharingInd-r13 ENUMERATED {supported} OPTIONAL
+}
+
+Other-Parameters-v1430 ::= SEQUENCE {
+ bwPrefInd-r14 ENUMERATED {supported} OPTIONAL,
+ rlm-ReportSupport-r14 ENUMERATED {supported} OPTIONAL
+}
+
+OtherParameters-v1450 ::= SEQUENCE {
+ overheatingInd-r14 ENUMERATED {supported} OPTIONAL
+}
+
+Other-Parameters-v1460 ::= SEQUENCE {
+ nonCSG-SI-Reporting-r14 ENUMERATED {supported} OPTIONAL
+}
+
+Other-Parameters-v1530 ::= SEQUENCE {
+ assistInfoBitForLC-r15 ENUMERATED {supported} OPTIONAL,
+ timeReferenceProvision-r15 ENUMERATED {supported} OPTIONAL,
+ flightPathPlan-r15 ENUMERATED {supported} OPTIONAL
+}
+
+MBMS-Parameters-r11 ::= SEQUENCE {
+ mbms-SCell-r11 ENUMERATED {supported} OPTIONAL,
+ mbms-NonServingCell-r11 ENUMERATED {supported} OPTIONAL
+}
+
+MBMS-Parameters-v1250 ::= SEQUENCE {
+ mbms-AsyncDC-r12 ENUMERATED {supported} OPTIONAL
+}
+
+MBMS-Parameters-v1430 ::= SEQUENCE {
+ fembmsDedicatedCell-r14 ENUMERATED {supported} OPTIONAL,
+ fembmsMixedCell-r14 ENUMERATED {supported} OPTIONAL,
+ subcarrierSpacingMBMS-khz7dot5-r14 ENUMERATED {supported} OPTIONAL,
+ subcarrierSpacingMBMS-khz1dot25-r14 ENUMERATED {supported} OPTIONAL
+}
+
+MBMS-Parameters-v1470 ::= SEQUENCE {
+ mbms-MaxBW-r14 CHOICE {
+ implicitValue NULL,
+ explicitValue INTEGER(2..20)
+ },
+ mbms-ScalingFactor1dot25-r14 ENUMERATED {n3, n6, n9, n12} OPTIONAL,
+ mbms-ScalingFactor7dot5-r14 ENUMERATED {n1, n2, n3, n4} OPTIONAL
+}
+
+FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE {
+ unicast-fembmsMixedSCell-r14 ENUMERATED {supported} OPTIONAL,
+ emptyUnicastRegion-r14 ENUMERATED {supported} OPTIONAL
+}
+
+SCPTM-Parameters-r13 ::= SEQUENCE {
+ scptm-ParallelReception-r13 ENUMERATED {supported} OPTIONAL,
+ scptm-SCell-r13 ENUMERATED {supported} OPTIONAL,
+ scptm-NonServingCell-r13 ENUMERATED {supported} OPTIONAL,
+ scptm-AsyncDC-r13 ENUMERATED {supported} OPTIONAL
+}
+
+CE-Parameters-r13 ::= SEQUENCE {
+ ce-ModeA-r13 ENUMERATED {supported} OPTIONAL,
+ ce-ModeB-r13 ENUMERATED {supported} OPTIONAL
+}
+
+CE-Parameters-v1320 ::= SEQUENCE {
+ intraFreqA3-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL,
+ intraFreqA3-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL,
+ intraFreqHO-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL,
+ intraFreqHO-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL
+}
+
+CE-Parameters-v1350 ::= SEQUENCE {
+ unicastFrequencyHopping-r13 ENUMERATED {supported} OPTIONAL
+}
+
+CE-Parameters-v1370 ::= SEQUENCE {
+ tm9-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL,
+ tm9-CE-ModeB-r13 ENUMERATED {supported} OPTIONAL
+}
+
+CE-Parameters-v1380 ::= SEQUENCE {
+ tm6-CE-ModeA-r13 ENUMERATED {supported} OPTIONAL
+}
+
+CE-Parameters-v1430 ::= SEQUENCE {
+ ce-SwitchWithoutHO-r14 ENUMERATED {supported} OPTIONAL
+}
+
+LAA-Parameters-r13 ::= SEQUENCE {
+ crossCarrierSchedulingLAA-DL-r13 ENUMERATED {supported} OPTIONAL,
+ csi-RS-DRS-RRM-MeasurementsLAA-r13 ENUMERATED {supported} OPTIONAL,
+ downlinkLAA-r13 ENUMERATED {supported} OPTIONAL,
+ endingDwPTS-r13 ENUMERATED {supported} OPTIONAL,
+ secondSlotStartingPosition-r13 ENUMERATED {supported} OPTIONAL,
+ tm9-LAA-r13 ENUMERATED {supported} OPTIONAL,
+ tm10-LAA-r13 ENUMERATED {supported} OPTIONAL
+}
+
+LAA-Parameters-v1430 ::= SEQUENCE {
+ crossCarrierSchedulingLAA-UL-r14 ENUMERATED {supported} OPTIONAL,
+ uplinkLAA-r14 ENUMERATED {supported} OPTIONAL,
+ twoStepSchedulingTimingInfo-r14 ENUMERATED {nPlus1, nPlus2, nPlus3} OPTIONAL,
+ uss-BlindDecodingAdjustment-r14 ENUMERATED {supported} OPTIONAL,
+ uss-BlindDecodingReduction-r14 ENUMERATED {supported} OPTIONAL,
+ outOfSequenceGrantHandling-r14 ENUMERATED {supported} OPTIONAL
+}
+
+LAA-Parameters-v1530 ::= SEQUENCE {
+ aul-r15 ENUMERATED {supported} OPTIONAL,
+ laa-PUSCH-Mode1-r15 ENUMERATED {supported} OPTIONAL,
+ laa-PUSCH-Mode2-r15 ENUMERATED {supported} OPTIONAL,
+ laa-PUSCH-Mode3-r15 ENUMERATED {supported} OPTIONAL
+}
+
+WLAN-IW-Parameters-r12 ::= SEQUENCE {
+ wlan-IW-RAN-Rules-r12 ENUMERATED {supported} OPTIONAL,
+ wlan-IW-ANDSF-Policies-r12 ENUMERATED {supported} OPTIONAL
+}
+
+LWA-Parameters-r13 ::= SEQUENCE {
+ lwa-r13 ENUMERATED {supported} OPTIONAL,
+ lwa-SplitBearer-r13 ENUMERATED {supported} OPTIONAL,
+ wlan-MAC-Address-r13 OCTET STRING (SIZE (6)) OPTIONAL,
+ lwa-BufferSize-r13 ENUMERATED {supported} OPTIONAL
+}
+
+LWA-Parameters-v1430 ::= SEQUENCE {
+ lwa-HO-WithoutWT-Change-r14 ENUMERATED {supported} OPTIONAL,
+ lwa-UL-r14 ENUMERATED {supported} OPTIONAL,
+ wlan-PeriodicMeas-r14 ENUMERATED {supported} OPTIONAL,
+ wlan-ReportAnyWLAN-r14 ENUMERATED {supported} OPTIONAL,
+ wlan-SupportedDataRate-r14 INTEGER (1..2048) OPTIONAL
+}
+
+LWA-Parameters-v1440 ::= SEQUENCE {
+ lwa-RLC-UM-r14 ENUMERATED {supported} OPTIONAL
+}
+
+WLAN-IW-Parameters-v1310 ::= SEQUENCE {
+ rclwi-r13 ENUMERATED {supported} OPTIONAL
+}
+
+LWIP-Parameters-r13 ::= SEQUENCE {
+ lwip-r13 ENUMERATED {supported} OPTIONAL
+}
+
+LWIP-Parameters-v1430 ::= SEQUENCE {
+ lwip-Aggregation-DL-r14 ENUMERATED {supported} OPTIONAL,
+ lwip-Aggregation-UL-r14 ENUMERATED {supported} OPTIONAL
+}
+
+NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..maxNAICS-Entries-r12)) OF NAICS-Capability-Entry-r12
+
+
+NAICS-Capability-Entry-r12 ::= SEQUENCE {
+ numberOfNAICS-CapableCC-r12 INTEGER(1..5),
+ numberOfAggregatedPRB-r12 ENUMERATED {
+ n50, n75, n100, n125, n150, n175,
+ n200, n225, n250, n275, n300, n350,
+ n400, n450, n500, spare},
+ ...
+}
+
+SL-Parameters-r12 ::= SEQUENCE {
+ commSimultaneousTx-r12 ENUMERATED {supported} OPTIONAL,
+ commSupportedBands-r12 FreqBandIndicatorListEUTRA-r12 OPTIONAL,
+ discSupportedBands-r12 SupportedBandInfoList-r12 OPTIONAL,
+ discScheduledResourceAlloc-r12 ENUMERATED {supported} OPTIONAL,
+ disc-UE-SelectedResourceAlloc-r12 ENUMERATED {supported} OPTIONAL,
+ disc-SLSS-r12 ENUMERATED {supported} OPTIONAL,
+ discSupportedProc-r12 ENUMERATED {n50, n400} OPTIONAL
+}
+
+SL-Parameters-v1310 ::= SEQUENCE {
+ discSysInfoReporting-r13 ENUMERATED {supported} OPTIONAL,
+ commMultipleTx-r13 ENUMERATED {supported} OPTIONAL,
+ discInterFreqTx-r13 ENUMERATED {supported} OPTIONAL,
+ discPeriodicSLSS-r13 ENUMERATED {supported} OPTIONAL
+}
+
+SL-Parameters-v1430 ::= SEQUENCE {
+ zoneBasedPoolSelection-r14 ENUMERATED {supported} OPTIONAL,
+ ue-AutonomousWithFullSensing-r14 ENUMERATED {supported} OPTIONAL,
+ ue-AutonomousWithPartialSensing-r14 ENUMERATED {supported} OPTIONAL,
+ sl-CongestionControl-r14 ENUMERATED {supported} OPTIONAL,
+ v2x-TxWithShortResvInterval-r14 ENUMERATED {supported} OPTIONAL,
+ v2x-numberTxRxTiming-r14 INTEGER(1..16) OPTIONAL,
+ v2x-nonAdjacentPSCCH-PSSCH-r14 ENUMERATED {supported} OPTIONAL,
+ slss-TxRx-r14 ENUMERATED {supported} OPTIONAL,
+ v2x-SupportedBandCombinationList-r14 V2X-SupportedBandCombination-r14 OPTIONAL
+}
+
+SL-Parameters-v1530 ::= SEQUENCE {
+ slss-SupportedTxFreq-r15 ENUMERATED {single, multiple} OPTIONAL,
+ sl-64QAM-Tx-r15 ENUMERATED {supported} OPTIONAL,
+ sl-TxDiversity-r15 ENUMERATED {supported} OPTIONAL,
+ ue-CategorySL-r15 UE-CategorySL-r15 OPTIONAL,
+ v2x-SupportedBandCombinationList-v1530 V2X-SupportedBandCombination-v1530 OPTIONAL
+}
+
+UE-CategorySL-r15 ::= SEQUENCE {
+ ue-CategorySL-C-TX-r15 INTEGER(1..5),
+ ue-CategorySL-C-RX-r15 INTEGER(1..4)
+}
+
+V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF V2X-BandCombinationParameters-r14
+
+V2X-SupportedBandCombination-v1530 ::= SEQUENCE (SIZE (1..maxBandComb-r13)) OF V2X-BandCombinationParameters-v1530
+
+V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF V2X-BandParameters-r14
+
+V2X-BandCombinationParameters-v1530 ::= SEQUENCE (SIZE (1.. maxSimultaneousBands-r10)) OF V2X-BandParameters-v1530
+
+SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandInfo-r12
+
+SupportedBandInfo-r12 ::= SEQUENCE {
+ support-r12 ENUMERATED {supported} OPTIONAL
+}
+
+FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11
+
+MMTEL-Parameters-r14 ::= SEQUENCE {
+ delayBudgetReporting-r14 ENUMERATED {supported} OPTIONAL,
+ pusch-Enhancements-r14 ENUMERATED {supported} OPTIONAL,
+ recommendedBitRate-r14 ENUMERATED {supported} OPTIONAL,
+ recommendedBitRateQuery-r14 ENUMERATED {supported} OPTIONAL
+}
+
+RetuningTimeInfo-r14 ::= SEQUENCE {
+ retuningInfo SEQUENCE {
+ rf-RetuningTimeDL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3,
+ n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5,
+ n7, spare1} OPTIONAL,
+ rf-RetuningTimeUL-r14 ENUMERATED {n0, n0dot5, n1, n1dot5, n2, n2dot5, n3,
+ n3dot5, n4, n4dot5, n5, n5dot5, n6, n6dot5,
+ n7, spare1} OPTIONAL
+ }
+}
+
+HighSpeedEnhParameters-r14 ::= SEQUENCE {
+ measurementEnhancements-r14 ENUMERATED {supported} OPTIONAL,
+ demodulationEnhancements-r14 ENUMERATED {supported} OPTIONAL,
+ prach-Enhancements-r14 ENUMERATED {supported} OPTIONAL
+}
+
+
+UE-RadioPagingInfo-r12 ::= SEQUENCE {
+ ue-Category-v1250 INTEGER (0) OPTIONAL,
+ ...,
+ [[ ue-CategoryDL-v1310 ENUMERATED {m1} OPTIONAL,
+ ce-ModeA-r13 ENUMERATED {true} OPTIONAL,
+ ce-ModeB-r13 ENUMERATED {true} OPTIONAL
+ ]],
+ [[ wakeUpSignal-r15 ENUMERATED {true} OPTIONAL,
+ wakeUpSignal-TDD-r15 ENUMERATED {true} OPTIONAL,
+ wakeUpSignalMinGap-eDRX-r15 ENUMERATED {ms40, ms240, ms1000, ms2000} OPTIONAL,
+ wakeUpSignalMinGap-eDRX-TDD-r15 ENUMERATED {ms40, ms240, ms1000, ms2000} OPTIONAL
+ ]]
+}
+
+
+UE-TimersAndConstants ::= SEQUENCE {
+ t300 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t301 ENUMERATED {
+ ms100, ms200, ms300, ms400, ms600, ms1000, ms1500,
+ ms2000},
+ t310 ENUMERATED {
+ ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n310 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ t311 ENUMERATED {
+ ms1000, ms3000, ms5000, ms10000, ms15000,
+ ms20000, ms30000},
+ n311 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...,
+ [[ t300-v1310 ENUMERATED {
+ ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000,
+ ms10000} OPTIONAL, -- Need OR
+ t301-v1310 ENUMERATED {
+ ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000,
+ ms10000} OPTIONAL -- Need OR
+ ]],
+ [[ t310-v1330 ENUMERATED {ms4000, ms6000}
+ OPTIONAL -- Need OR
+ ]],
+ [[ t300-r15 ENUMERATED {ms4000, ms6000, ms8000, ms10000, ms15000,
+ ms25000, ms40000, ms60000} OPTIONAL -- Cond EDT
+ ]]
+}
+
+
+VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..maxCellHistory-r12)) OF VisitedCellInfo-r12
+
+VisitedCellInfo-r12 ::= SEQUENCE {
+ visitedCellId-r12 CHOICE {
+ cellGlobalId-r12 CellGlobalIdEUTRA,
+ pci-arfcn-r12 SEQUENCE {
+ physCellId-r12 PhysCellId,
+ carrierFreq-r12 ARFCN-ValueEUTRA-r9
+ }
+ } OPTIONAL,
+ timeSpent-r12 INTEGER (0..4095),
+ ...
+}
+
+
+WLAN-OffloadConfig-r12 ::= SEQUENCE {
+ thresholdRSRP-r12 SEQUENCE {
+ thresholdRSRP-Low-r12 RSRP-Range,
+ thresholdRSRP-High-r12 RSRP-Range
+ } OPTIONAL, -- Need OR
+ thresholdRSRQ-r12 SEQUENCE {
+ thresholdRSRQ-Low-r12 RSRQ-Range,
+ thresholdRSRQ-High-r12 RSRQ-Range
+ } OPTIONAL, -- Need OR
+ thresholdRSRQ-OnAllSymbolsWithWB-r12 SEQUENCE {
+ thresholdRSRQ-OnAllSymbolsWithWB-Low-r12 RSRQ-Range,
+ thresholdRSRQ-OnAllSymbolsWithWB-High-r12 RSRQ-Range
+ } OPTIONAL, -- Need OP
+ thresholdRSRQ-OnAllSymbols-r12 SEQUENCE {
+ thresholdRSRQ-OnAllSymbolsLow-r12 RSRQ-Range,
+ thresholdRSRQ-OnAllSymbolsHigh-r12 RSRQ-Range
+ } OPTIONAL, -- Need OP
+ thresholdRSRQ-WB-r12 SEQUENCE {
+ thresholdRSRQ-WB-Low-r12 RSRQ-Range,
+ thresholdRSRQ-WB-High-r12 RSRQ-Range
+ } OPTIONAL, -- Need OP
+
+ thresholdChannelUtilization-r12 SEQUENCE {
+ thresholdChannelUtilizationLow-r12 INTEGER (0..255),
+ thresholdChannelUtilizationHigh-r12 INTEGER (0..255)
+ } OPTIONAL, -- Need OR
+ thresholdBackhaul-Bandwidth-r12 SEQUENCE {
+ thresholdBackhaulDL-BandwidthLow-r12 WLAN-backhaulRate-r12,
+ thresholdBackhaulDL-BandwidthHigh-r12 WLAN-backhaulRate-r12,
+ thresholdBackhaulUL-BandwidthLow-r12 WLAN-backhaulRate-r12,
+ thresholdBackhaulUL-BandwidthHigh-r12 WLAN-backhaulRate-r12
+ } OPTIONAL, -- Need OR
+ thresholdWLAN-RSSI-r12 SEQUENCE {
+ thresholdWLAN-RSSI-Low-r12 INTEGER (0..255),
+ thresholdWLAN-RSSI-High-r12 INTEGER (0..255)
+ } OPTIONAL, -- Need OR
+ offloadPreferenceIndicator-r12 BIT STRING (SIZE (16)) OPTIONAL, -- Need OR
+ t-SteeringWLAN-r12 T-Reselection OPTIONAL, -- Need OR
+ ...
+}
+
+WLAN-backhaulRate-r12 ::= ENUMERATED
+ {r0, r4, r8, r16, r32, r64, r128, r256, r512,
+ r1024, r2048, r4096, r8192, r16384, r32768, r65536, r131072,
+ r262144, r524288, r1048576, r2097152, r4194304, r8388608,
+ r16777216, r33554432, r67108864, r134217728, r268435456,
+ r536870912, r1073741824, r2147483648, r4294967296}
+
+
+MBMS-NotificationConfig-r9 ::= SEQUENCE {
+ notificationRepetitionCoeff-r9 ENUMERATED {n2, n4},
+ notificationOffset-r9 INTEGER (0..10),
+ notificationSF-Index-r9 INTEGER (1..6)
+}
+
+MBMS-NotificationConfig-v1430 ::= SEQUENCE {
+ notificationSF-Index-v1430 INTEGER (7..10)
+}
+
+
+MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..maxMBMS-ServiceListPerUE-r13)) OF MBMS-ServiceInfo-r13
+
+MBMS-ServiceInfo-r13 ::= SEQUENCE {
+ tmgi-r13 TMGI-r9
+}
+
+
+MBSFN-AreaId-r12 ::= INTEGER (0..255)
+
+
+MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE(1..maxMBSFN-Area)) OF MBSFN-AreaInfo-r9
+
+MBSFN-AreaInfo-r9 ::= SEQUENCE {
+ mbsfn-AreaId-r9 MBSFN-AreaId-r12,
+ non-MBSFNregionLength ENUMERATED {s1, s2},
+ notificationIndicator-r9 INTEGER (0..7),
+ mcch-Config-r9 SEQUENCE {
+ mcch-RepetitionPeriod-r9 ENUMERATED {rf32, rf64, rf128, rf256},
+ mcch-Offset-r9 INTEGER (0..10),
+ mcch-ModificationPeriod-r9 ENUMERATED {rf512, rf1024},
+ sf-AllocInfo-r9 BIT STRING (SIZE(6)),
+ signallingMCS-r9 ENUMERATED {n2, n7, n13, n19}
+ },
+ ...,
+ [[ mcch-Config-r14 SEQUENCE {
+ mcch-RepetitionPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8,
+ rf16 } OPTIONAL, -- Need OR
+ mcch-ModificationPeriod-v1430 ENUMERATED {rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128,
+ rf256, spare7} OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ subcarrierSpacingMBMS-r14 ENUMERATED {khz-7dot5, khz-1dot25} OPTIONAL -- Need OR
+ ]]
+}
+
+
+MBSFN-SubframeConfig ::= SEQUENCE {
+ radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32},
+ radioframeAllocationOffset INTEGER (0..7),
+ subframeAllocation CHOICE {
+ oneFrame BIT STRING (SIZE(6)),
+ fourFrames BIT STRING (SIZE(24))
+ }
+}
+
+MBSFN-SubframeConfig-v1430 ::= SEQUENCE {
+ subframeAllocation-v1430 CHOICE {
+ oneFrame-v1430 BIT STRING (SIZE(2)),
+ fourFrames-v1430 BIT STRING (SIZE(8))
+ }
+}
+
+
+PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-Info-r9
+
+PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..maxPMCH-PerMBSFN)) OF PMCH-InfoExt-r12
+
+PMCH-Info-r9 ::= SEQUENCE {
+ pmch-Config-r9 PMCH-Config-r9,
+ mbms-SessionInfoList-r9 MBMS-SessionInfoList-r9,
+ ...
+}
+
+PMCH-InfoExt-r12 ::= SEQUENCE {
+ pmch-Config-r12 PMCH-Config-r12,
+ mbms-SessionInfoList-r12 MBMS-SessionInfoList-r9,
+ ...
+}
+
+MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..maxSessionPerPMCH)) OF MBMS-SessionInfo-r9
+
+MBMS-SessionInfo-r9 ::= SEQUENCE {
+ tmgi-r9 TMGI-r9,
+ sessionId-r9 OCTET STRING (SIZE (1)) OPTIONAL, -- Need OR
+ logicalChannelIdentity-r9 INTEGER (0..maxSessionPerPMCH-1),
+ ...
+}
+
+PMCH-Config-r9 ::= SEQUENCE {
+ sf-AllocEnd-r9 INTEGER (0..1535),
+ dataMCS-r9 INTEGER (0..28),
+ mch-SchedulingPeriod-r9 ENUMERATED {
+ rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024},
+ ...
+}
+
+PMCH-Config-r12 ::= SEQUENCE {
+ sf-AllocEnd-r12 INTEGER (0..1535),
+ dataMCS-r12 CHOICE {
+ normal-r12 INTEGER (0..28),
+ higerOrder-r12 INTEGER (0..27)
+ },
+ mch-SchedulingPeriod-r12 ENUMERATED {
+ rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024},
+ ...,
+ [[ mch-SchedulingPeriod-v1430 ENUMERATED {rf1, rf2} OPTIONAL -- Need OR
+ ]]
+}
+
+TMGI-r9 ::= SEQUENCE {
+ plmn-Id-r9 CHOICE {
+ plmn-Index-r9 INTEGER (1..maxPLMN-r11),
+ explicitValue-r9 PLMN-Identity
+ },
+ serviceId-r9 OCTET STRING (SIZE (3))
+}
+
+
+SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..maxSC-MTCH-r13)) OF SC-MTCH-Info-r13
+
+SC-MTCH-Info-r13 ::= SEQUENCE {
+ mbmsSessionInfo-r13 MBMSSessionInfo-r13,
+ g-RNTI-r13 BIT STRING(SIZE(16)),
+ sc-mtch-schedulingInfo-r13 SC-MTCH-SchedulingInfo-r13 OPTIONAL, -- Need OP
+ sc-mtch-neighbourCell-r13 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP
+ ...,
+ [[ p-a-r13 ENUMERATED {
+ dB-6, dB-4dot77, dB-3, dB-1dot77,
+ dB0, dB1, dB2, dB3} OPTIONAL -- Need ON
+ ]]
+}
+
+MBMSSessionInfo-r13 ::= SEQUENCE {
+ tmgi-r13 TMGI-r9,
+ sessionId-r13 OCTET STRING (SIZE (1)) OPTIONAL -- Need OR
+}
+
+SC-MTCH-SchedulingInfo-r13::= SEQUENCE {
+ onDurationTimerSCPTM-r13 ENUMERATED {
+ psf1, psf2, psf3, psf4, psf5, psf6,
+ psf8, psf10, psf20, psf30, psf40,
+ psf50, psf60, psf80, psf100,
+ psf200},
+ drx-InactivityTimerSCPTM-r13 ENUMERATED {
+ psf0, psf1, psf2, psf4, psf8,
+ psf10, psf20, psf40,
+ psf80, psf160, ps320,
+ psf640, psf960,
+ psf1280, psf1920, psf2560},
+ schedulingPeriodStartOffsetSCPTM-r13 CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf2048 INTEGER(0..2048),
+ sf4096 INTEGER(0..4096),
+ sf8192 INTEGER(0..8192)
+ },
+ ...
+}
+
+
+SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..maxSC-MTCH-BR-r14)) OF SC-MTCH-Info-BR-r14
+
+SC-MTCH-Info-BR-r14 ::= SEQUENCE {
+ sc-mtch-CarrierFreq-r14 ARFCN-ValueEUTRA-r9,
+ mbmsSessionInfo-r14 MBMSSessionInfo-r13,
+ g-RNTI-r14 BIT STRING(SIZE(16)),
+ sc-mtch-schedulingInfo-r14 SC-MTCH-SchedulingInfo-BR-r14 OPTIONAL, -- Need OP
+ sc-mtch-neighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-r13)) OPTIONAL, -- Need OP
+ mpdcch-Narrowband-SC-MTCH-r14 INTEGER (1.. maxAvailNarrowBands-r13),
+ mpdcch-NumRepetition-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16,
+ r32, r64, r128, r256},
+ mpdcch-StartSF-SC-MTCH-r14 CHOICE {
+ fdd-r14 ENUMERATED {v1, v1dot5, v2, v2dot5, v4,
+ v5, v8, v10},
+ tdd-r14 ENUMERATED {v1, v2, v4, v5, v8, v10,
+ v20}
+ },
+ mpdcch-PDSCH-HoppingConfig-SC-MTCH-r14 ENUMERATED {on, off},
+ mpdcch-PDSCH-CEmodeConfig-SC-MTCH-r14 ENUMERATED {ce-ModeA, ce-ModeB},
+ mpdcch-PDSCH-MaxBandwidth-SC-MTCH-r14 ENUMERATED {bw1dot4, bw5},
+ mpdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter,
+ threeEighth, oneHalf, fiveEighth,
+ threeQuarter, sevenEighth},
+
+ p-a-r14 ENUMERATED { dB-6, dB-4dot77, dB-3,
+ dB-1dot77, dB0, dB1, dB2,
+ dB3} OPTIONAL,-- Need OR
+ ...
+}
+
+SC-MTCH-SchedulingInfo-BR-r14::= SEQUENCE {
+ onDurationTimerSCPTM-r14 ENUMERATED {
+ psf300, psf400, psf500, psf600,
+ psf800, psf1000, psf1200, psf1600},
+ drx-InactivityTimerSCPTM-r14 ENUMERATED {
+ psf0, psf1, psf2, psf4, psf8, psf16,
+ psf32, psf64, psf128, psf256, ps512,
+ psf1024, psf2048, psf4096, psf8192, psf16384},
+ schedulingPeriodStartOffsetSCPTM-r14 CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf2048 INTEGER(0..2047),
+ sf4096 INTEGER(0..4095),
+ sf8192 INTEGER(0..8191)
+ },
+ ...
+}
+
+
+SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-r13)) OF PCI-ARFCN-r13
+
+PCI-ARFCN-r13 ::= SEQUENCE {
+ physCellId-r13 PhysCellId,
+ carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL
+}
+
+
+SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9
+
+
+SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE {
+ cbr-RangeCommonConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-CBRConfig-r14)) OF SL-CBR-Levels-Config-r14,
+ sl-CBR-PSSCH-TxConfigList-r14 SEQUENCE (SIZE (1..maxSL-V2X-TxConfig-r14)) OF SL-CBR-PSSCH-TxConfig-r14
+}
+
+SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF SL-CBR-r14
+
+
+SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE {
+ cr-Limit-r14 INTEGER(0..10000),
+ tx-Parameters-r14 SL-PSSCH-TxParameters-r14
+}
+
+SL-CBR-r14 ::= INTEGER(0..100)
+
+
+SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r14
+
+SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE {
+ priorityThreshold-r14 SL-Priority-r13,
+ defaultTxConfigIndex-r14 INTEGER(0..maxCBR-Level-1-r14),
+ cbr-ConfigIndex-r14 INTEGER(0..maxSL-V2X-CBRConfig-1-r14),
+ tx-ConfigIndexList-r14 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14
+}
+
+Tx-ConfigIndex-r14 ::= INTEGER(0..maxSL-V2X-TxConfig-1-r14)
+
+SL-CBR-PPPP-TxConfigList-v1530 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-v1530
+
+SL-PPPP-TxConfigIndex-v1530 ::= SEQUENCE {
+ mcs-PSSCH-RangeList-r15 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF MCS-PSSCH-Range-r15 OPTIONAL --Need OR
+}
+
+MCS-PSSCH-Range-r15 ::= SEQUENCE{
+ minMCS-PSSCH-r15 INTEGER (0..31),
+ maxMCS-PSSCH-r15 INTEGER (0..31)
+}
+
+SL-CBR-PPPP-TxConfigList-r15 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r15
+
+SL-PPPP-TxConfigIndex-r15 ::= SEQUENCE {
+ priorityThreshold-r15 SL-Priority-r13,
+ defaultTxConfigIndex-r15 INTEGER(0..maxCBR-Level-1-r14),
+ cbr-ConfigIndex-r15 INTEGER(0..maxSL-V2X-CBRConfig-1-r14),
+ tx-ConfigIndexList-r15 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF Tx-ConfigIndex-r14,
+ mcs-PSSCH-RangeList-r15 SEQUENCE (SIZE (1..maxCBR-Level-r14)) OF MCS-PSSCH-Range-r15
+}
+
+
+SL-CommConfig-r12 ::= SEQUENCE {
+ commTxResources-r12 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r12 SEQUENCE {
+ sl-RNTI-r12 C-RNTI,
+ mac-MainConfig-r12 MAC-MainConfigSL-r12,
+ sc-CommTxConfig-r12 SL-CommResourcePool-r12,
+ mcs-r12 INTEGER (0..28) OPTIONAL -- Need OP
+ },
+ ue-Selected-r12 SEQUENCE {
+ -- Pool for normal usage
+ commTxPoolNormalDedicated-r12 SEQUENCE {
+ poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON
+ poolToAddModList-r12 SL-CommTxPoolToAddModList-r12 OPTIONAL -- Need ON
+ }
+ }
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ commTxResources-v1310 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-v1310 SEQUENCE {
+ logicalChGroupInfoList-r13 LogicalChGroupInfoList-r13,
+ multipleTx-r13 BOOLEAN
+ },
+ ue-Selected-v1310 SEQUENCE {
+ commTxPoolNormalDedicatedExt-r13 SEQUENCE {
+ poolToReleaseListExt-r13 SL-TxPoolToReleaseListExt-r13 OPTIONAL, -- Need ON
+ poolToAddModListExt-r13 SL-CommTxPoolToAddModListExt-r13 OPTIONAL -- Need ON
+ }
+ }
+ }
+ } OPTIONAL, -- Need ON
+ commTxAllowRelayDedicated-r13 BOOLEAN OPTIONAL -- Need ON
+ ]]
+}
+
+LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-PriorityList-r13
+
+SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommTxPoolToAddMod-r12
+
+SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommTxPoolToAddModExt-r13
+
+SL-CommTxPoolToAddMod-r12 ::= SEQUENCE {
+ poolIdentity-r12 SL-TxPoolIdentity-r12,
+ pool-r12 SL-CommResourcePool-r12
+}
+
+SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE {
+ poolIdentity-v1310 SL-TxPoolIdentity-v1310,
+ pool-r13 SL-CommResourcePool-r12
+}
+
+MAC-MainConfigSL-r12 ::= SEQUENCE {
+ periodic-BSR-TimerSL PeriodicBSR-Timer-r12 OPTIONAL, -- Need ON
+ retx-BSR-TimerSL RetxBSR-Timer-r12
+}
+
+
+SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-CommResourcePool-r12
+
+SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-CommResourcePool-r12
+
+SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-TxPool-r14)) OF SL-CommResourcePoolV2X-r14
+
+SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-CommResourcePool-r12
+
+SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-RxPool-r14)) OF SL-CommResourcePoolV2X-r14
+
+SL-CommResourcePool-r12 ::= SEQUENCE {
+ sc-CP-Len-r12 SL-CP-Len-r12,
+ sc-Period-r12 SL-PeriodComm-r12,
+ sc-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12,
+ data-CP-Len-r12 SL-CP-Len-r12,
+ dataHoppingConfig-r12 SL-HoppingConfigComm-r12,
+ ue-SelectedResourceConfig-r12 SEQUENCE {
+ data-TF-ResourceConfig-r12 SL-TF-ResourceConfig-r12,
+ trpt-Subset-r12 SL-TRPT-Subset-r12 OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OR
+ rxParametersNCell-r12 SEQUENCE {
+ tdd-Config-r12 TDD-Config OPTIONAL, -- Need OP
+ syncConfigIndex-r12 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ txParameters-r12 SEQUENCE {
+ sc-TxParameters-r12 SL-TxParameters-r12,
+ dataTxParameters-r12 SL-TxParameters-r12
+ } OPTIONAL, -- Cond Tx
+ ...,
+ [[ priorityList-r13 SL-PriorityList-r13 OPTIONAL -- Cond Tx
+ ]]
+
+}
+
+SL-CommResourcePoolV2X-r14 ::= SEQUENCE {
+ sl-OffsetIndicator-r14 SL-OffsetIndicator-r12 OPTIONAL, -- Need OR
+ 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, -- Need OR
+ rxParametersNCell-r14 SEQUENCE {
+ tdd-Config-r14 TDD-Config OPTIONAL, -- Need OP
+ syncConfigIndex-r14 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ dataTxParameters-r14 SL-TxParameters-r12 OPTIONAL, -- Cond Tx
+ zoneID-r14 INTEGER (0..7) OPTIONAL, -- Need OR
+ threshS-RSSI-CBR-r14 INTEGER (0..45) OPTIONAL, -- Need OR
+ poolReportId-r14 SL-V2X-TxPoolReportIdentity-r14 OPTIONAL, -- Need OR
+ cbr-pssch-TxConfigList-r14 SL-CBR-PPPP-TxConfigList-r14 OPTIONAL, -- Need OR
+ resourceSelectionConfigP2X-r14 SL-P2X-ResourceSelectionConfig-r14 OPTIONAL, -- Cond P2X
+ syncAllowed-r14 SL-SyncAllowed-r14 OPTIONAL, -- Need OR
+ restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR
+ ...,
+ [[ sl-MinT2ValueList-r15 SL-MinT2ValueList-r15 OPTIONAL, -- Need OR
+ cbr-pssch-TxConfigList-v1530 SL-CBR-PPPP-TxConfigList-v1530 OPTIONAL -- Need OR
+ ]]
+}
+
+SL-TRPT-Subset-r12 ::= BIT STRING (SIZE (3..5))
+
+SL-V2X-TxPoolReportIdentity-r14::= INTEGER (1..maxSL-PoolToMeasure-r14)
+
+SL-MinT2ValueList-r15 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-MinT2Value-r15
+
+SL-MinT2Value-r15 ::= SEQUENCE {
+ priorityList-r15 SL-PriorityList-r13,
+ minT2Value-r15 INTEGER (10..20)
+}
+
+
+SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE {
+ pssch-TxConfigList-r14 SL-PSSCH-TxConfigList-r14,
+ thresPSSCH-RSRP-List-r14 SL-ThresPSSCH-RSRP-List-r14,
+ restrictResourceReservationPeriod-r14 SL-RestrictResourceReservationPeriodList-r14 OPTIONAL, -- Need OR
+ probResourceKeep-r14 ENUMERATED {v0, v0dot2, v0dot4, v0dot6, v0dot8,
+ spare3,spare2, spare1},
+ p2x-SensingConfig-r14 SEQUENCE {
+ minNumCandidateSF-r14 INTEGER (1..13),
+ gapCandidateSensing-r14 BIT STRING (SIZE (10))
+ } OPTIONAL, -- Need OR
+ sl-ReselectAfter-r14 ENUMERATED {n1, n2, n3, n4, n5, n6, n7, n8, n9,
+ spare7, spare6, spare5, spare4, spare3, spare2,
+ spare1} OPTIONAL -- Need OR
+}
+
+
+SL-CP-Len-r12 ::= ENUMERATED {normal, extended}
+
+
+SL-DiscConfig-r12 ::= SEQUENCE {
+ discTxResources-r12 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r12 SEQUENCE {
+ discTxConfig-r12 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON
+ discTF-IndexList-r12 SL-TF-IndexPairList-r12 OPTIONAL, -- Need ON
+ discHoppingConfig-r12 SL-HoppingConfigDisc-r12
+ OPTIONAL -- Need ON
+ },
+ ue-Selected-r12 SEQUENCE {
+ discTxPoolDedicated-r12 SEQUENCE {
+ poolToReleaseList-r12 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON
+ poolToAddModList-r12 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON
+ } OPTIONAL -- Need ON
+ }
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ discTF-IndexList-v1260 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ discTF-IndexList-r12b SL-TF-IndexPairList-r12b
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ discTxResourcesPS-r13 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r13 SL-DiscTxConfigScheduled-r13,
+ ue-Selected-r13 SEQUENCE {
+ discTxPoolPS-Dedicated-r13 SL-DiscTxPoolDedicated-r13
+ }
+ }
+ } OPTIONAL, -- Need ON
+ discTxInterFreqInfo-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need OR
+ discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR
+ discTxInfoInterFreqListAdd-r13 SL-DiscTxInfoInterFreqListAdd-r13 OPTIONAL -- Need ON
+ }
+ } OPTIONAL, -- Need ON
+ gapRequestsAllowedDedicated-r13 BOOLEAN OPTIONAL, -- Need ON
+ discRxGapConfig-r13 CHOICE {
+ release NULL,
+ setup SL-GapConfig-r13
+ } OPTIONAL, -- Need ON
+ discTxGapConfig-r13 CHOICE {
+ release NULL,
+ setup SL-GapConfig-r13
+ } OPTIONAL, -- Need ON
+ discSysInfoToReportConfig-r13 CHOICE {
+ release NULL,
+ setup SL-DiscSysInfoToReportFreqList-r13
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9
+
+SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE {
+ discTxFreqToAddModList-r13 SEQUENCE (SIZE (1..maxFreq)) OF SL-DiscTxResourceInfoPerFreq-r13 OPTIONAL, -- Need ON
+ discTxFreqToReleaseList-r13 SEQUENCE (SIZE (1..maxFreq)) OF ARFCN-ValueEUTRA-r9 OPTIONAL, -- Need ON
+ ...
+}
+
+SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE {
+ discTxCarrierFreq-r13 ARFCN-ValueEUTRA-r9,
+ discTxResources-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR
+ discTxResourcesPS-r13 SL-DiscTxResource-r13 OPTIONAL, -- Need OR
+ discTxRefCarrierDedicated-r13 SL-DiscTxRefCarrierDedicated-r13 OPTIONAL, -- Need OR
+ discCellSelectionInfo-r13 CellSelectionInfoNFreq-r13 OPTIONAL, -- Need OR
+ ...
+}
+
+SL-DiscTxResource-r13 ::= CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r13 SL-DiscTxConfigScheduled-r13,
+ ue-Selected-r13 SL-DiscTxPoolDedicated-r13
+ }
+}
+
+SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscTxPoolToAddMod-r12
+
+SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE {
+ poolIdentity-r12 SL-TxPoolIdentity-r12,
+ pool-r12 SL-DiscResourcePool-r12
+}
+
+SL-DiscTxConfigScheduled-r13 ::= SEQUENCE {
+ discTxConfig-r13 SL-DiscResourcePool-r12 OPTIONAL, -- Need ON
+ discTF-IndexList-r13 SL-TF-IndexPairList-r12b OPTIONAL, -- Need ON
+ discHoppingConfig-r13 SL-HoppingConfigDisc-r12 OPTIONAL,-- Need ON
+ ...
+}
+
+SL-DiscTxPoolDedicated-r13 ::= SEQUENCE {
+ poolToReleaseList-r13 SL-TxPoolToReleaseList-r12 OPTIONAL, -- Need ON
+ poolToAddModList-r13 SL-DiscTxPoolToAddModList-r12 OPTIONAL -- Need ON
+}
+
+SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12
+
+SL-TF-IndexPair-r12 ::= SEQUENCE {
+ discSF-Index-r12 INTEGER (1.. 200) OPTIONAL, -- Need ON
+ discPRB-Index-r12 INTEGER (1.. 50) OPTIONAL -- Need ON
+}
+
+SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..maxSL-TF-IndexPair-r12)) OF SL-TF-IndexPair-r12b
+
+SL-TF-IndexPair-r12b ::= SEQUENCE {
+ discSF-Index-r12b INTEGER (0..209) OPTIONAL, -- Need ON
+ discPRB-Index-r12b INTEGER (0..49) OPTIONAL -- Need ON
+}
+
+SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE {
+ pCell NULL,
+ sCell SCellIndex-r10
+}
+
+
+SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-DiscResourcePool-r12
+
+SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..maxSL-RxPool-r12)) OF SL-DiscResourcePool-r12
+
+SL-DiscResourcePool-r12 ::= SEQUENCE {
+ cp-Len-r12 SL-CP-Len-r12,
+ discPeriod-r12 ENUMERATED {rf32, rf64, rf128,
+ rf256, rf512, rf1024, rf16-v1310, spare},
+ numRetx-r12 INTEGER (0..3),
+ numRepetition-r12 INTEGER (1..50),
+ tf-ResourceConfig-r12 SL-TF-ResourceConfig-r12,
+ txParameters-r12 SEQUENCE {
+ txParametersGeneral-r12 SL-TxParameters-r12,
+ ue-SelectedResourceConfig-r12 SEQUENCE {
+ poolSelection-r12 CHOICE {
+ rsrpBased-r12 SL-PoolSelectionConfig-r12,
+ random-r12 NULL
+ },
+ txProbability-r12 ENUMERATED {p25, p50, p75, p100}
+ } OPTIONAL -- Need OR
+ } OPTIONAL, -- Cond Tx
+ rxParameters-r12 SEQUENCE {
+ tdd-Config-r12 TDD-Config OPTIONAL, -- Need OR
+ syncConfigIndex-r12 INTEGER (0..15)
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ discPeriod-v1310 CHOICE {
+ release NULL,
+ setup ENUMERATED {rf4, rf6, rf7, rf8,
+ rf12, rf14, rf24, rf28}
+ } OPTIONAL, -- Need ON
+ rxParamsAddNeighFreq-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ physCellId-r13 PhysCellIdList-r13
+ }
+ } OPTIONAL, -- Need ON
+ txParamsAddNeighFreq-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ physCellId-r13 PhysCellIdList-r13,
+ p-Max P-Max OPTIONAL, -- Need OP
+ tdd-Config-r13 TDD-Config OPTIONAL, -- Cond TDD-OR
+ tdd-Config-v1130 TDD-Config-v1130 OPTIONAL, -- Cond TDD-OR
+ freqInfo SEQUENCE {
+ ul-CarrierFreq ARFCN-ValueEUTRA OPTIONAL, -- Need OP
+ ul-Bandwidth ENUMERATED {n6, n15, n25, n50, n75, n100}
+ OPTIONAL, -- Need OP
+ additionalSpectrumEmission AdditionalSpectrumEmission
+ },
+ referenceSignalPower INTEGER (-60..50),
+ syncConfigIndex-r13 INTEGER (0..15) OPTIONAL -- Need OR
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ txParamsAddNeighFreq-v1370 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ freqInfo-v1370 SEQUENCE {
+ additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0
+ }
+ }
+ } OPTIONAL -- Need ON
+ ]]
+}
+
+PhysCellIdList-r13 ::= SEQUENCE (SIZE (1.. maxSL-DiscCells-r13)) OF PhysCellId
+
+SL-PoolSelectionConfig-r12 ::= SEQUENCE {
+ threshLow-r12 RSRP-RangeSL2-r12,
+ threshHigh-r12 RSRP-RangeSL2-r12
+}
+
+
+SL-DiscSysInfoReport-r13 ::= SEQUENCE {
+ plmn-IdentityList-r13 PLMN-IdentityList OPTIONAL,
+ cellIdentity-13 CellIdentity OPTIONAL,
+ carrierFreqInfo-13 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ discRxResources-r13 SL-DiscRxPoolList-r12 OPTIONAL,
+ discTxPoolCommon-r13 SL-DiscTxPoolList-r12 OPTIONAL,
+ discTxPowerInfo-r13 SL-DiscTxPowerInfoList-r12 OPTIONAL,
+ discSyncConfig-r13 SL-SyncConfigNFreq-r13 OPTIONAL,
+ discCellSelectionInfo-r13 SEQUENCE {
+ q-RxLevMin-r13 Q-RxLevMin,
+ q-RxLevMinOffset-r13 INTEGER (1..8) OPTIONAL
+ } OPTIONAL,
+ cellReselectionInfo-r13 SEQUENCE {
+ q-Hyst-r13 ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24},
+ q-RxLevMin-r13 Q-RxLevMin,
+ t-ReselectionEUTRA-r13 T-Reselection
+ } OPTIONAL,
+ tdd-Config-r13 TDD-Config OPTIONAL,
+ freqInfo-r13 SEQUENCE {
+ ul-CarrierFreq-r13 ARFCN-ValueEUTRA OPTIONAL,
+ ul-Bandwidth-r13 ENUMERATED {n6, n15, n25, n50, n75, n100}
+ OPTIONAL,
+ additionalSpectrumEmission-r13 AdditionalSpectrumEmission OPTIONAL
+ } OPTIONAL,
+ p-Max-r13 P-Max OPTIONAL,
+ referenceSignalPower-r13 INTEGER (-60..50) OPTIONAL,
+ ...,
+ [[
+ freqInfo-v1370 SEQUENCE {
+ additionalSpectrumEmission-v1370 AdditionalSpectrumEmission-v10l0
+ } OPTIONAL
+ ]]
+}
+
+
+SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (maxSL-DiscPowerClass-r12)) OF SL-DiscTxPowerInfo-r12
+
+SL-DiscTxPowerInfo-r12 ::= SEQUENCE {
+ discMaxTxPower-r12 P-Max,
+ ...
+}
+
+
+SL-GapConfig-r13 ::= SEQUENCE {
+ gapPatternList-r13 SL-GapPatternList-r13
+}
+
+SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..maxSL-GP-r13)) OF SL-GapPattern-r13
+
+SL-GapPattern-r13 ::= SEQUENCE {
+ gapPeriod-r13 ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140, sf160,
+ sf240, sf280, sf320, sf640, sf1280, sf2560, sf5120,
+ sf10240},
+ gapOffset-r12 SL-OffsetIndicator-r12,
+ gapSubframeBitmap-r13 BIT STRING (SIZE (1..10240)),
+ ...
+}
+
+
+SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF SL-GapFreqInfo-r13
+
+SL-GapFreqInfo-r13 ::= SEQUENCE {
+ carrierFreq-r13 ARFCN-ValueEUTRA-r9 OPTIONAL,
+ gapPatternList-r13 SL-GapPatternList-r13
+}
+
+
+SL-HoppingConfigComm-r12 ::= SEQUENCE {
+ hoppingParameter-r12 INTEGER (0..504),
+ numSubbands-r12 ENUMERATED {ns1, ns2, ns4},
+ rb-Offset-r12 INTEGER (0..110)
+}
+
+SL-HoppingConfigDisc-r12 ::= SEQUENCE {
+ a-r12 INTEGER (1..200),
+ b-r12 INTEGER (1..10),
+ c-r12 ENUMERATED {n1, n5}
+}
+
+
+SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..maxFreqV2X-1-r14)) OF SL-InterFreqInfoV2X-r14
+
+SL-InterFreqInfoV2X-r14 ::= SEQUENCE {
+ plmn-IdentityList-r14 PLMN-IdentityList OPTIONAL, -- Need OP
+ v2x-CommCarrierFreq-r14 ARFCN-ValueEUTRA-r9,
+ sl-MaxTxPower-r14 P-Max OPTIONAL, -- Need OR
+ sl-Bandwidth-r14 ENUMERATED {n6, n15, n25, n50, n75, n100} OPTIONAL, -- Need OR
+ v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR
+ v2x-UE-ConfigList-r14 SL-V2X-UE-ConfigList-r14 OPTIONAL, -- Need OR
+ ...,
+ [[ additionalSpectrumEmissionV2X-r14 CHOICE {
+ additionalSpectrumEmission-r14 AdditionalSpectrumEmission,
+ additionalSpectrumEmission-v1440 AdditionalSpectrumEmission-v10l0
+ } OPTIONAL -- Need ON
+ ]],
+ [[ v2x-FreqSelectionConfigList-r15 SL-V2X-FreqSelectionConfigList-r15 OPTIONAL --Need OR
+ ]]
+}
+
+
+SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1.. maxCellIntra)) OF SL-V2X-InterFreqUE-Config-r14
+
+SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE {
+ physCellIdList-r14 PhysCellIdList-r13 OPTIONAL, -- Need OR
+ typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR
+ v2x-SyncConfig-r14 SL-SyncConfigListNFreqV2X-r14 OPTIONAL, -- Need OR
+ v2x-CommRxPool-r14 SL-CommRxPoolListV2X-r14 OPTIONAL, -- Need OR
+ v2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR
+ p2x-CommTxPoolNormal-r14 SL-CommTxPoolListV2X-r14 OPTIONAL, -- Need OR
+ v2x-CommTxPoolExceptional-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need OR
+ v2x-ResourceSelectionConfig-r14 SL-CommTxPoolSensingConfig-r14 OPTIONAL, -- Need OR
+ zoneConfig-r14 SL-ZoneConfig-r14 OPTIONAL, -- Need OR
+ offsetDFN-r14 INTEGER (0..1000) OPTIONAL, -- Need OR
+ ...
+}
+
+
+SL-OffsetIndicator-r12 ::= CHOICE {
+ small-r12 INTEGER (0..319),
+ large-r12 INTEGER (0..10239)
+}
+
+SL-OffsetIndicatorSync-r12 ::= INTEGER (0..39)
+
+SL-OffsetIndicatorSync-v1430 ::= INTEGER (40..159)
+
+SL-OffsetIndicatorSync-r14 ::= INTEGER (0..159)
+
+
+SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE {
+ partialSensing-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ randomSelection-r14 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+
+SL-PeriodComm-r12 ::= ENUMERATED {sf40, sf60, sf70, sf80, sf120, sf140,
+ sf160, sf240, sf280, sf320, spare6, spare5,
+ spare4, spare3, spare2, spare}
+
+
+SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..maxSL-Prio-r13)) OF SL-Priority-r13
+
+SL-Priority-r13 ::= INTEGER (1..8)
+
+
+SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..maxPSSCH-TxConfig-r14)) OF SL-PSSCH-TxConfig-r14
+
+SL-PSSCH-TxConfig-r14 ::= SEQUENCE {
+ typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR
+ thresUE-Speed-r14 ENUMERATED {kmph60, kmph80, kmph100, kmph120,
+ kmph140, kmph160, kmph180, kmph200},
+ parametersAboveThres-r14 SL-PSSCH-TxParameters-r14,
+ parametersBelowThres-r14 SL-PSSCH-TxParameters-r14,
+ ...,
+ [[ parametersAboveThres-v1530 SL-PSSCH-TxParameters-v1530 OPTIONAL, -- Need OR
+ parametersBelowThres-v1530 SL-PSSCH-TxParameters-v1530 OPTIONAL -- Need OR
+ ]]
+}
+
+SL-PSSCH-TxParameters-r14 ::= SEQUENCE {
+ minMCS-PSSCH-r14 INTEGER (0..31),
+ maxMCS-PSSCH-r14 INTEGER (0..31),
+ minSubChannel-NumberPSSCH-r14 INTEGER (1..20),
+ maxSubchannel-NumberPSSCH-r14 INTEGER (1..20),
+ allowedRetxNumberPSSCH-r14 ENUMERATED {n0, n1, both, spare1},
+ maxTxPower-r14 SL-TxPower-r14 OPTIONAL -- Cond CBR
+}
+
+SL-PSSCH-TxParameters-v1530 ::= SEQUENCE {
+ minMCS-PSSCH-r15 INTEGER (0..31),
+ maxMCS-PSSCH-r15 INTEGER (0..31)
+}
+
+
+SL-ReliabilityList-r15 ::= SEQUENCE (SIZE (1..maxSL-Reliability-r15)) OF SL-Reliability-r15
+
+SL-Reliability-r15 ::= INTEGER (1..8)
+
+
+SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..maxReservationPeriod-r14)) OF SL-RestrictResourceReservationPeriod-r14
+
+SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED {v0dot2, v0dot5, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, spare4,spare3, spare2, spare1}
+
+
+SLSSID-r12 ::= INTEGER (0..167)
+
+
+SL-SyncAllowed-r14 ::= SEQUENCE {
+ gnss-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ enb-Sync-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ ue-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+
+SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfig-r12
+
+SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfig-r12
+
+SL-SyncConfig-r12 ::= SEQUENCE {
+ syncCP-Len-r12 SL-CP-Len-r12,
+ syncOffsetIndicator-r12 SL-OffsetIndicatorSync-r12,
+ slssid-r12 SLSSID-r12,
+ txParameters-r12 SEQUENCE {
+ syncTxParameters-r12 SL-TxParameters-r12,
+ syncTxThreshIC-r12 RSRP-RangeSL-r12,
+ syncInfoReserved-r12 BIT STRING (SIZE (19)) OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ rxParamsNCell-r12 SEQUENCE {
+ physCellId-r12 PhysCellId,
+ discSyncWindow-r12 ENUMERATED {w1, w2}
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR
+ gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14 OPTIONAL, -- Need OR
+ syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL -- Need OR
+ ]],
+ [[ slss-TxDisabled-r15 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..maxSL-SyncConfig-r12)) OF SL-SyncConfigNFreq-r13
+
+SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..maxSL-V2X-SyncConfig-r14)) OF SL-SyncConfigNFreq-r13
+
+SL-SyncConfigNFreq-r13 ::= SEQUENCE {
+ asyncParameters-r13 SEQUENCE {
+ syncCP-Len-r13 SL-CP-Len-r12,
+ syncOffsetIndicator-r13 SL-OffsetIndicatorSync-r12,
+ slssid-r13 SLSSID-r12
+ } OPTIONAL, -- Need OR
+ txParameters-r13 SEQUENCE {
+ syncTxParameters-r13 SL-TxParameters-r12,
+ syncTxThreshIC-r13 RSRP-RangeSL-r12,
+ syncInfoReserved-r13 BIT STRING (SIZE (19)) OPTIONAL, -- Need OR
+ syncTxPeriodic-r13 ENUMERATED {true} OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ rxParameters-r13 SEQUENCE {
+ discSyncWindow-r13 ENUMERATED {w1, w2}
+ } OPTIONAL, -- Need OR
+ ...,
+ [[ syncOffsetIndicator-v1430 SL-OffsetIndicatorSync-v1430 OPTIONAL, -- Need OR
+ gnss-Sync-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ syncOffsetIndicator2-r14 SL-OffsetIndicatorSync-r14 OPTIONAL, -- Need OR
+ syncOffsetIndicator3-r14 SL-OffsetIndicatorSync-r14 OPTIONAL -- Need OR
+ ]],
+ [[ slss-TxDisabled-r15 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+
+SL-TF-ResourceConfig-r12 ::= SEQUENCE {
+ prb-Num-r12 INTEGER (1..100),
+ prb-Start-r12 INTEGER (0..99),
+ prb-End-r12 INTEGER (0..99),
+ offsetIndicator-r12 SL-OffsetIndicator-r12,
+ subframeBitmap-r12 SubframeBitmapSL-r12
+}
+
+SubframeBitmapSL-r12 ::= CHOICE {
+ bs4-r12 BIT STRING (SIZE (4)),
+ bs8-r12 BIT STRING (SIZE (8)),
+ bs12-r12 BIT STRING (SIZE (12)),
+ bs16-r12 BIT STRING (SIZE (16)),
+ bs30-r12 BIT STRING (SIZE (30)),
+ bs40-r12 BIT STRING (SIZE (40)),
+ bs42-r12 BIT STRING (SIZE (42))
+}
+
+SubframeBitmapSL-r14 ::= CHOICE {
+ bs10-r14 BIT STRING (SIZE (10)),
+ bs16-r14 BIT STRING (SIZE (16)),
+ bs20-r14 BIT STRING (SIZE (20)),
+ bs30-r14 BIT STRING (SIZE (30)),
+ bs40-r14 BIT STRING (SIZE (40)),
+ bs50-r14 BIT STRING (SIZE (50)),
+ bs60-r14 BIT STRING (SIZE (60)),
+ bs100-r14 BIT STRING (SIZE (100))
+}
+
+
+SL-TxPower-r14 ::= CHOICE {
+ minusinfinity-r14 NULL,
+ txPower-r14 INTEGER (-41..31)
+}
+
+
+SL-TypeTxSync-r14 ::= ENUMERATED {gnss, enb, ue}
+
+
+SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF SL-ThresPSSCH-RSRP-r14
+
+SL-ThresPSSCH-RSRP-r14 ::= INTEGER (0..66)
+
+
+SL-TxParameters-r12 ::= SEQUENCE {
+ alpha-r12 Alpha-r12,
+ p0-r12 P0-SL-r12
+}
+
+P0-SL-r12 ::= INTEGER (-126..31)
+
+
+SL-TxPoolIdentity-r12 ::= INTEGER (1.. maxSL-TxPool-r12)
+
+SL-TxPoolIdentity-v1310 ::= INTEGER (maxSL-TxPool-r12Plus1-r13.. maxSL-TxPool-r13)
+
+SL-V2X-TxPoolIdentity-r14 ::= INTEGER (1.. maxSL-V2X-TxPool-r14)
+
+
+SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..maxSL-TxPool-r12)) OF SL-TxPoolIdentity-r12
+
+SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..maxSL-TxPool-v1310)) OF SL-TxPoolIdentity-v1310
+
+
+SL-V2X-ConfigDedicated-r14 ::= SEQUENCE {
+ commTxResources-r14 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-r14 SEQUENCE {
+ sl-V-RNTI-r14 C-RNTI,
+ mac-MainConfig-r14 MAC-MainConfigSL-r12,
+ v2x-SchedulingPool-r14 SL-CommResourcePoolV2X-r14 OPTIONAL, -- Need ON
+ mcs-r14 INTEGER (0..31) OPTIONAL, -- Need OR
+ logicalChGroupInfoList-r14 LogicalChGroupInfoList-r13
+ },
+ ue-Selected-r14 SEQUENCE {
+ -- Pool for normal usage
+ v2x-CommTxPoolNormalDedicated-r14 SEQUENCE {
+ poolToReleaseList-r14 SL-TxPoolToReleaseListV2X-r14 OPTIONAL, -- Need ON
+ poolToAddModList-r14 SL-TxPoolToAddModListV2X-r14 OPTIONAL, -- Need ON
+ v2x-CommTxPoolSensingConfig-r14 SL-CommTxPoolSensingConfig-r14
+ OPTIONAL -- Need ON
+ }
+ }
+ }
+ } OPTIONAL, -- Need ON
+ v2x-InterFreqInfoList-r14 SL-InterFreqInfoListV2X-r14 OPTIONAL, -- Need ON
+ thresSL-TxPrioritization-r14 SL-Priority-r13 OPTIONAL, -- Need OR
+ typeTxSync-r14 SL-TypeTxSync-r14 OPTIONAL, -- Need OR
+ cbr-DedicatedTxConfigList-r14 SL-CBR-CommonTxConfigList-r14 OPTIONAL, -- Need OR
+ ...,
+ [[ commTxResources-v1530 CHOICE {
+ release NULL,
+ setup CHOICE {
+ scheduled-v1530 SEQUENCE {
+ logicalChGroupInfoList-v1530 LogicalChGroupInfoList-v1530 OPTIONAL, -- Need OR
+ mcs-r15 INTEGER (0..31) OPTIONAL -- Need OR
+ },
+ ue-Selected-v1530 SEQUENCE {
+ v2x-FreqSelectionConfigList-r15 SL-V2X-FreqSelectionConfigList-r15 OPTIONAL --Need OR
+ }
+ }
+ } OPTIONAL, -- Need ON
+ v2x-PacketDuplicationConfig-r15 SL-V2X-PacketDuplicationConfig-r15 OPTIONAL, -- Need OR
+ syncFreqList-r15 SL-V2X-SyncFreqList-r15 OPTIONAL, -- Need OR
+ slss-TxMultiFreq-r15 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+LogicalChGroupInfoList-v1530 ::= SEQUENCE (SIZE (1..maxLCG-r13)) OF SL-ReliabilityList-r15
+
+SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-TxPoolToAddMod-r14
+
+SL-TxPoolToAddMod-r14 ::= SEQUENCE {
+ poolIdentity-r14 SL-V2X-TxPoolIdentity-r14,
+ pool-r14 SL-CommResourcePoolV2X-r14
+}
+
+SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1.. maxSL-V2X-TxPool-r14)) OF SL-V2X-TxPoolIdentity-r14
+
+
+SL-V2X-FreqSelectionConfigList-r15 ::= SEQUENCE (SIZE (1..8)) OF SL-V2X-FreqSelectionConfig-r15
+
+SL-V2X-FreqSelectionConfig-r15 ::= SEQUENCE {
+ priorityList-r15 SL-PriorityList-r13,
+ threshCBR-FreqReselection-r15 SL-CBR-r14 OPTIONAL, -- Need OR
+ threshCBR-FreqKeeping-r15 SL-CBR-r14 OPTIONAL -- Need OR
+}
+
+
+SL-V2X-PacketDuplicationConfig-r15 ::= SEQUENCE {
+ threshSL-Reliability-r15 SL-Reliability-r15,
+ allowedCarrierFreqConfig-r15 SL-PPPR-Dest-CarrierFreqList-r15 OPTIONAL, -- Need OR
+ ...
+}
+
+SL-PPPR-Dest-CarrierFreqList-r15 ::= SEQUENCE (SIZE (1..maxSL-Dest-r12)) OF SL-PPPR-Dest-CarrierFreq
+
+SL-PPPR-Dest-CarrierFreq ::= SEQUENCE {
+ destinationInfoList-r15 SL-DestinationInfoList-r12 OPTIONAL, -- Need OR
+ allowedCarrierFreqList-r15 SL-AllowedCarrierFreqList-r15 OPTIONAL -- Need OR
+}
+
+SL-AllowedCarrierFreqList-r15 ::= SEQUENCE {
+ allowedCarrierFreqSet1 SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9,
+ allowedCarrierFreqSet2 SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9
+}
+
+
+SL-V2X-SyncFreqList-r15 ::= SEQUENCE (SIZE (1..maxFreqV2X-r14)) OF ARFCN-ValueEUTRA-r9
+
+
+SL-ZoneConfig-r14 ::= SEQUENCE {
+ zoneLength-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1},
+ zoneWidth-r14 ENUMERATED { m5, m10, m20, m50, m100, m200, m500, spare1},
+ zoneIdLongiMod-r14 INTEGER (1..4),
+ zoneIdLatiMod-r14 INTEGER (1..4)
+}
+
+
+maxAccessCat-1-r15 INTEGER ::= 63 -- Maximum number of Acccess Categories - 1
+maxACDC-Cat-r13 INTEGER ::= 16 -- Maximum number of ACDC categories (per PLMN)
+maxAvailNarrowBands-r13 INTEGER ::= 16 -- Maximum number of narrowbands
+maxBandComb-r10 INTEGER ::= 128 -- Maximum number of band combinations.
+maxBandComb-r11 INTEGER ::= 256 -- Maximum number of additional band combinations.
+maxBandComb-r13 INTEGER ::= 384 -- Maximum number of band combinations in Rel-13
+maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps
+maxBandsNR-r15 INTEGER ::= 1024 -- Maximum number of NR bands listed in EUTRA UE caps
+maxBandwidthClass-r10 INTEGER ::= 16 -- Maximum number of supported CA BW classes per band
+maxBandwidthCombSet-r10 INTEGER ::= 32 -- Maximum number of bandwidth combination sets per
+ -- supported band combination
+maxBarringInfoSet-r15 INTEGER ::= 8 -- Maximum number of UAC barring information sets
+maxBT-IdReport-r15 INTEGER ::= 32 -- Maximum number of Bluetooth IDs to report
+maxBT-Name-r15 INTEGER ::= 4 -- Maximum number of Bluetooth name
+maxCBR-Level-r14 INTEGER ::= 16 -- Maximum number of CBR levels
+maxCBR-Level-1-r14 INTEGER ::= 15
+maxCBR-Report-r14 INTEGER ::= 72 -- Maximum number of CBR results in a report
+maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes
+maxCE-Level-r13 INTEGER ::= 4 -- Maximum number of CE levels
+maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted physical cell identity
+ -- ranges listed in SIB type 4 and 5
+maxCellHistory-r12 INTEGER ::= 16 -- Maximum number of visited EUTRA cells reported
+maxCellInfoGERAN-r9 INTEGER ::= 32 -- Maximum number of GERAN cells for which system in-
+ -- formation can be provided as redirection assistance
+maxCellInfoUTRA-r9 INTEGER ::= 16 -- Maximum number of UTRA cells for which system
+ -- information can be provided as redirection
+ -- assistance
+maxCellMeasIdle-r15 INTEGER ::= 8 -- Maximum number of neighbouring inter-frequency
+ -- cells per carrier measured in IDLE mode
+maxCombIDC-r11 INTEGER ::= 128 -- Maximum number of reported UL CA or
+ -- MR-DC combinations
+maxCSI-IM-r11 INTEGER ::= 3 -- Maximum number of CSI-IM configurations
+ -- (per carrier frequency)
+maxCSI-IM-r12 INTEGER ::= 4 -- Maximum number of CSI-IM configurations
+ -- (per carrier frequency)
+minCSI-IM-r13 INTEGER ::= 5 -- Minimum number of CSI IM configurations from which
+ -- REL-13 extension is used
+maxCSI-IM-r13 INTEGER ::= 24 -- Maximum number of CSI-IM configurations
+ -- (per carrier frequency)
+maxCSI-IM-v1310 INTEGER ::= 20 -- Maximum number of additional CSI-IM configurations
+ -- (per carrier frequency)
+maxCSI-Proc-r11 INTEGER ::= 4 -- Maximum number of CSI processes (per carrier
+ -- frequency)
+maxCSI-RS-NZP-r11 INTEGER ::= 3 -- Maximum number of CSI RS resource
+ -- configurations using non-zero Tx power
+ -- (per carrier frequency)
+minCSI-RS-NZP-r13 INTEGER ::= 4 -- Minimum number of CSI RS resource from which
+ -- REL-13 extension is used
+maxCSI-RS-NZP-r13 INTEGER ::= 24 -- Maximum number of CSI RS resource
+ -- configurations using non-zero Tx power
+ -- (per carrier frequency)
+maxCSI-RS-NZP-v1310 INTEGER ::= 21 -- Maximum number of additional CSI RS resource
+ -- configurations using non-zero Tx power
+ -- (per carrier frequency)
+maxCSI-RS-ZP-r11 INTEGER ::= 4 -- Maximum number of CSI RS resource
+ -- configurations using zero Tx power(per carrier
+ -- frequency)
+maxCQI-ProcExt-r11 INTEGER ::= 3 -- Maximum number of additional periodic CQI
+ -- configurations (per carrier frequency)
+maxFreqUTRA-TDD-r10 INTEGER ::= 6 -- Maximum number of UTRA TDD carrier frequencies for
+ -- which system information can be provided as
+ -- redirection assistance
+maxCellInter INTEGER ::= 16 -- Maximum number of neighbouring inter-frequency
+ -- cells listed in SIB type 5
+maxCellIntra INTEGER ::= 16 -- Maximum number of neighbouring intra-frequency
+ -- cells listed in SIB type 4
+maxCellListGERAN INTEGER ::= 3 -- Maximum number of lists of GERAN cells
+maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the
+ -- cell lists in a measurement object
+maxCellReport INTEGER ::= 8 -- Maximum number of reported cells/CSI-RS resources
+maxCellSFTD INTEGER ::= 3 -- Maximum number of cells for SFTD reporting
+maxConfigSPS-r14 INTEGER ::= 8 -- Maximum number of simultaneous SPS configurations
+maxConfigSPS-r15 INTEGER ::= 6 -- Maximum number of simultaneous SPS configurations
+ -- configured with SPS C-RNTI
+maxCSI-RS-Meas-r12 INTEGER ::= 96 -- Maximum number of entries in the CSI-RS list
+ -- in a measurement object
+maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers
+maxDRBExt-r15 INTEGER ::= 4 -- Maximum number of additional DRBs
+maxDRB-r15 INTEGER ::= 15 -- Highest value of extended maximum number of DRBs
+maxDS-Duration-r12 INTEGER ::= 5 -- Maximum number of subframes in a discovery signals
+ -- occasion
+maxDS-ZTP-CSI-RS-r12 INTEGER ::= 5 -- Maximum number of zero transmission power CSI-RS for
+ -- a serving cell concerning discovery signals
+maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier frequency
+maxEARFCN-Plus1 INTEGER ::= 65536 -- Lowest value extended EARFCN range
+maxEARFCN2 INTEGER ::= 262143 -- Highest value extended EARFCN range
+maxEPDCCH-Set-r11 INTEGER ::= 2 -- Maximum number of EPDCCH sets
+maxFBI INTEGER ::= 64 -- Maximum value of fequency band indicator
+maxFBI-NR-r15 INTEGER ::= 1024 -- Highest value FBI range for NR.
+maxFBI-Plus1 INTEGER ::= 65 -- Lowest value extended FBI range
+maxFBI2 INTEGER ::= 256 -- Highest value extended FBI range
+maxFeatureSets-r15 INTEGER ::= 256 -- Total number of feature sets (size of pool)
+maxPerCC-FeatureSets-r15 INTEGER ::= 32 -- Total number of CC-specific feature sets
+ -- (size of the pool)
+maxFreq INTEGER ::= 8 -- Maximum number of carrier frequencies
+maxFreqIDC-r11 INTEGER ::= 32 -- Maximum number of carrier frequencies that are
+ -- affected by the IDC problems
+maxFreqIdle-r15 INTEGER ::= 8 -- Maximum number of carrier frequencies for
+ -- IDLE mode measurements configured by eNB
+maxFreqMBMS-r11 INTEGER ::= 5 -- Maximum number of carrier frequencies for which an
+ -- MBMS capable UE may indicate an interest
+maxFreqNR-r15 INTEGER ::= 5 -- Maximum number of NR carrier frequencies for
+ -- which a UE may provide measurement results upon
+ -- NR SCG failure and for which network can provide
+ -- cell reselection priorities upon release
+maxFreqV2X-r14 INTEGER ::= 8 -- Maximum number of carrier frequencies for which V2X
+ -- sidelink communication can be configured
+maxFreqV2X-1-r14 INTEGER ::= 7 -- Highest index of frequencies
+maxGERAN-SI INTEGER ::= 10 -- Maximum number of GERAN SI blocks that can be
+ -- provided as part of NACC information
+maxGNFG INTEGER ::= 16 -- Maximum number of GERAN neighbour freq groups
+maxIdleMeasCarriers-r15 INTEGER ::= 3 -- Maximum number of neighbouring inter-
+ -- frequency carriers measured in IDLE mode
+maxLCG-r13 INTEGER ::= 4 -- Maximum number of logical channel groups
+maxLogMeasReport-r10 INTEGER ::= 520 -- Maximum number of logged measurement entries
+ -- that can be reported by the UE in one message
+maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with
+ -- different offset
+maxMBSFN-Area INTEGER ::= 8
+maxMBSFN-Area-1 INTEGER ::= 7
+maxMBMS-ServiceListPerUE-r13 INTEGER ::= 15 -- Maximum number of services which the UE can
+ -- include in the MBMS interest indication
+maxMeasId INTEGER ::= 32
+maxMeasId-Plus1 INTEGER ::= 33
+maxMeasId-r12 INTEGER ::= 64
+maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands
+ -- that a cell belongs to
+maxMultiBandsNR-r15 INTEGER ::= 32 -- Maximum number of additional NR frequency bands
+ -- that a cell belongs to
+maxNS-Pmax-r10 INTEGER ::= 8 -- Maximum number of NS and P-Max values per band
+maxNAICS-Entries-r12 INTEGER ::= 8 -- Maximum number of supported NAICS combination(s)
+maxNeighCell-r12 INTEGER ::= 8 -- Maximum number of neighbouring cells in NAICS
+ -- configuration (per carrier frequency)
+maxNeighCell-SCPTM-r13 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells
+maxNrofS-NSSAI-r15 INTEGER ::= 8 -- Maximum number of S-NSSAI
+maxObjectId INTEGER ::= 32
+maxObjectId-Plus1-r13 INTEGER ::= 33
+maxObjectId-r13 INTEGER ::= 64
+maxP-a-PerNeighCell-r12 INTEGER ::= 3 -- Maximum number of power offsets for a neighbour cell
+ -- in NAICS configuration
+maxPageRec INTEGER ::= 16 --
+maxPhysCellIdRange-r9 INTEGER ::= 4 -- Maximum number of physical cell identity ranges
+maxPLMN-r11 INTEGER ::= 6 -- Maximum number of PLMNs
+maxPLMN-1-r14 INTEGER ::= 5 -- Maximum number of PLMNs minus one
+maxPLMN-r15 INTEGER ::= 8 -- Maximum number of PLMNs for RNA configuration
+maxPLMN-NR-r15 INTEGER ::= 12 -- Maximum number of NR PLMNs
+maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets
+maxPMCH-PerMBSFN INTEGER ::= 15
+maxPSSCH-TxConfig-r14 INTEGER ::= 16 -- Maximum number of PSSCH TX configurations
+maxQuantSetsNR-r15 INTEGER ::= 2 -- Maximum number of NR quantity configuration sets
+maxQCI-r13 INTEGER ::= 6 -- Maximum number of QCIs
+maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA)
+maxRE-MapQCL-r11 INTEGER ::= 4 -- Maximum number of PDSCH RE Mapping configurations
+ -- (per carrier frequency)
+maxReportConfigId INTEGER ::= 32
+maxReservationPeriod-r14 INTEGER ::= 16 -- Maximum number of resource reservation periodicities
+ -- for sidelink V2X communication
+maxRS-Index-r15 INTEGER ::= 64 -- Maximum number of RS indices
+maxRS-Index-1-r15 INTEGER ::= 63 -- Highest value of RS index as used to identify
+ -- RS index in RRM reports.
+maxRS-IndexCellQualNR-r15 INTEGER ::= 16 -- Maximum number of RS indices averaged to derive
+ -- cell quality for RRM.
+maxRS-IndexReport-r15 INTEGER ::= 32 -- Maximum number of RS indices for RRM.
+maxRSTD-Freq-r10 INTEGER ::= 3 -- Maximum number of frequency layers for RSTD
+ -- measurement
+maxSAI-MBMS-r11 INTEGER ::= 64 -- Maximum number of MBMS service area identities
+ -- broadcast per carrier frequency
+maxSCell-r10 INTEGER ::= 4 -- Maximum number of SCells
+maxSCell-r13 INTEGER ::= 31 -- Highest value of extended number range of SCells
+maxSCellGroups-r15 INTEGER ::= 4 -- Maximum number of SCell common parameter groups
+maxSC-MTCH-r13 INTEGER ::= 1023 -- Maximum number of SC-MTCHs in one cell
+maxSC-MTCH-BR-r14 INTEGER ::= 128 -- Maximum number of SC-MTCHs in one cell for feMTC
+maxSL-CommRxPoolNFreq-r13 INTEGER ::= 32 -- Maximum number of individual sidelink communication
+ -- Rx resource pools on neighbouring freq
+maxSL-CommRxPoolPreconf-v1310 INTEGER ::= 12 -- Maximum number of additional preconfigured
+ -- sidelink communication Rx resource pool entries
+maxSL-TxPool-r12Plus1-r13 INTEGER ::= 5 -- First additional individual sidelink
+ -- Tx resource pool
+maxSL-TxPool-v1310 INTEGER ::= 4 -- Maximum number of additional sidelink
+ -- Tx resource pool entries
+maxSL-TxPool-r13 INTEGER ::= 8 -- Maximum number of individual sidelink
+ -- Tx resource pools
+maxSL-CommTxPoolPreconf-v1310 INTEGER ::= 7 -- Maximum number of additional preconfigured
+ -- sidelink Tx resource pool entries
+maxSL-Dest-r12 INTEGER ::= 16 -- Maximum number of sidelink destinations
+maxSL-DiscCells-r13 INTEGER ::= 16 -- Maximum number of cells with similar sidelink
+ -- configurations
+maxSL-DiscPowerClass-r12 INTEGER ::= 3 -- Maximum number of sidelink power classes
+maxSL-DiscRxPoolPreconf-r13 INTEGER ::= 16 -- Maximum number of preconfigured sidelink
+ -- discovery Rx resource pool entries
+maxSL-DiscSysInfoReportFreq-r13 INTEGER ::= 8 -- Maximum number of frequencies to include in a
+ -- SidelinkUEInformation for SI reporting
+maxSL-DiscTxPoolPreconf-r13 INTEGER ::= 4 -- Maximum number of preconfigured sidelink
+ -- discovery Tx resource pool entries
+maxSL-GP-r13 INTEGER ::= 8 -- Maximum number of gap patterns that can be requested
+ -- for a frequency or assigned
+maxSL-PoolToMeasure-r14 INTEGER ::= 72 -- Maximum number of TX resource pools for CBR
+ -- measurement and report
+maxSL-Prio-r13 INTEGER ::= 8 -- Maximum number of entries in sidelink priority list
+maxSL-RxPool-r12 INTEGER ::= 16 -- Maximum number of individual sidelink Rx resource pools
+maxSL-Reliability-r15 INTEGER ::= 8 -- Maximum number of entries in sidelink reliability list
+maxSL-SyncConfig-r12 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations
+maxSL-TF-IndexPair-r12 INTEGER ::= 64 -- Maximum number of sidelink Time Freq resource index
+ -- pairs
+maxSL-TxPool-r12 INTEGER ::= 4 -- Maximum number of individual sidelink Tx resource pools
+maxSL-V2X-RxPool-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for
+ -- V2X sidelink communication
+maxSL-V2X-RxPoolPreconf-r14 INTEGER ::= 16 -- Maximum number of RX resource pools for
+ -- V2X sidelink communication
+maxSL-V2X-TxPool-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for
+ -- V2X sidelink communication
+maxSL-V2X-TxPoolPreconf-r14 INTEGER ::= 8 -- Maximum number of TX resource pools for
+ -- V2X sidelink communication
+maxSL-V2X-SyncConfig-r14 INTEGER ::= 16 -- Maximum number of sidelink Sync configurations
+ -- for V2X sidelink communication
+maxSL-V2X-CBRConfig-r14 INTEGER ::= 4 -- Maximum number of CBR range configurations
+ -- for V2X sidelink communication congestion
+ -- control
+maxSL-V2X-CBRConfig-1-r14 INTEGER ::= 3
+maxSL-V2X-TxConfig-r14 INTEGER ::= 64 -- Maximum number of TX parameter configurations
+ -- for V2X sidelink communication congestion
+ -- control
+maxSL-V2X-TxConfig-1-r14 INTEGER ::= 63
+maxSL-V2X-CBRConfig2-r14 INTEGER ::= 8 -- Maximum number of CBR range configurations in
+ -- pre-configuration for V2X sidelink
+ -- communication congestion control
+maxSL-V2X-CBRConfig2-1-r14 INTEGER ::= 7
+maxSL-V2X-TxConfig2-r14 INTEGER ::= 128 -- Maximum number of TX parameter
+ -- configurations in pre-configuration for V2X
+ -- sidelink communication congestion control
+maxSL-V2X-TxConfig2-1-r14 INTEGER ::= 127
+maxSTAG-r11 INTEGER ::= 3 -- Maximum number of STAGs
+maxServCell-r10 INTEGER ::= 5 -- Maximum number of Serving cells
+maxServCell-r13 INTEGER ::= 32 -- Highest value of extended number range of Serving cells
+maxServCellNR-r15 INTEGER ::= 16 -- Maximum number of NR serving cells
+maxServiceCount INTEGER ::= 16 -- Maximum number of MBMS services that can be included
+ -- in an MBMS counting request and response
+maxServiceCount-1 INTEGER ::= 15
+maxSessionPerPMCH INTEGER ::= 29
+maxSessionPerPMCH-1 INTEGER ::= 28
+maxSIB INTEGER ::= 32 -- Maximum number of SIBs
+maxSIB-1 INTEGER ::= 31
+maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages
+maxSimultaneousBands-r10 INTEGER ::= 64 -- Maximum number of simultaneously aggregated bands
+maxSubframePatternIDC-r11 INTEGER ::= 8 -- Maximum number of subframe reservation patterns
+ -- that the UE can simultaneously recommend to the
+ -- E-UTRAN for use.
+maxTrafficPattern-r14 INTEGER ::= 8 -- Maximum number of periodical traffic patterns
+ -- that the UE can simultaneously report to the
+ -- E-UTRAN.
+maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies
+maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies
+maxWayPoint-r15 INTEGER ::= 20 -- Maximum number of flight path information waypoints
+maxWLAN-Id-r12 INTEGER ::= 16 -- Maximum number of WLAN identifiers
+maxWLAN-Bands-r13 INTEGER ::= 8 -- Maximum number of WLAN bands
+maxWLAN-Id-r13 INTEGER ::= 32 -- Maximum number of WLAN identifiers
+maxWLAN-Channels-r13 INTEGER ::= 16 -- maximum number of WLAN channels used in
+ -- WLAN-CarrierInfo
+maxWLAN-CarrierInfo-r13 INTEGER ::= 8 -- Maximum number of WLAN Carrier Information
+maxWLAN-Id-Report-r14 INTEGER ::= 32 -- Maximum number of WLAN IDs to report
+maxWLAN-Name-r15 INTEGER ::= 4 -- Maximum number of WLAN name
+
+
+END
+
+
+PC5-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ TDD-ConfigSL-r12
+FROM EUTRA-RRC-Definitions;
+
+
+SBCCH-SL-BCH-Message ::= SEQUENCE {
+ message SBCCH-SL-BCH-MessageType
+}
+
+SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL
+
+
+SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE {
+ message SBCCH-SL-BCH-MessageType-V2X-r14
+}
+
+SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14
+
+
+MasterInformationBlock-SL ::= SEQUENCE {
+ sl-Bandwidth-r12 ENUMERATED {
+ n6, n15, n25, n50, n75, n100},
+ tdd-ConfigSL-r12 TDD-ConfigSL-r12,
+ directFrameNumber-r12 BIT STRING (SIZE (10)),
+ directSubframeNumber-r12 INTEGER (0..9),
+ inCoverage-r12 BOOLEAN,
+ reserved-r12 BIT STRING (SIZE (19))
+}
+
+
+
+MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE {
+ sl-Bandwidth-r14 ENUMERATED {
+ n6, n15, n25, n50, n75, n100},
+ tdd-ConfigSL-r14 TDD-ConfigSL-r12,
+ directFrameNumber-r14 BIT STRING (SIZE (10)),
+ directSubframeNumber-r14 INTEGER (0..9),
+ inCoverage-r14 BOOLEAN,
+ reserved-r14 BIT STRING (SIZE (27))
+}
+
+
+
+END
+
+
+NBIOT-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ RRCConnectionReestablishmentReject,
+ SecurityModeCommand,
+ SecurityModeComplete,
+ SecurityModeFailure,
+ AdditionalSpectrumEmission,
+ ARFCN-ValueEUTRA-r9,
+ CellIdentity,
+ C-RNTI,
+ DedicatedInfoNAS,
+ DRB-Identity,
+ InitialUE-Identity,
+ IntraFreqBlackCellList,
+ IntraFreqNeighCellList,
+ maxBands,
+ maxCellBlack,
+ maxCellInter,
+ maxCellIntra,
+ maxFBI2,
+ maxFreq,
+ maxMultiBands,
+ maxPageRec,
+ maxPLMN-r11,
+ maxSAI-MBMS-r11,
+ maxSIB,
+ maxSIB-1,
+ MBMS-SAI-r11,
+ MBMS-SAI-List-r11,
+ MBMSSessionInfo-r13,
+ NextHopChainingCount,
+ PagingUE-Identity,
+ PLMN-Identity,
+ P-Max,
+ PowerRampingParameters,
+ PreambleTransMax,
+ PhysCellId,
+ Q-OffsetRange,
+ Q-QualMin-r9,
+ Q-RxLevMin,
+ ReestabUE-Identity,
+ RegisteredMME,
+ ReselectionThreshold,
+ ResumeIdentity-r13,
+ RRC-TransactionIdentifier,
+ RSRP-Range,
+ ShortMAC-I,
+ S-TMSI,
+ SystemInformationBlockType16-r11,
+ SystemInfoValueTagSI-r13,
+ T-Reordering,
+ TimeAlignmentTimer,
+ TMGI-r9,
+ TrackingAreaCode,
+ DataInactivityTimer-r14
+
+FROM EUTRA-RRC-Definitions;
+
+
+BCCH-BCH-Message-NB ::= SEQUENCE {
+ message BCCH-BCH-MessageType-NB
+}
+
+
+BCCH-BCH-MessageType-NB::= MasterInformationBlock-NB
+
+
+
+BCCH-BCH-Message-TDD-NB ::= SEQUENCE {
+ message BCCH-BCH-MessageType-TDD-NB-r15
+}
+
+
+BCCH-BCH-MessageType-TDD-NB-r15 ::= MasterInformationBlock-TDD-NB-r15
+
+
+BCCH-DL-SCH-Message-NB ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType-NB
+}
+
+BCCH-DL-SCH-MessageType-NB ::= CHOICE {
+ c1 CHOICE {
+ systemInformation-r13 SystemInformation-NB,
+ systemInformationBlockType1-r13 SystemInformationBlockType1-NB
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+PCCH-Message-NB ::= SEQUENCE {
+ message PCCH-MessageType-NB
+}
+
+PCCH-MessageType-NB ::= CHOICE {
+ c1 CHOICE {
+ paging-r13 Paging-NB
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-CCCH-Message-NB ::= SEQUENCE {
+ message DL-CCCH-MessageType-NB
+}
+
+DL-CCCH-MessageType-NB ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB,
+ rrcConnectionReestablishmentReject-r13 RRCConnectionReestablishmentReject,
+ rrcConnectionReject-r13 RRCConnectionReject-NB,
+ rrcConnectionSetup-r13 RRCConnectionSetup-NB,
+ rrcEarlyDataComplete-r15 RRCEarlyDataComplete-NB-r15,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DL-DCCH-Message-NB ::= SEQUENCE {
+ message DL-DCCH-MessageType-NB
+}
+
+DL-DCCH-MessageType-NB ::= CHOICE {
+ c1 CHOICE {
+ dlInformationTransfer-r13 DLInformationTransfer-NB,
+ rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB,
+ rrcConnectionRelease-r13 RRCConnectionRelease-NB,
+ securityModeCommand-r13 SecurityModeCommand,
+ ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB,
+ rrcConnectionResume-r13 RRCConnectionResume-NB,
+ spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+
+UL-CCCH-Message-NB ::= SEQUENCE {
+ message UL-CCCH-MessageType-NB
+}
+
+UL-CCCH-MessageType-NB ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReestablishmentRequest-r13 RRCConnectionReestablishmentRequest-NB,
+ rrcConnectionRequest-r13 RRCConnectionRequest-NB,
+ rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB,
+ rrcEarlyDataRequest-r15 RRCEarlyDataRequest-NB-r15
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+SC-MCCH-Message-NB ::= SEQUENCE {
+ message SC-MCCH-MessageType-NB
+}
+
+
+SC-MCCH-MessageType-NB ::= CHOICE {
+ c1 CHOICE {
+ scptmConfiguration-r14 SCPTMConfiguration-NB-r14
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+UL-DCCH-Message-NB ::= SEQUENCE {
+ message UL-DCCH-MessageType-NB
+}
+
+UL-DCCH-MessageType-NB ::= CHOICE {
+ c1 CHOICE {
+ rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB,
+ rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB,
+ rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB,
+ securityModeComplete-r13 SecurityModeComplete,
+ securityModeFailure-r13 SecurityModeFailure,
+ ueCapabilityInformation-r13 UECapabilityInformation-NB,
+ ulInformationTransfer-r13 ULInformationTransfer-NB,
+ rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB,
+ spare8 NULL, spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+
+DLInformationTransfer-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ dlInformationTransfer-r13 DLInformationTransfer-NB-r13-IEs,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+DLInformationTransfer-NB-r13-IEs ::= SEQUENCE {
+ dedicatedInfoNAS-r13 DedicatedInfoNAS,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+MasterInformationBlock-NB ::= SEQUENCE {
+ systemFrameNumber-MSB-r13 BIT STRING (SIZE (4)),
+ hyperSFN-LSB-r13 BIT STRING (SIZE (2)),
+ schedulingInfoSIB1-r13 INTEGER (0..15),
+ systemInfoValueTag-r13 INTEGER (0..31),
+ ab-Enabled-r13 BOOLEAN,
+ operationModeInfo-r13 CHOICE {
+ inband-SamePCI-r13 Inband-SamePCI-NB-r13,
+ inband-DifferentPCI-r13 Inband-DifferentPCI-NB-r13,
+ guardband-r13 Guardband-NB-r13,
+ standalone-r13 Standalone-NB-r13
+ },
+ additionalTransmissionSIB1-r15 BOOLEAN,
+ spare BIT STRING (SIZE (10))
+}
+
+Guardband-NB-r13 ::= SEQUENCE {
+ rasterOffset-r13 ChannelRasterOffset-NB-r13,
+ spare BIT STRING (SIZE (3))
+}
+
+Inband-SamePCI-NB-r13 ::= SEQUENCE {
+ eutra-CRS-SequenceInfo-r13 INTEGER (0..31)
+}
+
+Inband-DifferentPCI-NB-r13 ::= SEQUENCE {
+ eutra-NumCRS-Ports-r13 ENUMERATED {same, four},
+ rasterOffset-r13 ChannelRasterOffset-NB-r13,
+ spare BIT STRING (SIZE (2))
+}
+
+Standalone-NB-r13 ::= SEQUENCE {
+ spare BIT STRING (SIZE (5))
+}
+
+
+MasterInformationBlock-TDD-NB-r15 ::= SEQUENCE {
+ systemFrameNumber-MSB-r15 BIT STRING (SIZE (4)),
+ hyperSFN-LSB-r15 BIT STRING (SIZE (2)),
+ schedulingInfoSIB1-r15 INTEGER (0..15),
+ systemInfoValueTag-r15 INTEGER (0..31),
+ ab-Enabled-r15 BOOLEAN,
+ operationModeInfo-r15 CHOICE {
+ inband-SamePCI-r15 Inband-SamePCI-TDD-NB-r15,
+ inband-DifferentPCI-r15 Inband-DifferentPCI-TDD-NB-r15,
+ guardband-r15 GuardbandTDD-NB-r15,
+ standalone-r15 StandaloneTDD-NB-r15
+ },
+ sib1-CarrierInfo-r15 ENUMERATED {anchor, non-anchor},
+ spare BIT STRING (SIZE (9))
+}
+
+GuardbandTDD-NB-r15 ::= SEQUENCE {
+ rasterOffset-r15 ChannelRasterOffset-NB-r13,
+ sib-GuardbandInfo-r15 CHOICE {
+ sib-GuardbandAnchor-r15 SIB-GuardbandAnchorTDD-NB-r15,
+ sib-GuardbandGuardband-r15 SIB-GuardbandGuardbandTDD-NB-r15,
+ sib-GuardbandInbandSamePCI-r15 SIB-GuardbandInbandSamePCI-TDD-NB-r15,
+ sib-GuardbandinbandDiffPCI-r15 SIB-GuardbandInbandDiffPCI-TDD-NB-r15
+ },
+ eutra-Bandwitdh-r15 ENUMERATED {bw5or10, bw15or20}
+}
+
+Inband-SamePCI-TDD-NB-r15 ::= SEQUENCE {
+ eutra-CRS-SequenceInfo-r15 INTEGER (0..31),
+ sib-InbandLocation-r15 ENUMERATED {lower, higher}
+}
+
+Inband-DifferentPCI-TDD-NB-r15 ::= SEQUENCE {
+ eutra-NumCRS-Ports-r15 ENUMERATED {same, four},
+ rasterOffset-r15 ChannelRasterOffset-NB-r13,
+ sib-InbandLocation-r15 ENUMERATED {lower, higher},
+ spare BIT STRING (SIZE (2))
+}
+
+StandaloneTDD-NB-r15 ::= SEQUENCE {
+ sib-StandaloneLocation-r15 ENUMERATED {lower, higher},
+ spare BIT STRING (SIZE (5))
+}
+
+SIB-GuardbandAnchorTDD-NB-r15 ::= SEQUENCE {
+ spare BIT STRING (SIZE (1))
+}
+
+SIB-GuardbandGuardbandTDD-NB-r15 ::= SEQUENCE {
+ sib-GuardbandGuardbandLocation-r15 ENUMERATED {same, opposite}
+}
+
+SIB-GuardbandInbandSamePCI-TDD-NB-r15 ::= SEQUENCE {
+ spare BIT STRING (SIZE (1))
+}
+
+SIB-GuardbandInbandDiffPCI-TDD-NB-r15 ::= SEQUENCE {
+ sib-EUTRA-NumCRS-Ports-r15 ENUMERATED {same, four}
+}
+
+
+Paging-NB ::= SEQUENCE {
+ pagingRecordList-r13 PagingRecordList-NB-r13 OPTIONAL, -- Need ON
+ systemInfoModification-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ systemInfoModification-eDRX-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+PagingRecordList-NB-r13 ::= SEQUENCE (SIZE (1..maxPageRec)) OF PagingRecord-NB-r13
+
+PagingRecord-NB-r13 ::= SEQUENCE {
+ ue-Identity-r13 PagingUE-Identity,
+ ...
+}
+
+
+RRCConnectionReconfiguration-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReconfiguration-r13 RRCConnectionReconfiguration-NB-r13-IEs,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfiguration-NB-r13-IEs ::= SEQUENCE {
+ dedicatedInfoNASList-r13 SEQUENCE (SIZE(1..maxDRB-NB-r13)) OF
+ DedicatedInfoNAS OPTIONAL, -- Need ON
+ radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON
+ fullConfig-r13 ENUMERATED {true} OPTIONAL, -- Cond Reestab
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReconfigurationComplete-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReconfigurationComplete-r13 RRCConnectionReconfigurationComplete-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+
+RRCConnectionReestablishment-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ rrcConnectionReestablishment-r13 RRCConnectionReestablishment-NB-r13-IEs,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishment-NB-r13-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13,
+ nextHopChainingCount-r13 NextHopChainingCount,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishment-NB-v1430-IEs OPTIONAL
+}
+
+RRCConnectionReestablishment-NB-v1430-IEs ::= SEQUENCE {
+ dl-NAS-MAC BIT STRING (SIZE (16)) OPTIONAL, -- Cond Reestablish-CP
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentComplete-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentComplete-r13 RRCConnectionReestablishmentComplete-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionReestablishmentComplete-NB-v1470-IEs OPTIONAL
+}
+
+RRCConnectionReestablishmentComplete-NB-v1470-IEs ::= SEQUENCE {
+ measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionReestablishmentRequest-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionReestablishmentRequest-r13
+ RRCConnectionReestablishmentRequest-NB-r13-IEs,
+ later CHOICE {
+ rrcConnectionReestablishmentRequest-r14
+ RRCConnectionReestablishmentRequest-NB-r14-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+ }
+}
+
+RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE {
+ ue-Identity-r13 ReestabUE-Identity,
+ reestablishmentCause-r13 ReestablishmentCause-NB-r13,
+ cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14,
+ earlyContentionResolution-r14 BOOLEAN,
+ spare BIT STRING (SIZE (20))
+}
+
+RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE {
+ ue-Identity-r14 ReestabUE-Identity-CP-NB-r14,
+ reestablishmentCause-r14 ReestablishmentCause-NB-r13,
+ cqi-NPDCCH-r14 CQI-NPDCCH-Short-NB-r14,
+ earlyContentionResolution-r14 BOOLEAN,
+ spare BIT STRING (SIZE (1))
+}
+
+ReestablishmentCause-NB-r13 ::= ENUMERATED {
+ reconfigurationFailure, otherFailure,
+ spare2, spare1}
+
+ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE {
+ s-TMSI-r14 S-TMSI,
+ ul-NAS-MAC-r14 BIT STRING (SIZE (16)),
+ ul-NAS-Count-r14 BIT STRING (SIZE (5))
+}
+
+
+RRCConnectionReject-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionReject-r13 RRCConnectionReject-NB-r13-IEs,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionReject-NB-r13-IEs ::= SEQUENCE {
+ extendedWaitTime-r13 INTEGER (1..1800),
+ rrc-SuspendIndication-r13 ENUMERATED {true} OPTIONAL, -- Need ON
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionRelease-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionRelease-r13 RRCConnectionRelease-NB-r13-IEs,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRelease-NB-r13-IEs ::= SEQUENCE {
+ releaseCause-r13 ReleaseCause-NB-r13,
+ resumeIdentity-r13 ResumeIdentity-r13 OPTIONAL, -- Need OR
+ extendedWaitTime-r13 INTEGER (1..1800) OPTIONAL, -- Need ON
+ redirectedCarrierInfo-r13 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionRelease-NB-v1430-IEs OPTIONAL
+}
+
+RRCConnectionRelease-NB-v1430-IEs ::= SEQUENCE {
+ redirectedCarrierInfo-v1430 RedirectedCarrierInfo-NB-v1430 OPTIONAL, -- Cond Redirection
+ extendedWaitTime-CPdata-r14 INTEGER (1..1800) OPTIONAL, -- Cond NoExtendedWaitTime
+ nonCriticalExtension RRCConnectionRelease-NB-v1530-IEs OPTIONAL
+}
+
+RRCConnectionRelease-NB-v1530-IEs ::= SEQUENCE {
+ drb-ContinueROHC-r15 ENUMERATED {true} OPTIONAL, -- Cond UP-EDT
+ nextHopChainingCount-r15 NextHopChainingCount OPTIONAL, -- Cond UP-EDT
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+ReleaseCause-NB-r13 ::= ENUMERATED {loadBalancingTAUrequired, other,
+ rrc-Suspend, spare1}
+RedirectedCarrierInfo-NB-r13::= CarrierFreq-NB-r13
+
+RedirectedCarrierInfo-NB-v1430 ::= SEQUENCE {
+ redirectedCarrierOffsetDedicated-r14 ENUMERATED{
+ dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24, dB26},
+ t322-r14 ENUMERATED{
+ min5, min10, min20, min30, min60, min120, min180,
+ spare1}
+}
+
+
+RRCConnectionRequest-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionRequest-r13 RRCConnectionRequest-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE {
+ ue-Identity-r13 InitialUE-Identity,
+ establishmentCause-r13 EstablishmentCause-NB-r13,
+ multiToneSupport-r13 ENUMERATED {true} OPTIONAL,
+ multiCarrierSupport-r13 ENUMERATED {true} OPTIONAL,
+ earlyContentionResolution-r14 BOOLEAN,
+ cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14,
+ spare BIT STRING (SIZE (17))
+}
+
+
+RRCConnectionResume-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionResume-r13 RRCConnectionResume-NB-r13-IEs,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionResume-NB-r13-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13 OPTIONAL, -- Need ON
+ nextHopChainingCount-r13 NextHopChainingCount,
+ drb-ContinueROHC-r13 ENUMERATED {true} OPTIONAL, -- Need OP
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionResumeComplete-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcConnectionResumeComplete-r13 RRCConnectionResumeComplete-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE {
+ selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11) OPTIONAL,
+ dedicatedInfoNAS-r13 DedicatedInfoNAS OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionResumeComplete-NB-v1470-IEs OPTIONAL
+}
+
+RRCConnectionResumeComplete-NB-v1470-IEs ::= SEQUENCE {
+ measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionResumeRequest-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcConnectionResumeRequest-r13 RRCConnectionResumeRequest-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE {
+ resumeID-r13 ResumeIdentity-r13,
+ shortResumeMAC-I-r13 ShortMAC-I,
+ resumeCause-r13 EstablishmentCause-NB-r13,
+ earlyContentionResolution-r14 BOOLEAN,
+ cqi-NPDCCH-r14 CQI-NPDCCH-NB-r14,
+ spare BIT STRING (SIZE (4))
+}
+
+
+RRCConnectionSetup-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ rrcConnectionSetup-r13 RRCConnectionSetup-NB-r13-IEs,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetup-NB-r13-IEs ::= SEQUENCE {
+ radioResourceConfigDedicated-r13 RadioResourceConfigDedicated-NB-r13,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCConnectionSetupComplete-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE{
+ rrcConnectionSetupComplete-r13 RRCConnectionSetupComplete-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE {
+ selectedPLMN-Identity-r13 INTEGER (1..maxPLMN-r11),
+ s-TMSI-r13 S-TMSI OPTIONAL,
+ registeredMME-r13 RegisteredMME OPTIONAL,
+ dedicatedInfoNAS-r13 DedicatedInfoNAS,
+ attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL,
+ up-CIoT-EPS-Optimisation-r13 ENUMERATED {true} OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-NB-v1430-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE {
+ gummei-Type-r14 ENUMERATED { mapped} OPTIONAL,
+ dcn-ID-r14 INTEGER (0..65535) OPTIONAL,
+ nonCriticalExtension RRCConnectionSetupComplete-NB-v1470-IEs OPTIONAL
+}
+
+RRCConnectionSetupComplete-NB-v1470-IEs ::= SEQUENCE {
+ measResultServCell-r14 MeasResultServCell-NB-r14 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCEarlyDataComplete-NB-r15 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcEarlyDataComplete-r15 RRCEarlyDataComplete-NB-r15-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCEarlyDataComplete-NB-r15-IEs ::= SEQUENCE {
+ dedicatedInfoNAS-r15 DedicatedInfoNAS OPTIONAL, -- Need ON
+ extendedWaitTime-r15 INTEGER (1..1800) OPTIONAL, -- Need ON
+ redirectedCarrierInfo-r15 RedirectedCarrierInfo-NB-r13 OPTIONAL, -- Need ON
+ redirectedCarrierInfoExt-r15 RedirectedCarrierInfo-NB-v1430 OPTIONAL, -- Cond Redirection
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+RRCEarlyDataRequest-NB-r15 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcEarlyDataRequest-r15 RRCEarlyDataRequest-NB-r15-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCEarlyDataRequest-NB-r15-IEs ::= SEQUENCE {
+ s-TMSI-r15 S-TMSI,
+ establishmentCause-r15 ENUMERATED {mo-Data-r15, mo-ExceptionData-r15,
+ delayTolerantAccess-r15, spare1},
+ cqi-NPDCCH-r15 CQI-NPDCCH-NB-r14 OPTIONAL,
+ dedicatedInfoNAS-r15 DedicatedInfoNAS,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SCPTMConfiguration-NB-r14 ::= SEQUENCE {
+ sc-mtch-InfoList-r14 SC-MTCH-InfoList-NB-r14,
+ scptm-NeighbourCellList-r14 SCPTM-NeighbourCellList-NB-r14 OPTIONAL, -- Need OP
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformation-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r13 SystemInformation-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+SystemInformation-NB-r13-IEs ::= SEQUENCE {
+ sib-TypeAndInfo-r13 SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
+ sib2-r13 SystemInformationBlockType2-NB-r13,
+ sib3-r13 SystemInformationBlockType3-NB-r13,
+ sib4-r13 SystemInformationBlockType4-NB-r13,
+ sib5-r13 SystemInformationBlockType5-NB-r13,
+ sib14-r13 SystemInformationBlockType14-NB-r13,
+ sib16-r13 SystemInformationBlockType16-NB-r13,
+ ...,
+ sib15-v1430 SystemInformationBlockType15-NB-r14,
+ sib20-v1430 SystemInformationBlockType20-NB-r14,
+ sib22-v1430 SystemInformationBlockType22-NB-r14,
+ sib23-v1530 SystemInformationBlockType23-NB-r15
+ },
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformationBlockType1-NB ::= SEQUENCE {
+ hyperSFN-MSB-r13 BIT STRING (SIZE (8)),
+ cellAccessRelatedInfo-r13 SEQUENCE {
+ plmn-IdentityList-r13 PLMN-IdentityList-NB-r13,
+ trackingAreaCode-r13 TrackingAreaCode,
+ cellIdentity-r13 CellIdentity,
+ cellBarred-r13 ENUMERATED {barred, notBarred},
+ intraFreqReselection-r13 ENUMERATED {allowed, notAllowed}
+ },
+ cellSelectionInfo-r13 SEQUENCE {
+ q-RxLevMin-r13 Q-RxLevMin,
+ q-QualMin-r13 Q-QualMin-r9
+ },
+ p-Max-r13 P-Max OPTIONAL, -- Need OP
+ freqBandIndicator-r13 FreqBandIndicator-NB-r13,
+ freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR
+ multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR
+ downlinkBitmap-r13 DL-Bitmap-NB-r13 OPTIONAL, -- Cond SIB1
+ eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3} OPTIONAL, -- Cond inband
+ nrs-CRS-PowerOffset-r13 ENUMERATED {dB-6, dB-4dot77, dB-3,
+ dB-1dot77, dB0, dB1,
+ dB1dot23, dB2, dB3,
+ dB4, dB4dot23, dB5,
+ dB6, dB7, dB8,
+ dB9} OPTIONAL, -- Cond inband-SamePCI
+ schedulingInfoList-r13 SchedulingInfoList-NB-r13,
+ si-WindowLength-r13 ENUMERATED {ms160, ms320, ms480, ms640,
+ ms960, ms1280, ms1600, spare1},
+ si-RadioFrameOffset-r13 INTEGER (1..15) OPTIONAL, -- Need OP
+ systemInfoValueTagList-r13 SystemInfoValueTagList-NB-r13 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SystemInformationBlockType1-NB-v1350 OPTIONAL
+}
+
+SystemInformationBlockType1-NB-v1350 ::= SEQUENCE {
+ cellSelectionInfo-v1350 CellSelectionInfo-NB-v1350 OPTIONAL, -- Cond Qrxlevmin
+ nonCriticalExtension SystemInformationBlockType1-NB-v1430 OPTIONAL
+}
+
+SystemInformationBlockType1-NB-v1430 ::= SEQUENCE {
+ cellSelectionInfo-v1430 CellSelectionInfo-NB-v1430 OPTIONAL, -- Need OR
+ nonCriticalExtension SystemInformationBlockType1-NB-v1450 OPTIONAL
+}
+
+SystemInformationBlockType1-NB-v1450 ::= SEQUENCE {
+ nrs-CRS-PowerOffset-v1450 ENUMERATED {dB-6, dB-4dot77, dB-3,
+ dB-1dot77, dB0, dB1,
+ dB1dot23, dB2, dB3,
+ dB4, dB4dot23, dB5,
+ dB6, dB7, dB8,
+ dB9} OPTIONAL, -- Cond inband-SamePCI-ExceptAnchor
+ nonCriticalExtension SystemInformationBlockType1-NB-v1530 OPTIONAL
+}
+
+SystemInformationBlockType1-NB-v1530 ::= SEQUENCE {
+ tdd-Parameters-r15 SEQUENCE {
+ tdd-Config-r15 TDD-Config-NB-r15,
+ tdd-SI-CarrierInfo-r15 ENUMERATED {anchor, non-anchor},
+ tdd-SI-SubframesBitmap-r15 DL-Bitmap-NB-r13 OPTIONAL -- Cond TDD-SI-NonAnchor
+ } OPTIONAL, -- Cond TDD
+ schedulingInfoList-v1530 SchedulingInfoList-NB-v1530 OPTIONAL, -- Need OR
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+PLMN-IdentityList-NB-r13 ::= SEQUENCE (SIZE (1..maxPLMN-r11)) OF PLMN-IdentityInfo-NB-r13
+
+PLMN-IdentityInfo-NB-r13 ::= SEQUENCE {
+ plmn-Identity-r13 PLMN-Identity,
+ cellReservedForOperatorUse-r13 ENUMERATED {reserved, notReserved},
+ attachWithoutPDN-Connectivity-r13 ENUMERATED {true} OPTIONAL -- Need OP
+}
+
+SchedulingInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-r13
+
+SchedulingInfoList-NB-v1530 ::= SEQUENCE (SIZE (1..maxSI-Message-NB-r13)) OF SchedulingInfo-NB-v1530
+
+SchedulingInfo-NB-r13::= SEQUENCE {
+ si-Periodicity-r13 ENUMERATED {rf64, rf128, rf256, rf512,
+ rf1024, rf2048, rf4096, spare},
+ si-RepetitionPattern-r13 ENUMERATED {every2ndRF, every4thRF, every8thRF, every16thRF},
+ sib-MappingInfo-r13 SIB-MappingInfo-NB-r13,
+ si-TB-r13 ENUMERATED {b56, b120, b208, b256, b328, b440, b552, b680}
+}
+
+SchedulingInfo-NB-v1530::= SEQUENCE {
+ sib-MappingInfo-v1530 SIB-MappingInfo-NB-v1530 OPTIONAL -- Need OR
+}
+
+SystemInfoValueTagList-NB-r13 ::= SEQUENCE (SIZE (1.. maxSI-Message-NB-r13)) OF
+ SystemInfoValueTagSI-r13
+
+SIB-MappingInfo-NB-r13 ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type-NB-r13
+
+SIB-MappingInfo-NB-v1530 ::= SEQUENCE (SIZE (1..8)) OF SIB-Type-NB-v1530
+
+SIB-Type-NB-r13 ::= ENUMERATED {
+ sibType3-NB-r13, sibType4-NB-r13, sibType5-NB-r13,
+ sibType14-NB-r13, sibType16-NB-r13, sibType15-NB-r14,
+ sibType20-NB-r14, sibType22-NB-r14}
+
+SIB-Type-NB-v1530 ::= ENUMERATED {
+ sibType23-NB-r15, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1}
+
+CellSelectionInfo-NB-v1350 ::= SEQUENCE {
+ delta-RxLevMin-v1350 INTEGER (-8..-1)
+}
+
+CellSelectionInfo-NB-v1430 ::= SEQUENCE {
+ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP
+ ce-authorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP
+}
+
+
+UECapabilityEnquiry-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ c1 CHOICE {
+ ueCapabilityEnquiry-r13 UECapabilityEnquiry-NB-r13-IEs,
+ spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityEnquiry-NB-r13-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UECapabilityInformation-NB ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE{
+ ueCapabilityInformation-r13 UECapabilityInformation-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityInformation-NB-r13-IEs ::= SEQUENCE {
+ ue-Capability-r13 UE-Capability-NB-r13,
+ ue-RadioPagingInfo-r13 UE-RadioPagingInfo-NB-r13,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UECapabilityInformation-NB-Ext-r14-IEs OPTIONAL
+}
+
+UECapabilityInformation-NB-Ext-r14-IEs ::= SEQUENCE {
+ ue-Capability-ContainerExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+ULInformationTransfer-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ ulInformationTransfer-r13 ULInformationTransfer-NB-r13-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULInformationTransfer-NB-r13-IEs ::= SEQUENCE {
+ dedicatedInfoNAS-r13 DedicatedInfoNAS,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SystemInformationBlockType2-NB-r13 ::= SEQUENCE {
+ radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13,
+ ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13,
+ freqInfo-r13 SEQUENCE {
+ ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP
+ additionalSpectrumEmission-r13 AdditionalSpectrumEmission
+ },
+ timeAlignmentTimerCommon-r13 TimeAlignmentTimer,
+ multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ cp-Reestablishment-r14 ENUMERATED {true} OPTIONAL -- Need OP
+ ]],
+ [[ servingCellMeasInfo-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ cqi-Reporting-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ enhancedPHR-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ freqInfo-v1530 SEQUENCE {
+ tdd-UL-DL-AlignmentOffset-r15 TDD-UL-DL-AlignmentOffset-NB-r15
+ } OPTIONAL, -- Cond TDD
+ cp-EDT-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ up-EDT-r15 ENUMERATED {true} OPTIONAL -- Need OR
+ ]]
+}
+
+
+SystemInformationBlockType3-NB-r13 ::= SEQUENCE {
+ cellReselectionInfoCommon-r13 SEQUENCE {
+ q-Hyst-r13 ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24
+ }
+ },
+ cellReselectionServingFreqInfo-r13 SEQUENCE {
+ s-NonIntraSearch-r13 ReselectionThreshold
+ },
+ intraFreqCellReselectionInfo-r13 SEQUENCE {
+ q-RxLevMin-r13 Q-RxLevMin,
+ q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP
+ p-Max-r13 P-Max OPTIONAL, -- Need OP
+ s-IntraSearchP-r13 ReselectionThreshold,
+ t-Reselection-r13 T-Reselection-NB-r13
+ },
+ freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL, -- Need OR
+ multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF
+ NS-PmaxList-NB-r13 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ intraFreqCellReselectionInfo-v1350 IntraFreqCellReselectionInfo-NB-v1350 OPTIONAL -- Cond Qrxlevmin
+ ]],
+ [[ intraFreqCellReselectionInfo-v1360 IntraFreqCellReselectionInfo-NB-v1360 OPTIONAL -- Need OR
+ ]],
+ [[ intraFreqCellReselectionInfo-v1430 IntraFreqCellReselectionInfo-NB-v1430 OPTIONAL -- Need OR
+ ]],
+ [[ cellReselectionInfoCommon-v1450 CellReselectionInfoCommon-NB-v1450 OPTIONAL -- Need OR
+ ]],
+ [[ nsss-RRM-Config-r15 NSSS-RRM-Config-NB-r15 OPTIONAL, -- Need OR
+ npbch-RRM-Config-r15 ENUMERATED {enabled} OPTIONAL -- Need OR
+ ]]
+}
+
+IntraFreqCellReselectionInfo-NB-v1350 ::= SEQUENCE {
+ delta-RxLevMin-v1350 INTEGER (-8..-1)
+}
+
+IntraFreqCellReselectionInfo-NB-v1360 ::= SEQUENCE {
+ s-IntraSearchP-v1360 ReselectionThreshold-NB-v1360
+}
+
+IntraFreqCellReselectionInfo-NB-v1430 ::= SEQUENCE {
+ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12} OPTIONAL, -- Need OP
+ ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP
+}
+
+CellReselectionInfoCommon-NB-v1450 ::= SEQUENCE {
+ s-SearchDeltaP-r14 ENUMERATED {dB6, dB9, dB12, dB15}
+}
+
+
+SystemInformationBlockType4-NB-r13 ::= SEQUENCE {
+ intraFreqNeighCellList-r13 IntraFreqNeighCellList OPTIONAL, -- Need OR
+ intraFreqBlackCellList-r13 IntraFreqBlackCellList OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ nsss-RRM-Config-r15 NSSS-RRM-Config-NB-r15 OPTIONAL, -- Need OR
+ intraFreqNeighCellList-v1530 IntraFreqNeighCellList-NB-v1530 OPTIONAL -- Need OR
+ ]]
+}
+
+IntraFreqNeighCellList-NB-v1530 ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo-NB-v1530
+
+IntraFreqNeighCellInfo-NB-v1530 ::= SEQUENCE {
+ nsss-RRM-Config-r15 NSSS-RRM-Config-NB-r15 OPTIONAL -- Cond NSSS-RRM
+}
+
+
+SystemInformationBlockType5-NB-r13 ::= SEQUENCE {
+ interFreqCarrierFreqList-r13 InterFreqCarrierFreqList-NB-r13,
+ t-Reselection-r13 T-Reselection-NB-r13,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ scptm-FreqOffset-r14 INTEGER (1..8) OPTIONAL -- Need OP
+ ]]
+}
+
+
+InterFreqCarrierFreqList-NB-r13 ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-NB-r13
+
+
+InterFreqCarrierFreqInfo-NB-r13 ::= SEQUENCE {
+ dl-CarrierFreq-r13 CarrierFreq-NB-r13,
+ q-RxLevMin-r13 Q-RxLevMin,
+ q-QualMin-r13 Q-QualMin-r9 OPTIONAL, -- Need OP
+ p-Max-r13 P-Max OPTIONAL, -- Need OP
+ q-OffsetFreq-r13 Q-OffsetRange DEFAULT dB0,
+ interFreqNeighCellList-r13 InterFreqNeighCellList-NB-r13 OPTIONAL, -- Need OR
+ interFreqBlackCellList-r13 InterFreqBlackCellList-NB-r13 OPTIONAL, -- Need OR
+ multiBandInfoList-r13 MultiBandInfoList-NB-r13 OPTIONAL, -- Need OR
+ ...,
+ [[ delta-RxLevMin-v1350 INTEGER (-8..-1) OPTIONAL -- Cond Qrxlevmin
+ ]],
+ [[ powerClass14dBm-Offset-r14 ENUMERATED {dB-6, dB-3, dB3, dB6, dB9, dB12}
+OPTIONAL, -- Need OP
+ ce-AuthorisationOffset-r14 ENUMERATED {dB5, dB10, dB15, dB20, dB25, dB30, dB35} OPTIONAL -- Need OP
+ ]],
+ [[ nsss-RRM-Config-r15 NSSS-RRM-Config-NB-r15 OPTIONAL, -- Need OR
+ interFreqNeighCellList-v1530 InterFreqNeighCellList-NB-v1530 OPTIONAL -- Need OR
+ ]]
+}
+
+InterFreqNeighCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellInter)) OF PhysCellId
+
+InterFreqNeighCellList-NB-v1530 ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo-NB-v1530
+
+InterFreqNeighCellInfo-NB-v1530 ::= SEQUENCE {
+ nsss-RRM-Config-r15 NSSS-RRM-Config-NB-r15 OPTIONAL -- Cond NSSS-RRM
+}
+
+InterFreqBlackCellList-NB-r13 ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellId
+
+
+SystemInformationBlockType14-NB-r13 ::= SEQUENCE {
+ ab-Param-r13 CHOICE {
+ ab-Common-r13 AB-Config-NB-r13,
+ ab-PerPLMN-List-r13 SEQUENCE (SIZE (1..maxPLMN-r11)) OF AB-ConfigPLMN-NB-r13
+ } OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ ab-PerNRSRP-r15 ENUMERATED {thresh1, thresh2} OPTIONAL -- Need OR
+ ]]
+}
+
+AB-ConfigPLMN-NB-r13 ::= SEQUENCE {
+ ab-Config-r13 AB-Config-NB-r13 OPTIONAL -- Need OR
+}
+
+AB-Config-NB-r13 ::= SEQUENCE {
+ ab-Category-r13 ENUMERATED {a, b, c},
+ ab-BarringBitmap-r13 BIT STRING (SIZE(10)),
+ ab-BarringForExceptionData-r13 ENUMERATED {true} OPTIONAL, -- Need OP
+ ab-BarringForSpecialAC-r13 BIT STRING (SIZE(5))
+}
+
+
+SystemInformationBlockType15-NB-r14 ::= SEQUENCE {
+ mbms-SAI-IntraFreq-r14 MBMS-SAI-List-r11 OPTIONAL, -- Need OR
+ mbms-SAI-InterFreqList-r14 MBMS-SAI-InterFreqList-NB-r14 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+MBMS-SAI-InterFreqList-NB-r14 ::= SEQUENCE (SIZE (1..maxFreq)) OF MBMS-SAI-InterFreq-NB-r14
+
+MBMS-SAI-InterFreq-NB-r14 ::= SEQUENCE {
+ dl-CarrierFreq-r14 CarrierFreq-NB-r13,
+ mbms-SAI-List-r14 MBMS-SAI-List-r11,
+ multiBandInfoList-r14 AdditionalBandInfoList-NB-r14 OPTIONAL -- Need OR
+}
+
+
+SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11
+
+
+SystemInformationBlockType20-NB-r14 ::= SEQUENCE {
+ npdcch-SC-MCCH-Config-r14 NPDCCH-SC-MCCH-Config-NB-r14,
+ sc-mcch-CarrierConfig-r14 CHOICE {
+ dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14,
+ dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14)
+ },
+ sc-mcch-RepetitionPeriod-r14 ENUMERATED {rf32, rf128, rf512, rf1024,
+ rf2048, rf4096, rf8192, rf16384},
+ sc-mcch-Offset-r14 INTEGER (0..10),
+ sc-mcch-ModificationPeriod-r14 ENUMERATED { rf32, rf128, rf256, rf512, rf1024,
+ rf2048, rf4096, rf8192, rf16384, rf32768,
+ rf65536, rf131072, rf262144, rf524288,
+ rf1048576, spare1},
+ sc-mcch-SchedulingInfo-r14 SC-MCCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+NPDCCH-SC-MCCH-Config-NB-r14 ::= SEQUENCE {
+ npdcch-NumRepetitions-SC-MCCH-r14 ENUMERATED {r1, r2, r4, r8, r16,
+ r32, r64, r128, r256,
+ r512, r1024, r2048},
+ npdcch-StartSF-SC-MCCH-r14 ENUMERATED {v1dot5, v2, v4, v8,
+ v16, v32, v48, v64},
+ npdcch-Offset-SC-MCCH-r14 ENUMERATED {zero, oneEighth, oneQuarter,
+ threeEighth, oneHalf, fiveEighth,
+ threeQuarter, sevenEighth}
+}
+
+SC-MCCH-SchedulingInfo-NB-r14::= SEQUENCE {
+ onDurationTimerSCPTM-r14 ENUMERATED {
+ pp1, pp2, pp3, pp4,
+ pp8, pp16, pp32, spare},
+ drx-InactivityTimerSCPTM-r14 ENUMERATED {
+ pp0, pp1, pp2, pp3,
+ pp4, pp8, pp16, pp32},
+ schedulingPeriodStartOffsetSCPTM-r14 CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf2048 INTEGER(0..2047),
+ sf4096 INTEGER(0..4095),
+ sf8192 INTEGER(0..8191)
+ },
+ ...
+}
+
+
+SystemInformationBlockType22-NB-r14 ::= SEQUENCE {
+ dl-ConfigList-r14 DL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR
+ ul-ConfigList-r14 UL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR
+ pagingWeightAnchor-r14 PagingWeight-NB-r14 OPTIONAL, -- Cond pcch-config
+ nprach-ProbabilityAnchorList-r14 NPRACH-ProbabilityAnchorList-NB-r14 OPTIONAL, -- Cond nprach-config
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...,
+ [[ mixedOperationModeConfig-r15 SEQUENCE {
+ dl-ConfigListMixed-r15 DL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR
+ ul-ConfigListMixed-r15 UL-ConfigCommonList-NB-r14 OPTIONAL, -- Need OR
+ pagingDistribution-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ nprach-Distribution-r15 ENUMERATED {true} OPTIONAL -- Need OR
+ } OPTIONAL, -- Need OR
+ ul-ConfigList-r15 UL-ConfigCommonListTDD-NB-r15 OPTIONAL -- Cond TDD
+ ]]
+}
+
+DL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF
+ DL-ConfigCommon-NB-r14
+
+UL-ConfigCommonList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF
+ UL-ConfigCommon-NB-r14
+
+UL-ConfigCommonListTDD-NB-r15 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF
+ UL-ConfigCommonTDD-NB-r15
+
+DL-ConfigCommon-NB-r14 ::= SEQUENCE {
+ dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14,
+ pcch-Config-r14 PCCH-Config-NB-r14 OPTIONAL, -- Need OR
+ ...,
+ [[ wus-Config-r15 WUS-ConfigPerCarrier-NB-r15 OPTIONAL -- Cond WUS
+ ]]
+}
+
+PCCH-Config-NB-r14 ::= SEQUENCE {
+ npdcch-NumRepetitionPaging-r14 ENUMERATED {
+ r1, r2, r4, r8, r16, r32, r64, r128,
+ r256, r512, r1024, r2048,
+ spare4, spare3, spare2, spare1} OPTIONAL, -- Need OP
+ pagingWeight-r14 PagingWeight-NB-r14 DEFAULT w1,
+ ...
+}
+
+PagingWeight-NB-r14 ::= ENUMERATED {w1, w2, w3, w4, w5, w6, w7, w8,
+ w9, w10, w11, w12, w13, w14, w15, w16}
+
+UL-ConfigCommon-NB-r14 ::= SEQUENCE {
+ ul-CarrierFreq-r14 CarrierFreq-NB-r13,
+ nprach-ParametersList-r14 NPRACH-ParametersList-NB-r14 OPTIONAL, -- Need OR
+ ...,
+ [[ nprach-ParametersListEDT-r15 NPRACH-ParametersList-NB-r14 OPTIONAL -- Cond EDT
+ ]]
+}
+
+UL-ConfigCommonTDD-NB-r15 ::= SEQUENCE {
+ tdd-UL-DL-AlignmentOffset-r15 TDD-UL-DL-AlignmentOffset-NB-r15,
+ nprach-ParametersListTDD-r15 NPRACH-ParametersListTDD-NB-r15 OPTIONAL, -- Need OR
+ ...
+}
+
+NPRACH-ParametersList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF
+ NPRACH-Parameters-NB-r14
+
+
+NPRACH-Parameters-NB-r14 ::= SEQUENCE {
+ nprach-Parameters-r14 SEQUENCE {
+ nprach-Periodicity-r14 ENUMERATED {ms40, ms80, ms160, ms240,
+ ms320, ms640, ms1280, ms2560}
+ OPTIONAL, -- NEED OP
+ nprach-StartTime-r14 ENUMERATED {ms8, ms16, ms32, ms64,
+ ms128, ms256, ms512, ms1024}
+ OPTIONAL, -- NEED OP
+ nprach-SubcarrierOffset-r14 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}
+ OPTIONAL, -- NEED OP
+ nprach-NumSubcarriers-r14 ENUMERATED {n12, n24, n36, n48}
+ OPTIONAL, -- NEED OP
+ nprach-SubcarrierMSG3-RangeStart-r14 ENUMERATED {zero, oneThird, twoThird, one}
+ OPTIONAL, -- NEED OP
+ npdcch-NumRepetitions-RA-r14 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128,
+ r256, r512, r1024, r2048,
+ spare4, spare3, spare2, spare1}
+ OPTIONAL, -- NEED OP
+ npdcch-StartSF-CSS-RA-r14 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}
+ OPTIONAL, -- NEED OP
+ npdcch-Offset-RA-r14 ENUMERATED {zero, oneEighth, oneFourth, threeEighth}
+ OPTIONAL, -- NEED OP
+ nprach-NumCBRA-StartSubcarriers-r14 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24,
+ n32, n34, n35, n36, n40, n44, n46, n48}
+ OPTIONAL, -- NEED OP
+ npdcch-CarrierIndex-r14 INTEGER (1..maxNonAnchorCarriers-NB-r14)
+ OPTIONAL, -- Need OP
+ ...
+ } OPTIONAL -- Need OR
+}
+
+NPRACH-ProbabilityAnchorList-NB-r14 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF
+ NPRACH-ProbabilityAnchor-NB-r14
+
+NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE {
+ nprach-ProbabilityAnchor-r14 ENUMERATED {
+ zero, oneSixteenth, oneFifteenth, oneFourteenth,
+ oneThirteenth, oneTwelfth, oneEleventh, oneTenth,
+ oneNinth, oneEighth, oneSeventh, oneSixth,
+ oneFifth, oneFourth, oneThird, oneHalf}
+ OPTIONAL -- Need OP
+}
+
+
+SystemInformationBlockType23-NB-r15 ::= SEQUENCE {
+ ul-ConfigList-v1530 UL-ConfigCommonList-NB-v1530 OPTIONAL, -- Need OR
+ ul-ConfigListMixed-v1530 UL-ConfigCommonList-NB-v1530 OPTIONAL, -- Need OR
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+UL-ConfigCommonList-NB-v1530 ::= SEQUENCE (SIZE (1.. maxNonAnchorCarriers-NB-r14)) OF
+ UL-ConfigCommon-NB-v1530
+
+UL-ConfigCommon-NB-v1530 ::= SEQUENCE {
+ nprach-ParametersListFmt2-r15 NPRACH-ParametersListFmt2-NB-r15 OPTIONAL, -- Need OR
+ nprach-ParametersListFmt2EDT-r15 NPRACH-ParametersListFmt2-NB-r15 OPTIONAL, -- Cond EDT
+ ...
+}
+
+
+CarrierConfigDedicated-NB-r13 ::= SEQUENCE {
+ dl-CarrierConfig-r13 DL-CarrierConfigDedicated-NB-r13,
+ ul-CarrierConfig-r13 UL-CarrierConfigDedicated-NB-r13
+}
+
+DL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE {
+ dl-CarrierFreq-r13 CarrierFreq-NB-r13,
+ downlinkBitmapNonAnchor-r13 CHOICE {
+ useNoBitmap-r13 NULL,
+ useAnchorBitmap-r13 NULL,
+ explicitBitmapConfiguration-r13 DL-Bitmap-NB-r13,
+ spare NULL
+ } OPTIONAL, -- Need ON
+ dl-GapNonAnchor-r13 CHOICE {
+ useNoGap-r13 NULL,
+ useAnchorGapConfig-r13 NULL,
+ explicitGapConfiguration-r13 DL-GapConfig-NB-r13,
+ spare NULL
+ } OPTIONAL, -- Need ON
+ inbandCarrierInfo-r13 SEQUENCE {
+ samePCI-Indicator-r13 CHOICE {
+ samePCI-r13 SEQUENCE {
+ indexToMidPRB-r13 INTEGER (-55..54)
+ },
+ differentPCI-r13 SEQUENCE {
+ eutra-NumCRS-Ports-r13 ENUMERATED {same, four}
+ }
+ } OPTIONAL, -- Cond anchor-guardband-or-standalone
+ eutraControlRegionSize-r13 ENUMERATED {n1, n2, n3}
+ } OPTIONAL, -- Cond non-anchor-inband
+ ...,
+ [[ nrs-PowerOffsetNonAnchor-v1330 ENUMERATED {dB-12, dB-10, dB-8, dB-6,
+ dB-4, dB-2, dB0, dB3}
+ OPTIONAL -- Need ON
+ ]],
+ [[ dl-GapNonAnchor-v1530 DL-GapConfig-NB-v1530 OPTIONAL -- Cond TDD1
+ ]]
+}
+
+UL-CarrierConfigDedicated-NB-r13 ::= SEQUENCE {
+ ul-CarrierFreq-r13 CarrierFreq-NB-r13 OPTIONAL, -- Need OP
+ ...,
+ [[ tdd-UL-DL-AlignmentOffset-r15 TDD-UL-DL-AlignmentOffset-NB-r15 OPTIONAL -- Cond TDD
+ ]]
+}
+
+
+CarrierFreq-NB-r13 ::= SEQUENCE {
+ carrierFreq-r13 ARFCN-ValueEUTRA-r9,
+ carrierFreqOffset-r13 ENUMERATED {
+ v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5,
+ v0, v1, v2, v3, v4, v5, v6, v7, v8, v9
+ } OPTIONAL -- Need ON
+}
+
+
+ChannelRasterOffset-NB-r13 ::= ENUMERATED {khz-7dot5, khz-2dot5, khz2dot5, khz7dot5}
+
+
+DL-Bitmap-NB-r13 ::= CHOICE {
+ subframePattern10-r13 BIT STRING (SIZE (10)),
+ subframePattern40-r13 BIT STRING (SIZE (40))
+}
+
+
+DL-CarrierConfigCommon-NB-r14 ::= SEQUENCE {
+ dl-CarrierFreq-r14 CarrierFreq-NB-r13,
+ downlinkBitmapNonAnchor-r14 CHOICE {
+ useNoBitmap-r14 NULL,
+ useAnchorBitmap-r14 NULL,
+ explicitBitmapConfiguration-r14 DL-Bitmap-NB-r13
+ },
+ dl-GapNonAnchor-r14 CHOICE {
+ useNoGap-r14 NULL,
+ useAnchorGapConfig-r14 NULL,
+ explicitGapConfiguration-r14 DL-GapConfig-NB-r13
+ },
+ inbandCarrierInfo-r14 SEQUENCE {
+ samePCI-Indicator-r14 CHOICE {
+ samePCI-r14 SEQUENCE {
+ indexToMidPRB-r14 INTEGER (-55..54)
+ },
+ differentPCI-r14 SEQUENCE {
+ eutra-NumCRS-Ports-r14 ENUMERATED {same, four}
+ }
+ } OPTIONAL, -- Cond anchor-guardband-or-standalone
+ eutraControlRegionSize-r14 ENUMERATED {n1, n2, n3}
+ } OPTIONAL, -- Cond non-anchor-inband
+ nrs-PowerOffsetNonAnchor-r14 ENUMERATED {dB-12, dB-10, dB-8, dB-6,
+ dB-4, dB-2, dB0, dB3} DEFAULT dB0,
+ ...,
+ [[ dl-GapNonAnchor-v1530 DL-GapConfig-NB-v1530 OPTIONAL -- Cond TDD
+ ]]
+}
+
+
+
+DL-GapConfig-NB-r13 ::= SEQUENCE {
+ dl-GapThreshold-r13 ENUMERATED {n32, n64, n128, n256},
+ dl-GapPeriodicity-r13 ENUMERATED {sf64, sf128, sf256, sf512},
+ dl-GapDurationCoeff-r13 ENUMERATED {oneEighth, oneFourth, threeEighth, oneHalf}
+}
+
+DL-GapConfig-NB-v1530 ::= SEQUENCE {
+ dl-GapPeriodicity-v1530 ENUMERATED {sf1024}
+}
+
+
+LogicalChannelConfig-NB-r13 ::= SEQUENCE {
+ priority-r13 INTEGER (1..16) OPTIONAL, -- Cond UL
+ logicalChannelSR-Prohibit-r13 BOOLEAN OPTIONAL, -- Need ON
+ ...
+}
+
+
+MAC-MainConfig-NB-r13 ::= SEQUENCE {
+ ul-SCH-Config-r13 SEQUENCE {
+ periodicBSR-Timer-r13 PeriodicBSR-Timer-NB-r13 OPTIONAL, -- Need ON
+ retxBSR-Timer-r13 RetxBSR-Timer-NB-r13
+ } OPTIONAL, -- Need ON
+ drx-Config-r13 DRX-Config-NB-r13 OPTIONAL, -- Need ON
+ timeAlignmentTimerDedicated-r13 TimeAlignmentTimer,
+ logicalChannelSR-Config-r13 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ logicalChannelSR-ProhibitTimer-r13 ENUMERATED {
+ pp2, pp8, pp32, pp128, pp512,
+ pp1024, pp2048, spare}
+ }
+ } OPTIONAL, -- Need ON
+ ...,
+ [[ rai-Activation-r14 ENUMERATED {true} OPTIONAL, -- Need OR
+ dataInactivityTimerConfig-r14 CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ dataInactivityTimer-r14 DataInactivityTimer-r14
+ }
+ } OPTIONAL -- Need ON
+ ]],
+ [[ drx-Cycle-v1430 ENUMERATED {
+ sf1280, sf2560, sf5120, sf10240} OPTIONAL -- Need ON
+ ]],
+ [[ ra-CFRA-Config-r14 ENUMERATED {true} OPTIONAL -- Need ON
+ ]]
+}
+
+PeriodicBSR-Timer-NB-r13 ::= ENUMERATED {
+ pp2, pp4, pp8, pp16, pp64, pp128, infinity, spare}
+
+RetxBSR-Timer-NB-r13 ::= ENUMERATED {
+ pp4, pp16, pp64, pp128, pp256, pp512, infinity, spare}
+
+DRX-Config-NB-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ onDurationTimer-r13 ENUMERATED {
+ pp1, pp2, pp3, pp4, pp8, pp16, pp32, spare},
+ drx-InactivityTimer-r13 ENUMERATED {
+ pp0, pp1, pp2, pp3, pp4, pp8, pp16, pp32},
+ drx-RetransmissionTimer-r13 ENUMERATED {
+ pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24,
+ pp33, spare7, spare6, spare5,
+ spare4, spare3, spare2, spare1},
+ drx-Cycle-r13 ENUMERATED {
+ sf256, sf512, sf1024, sf1536, sf2048, sf3072,
+ sf4096, sf4608, sf6144, sf7680, sf8192, sf9216,
+ spare4, spare3, spare2, spare1},
+ drx-StartOffset-r13 INTEGER (0..255),
+ drx-ULRetransmissionTimer-r13 ENUMERATED {
+ pp0, pp1, pp2, pp4, pp6, pp8, pp16, pp24,
+ pp33, pp40, pp64, pp80, pp96,
+ pp112, pp128, pp160, pp320}
+ }
+}
+
+
+
+NPDCCH-ConfigDedicated-NB-r13 ::= SEQUENCE {
+ npdcch-NumRepetitions-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128,
+ r256, r512, r1024, r2048,
+ spare4, spare3, spare2, spare1},
+ npdcch-StartSF-USS-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64},
+ npdcch-Offset-USS-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth}
+}
+
+NPDCCH-ConfigDedicated-NB-v1530 ::= SEQUENCE {
+ npdcch-StartSF-USS-v1530 ENUMERATED {v96, v128}
+}
+
+
+
+NPDSCH-ConfigCommon-NB-r13 ::= SEQUENCE {
+ nrs-Power-r13 INTEGER (-60..50)
+}
+
+
+NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE {
+ nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7},
+ rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13 OPTIONAL, -- Need OR
+ nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13
+}
+
+NPRACH-ConfigSIB-NB-v1330 ::= SEQUENCE {
+ nprach-ParametersList-v1330 NPRACH-ParametersList-NB-v1330
+}
+
+NPRACH-ConfigSIB-NB-v1450 ::= SEQUENCE {
+ maxNumPreambleAttemptCE-r14 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1}
+}
+
+NPRACH-ConfigSIB-NB-v1530 ::= SEQUENCE {
+ tdd-Parameters-r15 SEQUENCE {
+ nprach-PreambleFormat-r15 ENUMERATED {
+ fmt0, fmt1, fmt2, fmt0-a, fmt1-a},
+ numRepetitionsPerPreambleAttempt-r15 ENUMERATED {
+ n1, n2, n4, n8, n16, n32, n64, n128,
+ n256, n512, n1024},
+ nprach-ParametersListTDD-r15 NPRACH-ParametersListTDD-NB-r15
+ } OPTIONAL, -- Cond TDD
+ fmt2-Parameters-r15 SEQUENCE {
+ nprach-ParametersListFmt2-r15 NPRACH-ParametersListFmt2-NB-r15 OPTIONAL, -- Need OR
+ nprach-ParametersListFmt2EDT-r15 NPRACH-ParametersListFmt2-NB-r15 OPTIONAL -- Cond EDT2
+ } OPTIONAL, -- Need OR
+ edt-Parameters-r15 SEQUENCE {
+ edt-SmallTBS-Subset-r15 ENUMERATED {true} OPTIONAL, -- Need OR
+ edt-TBS-InfoList-r15 EDT-TBS-InfoList-NB-r15,
+ nprach-ParametersListEDT-r15 NPRACH-ParametersList-NB-r14 OPTIONAL -- Need OR
+ } OPTIONAL -- Cond EDT
+}
+
+NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-r13
+
+NPRACH-ParametersList-NB-v1330 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-Parameters-NB-v1330
+
+NPRACH-Parameters-NB-r13::= SEQUENCE {
+ nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240,
+ ms320, ms640, ms1280, ms2560},
+ nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64,
+ ms128, ms256, ms512, ms1024},
+ nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1},
+ nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48},
+ nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one},
+ maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1},
+ numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128},
+ npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128,
+ r256, r512, r1024, r2048,
+ spare4, spare3, spare2, spare1},
+ npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64},
+ npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth}
+}
+
+NPRACH-Parameters-NB-v1330 ::= SEQUENCE {
+ nprach-NumCBRA-StartSubcarriers-r13 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24,
+ n32, n34, n35, n36, n40, n44, n46, n48}
+}
+
+NPRACH-ParametersListTDD-NB-r15 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF
+ NPRACH-ParametersTDD-NB-r15
+
+NPRACH-ParametersTDD-NB-r15 ::= SEQUENCE {
+ nprach-Parameters-r15 SEQUENCE {
+ nprach-Periodicity-r15 ENUMERATED {ms80, ms160, ms320, ms640,
+ ms1280, ms2560, ms5120, ms10240}
+ OPTIONAL, -- NEED OP
+ nprach-StartTime-r15 ENUMERATED {ms10, ms20, ms40, ms80,
+ ms160, ms320, ms640, ms1280,
+ ms2560, ms5120, spare6, spare5,
+ spare4, spare3, spare2, spare1}
+ OPTIONAL, -- NEED OP
+ nprach-SubcarrierOffset-r15 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1}
+ OPTIONAL, -- NEED OP
+ nprach-NumSubcarriers-r15 ENUMERATED {n12, n24, n36, n48}
+ OPTIONAL, -- NEED OP
+ nprach-SubcarrierMSG3-RangeStart-r15 ENUMERATED {zero, oneThird, twoThird, one}
+ OPTIONAL, -- NEED OP
+ npdcch-NumRepetitions-RA-r15 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128,
+ r256, r512, r1024, r2048,
+ spare4, spare3, spare2, spare1}
+ OPTIONAL, -- NEED OP
+ npdcch-StartSF-CSS-RA-r15 ENUMERATED {v4, v8, v16, v32, v48, v64, v96, v128}
+ OPTIONAL, -- NEED OP
+ npdcch-Offset-RA-r15 ENUMERATED {zero, oneEighth, oneFourth, threeEighth}
+ OPTIONAL, -- NEED OP
+ nprach-NumCBRA-StartSubcarriers-r15 ENUMERATED {n8, n10, n11, n12, n20, n22, n23, n24,
+ n32, n34, n35, n36, n40, n44, n46, n48}
+ OPTIONAL, -- NEED OP
+ ...
+ } OPTIONAL -- Need OR
+}
+
+NPRACH-ParametersListFmt2-NB-r15 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF NPRACH-ParametersFmt2-NB-r15
+
+NPRACH-ParametersFmt2-NB-r15 ::= SEQUENCE {
+ nprach-Parameters-r15 SEQUENCE {
+ nprach-Periodicity-r15 ENUMERATED {ms40, ms80, ms160, ms320,
+ ms640, ms1280, ms2560, ms5120}
+ OPTIONAL, -- NEED OP
+ nprach-StartTime-r15 ENUMERATED {ms8, ms16, ms32, ms64,
+ ms128, ms256, ms512, ms1024}
+ OPTIONAL, -- NEED OP
+ nprach-SubcarrierOffset-r15 ENUMERATED {n0, n36, n72, n108, n6, n54, n102, n42,
+ n78, n90, n12, n24, n48, n84, n60, n18}
+ OPTIONAL, -- NEED OP
+ nprach-NumSubcarriers-r15 ENUMERATED {n36, n72, n108, n144}
+ OPTIONAL, -- NEED OP
+ nprach-SubcarrierMSG3-RangeStart-r15 ENUMERATED {zero, oneThird, twoThird, one}
+ OPTIONAL, -- NEED OP
+ npdcch-NumRepetitions-RA-r15 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128,
+ r256, r512, r1024, r2048,
+ spare4, spare3, spare2, spare1}
+ OPTIONAL, -- NEED OP
+ npdcch-StartSF-CSS-RA-r15 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64}
+ OPTIONAL, -- NEED OP
+ npdcch-Offset-RA-r15 ENUMERATED {zero, oneEighth, oneFourth, threeEighth}
+ OPTIONAL, -- NEED OP
+ nprach-NumCBRA-StartSubcarriers-r15 ENUMERATED {
+ n24, n30, n33, n36, n60, n66, n69, n72,
+ n96, n102, n105, n108, n120, n132, n138, n144}
+ OPTIONAL, -- NEED OP
+ npdcch-CarrierIndex-r15 INTEGER (1..maxNonAnchorCarriers-NB-r14)
+ OPTIONAL, -- Need OP
+ ...
+ } OPTIONAL -- Need OR
+}
+
+RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range
+
+EDT-TBS-InfoList-NB-r15 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF EDT-TBS-NB-r15
+
+EDT-TBS-NB-r15 ::= SEQUENCE {
+ edt-SmallTBS-Enabled-r15 BOOLEAN,
+ edt-TBS-r15 ENUMERATED {b328, b408, b504, b584, b680, b808, b936, b1000}
+}
+
+
+NPUSCH-ConfigCommon-NB-r13 ::= SEQUENCE {
+ ack-NACK-NumRepetitions-Msg4-r13 SEQUENCE (SIZE(1.. maxNPRACH-Resources-NB-r13)) OF
+ ACK-NACK-NumRepetitions-NB-r13,
+ srs-SubframeConfig-r13 ENUMERATED {
+ sc0, sc1, sc2, sc3, sc4, sc5, sc6, sc7,
+ sc8, sc9, sc10, sc11, sc12, sc13, sc14, sc15
+ } OPTIONAL, -- Need OR
+ dmrs-Config-r13 SEQUENCE {
+ threeTone-BaseSequence-r13 INTEGER (0..12) OPTIONAL, -- Need OP
+ threeTone-CyclicShift-r13 INTEGER (0..2),
+ sixTone-BaseSequence-r13 INTEGER (0..14) OPTIONAL, -- Need OP
+ sixTone-CyclicShift-r13 INTEGER (0..3),
+ twelveTone-BaseSequence-r13 INTEGER (0..30) OPTIONAL -- Need OP
+ } OPTIONAL, -- Need OR
+ ul-ReferenceSignalsNPUSCH-r13 UL-ReferenceSignalsNPUSCH-NB-r13
+}
+
+UL-ReferenceSignalsNPUSCH-NB-r13 ::= SEQUENCE {
+ groupHoppingEnabled-r13 BOOLEAN,
+ groupAssignmentNPUSCH-r13 INTEGER (0..29)
+}
+
+NPUSCH-ConfigDedicated-NB-r13 ::= SEQUENCE {
+ ack-NACK-NumRepetitions-r13 ACK-NACK-NumRepetitions-NB-r13 OPTIONAL, -- Need ON
+ npusch-AllSymbols-r13 BOOLEAN OPTIONAL, -- Cond SRS
+ groupHoppingDisabled-r13 ENUMERATED {true} OPTIONAL -- Need OR
+}
+
+ACK-NACK-NumRepetitions-NB-r13 ::= ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128}
+
+
+
+PDCP-Config-NB-r13 ::= SEQUENCE {
+ discardTimer-r13 ENUMERATED {
+ ms5120, ms10240, ms20480, ms40960,
+ ms81920, infinity, spare2, spare1
+ } OPTIONAL, -- Cond Setup
+ headerCompression-r13 CHOICE {
+ notUsed NULL,
+ rohc SEQUENCE {
+ maxCID-r13 INTEGER (1..16383) DEFAULT 15,
+ profiles-r13 SEQUENCE {
+ profile0x0002 BOOLEAN,
+ profile0x0003 BOOLEAN,
+ profile0x0004 BOOLEAN,
+ profile0x0006 BOOLEAN,
+ profile0x0102 BOOLEAN,
+ profile0x0103 BOOLEAN,
+ profile0x0104 BOOLEAN
+ },
+ ...
+ }
+ },
+ ...
+}
+
+
+PhysicalConfigDedicated-NB-r13 ::= SEQUENCE {
+ carrierConfigDedicated-r13 CarrierConfigDedicated-NB-r13 OPTIONAL, -- Need ON
+ npdcch-ConfigDedicated-r13 NPDCCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON
+ npusch-ConfigDedicated-r13 NPUSCH-ConfigDedicated-NB-r13 OPTIONAL, -- Need ON
+ uplinkPowerControlDedicated-r13 UplinkPowerControlDedicated-NB-r13 OPTIONAL, -- Need ON
+ ...,
+ [[ twoHARQ-ProcessesConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ interferenceRandomisationConfig-r14 ENUMERATED {true} OPTIONAL -- Need OR
+ ]],
+ [[ npdcch-ConfigDedicated-v1530 NPDCCH-ConfigDedicated-NB-v1530 OPTIONAL -- Cond TDD
+ ]]
+}
+
+
+RACH-ConfigCommon-NB-r13 ::= SEQUENCE {
+ preambleTransMax-CE-r13 PreambleTransMax,
+ powerRampingParameters-r13 PowerRampingParameters,
+ rach-InfoList-r13 RACH-InfoList-NB-r13,
+ connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP
+ ...,
+ [[ powerRampingParameters-v1450 PowerRampingParameters-NB-v1450 OPTIONAL -- Need OR
+ ]],
+ [[ rach-InfoList-v1530 RACH-InfoList-NB-v1530 OPTIONAL -- Cond EDT
+ ]]
+}
+
+RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13
+
+RACH-InfoList-NB-v1530 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-v1530
+
+RACH-Info-NB-r13 ::= SEQUENCE {
+ ra-ResponseWindowSize-r13 ENUMERATED {
+ pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10},
+ mac-ContentionResolutionTimer-r13 ENUMERATED {
+ pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64}
+}
+
+RACH-Info-NB-v1530 ::= SEQUENCE {
+ mac-ContentionResolutionTimer-r15 ENUMERATED {
+ pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64}
+}
+
+PowerRampingParameters-NB-v1450 ::= SEQUENCE {
+ preambleInitialReceivedTargetPower-v1450 ENUMERATED {
+ dBm-130, dBm-128, dBm-126, dBm-124, dBm-122,
+ dBm-88, dBm-86, dBm-84,dBm-82, dBm-80}
+ OPTIONAL, -- Need OR
+ powerRampingParametersCE1-r14 SEQUENCE {
+ powerRampingStepCE1-r14 ENUMERATED {dB0, dB2, dB4, dB6},
+ preambleInitialReceivedTargetPowerCE1-r14 ENUMERATED {
+ dBm-130, dBm-128, dBm-126, dBm-124, dBm-122,
+ dBm-120, dBm-118, dBm-116, dBm-114, dBm-112,
+ dBm-110, dBm-108, dBm-106, dBm-104, dBm-102,
+ dBm-100, dBm-98, dBm-96, dBm-94, dBm-92,
+ dBm-90, dBm-88, dBm-86, dBm-84, dBm-82, dBm-80}
+ } OPTIONAL -- Need OR
+}
+
+
+RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE {
+ rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13,
+ bcch-Config-r13 BCCH-Config-NB-r13,
+ pcch-Config-r13 PCCH-Config-NB-r13,
+ nprach-Config-r13 NPRACH-ConfigSIB-NB-r13,
+ npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13,
+ npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13,
+ dl-Gap-r13 DL-GapConfig-NB-r13 OPTIONAL, -- Need OP
+ uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13,
+ ...,
+ [[ nprach-Config-v1330 NPRACH-ConfigSIB-NB-v1330 OPTIONAL -- Need OR
+ ]],
+ [[ nprach-Config-v1450 NPRACH-ConfigSIB-NB-v1450 OPTIONAL -- Cond EnhPowerControl
+ ]],
+ [[ nprach-Config-v1530 NPRACH-ConfigSIB-NB-v1530 OPTIONAL, -- Need OR
+ dl-Gap-v1530 DL-GapConfig-NB-v1530 OPTIONAL, -- Cond TDD
+ wus-Config-r15 WUS-Config-NB-r15 OPTIONAL -- Need OR
+ ]]
+}
+
+BCCH-Config-NB-r13 ::= SEQUENCE {
+ modificationPeriodCoeff-r13 ENUMERATED {n16, n32, n64, n128}
+}
+
+PCCH-Config-NB-r13 ::= SEQUENCE {
+ defaultPagingCycle-r13 ENUMERATED {rf128, rf256, rf512, rf1024},
+ nB-r13 ENUMERATED {
+ fourT, twoT, oneT, halfT, quarterT, one8thT,
+ one16thT, one32ndT, one64thT,
+ one128thT, one256thT, one512thT, one1024thT,
+ spare3, spare2, spare1},
+ npdcch-NumRepetitionPaging-r13 ENUMERATED {
+ r1, r2, r4, r8, r16, r32, r64, r128,
+ r256, r512, r1024, r2048,
+ spare4, spare3, spare2, spare1}
+}
+
+
+RadioResourceConfigDedicated-NB-r13 ::= SEQUENCE {
+ srb-ToAddModList-r13 SRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON
+ drb-ToAddModList-r13 DRB-ToAddModList-NB-r13 OPTIONAL, -- Need ON
+ drb-ToReleaseList-r13 DRB-ToReleaseList-NB-r13 OPTIONAL, -- Need ON
+ mac-MainConfig-r13 CHOICE {
+ explicitValue-r13 MAC-MainConfig-NB-r13,
+ defaultValue-r13 NULL
+ } OPTIONAL, -- Need ON
+ physicalConfigDedicated-r13 PhysicalConfigDedicated-NB-r13 OPTIONAL, -- Need ON
+ rlf-TimersAndConstants-r13 RLF-TimersAndConstants-NB-r13 OPTIONAL, -- Need ON
+ ...,
+ [[ schedulingRequestConfig-r15 SchedulingRequestConfig-NB-r15 OPTIONAL -- Need ON
+ ]]
+}
+
+SRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod-NB-r13
+
+SRB-ToAddMod-NB-r13 ::= SEQUENCE {
+ rlc-Config-r13 CHOICE {
+ explicitValue RLC-Config-NB-r13,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ logicalChannelConfig-r13 CHOICE {
+ explicitValue LogicalChannelConfig-NB-r13,
+ defaultValue NULL
+ } OPTIONAL, -- Cond Setup
+ ...,
+ [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON
+ ]]
+}
+
+DRB-ToAddModList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-ToAddMod-NB-r13
+
+DRB-ToAddMod-NB-r13 ::= SEQUENCE {
+ eps-BearerIdentity-r13 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ drb-Identity-r13 DRB-Identity,
+ pdcp-Config-r13 PDCP-Config-NB-r13 OPTIONAL, -- Cond Setup
+ rlc-Config-r13 RLC-Config-NB-r13 OPTIONAL, -- Cond Setup
+ logicalChannelIdentity-r13 INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup
+ logicalChannelConfig-r13 LogicalChannelConfig-NB-r13 OPTIONAL, -- Cond Setup
+ ...,
+ [[ rlc-Config-v1430 RLC-Config-NB-v1430 OPTIONAL -- Need ON
+ ]]
+}
+
+DRB-ToReleaseList-NB-r13 ::= SEQUENCE (SIZE (1..maxDRB-NB-r13)) OF DRB-Identity
+
+
+RLC-Config-NB-r13 ::= CHOICE {
+ am SEQUENCE {
+ ul-AM-RLC-r13 UL-AM-RLC-NB-r13,
+ dl-AM-RLC-r13 DL-AM-RLC-NB-r13
+ },
+ ...,
+ [[ um-Bi-Directional-r15 NULL,
+ um-Uni-Directional-UL-r15 NULL,
+ um-Uni-Directional-DL-r15 NULL
+ ]]
+}
+
+RLC-Config-NB-v1430 ::= SEQUENCE {
+ t-Reordering-r14 T-Reordering OPTIONAL -- Cond twoHARQ
+}
+
+UL-AM-RLC-NB-r13 ::= SEQUENCE {
+ t-PollRetransmit-r13 T-PollRetransmit-NB-r13,
+ maxRetxThreshold-r13 ENUMERATED {t1, t2, t3, t4, t6, t8, t16, t32}
+}
+
+DL-AM-RLC-NB-r13 ::= SEQUENCE {
+ enableStatusReportSN-Gap-r13 ENUMERATED {true} OPTIONAL
+}
+
+T-PollRetransmit-NB-r13 ::= ENUMERATED {
+ ms250, ms500, ms1000, ms2000, ms3000, ms4000,
+ ms6000, ms10000, ms15000, ms25000, ms40000, ms60000,
+ ms90000, ms120000, ms180000, ms300000-v1530}
+
+
+
+
+RLF-TimersAndConstants-NB-r13 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ t301-r13 ENUMERATED {
+ ms2500, ms4000, ms6000, ms10000,
+ ms15000, ms25000, ms40000, ms60000},
+ t310-r13 ENUMERATED {
+ ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000},
+ n310-r13 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ t311-r13 ENUMERATED {
+ ms1000, ms3000, ms5000, ms10000, ms15000,
+ ms20000, ms30000},
+ n311-r13 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...,
+ [[ t311-v1350 ENUMERATED {
+ ms40000, ms60000, ms90000, ms120000}
+ OPTIONAL -- Need OR
+ ]],
+ [[ t301-v1530 ENUMERATED {
+ ms80000, ms100000, ms120000}
+ OPTIONAL, -- Cond TDD
+ t311-v1530 ENUMERATED {
+ ms160000, ms200000}
+ OPTIONAL -- Cond TDD
+ ]]
+ }
+}
+
+
+SchedulingRequestConfig-NB-r15 ::= SEQUENCE {
+ sr-WithHARQ-ACK-Config-r15 ENUMERATED {true} OPTIONAL,
+ sr-WithoutHARQ-ACK-Config-r15 SR-WithoutHARQ-ACK-Config-NB-r15 OPTIONAL, -- Need ON
+ sr-SPS-BSR-Config-r15 SR-SPS-BSR-Config-NB-r15 OPTIONAL, -- Need ON
+ ...
+}
+
+SR-WithoutHARQ-ACK-Config-NB-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ sr-ProhibitTimer-r15 INTEGER (0..7) OPTIONAL, -- Need ON
+ sr-NPRACH-Resource-r15 SR-NPRACH-Resource-NB-r15 OPTIONAL -- Need ON
+ }
+}
+
+SR-NPRACH-Resource-NB-r15 ::= SEQUENCE {
+ nprach-CarrierIndex-r15 INTEGER (0..maxNonAnchorCarriers-NB-r14),
+ nprach-ResourceIndex-r15 INTEGER (1..maxNPRACH-Resources-NB-r13),
+ nprach-SubCarrierIndex-r15 CHOICE {
+ nprach-Fmt0Fmt1-r15 INTEGER (0..47),
+ nprach-Fmt2-r15 INTEGER (0..143)
+ },
+ p0-SR-r15 INTEGER (-126..24),
+ alpha-r15 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1}}
+
+SR-SPS-BSR-Config-NB-r15 ::= CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ semiPersistSchedC-RNTI-r15 C-RNTI,
+ semiPersistSchedIntervalUL-r15 ENUMERATED {sf128, sf256, sf512, sf1024,
+ sf1280, sf2048, sf2560, sf5120}
+ }
+}
+
+
+TDD-Config-NB-r15 ::= SEQUENCE {
+ subframeAssignment-r15 ENUMERATED {
+ sa1, sa2, sa3, sa4, sa5},
+ specialSubframePatterns-r15 ENUMERATED {
+ ssp0, ssp1, ssp2, ssp3, ssp4, ssp5, ssp6, ssp7,
+ ssp8, ssp9, ssp10, ssp10-CRS-LessDwPTS}
+}
+
+
+TDD-UL-DL-AlignmentOffset-NB-r15 ::= ENUMERATED { khz-7dot5, khz0, khz7dot5}
+
+
+
+UplinkPowerControlCommon-NB-r13 ::= SEQUENCE {
+ p0-NominalNPUSCH-r13 INTEGER (-126..24),
+ alpha-r13 ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1},
+ deltaPreambleMsg3-r13 INTEGER (-1..6)
+}
+
+UplinkPowerControlDedicated-NB-r13 ::= SEQUENCE {
+ p0-UE-NPUSCH-r13 INTEGER (-8..7)
+}
+
+
+WUS-Config-NB-r15 ::= SEQUENCE {
+ maxDurationFactor-r15 WUS-MaxDurationFactor-NB-r15,
+ numPOs-r15 ENUMERATED {n1, n2, n4} DEFAULT n1,
+ numDRX-CyclesRelaxed-r15 ENUMERATED {n1, n2, n4, n8},
+ timeOffsetDRX-r15 ENUMERATED {ms40, ms80, ms160, ms240},
+ timeOffset-eDRX-Short-r15 ENUMERATED {ms40, ms80, ms160, ms240},
+ timeOffset-eDRX-Long-r15 ENUMERATED {ms1000, ms2000} OPTIONAL, -- Need OP
+ ...
+}
+
+WUS-ConfigPerCarrier-NB-r15 ::= SEQUENCE {
+ maxDurationFactor-r15 WUS-MaxDurationFactor-NB-r15
+}
+
+WUS-MaxDurationFactor-NB-r15 ::= ENUMERATED {one128th, one64th, one32th, one16th,
+ oneEighth, oneQuarter, oneHalf}
+
+AdditionalBandInfoList-NB-r14 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-NB-r13
+
+
+FreqBandIndicator-NB-r13 ::= INTEGER (1.. maxFBI2)
+
+
+MultiBandInfoList-NB-r13 ::= SEQUENCE (SIZE (1..maxMultiBands)) OF MultiBandInfo-NB-r13
+
+MultiBandInfo-NB-r13 ::= SEQUENCE {
+ freqBandIndicator-r13 FreqBandIndicator-NB-r13 OPTIONAL, -- Need OR
+ freqBandInfo-r13 NS-PmaxList-NB-r13 OPTIONAL -- Need OR
+}
+
+
+NS-PmaxList-NB-r13 ::= SEQUENCE (SIZE (1..maxNS-Pmax-NB-r13)) OF NS-PmaxValue-NB-r13
+
+NS-PmaxValue-NB-r13 ::= SEQUENCE {
+ additionalPmax-r13 P-Max OPTIONAL, -- Need OR
+ additionalSpectrumEmission-r13 AdditionalSpectrumEmission
+}
+
+
+ReselectionThreshold-NB-v1360 ::= INTEGER (32..63)
+
+
+T-Reselection-NB-r13 ::= ENUMERATED {s0, s3, s6, s9, s12, s15, s18, s21}
+
+
+CQI-NPDCCH-NB-r14 ::= ENUMERATED {
+ noMeasurements, candidateRep-A, candidateRep-B, candidateRep-C,
+ candidateRep-D, candidateRep-E, candidateRep-F, candidateRep-G,
+ candidateRep-H, candidateRep-I, candidateRep-J, candidateRep-K,
+ candidateRep-L}
+
+
+CQI-NPDCCH-Short-NB-r14 ::= ENUMERATED {
+ noMeasurements, candidateRep-1, candidateRep-2, candidateRep-3}
+
+
+MeasResultServCell-NB-r14 ::= SEQUENCE {
+ nrsrpResult-r14 NRSRP-Range-NB-r14,
+ nrsrqResult-r14 NRSRQ-Range-NB-r14
+}
+
+
+NRSRP-Range-NB-r14 ::= INTEGER(0..113)
+
+
+NRSRQ-Range-NB-r14 ::= INTEGER(-30..46)
+
+
+NSSS-RRM-Config-NB-r15 ::= SEQUENCE {
+ nsss-RRM-PowerOffset-r15 ENUMERATED {dB-3, db0, dB3},
+ nsss-NumOccDiffPrecoders-r15 ENUMERATED {n1, n2, n4, n8} OPTIONAL -- Need OP
+}
+
+EstablishmentCause-NB-r13 ::= ENUMERATED {
+ mt-Access, mo-Signalling, mo-Data, mo-ExceptionData,
+ delayTolerantAccess-v1330, spare3, spare2, spare1}
+
+
+UE-Capability-NB-r13 ::= SEQUENCE {
+ accessStratumRelease-r13 AccessStratumRelease-NB-r13,
+ ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL,
+ multipleDRB-r13 ENUMERATED {supported} OPTIONAL,
+ pdcp-Parameters-r13 PDCP-Parameters-NB-r13 OPTIONAL,
+ phyLayerParameters-r13 PhyLayerParameters-NB-r13,
+ rf-Parameters-r13 RF-Parameters-NB-r13,
+ dummy SEQUENCE {} OPTIONAL
+}
+
+UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE {
+ ue-Category-NB-r14 ENUMERATED {nb2} OPTIONAL,
+ mac-Parameters-r14 MAC-Parameters-NB-r14 OPTIONAL,
+ phyLayerParameters-v1430 PhyLayerParameters-NB-v1430 OPTIONAL,
+ rf-Parameters-v1430 RF-Parameters-NB-v1430,
+ nonCriticalExtension UE-Capability-NB-v1440-IEs OPTIONAL
+}
+
+UE-Capability-NB-v1440-IEs ::= SEQUENCE {
+ phyLayerParameters-v1440 PhyLayerParameters-NB-v1440 OPTIONAL,
+ nonCriticalExtension UE-Capability-NB-v14x0-IEs OPTIONAL
+}
+
+UE-Capability-NB-v14x0-IEs ::= SEQUENCE {
+-- Following field is only to be used for late REL-14 extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UE-Capability-NB-v1530-IEs OPTIONAL
+}
+
+UE-Capability-NB-v1530-IEs ::= SEQUENCE {
+ earlyData-UP-r15 ENUMERATED {supported} OPTIONAL,
+ rlc-Parameters-r15 RLC-Parameters-NB-r15,
+ mac-Parameters-v1530 MAC-Parameters-NB-v1530,
+ phyLayerParameters-v1530 PhyLayerParameters-NB-v1530 OPTIONAL,
+ tdd-UE-Capability-r15 TDD-UE-Capability-NB-r15 OPTIONAL, nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+TDD-UE-Capability-NB-r15 ::= SEQUENCE {
+ ue-Category-NB-r15 ENUMERATED {nb2} OPTIONAL,
+ phyLayerParametersRel13-r15 PhyLayerParameters-NB-r13 OPTIONAL,
+ phyLayerParametersRel14-r15 PhyLayerParameters-NB-v1430 OPTIONAL,
+ phyLayerParameters-v1530 PhyLayerParameters-NB-v1530 OPTIONAL,
+ ...
+}
+
+AccessStratumRelease-NB-r13 ::= ENUMERATED {rel13, rel14, rel15, spare5, spare4, spare3, spare2, spare1, ...}
+
+PDCP-Parameters-NB-r13 ::= SEQUENCE {
+ supportedROHC-Profiles-r13 SEQUENCE {
+ profile0x0002 BOOLEAN,
+ profile0x0003 BOOLEAN,
+ profile0x0004 BOOLEAN,
+ profile0x0006 BOOLEAN,
+ profile0x0102 BOOLEAN,
+ profile0x0103 BOOLEAN,
+ profile0x0104 BOOLEAN
+ },
+ maxNumberROHC-ContextSessions-r13 ENUMERATED {cs2, cs4, cs8, cs12} DEFAULT cs2,
+ ...
+}
+
+RLC-Parameters-NB-r15 ::= SEQUENCE {
+ rlc-UM-r15 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-NB-r14 ::= SEQUENCE {
+ dataInactMon-r14 ENUMERATED {supported} OPTIONAL,
+ rai-Support-r14 ENUMERATED {supported} OPTIONAL
+}
+
+MAC-Parameters-NB-v1530 ::= SEQUENCE {
+ sr-SPS-BSR-r15 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-NB-r13 ::= SEQUENCE {
+ multiTone-r13 ENUMERATED {supported} OPTIONAL,
+ multiCarrier-r13 ENUMERATED {supported} OPTIONAL
+ }
+
+PhyLayerParameters-NB-v1430 ::= SEQUENCE {
+ multiCarrier-NPRACH-r14 ENUMERATED {supported} OPTIONAL,
+ twoHARQ-Processes-r14 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-NB-v1440 ::= SEQUENCE {
+ interferenceRandomisation-r14 ENUMERATED {supported} OPTIONAL
+}
+
+PhyLayerParameters-NB-v1530 ::= SEQUENCE {
+ mixedOperationMode-r15 ENUMERATED {supported} OPTIONAL,
+ sr-WithHARQ-ACK-r15 ENUMERATED {supported} OPTIONAL,
+ sr-WithoutHARQ-ACK-r15 ENUMERATED {supported} OPTIONAL,
+ nprach-Format2-r15 ENUMERATED {supported} OPTIONAL,
+ additionalTransmissionSIB1-r15 ENUMERATED {supported} OPTIONAL,
+ npusch-3dot75kHz-SCS-TDD-r15 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters-NB-r13 ::= SEQUENCE {
+ supportedBandList-r13 SupportedBandList-NB-r13,
+ multiNS-Pmax-r13 ENUMERATED {supported} OPTIONAL
+}
+
+RF-Parameters-NB-v1430 ::= SEQUENCE {
+ powerClassNB-14dBm-r14 ENUMERATED {supported} OPTIONAL
+}
+
+SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBand-NB-r13
+
+SupportedBand-NB-r13 ::= SEQUENCE {
+ band-r13 FreqBandIndicator-NB-r13,
+ powerClassNB-20dBm-r13 ENUMERATED {supported} OPTIONAL
+}
+
+
+UE-RadioPagingInfo-NB-r13 ::= SEQUENCE {
+ ue-Category-NB-r13 ENUMERATED {nb1} OPTIONAL,
+ ...,
+ [[ multiCarrierPaging-r14 ENUMERATED {true} OPTIONAL
+ ]],
+ [[ mixedOperationMode-r15 ENUMERATED {supported} OPTIONAL,
+ wakeUpSignal-r15 ENUMERATED {true} OPTIONAL,
+ wakeUpSignalMinGap-eDRX-r15 ENUMERATED {ms40, ms240, ms1000, ms2000} OPTIONAL,
+ multiCarrierPagingTDD-r15 ENUMERATED {true} OPTIONAL
+ ]]
+}
+
+
+UE-TimersAndConstants-NB-r13 ::= SEQUENCE {
+ t300-r13 ENUMERATED {
+ ms2500, ms4000, ms6000, ms10000,
+ ms15000, ms25000, ms40000, ms60000},
+ t301-r13 ENUMERATED {
+ ms2500, ms4000, ms6000, ms10000,
+ ms15000, ms25000, ms40000, ms60000},
+ t310-r13 ENUMERATED {
+ ms0, ms200, ms500, ms1000, ms2000, ms4000, ms8000},
+ n310-r13 ENUMERATED {
+ n1, n2, n3, n4, n6, n8, n10, n20},
+ t311-r13 ENUMERATED {
+ ms1000, ms3000, ms5000, ms10000, ms15000,
+ ms20000, ms30000},
+ n311-r13 ENUMERATED {
+ n1, n2, n3, n4, n5, n6, n8, n10},
+ ...,
+ [[ t311-v1350 ENUMERATED {
+ ms40000, ms60000, ms90000, ms120000}
+ OPTIONAL -- Need OR
+ ]],
+ [[ t300-v1530 ENUMERATED {
+ ms80000, ms100000, ms120000} OPTIONAL, -- Cond TDD
+ t301-v1530 ENUMERATED {
+ ms80000, ms100000, ms120000} OPTIONAL, -- Cond TDD
+ t311-v1530 ENUMERATED {
+ ms160000, ms200000} OPTIONAL, -- Cond TDD
+ t300-r15 ENUMERATED {ms6000, ms10000, ms15000, ms25000, ms40000,
+ ms60000, ms80000, ms120000} OPTIONAL -- Cond EDT
+ ]]
+}
+
+
+SC-MTCH-InfoList-NB-r14 ::= SEQUENCE (SIZE (0.. maxSC-MTCH-NB-r14)) OF SC-MTCH-Info-NB-r14
+
+SC-MTCH-Info-NB-r14 ::= SEQUENCE {
+ sc-mtch-CarrierConfig-r14 CHOICE {
+ dl-CarrierConfig-r14 DL-CarrierConfigCommon-NB-r14,
+ dl-CarrierIndex-r14 INTEGER (0.. maxNonAnchorCarriers-NB-r14)
+ },
+ mbmsSessionInfo-r14 MBMSSessionInfo-r13,
+ g-RNTI-r14 BIT STRING(SIZE(16)),
+ sc-mtch-SchedulingInfo-r14 SC-MTCH-SchedulingInfo-NB-r14 OPTIONAL, -- Need OP
+ sc-mtch-NeighbourCell-r14 BIT STRING (SIZE(maxNeighCell-SCPTM-NB-r14)) OPTIONAL, -- Need OP
+ npdcch-NPDSCH-MaxTBS-SC-MTCH-r14 ENUMERATED {n680, n2536},
+ npdcch-NumRepetitions-SC-MTCH-r14 ENUMERATED {r1, r2, r4, r8, r16,
+ r32, r64, r128, r256,
+ r512, r1024, r2048, spare4,
+ spare3, spare2, spare1},
+ npdcch-StartSF-SC-MTCH-r14 ENUMERATED {v1dot5, v2, v4, v8,
+ v16, v32, v48, v64},
+ npdcch-Offset-SC-MTCH-r14 ENUMERATED {zero, oneEighth, oneQuarter,
+ threeEighth, oneHalf, fiveEighth,
+ threeQuarter, sevenEighth},
+ ...
+}
+
+SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE {
+ onDurationTimerSCPTM-r14 ENUMERATED {
+ pp1, pp2, pp3, pp4,
+ pp8, pp16, pp32, spare},
+ drx-InactivityTimerSCPTM-r14 ENUMERATED {
+ pp0, pp1, pp2, pp3,
+ pp4, pp8, pp16, pp32},
+ schedulingPeriodStartOffsetSCPTM-r14 CHOICE {
+ sf10 INTEGER(0..9),
+ sf20 INTEGER(0..19),
+ sf32 INTEGER(0..31),
+ sf40 INTEGER(0..39),
+ sf64 INTEGER(0..63),
+ sf80 INTEGER(0..79),
+ sf128 INTEGER(0..127),
+ sf160 INTEGER(0..159),
+ sf256 INTEGER(0..255),
+ sf320 INTEGER(0..319),
+ sf512 INTEGER(0..511),
+ sf640 INTEGER(0..639),
+ sf1024 INTEGER(0..1023),
+ sf2048 INTEGER(0..2047),
+ sf4096 INTEGER(0..4095),
+ sf8192 INTEGER(0..8191)
+ },
+ ...
+}
+
+
+SCPTM-NeighbourCellList-NB-r14 ::= SEQUENCE (SIZE (1..maxNeighCell-SCPTM-NB-r14)) OF PCI-ARFCN-NB-r14
+
+PCI-ARFCN-NB-r14 ::= SEQUENCE {
+ physCellId-r14 PhysCellId,
+ carrierFreq-r14 CarrierFreq-NB-r13 OPTIONAL -- Need OP
+}
+
+
+maxNPRACH-Resources-NB-r13 INTEGER ::= 3 -- Maximum number of NPRACH resources for NB-IoT
+maxNonAnchorCarriers-NB-r14 INTEGER ::= 15 -- Maximum number of non-anchor carriers for NB-IoT
+maxDRB-NB-r13 INTEGER ::= 2 -- Maximum number of Data Radio Bearers for NB-IoT
+maxNeighCell-SCPTM-NB-r14 INTEGER ::= 8 -- Maximum number of SCPTM neighbour cells
+maxNS-Pmax-NB-r13 INTEGER ::= 4 -- Maximum number of NS and P-Max values per band
+maxSC-MTCH-NB-r14 INTEGER ::= 64 -- Maximum number of SC-MTCHs in one cell for NB-IoT
+maxSI-Message-NB-r13 INTEGER ::= 8 -- Maximum number of SI messages for NB-IoT
+
+
+END
+
+
+EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ AbsoluteTimeInfo-r10,
+ AreaConfiguration-r10,
+ AreaConfiguration-v1130,
+ ARFCN-ValueNR-r15,
+ BT-NameList-r15,
+ CarrierFreqGERAN,
+ CellIdentity,
+ CellList-r15,
+ ConnEstFailReport-r11,
+ EUTRA-CarrierList-r15,
+ SpeedStateScaleFactors,
+ C-RNTI,
+ LoggingDuration-r10,
+ LoggingInterval-r10,
+ LogMeasInfo-r10,
+ MeasCSI-RS-Id-r12,
+ MeasId,
+ MeasId-v1250,
+ MeasIdToAddModList,
+ MeasIdToAddModListExt-r12,
+ MeasIdToAddModList-v1310,
+ MeasIdToAddModListExt-v1310,
+ MeasObjectToAddModList,
+ MeasObjectToAddModList-v9e0,
+ MeasObjectToAddModListExt-r13,
+ MeasResultListIdle-r15,
+ MeasScaleFactor-r12,
+ MobilityStateParameters,
+ NeighCellConfig,
+ PhysCellId,
+ PhysCellIdCDMA2000,
+ PhysCellIdGERAN,
+ PhysCellIdUTRA-FDD,
+ PhysCellIdUTRA-TDD,
+ PLMN-Identity,
+ PLMN-IdentityList3-r11,
+ QuantityConfig,
+ ReportConfigToAddModList,
+ RLF-Report-r9,
+ TargetMBSFN-AreaList-r12,
+ TraceReference-r10,
+ Tx-ResourcePoolMeasList-r14,
+ VisitedCellInfoList-r12,
+ maxCellMeas,
+ maxCSI-RS-Meas-r12,
+ maxMeasId,
+ maxMeasId-r12,
+ maxRS-Index-r15,
+ PhysCellIdNR-r15,
+ RS-IndexNR-r15,
+ UL-DelayConfig-r13,
+ WLAN-CarrierInfo-r13,
+ WLAN-Identifiers-r12,
+ WLAN-Id-List-r13,
+ WLAN-NameList-r15,
+ WLAN-Status-r13,
+ WLAN-Status-v1430,
+ WLAN-SuspendConfig-r14
+
+FROM EUTRA-RRC-Definitions;
+
+
+VarConnEstFailReport-r11 ::= SEQUENCE {
+ connEstFailReport-r11 ConnEstFailReport-r11,
+ plmn-Identity-r11 PLMN-Identity
+}
+
+
+VarLogMeasConfig-r10 ::= SEQUENCE {
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10
+}
+
+VarLogMeasConfig-r11 ::= SEQUENCE {
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
+ areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10
+}
+
+VarLogMeasConfig-r12 ::= SEQUENCE {
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
+ areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10,
+ targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL
+}
+
+VarLogMeasConfig-r15 ::= SEQUENCE {
+ areaConfiguration-r10 AreaConfiguration-r10 OPTIONAL,
+ areaConfiguration-v1130 AreaConfiguration-v1130 OPTIONAL,
+ loggingDuration-r10 LoggingDuration-r10,
+ loggingInterval-r10 LoggingInterval-r10,
+ targetMBSFN-AreaList-r12 TargetMBSFN-AreaList-r12 OPTIONAL,
+ bt-NameList-r15 BT-NameList-r15 OPTIONAL,
+ wlan-NameList-r15 WLAN-NameList-r15 OPTIONAL
+}
+
+
+VarLogMeasReport-r10 ::= SEQUENCE {
+ traceReference-r10 TraceReference-r10,
+ traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
+ tce-Id-r10 OCTET STRING (SIZE (1)),
+ plmn-Identity-r10 PLMN-Identity,
+ absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
+ logMeasInfoList-r10 LogMeasInfoList2-r10
+}
+
+VarLogMeasReport-r11 ::= SEQUENCE {
+ traceReference-r10 TraceReference-r10,
+ traceRecordingSessionRef-r10 OCTET STRING (SIZE (2)),
+ tce-Id-r10 OCTET STRING (SIZE (1)),
+ plmn-IdentityList-r11 PLMN-IdentityList3-r11,
+ absoluteTimeInfo-r10 AbsoluteTimeInfo-r10,
+ logMeasInfoList-r10 LogMeasInfoList2-r10
+}
+
+LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..maxLogMeas-r10)) OF LogMeasInfo-r10
+
+
+VarMeasConfig ::= SEQUENCE {
+ -- Measurement identities
+ measIdList MeasIdToAddModList OPTIONAL,
+ measIdListExt-r12 MeasIdToAddModListExt-r12 OPTIONAL,
+ measIdList-v1310 MeasIdToAddModList-v1310 OPTIONAL,
+ measIdListExt-v1310 MeasIdToAddModListExt-v1310 OPTIONAL,
+ -- Measurement objects
+ measObjectList MeasObjectToAddModList OPTIONAL,
+ measObjectListExt-r13 MeasObjectToAddModListExt-r13 OPTIONAL,
+ measObjectList-v9i0 MeasObjectToAddModList-v9e0 OPTIONAL,
+ -- Reporting configurations
+ reportConfigList ReportConfigToAddModList OPTIONAL,
+ -- Other parameters
+ quantityConfig QuantityConfig OPTIONAL,
+ measScaleFactor-r12 MeasScaleFactor-r12 OPTIONAL,
+ s-Measure INTEGER (-140..-44) OPTIONAL,
+ speedStatePars CHOICE {
+ release NULL,
+ setup SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ timeToTrigger-SF SpeedStateScaleFactors
+ }
+ } OPTIONAL,
+ allowInterruptions-r11 BOOLEAN OPTIONAL
+}
+
+
+VarMeasIdleConfig-r15 ::= SEQUENCE {
+ measIdleCarrierListEUTRA-r15 EUTRA-CarrierList-r15 OPTIONAL,
+ measIdleDuration-r15 ENUMERATED {sec10, sec30, sec60, sec120,
+ sec180, sec240, sec300}
+}
+
+
+VarMeasIdleReport-r15 ::= SEQUENCE {
+ measReportIdle-r15 MeasResultListIdle-r15
+}
+
+
+VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
+VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..maxMeasId-r12)) OF VarMeasReport
+
+VarMeasReport ::= SEQUENCE {
+ -- List of measurement that have been triggered
+ measId MeasId,
+ measId-v1250 MeasId-v1250 OPTIONAL,
+ cellsTriggeredList CellsTriggeredList OPTIONAL,
+ csi-RS-TriggeredList-r12 CSI-RS-TriggeredList-r12 OPTIONAL,
+ poolsTriggeredList-r14 Tx-ResourcePoolMeasList-r14 OPTIONAL,
+ numberOfReportsSent INTEGER
+}
+
+CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF CHOICE {
+ physCellIdEUTRA PhysCellId,
+ physCellIdUTRA CHOICE {
+ fdd PhysCellIdUTRA-FDD,
+ tdd PhysCellIdUTRA-TDD
+ },
+ physCellIdGERAN SEQUENCE {
+ carrierFreq CarrierFreqGERAN,
+ physCellId PhysCellIdGERAN
+ },
+ physCellIdCDMA2000 PhysCellIdCDMA2000,
+ wlan-Identifiers-r13 WLAN-Identifiers-r12,
+ physCellIdNR-r15 SEQUENCE {
+ carrierFreq ARFCN-ValueNR-r15,
+ physCellId PhysCellIdNR-r15,
+ rs-IndexList-r15 SSB-IndexList-r15 OPTIONAL
+ }
+}
+
+CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..maxCSI-RS-Meas-r12)) OF MeasCSI-RS-Id-r12
+
+SSB-IndexList-r15::= SEQUENCE (SIZE (1..maxRS-Index-r15)) OF RS-IndexNR-r15
+
+VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
+
+
+VarPendingRnaProcedure-r15 ::= SEQUENCE {
+ pendingRnaProcedure BOOLEAN OPTIONAL
+}
+
+
+VarRLF-Report-r10 ::= SEQUENCE {
+ rlf-Report-r10 RLF-Report-r9,
+ plmn-Identity-r10 PLMN-Identity
+}
+
+VarRLF-Report-r11 ::= SEQUENCE {
+ rlf-Report-r10 RLF-Report-r9,
+ plmn-IdentityList-r11 PLMN-IdentityList3-r11
+}
+
+
+VarShortINACTIVE-MAC-Input-r15 ::= SEQUENCE {
+ cellIdentity-r15 CellIdentity,
+ physCellId-r15 PhysCellId,
+ c-RNTI-r15 C-RNTI
+}
+
+
+VarShortMAC-Input ::= SEQUENCE {
+ cellIdentity CellIdentity,
+ physCellId PhysCellId,
+ c-RNTI C-RNTI
+}
+
+
+VarShortResumeMAC-Input-r13 ::= SEQUENCE {
+ cellIdentity-r13 CellIdentity,
+ physCellId-r13 PhysCellId,
+ c-RNTI-r13 C-RNTI,
+ resumeDiscriminator-r13 BIT STRING(SIZE(1))
+}
+
+
+VarWLAN-MobilityConfig ::= SEQUENCE {
+ wlan-MobilitySet-r13 WLAN-Id-List-r13 OPTIONAL,
+ successReportRequested ENUMERATED {true} OPTIONAL,
+ wlan-SuspendConfig-r14 WLAN-SuspendConfig-r14 OPTIONAL
+}
+
+
+VarWLAN-Status-r13 ::= SEQUENCE {
+ status-r13 WLAN-Status-r13,
+ status-r14 WLAN-Status-v1430 OPTIONAL
+}
+
+
+maxLogMeas-r10 INTEGER ::= 4060-- Maximum number of logged measurement entries
+ -- that can be stored by the UE
+
+
+END
+
+
+NBIOT-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ VarShortMAC-Input,
+ VarShortResumeMAC-Input-r13
+
+FROM EUTRA-UE-Variables;
+
+VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input
+
+VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13
+
+
+END
+
+
+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,
+ 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-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
+ ]]
+
+}
+
+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, -- Need OR
+ ...,
+ [[ 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 --Need OR
+}
+
+MCS-PSSCH-Range-r15 ::= SEQUENCE{
+ minMCS-PSSCH-r15 INTEGER (0..31),
+ maxMCS-PSSCH-r15 INTEGER (0..31)
+}
+
+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
+
+
+EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ AntennaInfoCommon,
+ AntennaInfoDedicated-v10i0,
+ ARFCN-ValueEUTRA,
+ ARFCN-ValueEUTRA-v9e0,
+ ARFCN-ValueEUTRA-r9,
+ CellIdentity,
+ C-RNTI,
+ DL-DCCH-Message,
+ DRB-Identity,
+ DRB-ToReleaseList,
+ DRB-ToReleaseList-r15,
+ FreqBandIndicator-r11,
+ InDeviceCoexIndication-r11,
+ LWA-Config-r13,
+ MasterInformationBlock,
+ maxBands,
+ maxFreq,
+ maxDRB,
+ maxDRBExt-r15,
+ maxDRB-r15,
+ maxSCell-r10,
+ maxSCell-r13,
+ maxServCell-r10,
+ maxServCell-r13,
+ MBMSInterestIndication-r11,
+ MeasConfig,
+ MeasGapConfig,
+ MeasGapConfigPerCC-List-r14,
+ MeasResultForRSSI-r13,
+ MeasResultListWLAN-r13,
+ OtherConfig-r9,
+ PhysCellId,
+ P-Max,
+ PowerCoordinationInfo-r12,
+ SidelinkUEInformation-r12,
+ SL-CommConfig-r12,
+ SL-DiscConfig-r12,
+ RadioResourceConfigDedicated,
+ RAN-NotificationAreaInfo-r15,
+ RCLWI-Configuration-r13,
+ RSRP-Range,
+ RSRQ-Range,
+ RSRQ-Range-v1250,
+ RS-SINR-Range-r13,
+ SCellToAddModList-r10,
+ SCellToAddModListExt-r13,
+ SCG-ConfigPartSCG-r12,
+ SecurityAlgorithmConfig,
+ SCellIndex-r10,
+ SCellIndex-r13,
+ SCellToReleaseList-r10,
+ SCellToReleaseListExt-r13,
+ ServCellIndex-r10,
+ ServCellIndex-r13,
+ ShortMAC-I,
+ MeasResultServFreqListNR-r15,
+ MeasResultSSTD-r13,
+ SL-V2X-ConfigDedicated-r14,
+ SystemInformationBlockType1,
+ SystemInformationBlockType1-v890-IEs,
+ SystemInformationBlockType2,
+ UEAssistanceInformation-r11,
+ UECapabilityInformation,
+ UE-CapabilityRAT-ContainerList,
+ UE-RadioPagingInfo-r12,
+ WLANConnectionStatusReport-r13,
+ WLAN-OffloadConfig-r12
+FROM EUTRA-RRC-Definitions;
+
+
+HandoverCommand ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverCommand-r8 HandoverCommand-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverCommand-r8-IEs ::= SEQUENCE {
+ handoverCommandMessage OCTET STRING (CONTAINING DL-DCCH-Message),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+HandoverPreparationInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverPreparationInformation-r8 HandoverPreparationInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverPreparationInformation-r8-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo UE-CapabilityRAT-ContainerList,
+ as-Config AS-Config OPTIONAL, -- Cond HO
+ rrm-Config RRM-Config OPTIONAL,
+ as-Context AS-Context OPTIONAL, -- Cond HO
+ nonCriticalExtension HandoverPreparationInformation-v920-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v920-IEs ::= SEQUENCE {
+ ue-ConfigRelease-r9 ENUMERATED {
+ rel9, rel10, rel11, rel12, v10j0, v11e0,
+ v1280, rel13, ..., rel14, rel15} OPTIONAL, -- Cond HO2
+ nonCriticalExtension HandoverPreparationInformation-v9d0-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING (CONTAINING HandoverPreparationInformation-v9j0-IEs) OPTIONAL,
+ nonCriticalExtension HandoverPreparationInformation-v9e0-IEs OPTIONAL
+}
+
+-- Late non-critical extensions:
+HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE {
+ -- Following field is only for pre REL-10 late non-critical extensions
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension HandoverPreparationInformation-v10j0-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE {
+ as-Config-v10j0 AS-Config-v10j0 OPTIONAL,
+ -- Following field is only for late non-critical extensions from REL-10
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- Regular non-critical extensions:
+HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE {
+ as-Config-v9e0 AS-Config-v9e0 OPTIONAL, -- Cond HO2
+ nonCriticalExtension HandoverPreparationInformation-v1130-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v1130-IEs ::= SEQUENCE {
+ as-Context-v1130 AS-Context-v1130 OPTIONAL, -- Cond HO2
+ nonCriticalExtension HandoverPreparationInformation-v1250-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v1250-IEs ::= SEQUENCE {
+ ue-SupportedEARFCN-r12 ARFCN-ValueEUTRA-r9 OPTIONAL, -- Cond HO3
+ as-Config-v1250 AS-Config-v1250 OPTIONAL, -- Cond HO2
+ nonCriticalExtension HandoverPreparationInformation-v1320-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v1320-IEs ::= SEQUENCE {
+ as-Config-v1320 AS-Config-v1320 OPTIONAL, -- Cond HO2
+ as-Context-v1320 AS-Context-v1320 OPTIONAL, -- Cond HO2
+ nonCriticalExtension HandoverPreparationInformation-v1430-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-v1430-IEs ::= SEQUENCE {
+ as-Config-v1430 AS-Config-v1430 OPTIONAL, -- Cond HO2
+ makeBeforeBreakReq-r14 ENUMERATED {true} OPTIONAL, -- Cond HO2
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+HandoverPreparationInformation-v1530-IEs ::= SEQUENCE {
+ ran-NotificationAreaInfo-r15 RAN-NotificationAreaInfo-r15 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SCG-Config-r12 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ scg-Config-r12 SCG-Config-r12-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SCG-Config-r12-IEs ::= SEQUENCE {
+ scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+SCG-ConfigInfo-r12 ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ scg-ConfigInfo-r12 SCG-ConfigInfo-r12-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SCG-ConfigInfo-r12-IEs ::= SEQUENCE {
+ radioResourceConfigDedMCG-r12 RadioResourceConfigDedicated OPTIONAL,
+ sCellToAddModListMCG-r12 SCellToAddModList-r10 OPTIONAL,
+ measGapConfig-r12 MeasGapConfig OPTIONAL,
+ powerCoordinationInfo-r12 PowerCoordinationInfo-r12 OPTIONAL,
+ scg-RadioConfig-r12 SCG-ConfigPartSCG-r12 OPTIONAL,
+ eutra-CapabilityInfo-r12 OCTET STRING (CONTAINING UECapabilityInformation) OPTIONAL,
+ scg-ConfigRestrictInfo-r12 SCG-ConfigRestrictInfo-r12 OPTIONAL,
+ mbmsInterestIndication-r12 OCTET STRING (CONTAINING
+ MBMSInterestIndication-r11) OPTIONAL,
+ measResultServCellListSCG-r12 MeasResultServCellListSCG-r12 OPTIONAL,
+ drb-ToAddModListSCG-r12 DRB-InfoListSCG-r12 OPTIONAL,
+ drb-ToReleaseListSCG-r12 DRB-ToReleaseList OPTIONAL,
+ sCellToAddModListSCG-r12 SCellToAddModListSCG-r12 OPTIONAL,
+ sCellToReleaseListSCG-r12 SCellToReleaseList-r10 OPTIONAL,
+ p-Max-r12 P-Max OPTIONAL,
+ nonCriticalExtension SCG-ConfigInfo-v1310-IEs OPTIONAL
+}
+
+SCG-ConfigInfo-v1310-IEs ::= SEQUENCE {
+ measResultSSTD-r13 MeasResultSSTD-r13 OPTIONAL, sCellToAddModListMCG-Ext-r13 SCellToAddModListExt-r13 OPTIONAL,
+ measResultServCellListSCG-Ext-r13 MeasResultServCellListSCG-Ext-r13 OPTIONAL,
+ sCellToAddModListSCG-Ext-r13 SCellToAddModListSCG-Ext-r13 OPTIONAL,
+ sCellToReleaseListSCG-Ext-r13 SCellToReleaseListExt-r13 OPTIONAL,
+ nonCriticalExtension SCG-ConfigInfo-v1330-IEs OPTIONAL
+}
+
+SCG-ConfigInfo-v1330-IEs ::= SEQUENCE {
+ measResultListRSSI-SCG-r13 MeasResultListRSSI-SCG-r13 OPTIONAL,
+ nonCriticalExtension SCG-ConfigInfo-v1430-IEs OPTIONAL
+}
+
+SCG-ConfigInfo-v1430-IEs ::= SEQUENCE {
+ makeBeforeBreakSCG-Req-r14 ENUMERATED {true} OPTIONAL,
+ measGapConfigPerCC-List MeasGapConfigPerCC-List-r14 OPTIONAL,
+ nonCriticalExtension SCG-ConfigInfo-v1530-IEs OPTIONAL
+}
+
+SCG-ConfigInfo-v1530-IEs ::= SEQUENCE {
+ drb-ToAddModListSCG-r15 DRB-InfoListSCG-r15 OPTIONAL,
+ drb-ToReleaseListSCG-r15 DRB-ToReleaseList-r15 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-InfoSCG-r12
+DRB-InfoListSCG-r15 ::= SEQUENCE (SIZE (1..maxDRB-r15)) OF DRB-InfoSCG-r12
+
+DRB-InfoSCG-r12 ::= SEQUENCE {
+ eps-BearerIdentity-r12 INTEGER (0..15) OPTIONAL, -- Cond DRB-Setup
+ drb-Identity-r12 DRB-Identity,
+ drb-Type-r12 ENUMERATED {split, scg} OPTIONAL, -- Cond DRB-Setup
+ ...
+}
+
+SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..maxSCell-r10)) OF Cell-ToAddMod-r12
+
+SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxSCell-r13)) OF Cell-ToAddMod-r12
+
+Cell-ToAddMod-r12 ::= SEQUENCE {
+ sCellIndex-r12 SCellIndex-r10,
+ cellIdentification-r12 SEQUENCE {
+ physCellId-r12 PhysCellId,
+ dl-CarrierFreq-r12 ARFCN-ValueEUTRA-r9
+ } OPTIONAL, -- Cond SCellAdd
+ measResultCellToAdd-r12 SEQUENCE {
+ rsrpResult-r12 RSRP-Range,
+ rsrqResult-r12 RSRQ-Range
+ } OPTIONAL, -- Cond SCellAdd2
+ ...,
+ [[ sCellIndex-r13 SCellIndex-r13 OPTIONAL,
+ measResultCellToAdd-v1310 SEQUENCE {
+ rs-sinr-Result-r13 RS-SINR-Range-r13
+ } OPTIONAL -- Cond SCellAdd2
+ ]]
+}
+
+MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..maxServCell-r10)) OF MeasResultServCellSCG-r12
+
+MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultServCellSCG-r12
+
+MeasResultServCellSCG-r12 ::= SEQUENCE {
+ servCellId-r12 ServCellIndex-r10,
+ measResultSCell-r12 SEQUENCE {
+ rsrpResultSCell-r12 RSRP-Range,
+ rsrqResultSCell-r12 RSRQ-Range
+ },
+ ...,
+ [[ servCellId-r13 ServCellIndex-r13 OPTIONAL,
+ measResultSCell-v1310 SEQUENCE {
+ rs-sinr-ResultSCell-r13 RS-SINR-Range-r13
+ } OPTIONAL
+ ]]
+}
+
+MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..maxServCell-r13)) OF MeasResultRSSI-SCG-r13
+
+MeasResultRSSI-SCG-r13 ::= SEQUENCE {
+ servCellId-r13 ServCellIndex-r13,
+ measResultForRSSI-r13 MeasResultForRSSI-r13
+}
+
+SCG-ConfigRestrictInfo-r12 ::= SEQUENCE {
+ maxSCH-TB-BitsDL-r12 INTEGER (1..100),
+ maxSCH-TB-BitsUL-r12 INTEGER (1..100)
+}
+
+
+UEPagingCoverageInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ uePagingCoverageInformation-r13 UEPagingCoverageInformation-r13-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEPagingCoverageInformation-r13-IEs ::= SEQUENCE {
+ mpdcch-NumRepetition-r13 INTEGER (1..256) OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UERadioAccessCapabilityInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioAccessCapabilityInformation-r8
+ UERadioAccessCapabilityInformation-r8-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UECapabilityInformation),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UERadioPagingInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioPagingInformation-r12 UERadioPagingInformation-r12-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioPagingInformation-r12-IEs ::= SEQUENCE {
+ ue-RadioPagingInfo-r12 OCTET STRING (CONTAINING UE-RadioPagingInfo-r12),
+ nonCriticalExtension UERadioPagingInformation-v1310-IEs OPTIONAL
+}
+
+UERadioPagingInformation-v1310-IEs ::= SEQUENCE {
+ supportedBandListEUTRAForPaging-r13 SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicator-r11 OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+
+}
+
+
+AS-Config ::= SEQUENCE {
+ sourceMeasConfig MeasConfig,
+ sourceRadioResourceConfig RadioResourceConfigDedicated,
+ sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
+ sourceUE-Identity C-RNTI,
+ sourceMasterInformationBlock MasterInformationBlock,
+ sourceSystemInformationBlockType1 SystemInformationBlockType1(WITH COMPONENTS
+ {..., nonCriticalExtension ABSENT}),
+ sourceSystemInformationBlockType2 SystemInformationBlockType2,
+ antennaInfoCommon AntennaInfoCommon,
+ sourceDl-CarrierFreq ARFCN-ValueEUTRA,
+ ...,
+ [[ sourceSystemInformationBlockType1Ext OCTET STRING (CONTAINING
+ SystemInformationBlockType1-v890-IEs) OPTIONAL,
+ sourceOtherConfig-r9 OtherConfig-r9
+ -- sourceOtherConfig-r9 should have been optional. A target eNB compliant with this transfer
+ -- syntax should support receiving an AS-Config not including this extension addition group
+ -- e.g. from a legacy source eNB
+ ]],
+ [[ sourceSCellConfigList-r10 SCellToAddModList-r10 OPTIONAL
+ ]],
+ [[ sourceConfigSCG-r12 SCG-Config-r12 OPTIONAL
+ ]],
+ [[ as-ConfigNR-r15 AS-ConfigNR-r15 OPTIONAL
+ ]]
+}
+
+AS-Config-v9e0 ::= SEQUENCE {
+ sourceDl-CarrierFreq-v9e0 ARFCN-ValueEUTRA-v9e0
+}
+
+AS-Config-v10j0 ::= SEQUENCE {
+ antennaInfoDedicatedPCell-v10i0 AntennaInfoDedicated-v10i0 OPTIONAL
+}
+
+AS-Config-v1250 ::= SEQUENCE {
+ sourceWlan-OffloadConfig-r12 WLAN-OffloadConfig-r12 OPTIONAL,
+ sourceSL-CommConfig-r12 SL-CommConfig-r12 OPTIONAL,
+ sourceSL-DiscConfig-r12 SL-DiscConfig-r12 OPTIONAL
+}
+
+AS-Config-v1320 ::= SEQUENCE {
+ sourceSCellConfigList-r13 SCellToAddModListExt-r13 OPTIONAL,
+ sourceRCLWI-Configuration-r13 RCLWI-Configuration-r13 OPTIONAL
+}
+
+AS-Config-v1430 ::= SEQUENCE {
+ sourceSL-V2X-CommConfig-r14 SL-V2X-ConfigDedicated-r14 OPTIONAL,
+ sourceLWA-Config-r14 LWA-Config-r13 OPTIONAL,
+ sourceWLAN-MeasResult-r14 MeasResultListWLAN-r13 OPTIONAL
+}
+
+AS-ConfigNR-r15 ::= SEQUENCE {
+ sourceRB-ConfigNR-r15 OCTET STRING OPTIONAL,
+ sourceRB-ConfigSN-NR-r15 OCTET STRING OPTIONAL,
+ sourceOtherConfigSN-NR-r15 OCTET STRING OPTIONAL
+}
+
+
+AS-Context ::= SEQUENCE {
+ reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
+}
+
+AS-Context-v1130 ::= SEQUENCE {
+ idc-Indication-r11 OCTET STRING (CONTAINING
+ InDeviceCoexIndication-r11) OPTIONAL, -- Cond HO2
+ mbmsInterestIndication-r11 OCTET STRING (CONTAINING
+ MBMSInterestIndication-r11) OPTIONAL, -- Cond HO2
+ powerPrefIndication-r11 OCTET STRING (CONTAINING
+ UEAssistanceInformation-r11) OPTIONAL, -- Cond HO2
+ ...,
+ [[ sidelinkUEInformation-r12 OCTET STRING (CONTAINING
+ SidelinkUEInformation-r12) OPTIONAL -- Cond HO2
+ ]],
+ [[ sourceContextEN-DC-r15 OCTET STRING OPTIONAL -- Cond HO2
+ ]]
+}
+
+AS-Context-v1320 ::= SEQUENCE {
+ wlanConnectionStatusReport-r13 OCTET STRING (CONTAINING
+ WLANConnectionStatusReport-r13) OPTIONAL -- Cond HO2
+}
+
+
+ReestablishmentInfo ::= SEQUENCE {
+ sourcePhysCellId PhysCellId,
+ targetCellShortMAC-I ShortMAC-I,
+ additionalReestabInfoList AdditionalReestabInfoList OPTIONAL,
+ ...
+}
+
+AdditionalReestabInfoList ::= SEQUENCE ( SIZE (1..maxReestabInfo) ) OF AdditionalReestabInfo
+
+AdditionalReestabInfo ::= SEQUENCE{
+ cellIdentity CellIdentity,
+ key-eNodeB-Star Key-eNodeB-Star,
+ shortMAC-I ShortMAC-I
+}
+
+Key-eNodeB-Star ::= BIT STRING (SIZE (256))
+
+
+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-r10 CandidateCellInfoList-r10 OPTIONAL
+ ]],
+ [[ candidateCellInfoListNR-r15 MeasResultServFreqListNR-r15 OPTIONAL
+ ]]
+}
+
+CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..maxFreq)) OF CandidateCellInfo-r10
+
+CandidateCellInfo-r10 ::= SEQUENCE {
+ -- cellIdentification
+ physCellId-r10 PhysCellId,
+ dl-CarrierFreq-r10 ARFCN-ValueEUTRA,
+ -- available measurement results
+ rsrpResult-r10 RSRP-Range OPTIONAL,
+ rsrqResult-r10 RSRQ-Range OPTIONAL,
+ ...,
+ [[ dl-CarrierFreq-v1090 ARFCN-ValueEUTRA-v9e0 OPTIONAL
+ ]],
+ [[ rsrqResult-v1250 RSRQ-Range-v1250 OPTIONAL
+ ]],
+ [[ rs-sinr-Result-r13 RS-SINR-Range-r13 OPTIONAL
+ ]]
+}
+
+
+maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
+ -- at handover for re-establishment preparation
+
+
+END
+
+
+NBIOT-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ C-RNTI,
+ PhysCellId,
+ SecurityAlgorithmConfig,
+ ShortMAC-I
+FROM EUTRA-RRC-Definitions
+
+ AdditionalReestabInfoList
+FROM EUTRA-InterNodeDefinitions
+
+ CarrierFreq-NB-r13,
+ RadioResourceConfigDedicated-NB-r13,
+ UECapabilityInformation-NB,
+ UE-Capability-NB-r13,
+ UE-Capability-NB-Ext-r14-IEs,
+ UE-RadioPagingInfo-NB-r13
+FROM NBIOT-RRC-Definitions;
+
+
+HandoverPreparationInformation-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ handoverPreparationInformation-r13 HandoverPreparationInformation-NB-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+HandoverPreparationInformation-NB-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo-r13 UE-Capability-NB-r13,
+ as-Config-r13 AS-Config-NB,
+ rrm-Config-r13 RRM-Config-NB OPTIONAL,
+ as-Context-r13 AS-Context-NB OPTIONAL,
+ nonCriticalExtension HandoverPreparationInformation-NB-v1380-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension HandoverPreparationInformation-NB-Ext-r14-IEs OPTIONAL
+}
+
+HandoverPreparationInformation-NB-Ext-r14-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfoExt-r14 OCTET STRING (CONTAINING UE-Capability-NB-Ext-r14-IEs) OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UEPagingCoverageInformation-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ uePagingCoverageInformation-r13 UEPagingCoverageInformation-NB-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEPagingCoverageInformation-NB-IEs ::= SEQUENCE {
+-- the possible value(s) can differ from those sent on Uu
+ npdcch-NumRepetitionPaging-r13 INTEGER (1..2048) OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UERadioAccessCapabilityInformation-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioAccessCapabilityInformation-r13
+ UERadioAccessCapabilityInformation-NB-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioAccessCapabilityInformation-NB-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo-r13 OCTET STRING (CONTAINING UE-Capability-NB-r13),
+ nonCriticalExtension UERadioAccessCapabilityInformation-NB-v1380-IEs OPTIONAL
+}
+
+UERadioAccessCapabilityInformation-NB-v1380-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UERadioAccessCapabilityInformation-NB-r14-IEs OPTIONAL
+}
+
+UERadioAccessCapabilityInformation-NB-r14-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo-r14 OCTET STRING (CONTAINING UECapabilityInformation-NB) OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+UERadioPagingInformation-NB ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioPagingInformation-r13 UERadioPagingInformation-NB-IEs,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioPagingInformation-NB-IEs ::= SEQUENCE {
+ ue-RadioPagingInfo-r13 OCTET STRING (CONTAINING UE-RadioPagingInfo-NB-r13),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+AS-Config-NB ::= SEQUENCE {
+ sourceRadioResourceConfig-r13 RadioResourceConfigDedicated-NB-r13,
+ sourceSecurityAlgorithmConfig-r13 SecurityAlgorithmConfig,
+ sourceUE-Identity-r13 C-RNTI,
+ sourceDl-CarrierFreq-r13 CarrierFreq-NB-r13,
+ ...
+}
+
+
+AS-Context-NB ::= SEQUENCE {
+ reestablishmentInfo-r13 ReestablishmentInfo-NB OPTIONAL,
+ ...
+}
+
+
+ReestablishmentInfo-NB ::= SEQUENCE {
+ sourcePhysCellId-r13 PhysCellId,
+ targetCellShortMAC-I-r13 ShortMAC-I,
+ additionalReestabInfoList-r13 AdditionalReestabInfoList OPTIONAL,
+ ...
+}
+
+
+
+
+RRM-Config-NB ::= SEQUENCE {
+ ue-InactiveTime ENUMERATED {
+ s1, s2, s3, s5, s7, s10, s15, s20,
+ s25, s30, s40, s50, min1, min1s20, 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,
+ ...
+}
+
+
+END
+
+
diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c
index 73ce23e160..a7e7e0ea97 100644
--- a/openair2/RRC/LTE/rrc_UE.c
+++ b/openair2/RRC/LTE/rrc_UE.c
@@ -3869,7 +3869,11 @@ uint64_t arfcn_to_freq(long arfcn) {
// Dump contents
if ((*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_systemInformation_r8 ||
+#if (RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ (*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_criticalExtensionsFuture_r15) {
+#else
(*si)->criticalExtensions.present == SystemInformation__criticalExtensions_PR_criticalExtensionsFuture) {
+#endif
LOG_D( RRC, "[UE] (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count %d\n",
(*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count );
} else {
diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.c b/openair2/RRC/NR/MESSAGES/asn1_msg.c
index 22cb776a0e..a87501ced9 100644
--- a/openair2/RRC/NR/MESSAGES/asn1_msg.c
+++ b/openair2/RRC/NR/MESSAGES/asn1_msg.c
@@ -213,7 +213,7 @@ uint8_t get_adjacent_cell_mod_id_NR(uint16_t phyCellId)
uint8_t do_MIB_NR(rrc_gNB_carrier_data_t *carrier,
uint32_t frame,
uint32_t ssb_SubcarrierOffset,
- uint32_t pdcch_ConfigSIB1,
+ uint32_t pdcch_ConfigSIB1,
uint32_t subCarrierSpacingCommon,
uint32_t dmrs_TypeA_Position)
{
@@ -234,15 +234,19 @@ uint8_t do_MIB_NR(rrc_gNB_carrier_data_t *carrier,
mib->message.choice.mib->systemFrameNumber.bits_unused=2;
//38.331 spare BIT STRING (SIZE (1))
- uint16_t *spare= calloc(1, sizeof(uint16_t));
+ uint16_t *spare= CALLOC(1, sizeof(uint16_t));
if (spare == NULL) abort();
mib->message.choice.mib->spare.buf = (uint8_t *)spare;
mib->message.choice.mib->spare.size = 1;
mib->message.choice.mib->spare.bits_unused = 7; // This makes a spare of 1 bits
mib->message.choice.mib->ssb_SubcarrierOffset = ssb_SubcarrierOffset;
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ mib->message.choice.mib->pdcch_ConfigSIB1.controlResourceSetZero = (pdcch_ConfigSIB1 / 16);
+ mib->message.choice.mib->pdcch_ConfigSIB1.searchSpaceZero = (pdcch_ConfigSIB1 % 16);
+#else
mib->message.choice.mib->pdcch_ConfigSIB1 = pdcch_ConfigSIB1;
-
+#endif
switch (subCarrierSpacingCommon) {
case 15:
mib->message.choice.mib->subCarrierSpacingCommon = NR_MIB__subCarrierSpacingCommon_scs15or60;
@@ -353,7 +357,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->controlResourceSetZero = CALLOC(1,sizeof(long));
(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceZero = CALLOC(1,sizeof(long));
(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonControlResourceSet = CALLOC(1,sizeof(struct NR_ControlResourceSet));
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ (*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList = CALLOC(1,sizeof(struct NR_PDCCH_ConfigCommon__commonSearchSpaceList));
+#else
(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpace = CALLOC(1,sizeof(struct NR_PDCCH_ConfigCommon__commonSearchSpace));
+#endif
(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1 = CALLOC(1,sizeof(NR_SearchSpaceId_t));
(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation = CALLOC(1,sizeof(NR_SearchSpaceId_t));
(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->pagingSearchSpace = CALLOC(1,sizeof(NR_SearchSpaceId_t));
@@ -377,8 +385,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rsrp_ThresholdSSB = CALLOC(1,sizeof(NR_RSRP_Range_t));
(*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rsrp_ThresholdSSB_SUL = CALLOC(1,sizeof(NR_RSRP_Range_t));
(*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg1_SubcarrierSpacing = CALLOC(1,sizeof(NR_SubcarrierSpacing_t));
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ (*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder = CALLOC(1,sizeof(long));
+#else
(*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoding = CALLOC(1,sizeof(long));
-
+#endif
(*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon = CALLOC(1,sizeof(NR_SetupRelease_PUSCH_ConfigCommon_t));
(*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup = CALLOC(1,sizeof(struct NR_PUSCH_ConfigCommon));
(*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon->choice.setup->groupHoppingEnabledTransformPrecoding = CALLOC(1,sizeof(long));
@@ -574,20 +585,32 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_0->nrofCandidates_SFI.aggregationLevel8 = CALLOC(1,sizeof(long));
bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_0->nrofCandidates_SFI.aggregationLevel16 = CALLOC(1,sizeof(long));
bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_3 = CALLOC(1,sizeof(struct NR_SearchSpace__searchSpaceType__common__dci_Format2_3));
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_3->dummy1 = CALLOC(1,sizeof(long));
+#else
bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_3->monitoringPeriodicity = CALLOC(1,sizeof(long));
+#endif
*(bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_0->nrofCandidates_SFI.aggregationLevel1) = configuration->Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1[CC_id];
*(bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_0->nrofCandidates_SFI.aggregationLevel2) = configuration->Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2[CC_id];
*(bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_0->nrofCandidates_SFI.aggregationLevel4) = configuration->Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4[CC_id];
*(bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_0->nrofCandidates_SFI.aggregationLevel8) = configuration->Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8[CC_id];
*(bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_0->nrofCandidates_SFI.aggregationLevel16) = configuration->Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16[CC_id];
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ *(bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_3->dummy1) = configuration->Common_dci_Format2_3_monitoringPeriodicity[CC_id];
+ bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_3->dummy2 = configuration->Common_dci_Format2_3_nrofPDCCH_Candidates[CC_id];
+#else
*(bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_3->monitoringPeriodicity) = configuration->Common_dci_Format2_3_monitoringPeriodicity[CC_id];
- bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_3->nrofPDCCH_Candidates = configuration->Common_dci_Format2_3_nrofPDCCH_Candidates[CC_id];
-
+ bwp_dl_searchspace->searchSpaceType->choice.common->dci_Format2_3->nrofPDCCH_Candidates = configuration->Common_dci_Format2_3_nrofPDCCH_Candidates[CC_id];
+#endif
}else if (bwp_dl_searchspace->searchSpaceType->present == NR_SearchSpace__searchSpaceType_PR_ue_Specific){
bwp_dl_searchspace->searchSpaceType->choice.ue_Specific->dci_Formats = configuration->ue_Specific__dci_Formats[CC_id];
}
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ ASN_SEQUENCE_ADD(&(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,&bwp_dl_searchspace);
+#else
ASN_SEQUENCE_ADD(&(*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->commonSearchSpace->list,&bwp_dl_searchspace);
+#endif
*((*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceSIB1) = configuration->searchSpaceSIB1[CC_id];
*((*servingcellconfigcommon)->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation) = configuration->searchSpaceOtherSystemInformation[CC_id];
@@ -675,7 +698,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
(*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->restrictedSetConfig = configuration->restrictedSetConfig[CC_id];
if(configuration->msg3_transformPrecoding[CC_id]){
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ *((*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder) = NR_RACH_ConfigCommon__msg3_transformPrecoder_enabled;
+#else
*((*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoding) = NR_RACH_ConfigCommon__msg3_transformPrecoding_enabled;
+#endif
}
//Fill initialUplinkBWP -> BWP-UplinkCommon -> rach_ConfigCommon -> rach_ConfigGeneric//
@@ -710,8 +737,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
*((*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->p0_nominal) = configuration->p0_nominal[CC_id];
*((*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->pucch_ResourceCommon) = configuration->pucch_ResourceCommon[CC_id];
*((*servingcellconfigcommon)->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->hoppingId) = configuration->hoppingId[CC_id];
-
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ (*servingcellconfigcommon)->uplinkConfigCommon->dummy = configuration->UL_timeAlignmentTimerCommon[CC_id];
+#else
(*servingcellconfigcommon)->uplinkConfigCommon->timeAlignmentTimerCommon = configuration->UL_timeAlignmentTimerCommon[CC_id];
+#endif
(*servingcellconfigcommon)->n_TimingAdvanceOffset = CALLOC(1,sizeof(long));
*((*servingcellconfigcommon)->n_TimingAdvanceOffset)=configuration->ServingCellConfigCommon_n_TimingAdvanceOffset[CC_id];
@@ -820,7 +850,11 @@ void do_SERVINGCELLCONFIGCOMMON(uint8_t Mod_id,
}
*(ratematchpattern->subcarrierSpacing) = configuration->RateMatchPattern_subcarrierSpacing[CC_id];
- ratematchpattern->mode = configuration->RateMatchPattern_mode[CC_id];
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ ratematchpattern->dummy = configuration->RateMatchPattern_mode[CC_id];
+#else
+ ratematchpattern->mode = configuration->RateMatchPattern_mode[CC_id];
+#endif
ASN_SEQUENCE_ADD(&(*servingcellconfigcommon)->rateMatchPatternToAddModList->list,&ratematchpattern);
@@ -1049,7 +1083,11 @@ void do_MAC_CELLGROUP(uint8_t Mod_id,
mac_CellGroupConfig->phr_Config->choice.setup->phr_ProhibitTimer = mac_cellgroup_config->phr_ProhibitTimer[CC_id];
mac_CellGroupConfig->phr_Config->choice.setup->phr_Tx_PowerFactorChange = mac_cellgroup_config->phr_Tx_PowerFactorChange[CC_id];
mac_CellGroupConfig->phr_Config->choice.setup->multiplePHR = mac_cellgroup_config->multiplePHR[CC_id];
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ mac_CellGroupConfig->phr_Config->choice.setup->dummy = mac_cellgroup_config->phr_Type2SpCell[CC_id];
+#else
mac_CellGroupConfig->phr_Config->choice.setup->phr_Type2SpCell = mac_cellgroup_config->phr_Type2SpCell[CC_id];
+#endif
mac_CellGroupConfig->phr_Config->choice.setup->phr_Type2OtherCell = mac_cellgroup_config->phr_Type2OtherCell[CC_id];
mac_CellGroupConfig->phr_Config->choice.setup->phr_ModeOtherCG = mac_cellgroup_config->phr_ModeOtherCG[CC_id];
@@ -1064,7 +1102,11 @@ void do_PHYSICALCELLGROUP(uint8_t Mod_id,
physicalCellGroupConfig->harq_ACK_SpatialBundlingPUCCH = CALLOC(1,sizeof(long));
physicalCellGroupConfig->harq_ACK_SpatialBundlingPUSCH = CALLOC(1,sizeof(long));
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ physicalCellGroupConfig->p_NR_FR1 = CALLOC(1,sizeof(NR_P_Max_t));
+#else
physicalCellGroupConfig->p_NR = CALLOC(1,sizeof(NR_P_Max_t));
+#endif
physicalCellGroupConfig->tpc_SRS_RNTI = CALLOC(1,sizeof(NR_RNTI_Value_t));
physicalCellGroupConfig->tpc_PUCCH_RNTI = CALLOC(1,sizeof(NR_RNTI_Value_t));
physicalCellGroupConfig->tpc_PUSCH_RNTI = CALLOC(1,sizeof(NR_RNTI_Value_t));
@@ -1072,7 +1114,11 @@ void do_PHYSICALCELLGROUP(uint8_t Mod_id,
*(physicalCellGroupConfig->harq_ACK_SpatialBundlingPUCCH) = physicalcellgroup_config->harq_ACK_SpatialBundlingPUCCH[CC_id];
*(physicalCellGroupConfig->harq_ACK_SpatialBundlingPUSCH) = physicalcellgroup_config->harq_ACK_SpatialBundlingPUSCH[CC_id];
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ *(physicalCellGroupConfig->p_NR_FR1) = physicalcellgroup_config->p_NR[CC_id];
+#else
*(physicalCellGroupConfig->p_NR) = physicalcellgroup_config->p_NR[CC_id];
+#endif
physicalCellGroupConfig->pdsch_HARQ_ACK_Codebook = physicalcellgroup_config->pdsch_HARQ_ACK_Codebook[CC_id];
*(physicalCellGroupConfig->tpc_SRS_RNTI) = physicalcellgroup_config->tpc_SRS_RNTI[CC_id];
*(physicalCellGroupConfig->tpc_PUCCH_RNTI) = physicalcellgroup_config->tpc_PUCCH_RNTI[CC_id];
@@ -1119,4 +1165,4 @@ void do_SpCellConfig(uint8_t Mod_id,
RC.nrrrc[Mod_id]->carrier[0].servingcellconfigcommon,
sizeof(struct NR_ServingCellConfigCommon));
*/
-}
\ No newline at end of file
+}
diff --git a/openair2/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.3.0.asn1 b/openair2/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.3.0.asn1
new file mode 100644
index 0000000000..134dad0744
--- /dev/null
+++ b/openair2/RRC/NR/MESSAGES/asn1c/ASN1_files/nr-rrc-15.3.0.asn1
@@ -0,0 +1,6516 @@
+-- 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-BCCH-DL-SCH-MESSAGE-START
+
+BCCH-DL-SCH-Message ::= SEQUENCE {
+ message BCCH-DL-SCH-MessageType
+}
+
+BCCH-DL-SCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ systemInformation SystemInformation,
+ systemInformationBlockType1 SIB1
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+-- TAG-BCCH-DL-SCH-MESSAGE-STOP
+-- TAG-DL-CCCH-MESSAGE-START
+
+
+DL-CCCH-Message ::= SEQUENCE {
+ message DL-CCCH-MessageType
+}
+
+DL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcReject RRCReject,
+ rrcSetup RRCSetup,
+ spare2 NULL,
+ spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+-- TAG-DL-CCCH-MESSAGE-STOP
+-- TAG-DL-DCCH-MESSAGE-START
+
+DL-DCCH-Message ::= SEQUENCE {
+ message DL-DCCH-MessageType
+}
+
+DL-DCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcReconfiguration RRCReconfiguration,
+ rrcResume RRCResume,
+ rrcRelease RRCRelease,
+ rrcReestablishment RRCReestablishment,
+ securityModeCommand SecurityModeCommand,
+ dlInformationTransfer DLInformationTransfer,
+ ueCapabilityEnquiry UECapabilityEnquiry,
+ counterCheck CounterCheck,
+ mobilityFromNRCommand MobilityFromNRCommand,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+-- TAG-DL-DCCH-MESSAGE-STOP
+-- TAG-PCCH-PCH-MESSAGE-START
+
+PCCH-Message ::= SEQUENCE {
+ message PCCH-MessageType
+}
+
+PCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ paging Paging,
+ spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+-- TAG-PCCH-PCH-MESSAGE-STOP
+-- TAG-UL-CCCH-MESSAGE-START
+
+
+UL-CCCH-Message ::= SEQUENCE {
+ message UL-CCCH-MessageType
+}
+
+UL-CCCH-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcSetupRequest RRCSetupRequest,
+ rrcResumeRequest RRCResumeRequest,
+ rrcReestablishmentRequest RRCReestablishmentRequest,
+ rrcSystemInfoRequest RRCSystemInfoRequest
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+-- TAG-UL-CCCH-MESSAGE-STOP
+-- TAG-UL-CCCH1-MESSAGE-START
+
+
+UL-CCCH1-Message ::= SEQUENCE {
+ message UL-CCCH1-MessageType
+}
+
+UL-CCCH1-MessageType ::= CHOICE {
+ c1 CHOICE {
+ rrcResumeRequest1 RRCResumeRequest1,
+ spare3 NULL,
+ spare2 NULL,
+ spare1 NULL
+
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+-- TAG-UL-CCCH1-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,
+ rrcSetupComplete RRCSetupComplete,
+ rrcReestablishmentComplete RRCReestablishmentComplete,
+ rrcResumeComplete RRCResumeComplete,
+ securityModeComplete SecurityModeComplete,
+ securityModeFailure SecurityModeFailure,
+ ulInformationTransfer ULInformationTransfer,
+ locationMeasurementIndication LocationMeasurementIndication,
+ ueCapabilityInformation UECapabilityInformation,
+ counterCheckResponse CounterCheckResponse,
+ ueAssistanceInformation UEAssistanceInformation,
+ spare4 NULL, spare3 NULL,
+ spare2 NULL, spare1 NULL
+ },
+ messageClassExtension SEQUENCE {}
+}
+
+-- TAG-UL-DCCH-MESSAGE-STOP
+-- TAG-COUNTERCHECK-START
+
+
+CounterCheck ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ counterCheck CounterCheck-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheck-IEs ::= SEQUENCE {
+ drb-CountMSB-InfoList DRB-CountMSB-InfoList,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-CountMSB-Info
+
+DRB-CountMSB-Info ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ countMSB-Uplink INTEGER(0..33554431),
+ countMSB-Downlink INTEGER(0..33554431)
+}
+
+-- TAG-COUNTERCHECK-STOP
+-- TAG-COUNTERCHECKRESPONSE-START
+
+CounterCheckResponse ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ counterCheckResponse CounterCheckResponse-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+CounterCheckResponse-IEs ::= SEQUENCE {
+ drb-CountInfoList DRB-CountInfoList,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+
+}
+
+DRB-CountInfoList ::= SEQUENCE (SIZE (0..maxDRB)) OF DRB-CountInfo
+
+DRB-CountInfo ::= SEQUENCE {
+ drb-Identity DRB-Identity,
+ count-Uplink INTEGER(0..4294967295),
+ count-Downlink INTEGER(0..4294967295)
+}
+
+-- TAG-COUNTERCHECKRESPONSE-STOP
+-- TAG-DLINFORMATIONTRANSFER-START
+
+DLInformationTransfer ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ dlInformationTransfer DLInformationTransfer-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+DLInformationTransfer-IEs ::= SEQUENCE {
+ dedicatedNAS-Message DedicatedNAS-Message OPTIONAL, -- Need N
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG-DLINFORMATIONTRANSFER-STOP
+-- TAG-LOCATIONMEASUREMENTINDICATION-START
+
+LocationMeasurementIndication ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ locationMeasurementIndication LocationMeasurementIndication-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+LocationMeasurementIndication-IEs ::= SEQUENCE {
+ measurementIndication SetupRelease { LocationMeasurementInfo},
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+-- TAG-LOCATIONMEASUREMENTINDICATION-STOP
+-- TAG-MIB-START
+
+MIB ::= SEQUENCE {
+ systemFrameNumber BIT STRING (SIZE (6)),
+ subCarrierSpacingCommon ENUMERATED {scs15or60, scs30or120},
+ ssb-SubcarrierOffset INTEGER (0..15),
+ dmrs-TypeA-Position ENUMERATED {pos2, pos3},
+ pdcch-ConfigSIB1 PDCCH-ConfigSIB1,
+ cellBarred ENUMERATED {barred, notBarred},
+ 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-MOBILITYFROMNRCOMMAND-START
+
+MobilityFromNRCommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ mobilityFromNRCommand MobilityFromNRCommand-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+MobilityFromNRCommand-IEs ::= SEQUENCE {
+ targetRAT-Type ENUMERATED { eutra, spare3, spare2, spare1, ...},
+ targetRAT-MessageContainer OCTET STRING,
+ nas-SecurityParamFromNR OCTET STRING OPTIONAL, -- Cond HO-ToEPC
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG-MOBILITYFROMNRCOMMAND-STOP
+-- TAG-PAGING-START
+
+Paging ::= SEQUENCE {
+ pagingRecordList PagingRecordList OPTIONAL, -- Need N
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+PagingRecordList ::= SEQUENCE (SIZE(1..maxNrofPageRec)) OF PagingRecord
+
+PagingRecord ::= SEQUENCE {
+ ue-Identity PagingUE-Identity,
+ accessType ENUMERATED {non3GPP} OPTIONAL, -- Need N
+ ...
+}
+
+PagingUE-Identity ::= CHOICE {
+ ng-5G-S-TMSI NG-5G-S-TMSI,
+ i-RNTI I-RNTI-Value,
+ ...
+}
+
+-- TAG-PAGING-STOP
+-- TAG-RRCREESTABLISHMENT-START
+
+RRCReestablishment ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcReestablishment RRCReestablishment-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCReestablishment-IEs ::= SEQUENCE {
+ nextHopChainingCount NextHopChainingCount,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG-RRCREESTABLISHMENT-STOP
+-- TAG-RRCREESTABLISHMENTCOMPLETE-START
+
+RRCReestablishmentComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcReestablishmentComplete RRCReestablishmentComplete-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCReestablishmentComplete-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG-RRCREESTABLISHMENTCOMPLETE-STOP
+-- TAG-RRCREESTABLISHMENTREQUEST-START
+
+
+RRCReestablishmentRequest ::= SEQUENCE {
+ rrcReestablishmentRequest RRCReestablishmentRequest-IEs
+}
+
+RRCReestablishmentRequest-IEs ::= SEQUENCE {
+ ue-Identity ReestabUE-Identity,
+ reestablishmentCause ReestablishmentCause,
+ spare BIT STRING (SIZE (1))
+}
+
+ReestabUE-Identity ::= SEQUENCE {
+ c-RNTI RNTI-Value,
+ physCellId PhysCellId,
+ shortMAC-I ShortMAC-I
+}
+
+ReestablishmentCause ::= ENUMERATED {reconfigurationFailure, handoverFailure, otherFailure, spare1}
+
+-- TAG-RRCREESTABLISHMENTREQUEST-STOP
+-- TAG-RRCRECONFIGURATION-START
+
+RRCReconfiguration ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcReconfiguration RRCReconfiguration-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCReconfiguration-IEs ::= SEQUENCE {
+ radioBearerConfig RadioBearerConfig OPTIONAL, -- Need M
+ secondaryCellGroup OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M
+ measConfig MeasConfig OPTIONAL, -- Need M
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension RRCReconfiguration-v1530-IEs OPTIONAL
+}
+
+RRCReconfiguration-v1530-IEs ::= SEQUENCE {
+ masterCellGroup OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M
+ fullConfig ENUMERATED {true} OPTIONAL, -- Cond FullConfig
+ dedicatedNAS-MessageList SEQUENCE (SIZE(1..maxDRB)) OF DedicatedNAS-Message OPTIONAL, -- Cond nonHO
+ masterKeyUpdate MasterKeyUpdate OPTIONAL, -- Cond MasterKeyChange
+ dedicatedSIB1-Delivery OCTET STRING (CONTAINING SIB1) OPTIONAL, -- Need N
+ dedicatedSystemInformationDelivery OCTET STRING (CONTAINING SystemInformation) OPTIONAL, -- Need N
+ otherConfig OtherConfig OPTIONAL, -- Need N
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+MasterKeyUpdate ::= SEQUENCE {
+ keySetChangeIndicator BOOLEAN,
+ nextHopChainingCount NextHopChainingCount,
+ nas-Container OCTET STRING OPTIONAL, -- Cond securityNASC
+ ...
+}
+
+-- 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 RRCReconfigurationComplete-v1530-IEs OPTIONAL
+}
+
+RRCReconfigurationComplete-v1530-IEs ::= SEQUENCE {
+ uplinkTxDirectCurrentList UplinkTxDirectCurrentList OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG-RRCRECONFIGURATIONCOMPLETE-STOP
+-- TAG-RRCREJECT-START
+
+RRCReject ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcReject RRCReject-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCReject-IEs ::= SEQUENCE {
+ waitTime RejectWaitTime OPTIONAL, -- Need N
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+RejectWaitTime ::= INTEGER (1..16)
+
+-- TAG-RRCREJECT-STOP
+-- TAG-RRCRELEASE-START
+
+RRCRelease ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcRelease RRCRelease-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCRelease-IEs ::= SEQUENCE {
+ redirectedCarrierInfo RedirectedCarrierInfo OPTIONAL, -- Need N
+ cellReselectionPriorities CellReselectionPriorities OPTIONAL, -- Need R
+ suspendConfig SuspendConfig OPTIONAL, -- Need R
+ deprioritisationReq SEQUENCE {
+ deprioritisationType ENUMERATED {frequency, nr},
+ deprioritisationTimer ENUMERATED {min5, min10, min15, min30}
+ } OPTIONAL, -- Need N
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+
+}
+
+RedirectedCarrierInfo ::= CHOICE {
+ nr CarrierInfoNR,
+ eutra RedirectedCarrierInfo-EUTRA,
+ ...
+}
+
+RedirectedCarrierInfo-EUTRA ::= SEQUENCE {
+ eutraFrequency ARFCN-ValueEUTRA,
+ cnType-r15 ENUMERATED {epc,fiveGC} OPTIONAL
+}
+
+CarrierInfoNR ::= SEQUENCE {
+ carrierFreq ARFCN-ValueNR,
+ ssbSubcarrierSpacing SubcarrierSpacing,
+ smtc SSB-MTC OPTIONAL, -- Need S
+ ...
+}
+
+SuspendConfig ::= SEQUENCE {
+ fullI-RNTI I-RNTI-Value,
+ shortI-RNTI ShortI-RNTI-Value,
+ ran-PagingCycle PagingCycle,
+ ran-NotificationAreaInfo RAN-NotificationAreaInfo OPTIONAL, -- Need M
+ t380 PeriodicRNAU-TimerValue OPTIONAL, -- Need R
+ nextHopChainingCount NextHopChainingCount,
+ ...
+}
+
+
+PeriodicRNAU-TimerValue ::= ENUMERATED { min5, min10, min20, min30, min60, min120, min360, min720}
+
+
+CellReselectionPriorities ::= SEQUENCE {
+ freqPriorityListEUTRA FreqPriorityListEUTRA OPTIONAL, -- Need M
+ freqPriorityListNR FreqPriorityListNR OPTIONAL, -- Need M
+ t320 ENUMERATED {min5, min10, min20, min30, min60, min120, min180, spare1} OPTIONAL, -- Need R
+ ...
+}
+
+PagingCycle ::= ENUMERATED {rf32, rf64, rf128, rf256}
+
+FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA
+
+FreqPriorityListNR ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityNR
+
+FreqPriorityEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ cellReselectionPriority CellReselectionPriority,
+ cellReselectionSubPriority CellReselectionSubPriority OPTIONAL -- Need R
+}
+
+FreqPriorityNR ::= SEQUENCE {
+ carrierFreq ARFCN-ValueNR,
+ cellReselectionPriority CellReselectionPriority,
+ cellReselectionSubPriority CellReselectionSubPriority OPTIONAL -- Need R
+}
+
+RAN-NotificationAreaInfo ::= CHOICE {
+ cellList PLMN-RAN-AreaCellList,
+ ran-AreaConfigList PLMN-RAN-AreaConfigList,
+ ...
+}
+
+PLMN-RAN-AreaCellList ::= SEQUENCE (SIZE (1.. maxPLMNIdentities)) OF PLMN-RAN-AreaCell
+
+PLMN-RAN-AreaCell ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL, -- Need S
+ ran-AreaCells SEQUENCE (SIZE (1..32)) OF CellIdentity
+}
+
+PLMN-RAN-AreaConfigList ::= SEQUENCE (SIZE (1..maxPLMNIdentities)) OF PLMN-RAN-AreaConfig
+
+PLMN-RAN-AreaConfig ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL, -- Need S
+ ran-Area SEQUENCE (SIZE (1..16)) OF RAN-AreaConfig
+}
+
+RAN-AreaConfig ::= SEQUENCE {
+ trackingAreaCode TrackingAreaCode,
+ ran-AreaCodeList SEQUENCE (SIZE (1..32)) OF RAN-AreaCode OPTIONAL -- Need R
+}
+
+-- TAG-RRCRELEASE-STOP
+-- TAG-RRCRESUME-START
+
+RRCResume ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcResume RRCResume-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCResume-IEs ::= SEQUENCE {
+ radioBearerConfig RadioBearerConfig OPTIONAL, -- Need M
+ masterCellGroup OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M
+ measConfig MeasConfig OPTIONAL, -- Need M
+ fullConfig ENUMERATED {true} OPTIONAL, -- Need N
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+
+}
+
+-- TAG-RRCRESUME-STOP
+-- TAG-RRCRESUMECOMPLETE-START
+
+RRCResumeComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcResumeComplete RRCResumeComplete-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCResumeComplete-IEs ::= SEQUENCE {
+ dedicatedNAS-Message DedicatedNAS-Message OPTIONAL,
+ selectedPLMN-Identity INTEGER (1..maxPLMN) OPTIONAL,
+ uplinkTxDirectCurrentList UplinkTxDirectCurrentList OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+-- TAG-RRCRESUMECOMPLETE-STOP
+-- TAG-RRCRESUMEREQUEST-START
+
+RRCResumeRequest ::= SEQUENCE {
+ rrcResumeRequest RRCResumeRequest-IEs
+}
+
+RRCResumeRequest-IEs ::= SEQUENCE {
+ resumeIdentity ShortI-RNTI-Value,
+ resumeMAC-I BIT STRING (SIZE (16)),
+ resumeCause ResumeCause,
+ spare BIT STRING (SIZE (1))
+}
+
+-- TAG-RRCRESUMEREQUEST-STOP
+-- TAG-RRCRESUMEREQUEST1-START
+
+RRCResumeRequest1 ::= SEQUENCE {
+ rrcResumeRequest1 RRCResumeRequest1-IEs
+}
+
+RRCResumeRequest1-IEs ::= SEQUENCE {
+ resumeIdentity I-RNTI-Value,
+ resumeMAC-I BIT STRING (SIZE (16)),
+ resumeCause ResumeCause,
+ spare BIT STRING (SIZE (1))
+}
+
+-- TAG-RRCRESUMEREQUEST1-STOP
+-- TAG-RRCSETUP-START
+
+RRCSetup ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcSetup RRCSetup-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCSetup-IEs ::= SEQUENCE {
+ radioBearerConfig RadioBearerConfig,
+ masterCellGroup OCTET STRING (CONTAINING CellGroupConfig),
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+-- TAG-RRCSETUP-STOP
+-- TAG-RRCSETUPCOMPLETE-START
+
+RRCSetupComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ rrcSetupComplete RRCSetupComplete-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCSetupComplete-IEs ::= SEQUENCE {
+ selectedPLMN-Identity INTEGER (1..maxPLMN),
+ registeredAMF RegisteredAMF OPTIONAL,
+ guami-Type ENUMERATED {native, mapped} OPTIONAL,
+ s-nssai-List SEQUENCE (SIZE (1..maxNrofS-NSSAI)) OF S-NSSAI OPTIONAL,
+ dedicatedNAS-Message DedicatedNAS-Message,
+ ng-5G-S-TMSI-Value CHOICE {
+ ng-5G-S-TMSI NG-5G-S-TMSI,
+ ng-5G-S-TMSI-Part2 BIT STRING (SIZE (9))
+ } OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+RegisteredAMF ::= SEQUENCE {
+ plmn-Identity PLMN-Identity OPTIONAL,
+ amf-Identifier AMF-Identifier
+}
+
+-- TAG-RRCSETUPCOMPLETE-STOP
+-- TAG-RRCSETUPREQUEST-START
+
+RRCSetupRequest ::= SEQUENCE {
+ rrcSetupRequest RRCSetupRequest-IEs
+}
+
+RRCSetupRequest-IEs ::= SEQUENCE {
+ ue-Identity InitialUE-Identity,
+ establishmentCause EstablishmentCause,
+ spare BIT STRING (SIZE (1))
+}
+
+InitialUE-Identity ::= CHOICE {
+ ng-5G-S-TMSI-Part1 BIT STRING (SIZE (39)),
+ randomValue BIT STRING (SIZE (39))
+}
+
+EstablishmentCause ::= ENUMERATED {
+ emergency, highPriorityAccess, mt-Access, mo-Signalling,
+ mo-Data, mo-VoiceCall, mo-VideoCall, mo-SMS, mps-PriorityAccess, mcs-PriorityAccess,
+ spare6, spare5, spare4, spare3, spare2, spare1}
+
+-- TAG-RRCSETUPREQUEST-STOP
+-- TAG-RRCSYETEMINFOREQUEST-START
+
+RRCSystemInfoRequest ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ rrcSystemInfoRequest-r15 RRCSystemInfoRequest-r15-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+RRCSystemInfoRequest-r15-IEs ::= SEQUENCE {
+ requested-SI-List BIT STRING (SIZE (maxSI-Message)), --32bits
+ spare BIT STRING (SIZE (12))
+}
+
+-- TAG-RRCSYETEMINFOREQUEST-STOP
+-- TAG-SECURITYMODECOMMAND-START
+
+SecurityModeCommand ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeCommand SecurityModeCommand-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeCommand-IEs ::= SEQUENCE {
+ securityConfigSMC SecurityConfigSMC,
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+SecurityConfigSMC ::= SEQUENCE {
+ securityAlgorithmConfig SecurityAlgorithmConfig,
+ ...
+}
+
+-- TAG-SECURITYMODECOMMAND-STOP
+-- TAG-SECURITYMODECOMPLETE-START
+
+SecurityModeComplete ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeComplete SecurityModeComplete-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeComplete-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+-- TAG-SECURITYMODECOMPLETE-STOP
+-- TAG-SECURITYMODEFAILURE-START
+
+SecurityModeFailure ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ securityModeFailure SecurityModeFailure-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SecurityModeFailure-IEs ::= SEQUENCE {
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+-- TAG-SECURITYMODEFAILURE-STOP
+-- TAG-SIB1-START
+
+SIB1 ::= SEQUENCE {
+ cellSelectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ q-RxLevMinOffset INTEGER (1..8) OPTIONAL, -- Need R
+ q-RxLevMinSUL Q-RxLevMin OPTIONAL, -- Need R
+ q-QualMin Q-QualMin OPTIONAL, -- Need R
+ q-QualMinOffset INTEGER (1..8) OPTIONAL -- Need R
+ } OPTIONAL, -- Need S
+ cellAccessRelatedInfo CellAccessRelatedInfo,
+ connEstFailureControl ConnEstFailureControl OPTIONAL, -- Need R
+ si-SchedulingInfo SI-SchedulingInfo OPTIONAL, -- Need R
+ servingCellConfigCommon ServingCellConfigCommonSIB OPTIONAL, -- Need R
+ ims-EmergencySupport ENUMERATED {true} OPTIONAL, -- Need R
+ eCallOverIMS-Support ENUMERATED {true} OPTIONAL, -- Cond Absent
+ ue-TimersAndConstants UE-TimersAndConstants OPTIONAL, -- Need R
+
+ uac-BarringInfo SEQUENCE {
+ uac-BarringForCommon UAC-BarringPerCatList OPTIONAL, -- Need S
+ uac-BarringPerPLMN-List UAC-BarringPerPLMN-List OPTIONAL, -- Need S
+ uac-BarringInfoSetList UAC-BarringInfoSetList,
+ uac-AccessCategory1-SelectionAssistanceInfo CHOICE {
+ plmnCommon UAC-AccessCategory1-SelectionAssistanceInfo,
+ individualPLMNList SEQUENCE (SIZE (2..maxPLMN)) OF UAC-AccessCategory1-SelectionAssistanceInfo
+ } OPTIONAL
+ } OPTIONAL, -- Need R
+
+ useFullResumeID ENUMERATED {true} OPTIONAL, -- Need N
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+UAC-AccessCategory1-SelectionAssistanceInfo ::= ENUMERATED {a, b, c}
+
+-- TAG-SIB1-STOP
+
+SystemInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ systemInformation-r15 SystemInformation-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+SystemInformation-IEs ::= SEQUENCE {
+ sib-TypeAndInfo SEQUENCE (SIZE (1..maxSIB)) OF CHOICE {
+ sib2 SIB2,
+ sib3 SIB3,
+ sib4 SIB4,
+ sib5 SIB5,
+ sib6 SIB6,
+ sib7 SIB7,
+ sib8 SIB8,
+ sib9 SIB9,
+ ...
+ },
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG-UEASSISTANCEINFORMATION-START
+
+UEAssistanceInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ ueAssistanceInformation UEAssistanceInformation-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UEAssistanceInformation-IEs ::= SEQUENCE {
+ delayBudgetReport DelayBudgetReport OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+DelayBudgetReport::= CHOICE {
+ type1 ENUMERATED {
+ msMinus1280, msMinus640, msMinus320, msMinus160,msMinus80, msMinus60, msMinus40,
+ msMinus20, ms0, ms20,ms40, ms60, ms80, ms160, ms320, ms640, ms1280},
+ ...
+}
+
+-- TAG-UEASSISTANCEINFORMATION-STOP
+-- TAG-UECAPABILITYENQUIRY-START
+
+UECapabilityEnquiry ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ ueCapabilityEnquiry UECapabilityEnquiry-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityEnquiry-IEs ::= SEQUENCE {
+ ue-CapabilityRAT-RequestList UE-CapabilityRAT-RequestList,
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+-- TAG-UECAPABILITYENQUIRY-STOP
+-- TAG-UECAPABILITYINFORMATION-START
+
+UECapabilityInformation ::= SEQUENCE {
+ rrc-TransactionIdentifier RRC-TransactionIdentifier,
+ criticalExtensions CHOICE {
+ ueCapabilityInformation UECapabilityInformation-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UECapabilityInformation-IEs ::= SEQUENCE {
+ ue-CapabilityRAT-ContainerList UE-CapabilityRAT-ContainerList OPTIONAL,
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE{} OPTIONAL
+}
+
+-- TAG-UECAPABILITYINFORMATION-STOP
+-- TAG-ULINFORMATIONTRANSFER-START
+
+ULInformationTransfer ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ ulInformationTransfer ULInformationTransfer-IEs,
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+ULInformationTransfer-IEs ::= SEQUENCE {
+ dedicatedNAS-Message DedicatedNAS-Message OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG-ULINFORMATIONTRANSFER-STOP
+-- TAG-SETUP-RELEASE-START
+
+SetupRelease { ElementTypeParam } ::= CHOICE {
+ release NULL,
+ setup ElementTypeParam
+}
+
+-- TAG-SETUP-RELEASE-STOP
+-- TAG-SIB2-START
+
+SIB2 ::= SEQUENCE {
+ cellReselectionInfoCommon SEQUENCE {
+ nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL, -- Need R
+ absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, -- Need R
+ rangeToBestCell RangeToBestCell OPTIONAL, -- Need R
+ q-Hyst ENUMERATED {
+ dB0, dB1, dB2, dB3, dB4, dB5, dB6, dB8, dB10,
+ dB12, dB14, dB16, dB18, dB20, dB22, dB24},
+ speedStateReselectionPars SEQUENCE {
+ mobilityStateParameters MobilityStateParameters,
+ q-HystSF SEQUENCE {
+ sf-Medium ENUMERATED {
+ dB-6, dB-4, dB-2, dB0},
+ sf-High ENUMERATED {
+ dB-6, dB-4, dB-2, dB0}
+ }
+ } OPTIONAL, -- Need R
+ ...
+ },
+ cellReselectionServingFreqInfo SEQUENCE {
+ s-NonIntraSearchP ReselectionThreshold OPTIONAL, -- Need R
+ s-NonIntraSearchQ ReselectionThresholdQ OPTIONAL, -- Need R
+ threshServingLowP ReselectionThreshold,
+ threshServingLowQ ReselectionThresholdQ OPTIONAL, -- Need R
+ cellReselectionPriority CellReselectionPriority,
+ cellReselectionSubPriority CellReselectionSubPriority OPTIONAL, -- Need R
+ ...
+ },
+ intraFreqCellReselectionInfo SEQUENCE {
+ q-RxLevMin Q-RxLevMin,
+ q-RxLevMinSUL Q-RxLevMin OPTIONAL, -- Need R
+ q-QualMin Q-QualMin OPTIONAL, -- Need S
+ s-IntraSearchP ReselectionThreshold, -- Need S
+ s-IntraSearchQ ReselectionThresholdQ OPTIONAL, -- Cond RSRQ
+ t-ReselectionNR T-Reselection,
+ frequencyBandList MultiFrequencyBandListNR-SIB OPTIONAL, -- Need R
+ frequencyBandListSUL MultiFrequencyBandListNR-SIB OPTIONAL, -- Need R
+ p-Max P-Max OPTIONAL, -- Need R
+ smtc SSB-MTC OPTIONAL, -- Need R
+ ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL, -- Need R
+ ssb-ToMeasure SSB-ToMeasure OPTIONAL, -- Need R
+ deriveSSB-IndexFromCell BOOLEAN,
+ ...
+ },
+ ...
+}
+
+RangeToBestCell ::= Q-OffsetRange
+
+-- TAG-SIB2-STOP
+-- TAG-SIB3-START
+
+SIB3 ::= SEQUENCE {
+ intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need R
+ intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need R
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo
+
+IntraFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange,
+ q-RxLevMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R
+ q-RxLevMinOffsetCellSUL INTEGER (1..8) OPTIONAL, -- Need R
+ q-QualMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R
+ ...
+}
+
+IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PCI-Range
+
+-- TAG-SIB3-STOP
+-- TAG-SIB4-START
+
+SIB4 ::= SEQUENCE {
+ interFreqCarrierFreqList InterFreqCarrierFreqList,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo
+
+InterFreqCarrierFreqInfo ::= SEQUENCE {
+ dl-CarrierFreq ARFCN-ValueNR,
+ frequencyBandList MultiFrequencyBandListNR-SIB OPTIONAL, -- Need R
+ frequencyBandListSUL MultiFrequencyBandListNR-SIB OPTIONAL, -- Need R
+ nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL,
+ absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL,
+ smtc SSB-MTC OPTIONAL, -- Need R
+ ssbSubcarrierSpacing SubcarrierSpacing,
+ ssb-ToMeasure SSB-ToMeasure OPTIONAL, -- Need R
+ deriveSSB-IndexFromCell BOOLEAN,
+ ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL,
+ q-RxLevMin Q-RxLevMin,
+ q-RxLevMinSUL Q-RxLevMin OPTIONAL, -- Need R
+ q-QualMin Q-QualMin OPTIONAL, -- Need R,
+ p-Max P-Max OPTIONAL, -- Need R
+ t-ReselectionNR T-Reselection,
+ t-ReselectionNR-SF SpeedStateScaleFactors OPTIONAL, -- Need N
+ threshX-HighP ReselectionThreshold,
+ threshX-LowP ReselectionThreshold,
+ threshX-Q SEQUENCE {
+ threshX-HighQ ReselectionThresholdQ,
+ threshX-LowQ ReselectionThresholdQ
+ } OPTIONAL, -- Cond RSRQ
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need R
+ cellReselectionSubPriority CellReselectionSubPriority OPTIONAL, -- Need R
+ q-OffsetFreq Q-OffsetRange DEFAULT dB0,
+ interFreqNeighCellList InterFreqNeighCellList OPTIONAL, -- Need R
+ interFreqBlackCellList InterFreqBlackCellList OPTIONAL, -- Need R
+ ...
+}
+
+InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
+
+InterFreqNeighCellInfo ::= SEQUENCE {
+ physCellId PhysCellId,
+ q-OffsetCell Q-OffsetRange,
+ q-RxLevMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R
+ q-RxLevMinOffsetCellSUL INTEGER (1..8) OPTIONAL, -- Need R
+ q-QualMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R
+ ...
+
+}
+
+InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PCI-Range
+
+-- TAG-SIB4-STOP
+-- TAG-SIB5-START
+
+SIB5 ::= SEQUENCE {
+ carrierFreqListEUTRA CarrierFreqListEUTRA OPTIONAL, -- Need R
+ t-ReselectionEUTRA T-Reselection,
+ t-ReselectionEUTRA-SF SpeedStateScaleFactors OPTIONAL, -- Need N
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+CarrierFreqListEUTRA ::= SEQUENCE (SIZE (1..maxEUTRA-Carrier)) OF CarrierFreqEUTRA
+
+CarrierFreqEUTRA ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ eutra-multiBandInfoList EUTRA-MultiBandInfoList OPTIONAL, -- Need R
+ eutra-FreqNeighCellList EUTRA-FreqNeighCellList OPTIONAL, -- Need R
+ eutra-BlackCellList EUTRA-FreqBlackCellList OPTIONAL, -- Need R
+ allowedMeasBandwidth EUTRA-AllowedMeasBandwidth,
+ presenceAntennaPort1 EUTRA-PresenceAntennaPort1,
+ cellReselectionPriority CellReselectionPriority OPTIONAL, -- Need R
+ cellReselectionSubPriority CellReselectionSubPriority OPTIONAL, -- Need R
+ threshX-High ReselectionThreshold,
+ threshX-Low ReselectionThreshold,
+ q-RxLevMin INTEGER (-70..-22),
+ q-QualMin INTEGER (-34..-3),
+ p-MaxEUTRA INTEGER (-30..33),
+ threshX-Q SEQUENCE {
+ threshX-HighQ ReselectionThresholdQ,
+ threshX-LowQ ReselectionThresholdQ
+ } OPTIONAL -- Cond RSRQ
+}
+
+EUTRA-FreqBlackCellList ::= SEQUENCE (SIZE (1..maxEUTRA-CellBlack)) OF EUTRA-PhysCellIdRange
+
+EUTRA-FreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellEUTRA)) OF EUTRA-FreqNeighCellInfo
+
+EUTRA-FreqNeighCellInfo ::= SEQUENCE {
+ physCellId EUTRA-PhysCellId,
+ q-OffsetCell EUTRA-Q-OffsetRange,
+ q-RxLevMinOffsetCell INTEGER (1..8) OPTIONAL, -- Need R
+ q-QualMinOffsetCell INTEGER (1..8) OPTIONAL -- Need R
+}
+
+-- TAG-SIB5-STOP
+-- TAG-SIB6-START
+
+SIB6 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningType OCTET STRING (SIZE (2)),
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+-- TAG-SIB6-STOP
+-- TAG-SIB7-START
+
+SIB7 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment},
+ warningMessageSegmentNumber INTEGER (0..63),
+ warningMessageSegment OCTET STRING,
+ dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+-- TAG-SIB7-STOP
+-- TAG-SIB8-START
+
+SIB8 ::= SEQUENCE {
+ messageIdentifier BIT STRING (SIZE (16)),
+ serialNumber BIT STRING (SIZE (16)),
+ warningMessageSegmentType ENUMERATED {notLastSegment, lastSegment},
+ warningMessageSegmentNumber INTEGER (0..63),
+ warningMessageSegment OCTET STRING,
+ dataCodingScheme OCTET STRING (SIZE (1)) OPTIONAL, -- Cond Segment1
+ warningAreaCoordinatesSegment OCTET STRING OPTIONAL, -- Need R
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+-- TAG-SIB8-STOP
+-- TAG-SIB9-START
+
+SIB9 ::= SEQUENCE {
+ timeInfo SEQUENCE {
+ timeInfoUTC INTEGER (0..549755813887),
+ dayLightSavingTime BIT STRING (SIZE (2)) OPTIONAL, -- Need R
+ leapSeconds INTEGER (-127..128) OPTIONAL, -- Need R
+ localTimeOffset INTEGER (-63..64) OPTIONAL -- Need R
+ } OPTIONAL, -- Need R
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ ...
+}
+
+-- TAG-SIB9-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-AMF-IDENTIFIER-START
+
+AMF-Identifier ::= BIT STRING (SIZE (24))
+
+-- TAG-AMF-IDENTIFIER-STOP
+-- TAG-ARFCN-VALUEEUTRA-START
+
+ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)
+
+-- TAG-ARFCN-VALUEEUTRA-STOP
+-- TAG-ARFCN-VALUE-NR-START
+
+ARFCN-ValueNR ::= INTEGER (0..maxNARFCN)
+
+-- TAG-ARFCN-VALUE-NR-STOP
+-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-START
+
+BeamFailureRecoveryConfig ::= SEQUENCE {
+ rootSequenceIndex-BFR INTEGER (0..137) OPTIONAL, -- Need M
+ rach-ConfigBFR RACH-ConfigGeneric OPTIONAL, -- Need M
+ rsrp-ThresholdSSB RSRP-Range OPTIONAL, -- Need M
+ candidateBeamRSList SEQUENCE (SIZE(1..maxNrofCandidateBeams)) OF PRACH-ResourceDedicatedBFR OPTIONAL, -- Need M
+ ssb-perRACH-Occasion ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} OPTIONAL, -- Need M
+ ra-ssb-OccasionMaskIndex INTEGER (0..15) OPTIONAL, -- Need M
+ recoverySearchSpaceId SearchSpaceId OPTIONAL, -- Cond CF-BFR
+ ra-Prioritization RA-Prioritization OPTIONAL, -- Need R
+ beamFailureRecoveryTimer ENUMERATED {ms10, ms20, ms40, ms60, ms80, ms100, ms150, ms200} OPTIONAL, -- Need M
+ ...,
+ [[
+ msg1-SubcarrierSpacing-v1530 SubcarrierSpacing OPTIONAL -- Need M
+ ]]
+}
+
+PRACH-ResourceDedicatedBFR ::= CHOICE {
+ ssb BFR-SSB-Resource,
+ csi-RS BFR-CSIRS-Resource
+}
+
+BFR-SSB-Resource ::= SEQUENCE {
+ ssb SSB-Index,
+ ra-PreambleIndex INTEGER (0..63),
+ ...
+}
+
+BFR-CSIRS-Resource ::= SEQUENCE {
+ csi-RS NZP-CSI-RS-ResourceId,
+ ra-OccasionList SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1) OPTIONAL, -- Need R
+ ra-PreambleIndex INTEGER (0..63) OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-BEAM-FAILURE-RECOVERY-CONFIG-STOP
+-- TAG-BSR-CONFIG-START
+
+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-BSR-CONFIG-STOP
+-- TAG-BANDWIDTH-PART-START
+
+BWP ::= SEQUENCE {
+ locationAndBandwidth INTEGER (0..37949),
+ subcarrierSpacing SubcarrierSpacing,
+ cyclicPrefix ENUMERATED { extended } OPTIONAL -- Need R
+}
+
+
+-- TAG-BANDWIDTH-PART-STOP
+-- TAG-BWP-DOWNLINK-START
+
+BWP-Downlink ::= SEQUENCE {
+ bwp-Id BWP-Id,
+ bwp-Common BWP-DownlinkCommon OPTIONAL, -- Cond SetupOtherBWP
+ bwp-Dedicated BWP-DownlinkDedicated OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-BWP-DOWNLINK-STOP
+-- TAG-BWP-DOWNLINKCOMMON-START
+
+BWP-DownlinkCommon ::= SEQUENCE {
+ genericParameters BWP,
+ pdcch-ConfigCommon SetupRelease { PDCCH-ConfigCommon } OPTIONAL, -- Need M
+ pdsch-ConfigCommon SetupRelease { PDSCH-ConfigCommon } OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-BWP-DOWNLINKCOMMON-STOP
+-- TAG-BWP-DOWNLINKDEDICATED-START
+
+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-BWP-DOWNLINKDEDICATED-STOP
+-- TAG-BWP-ID-START
+
+BWP-Id ::= INTEGER (0..maxNrofBWPs)
+
+-- TAG-BWP-ID-STOP
+-- TAG-BWP-UPLINK-START
+
+BWP-Uplink ::= SEQUENCE {
+ bwp-Id BWP-Id,
+ bwp-Common BWP-UplinkCommon OPTIONAL, -- Cond SetupOtherBWP
+ bwp-Dedicated BWP-UplinkDedicated OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-BWP-UPLINK-STOP
+-- TAG-BWP-UPLINKCOMMON-START
+
+BWP-UplinkCommon ::= SEQUENCE {
+ genericParameters BWP,
+ rach-ConfigCommon SetupRelease { RACH-ConfigCommon } OPTIONAL, -- Need M
+ pusch-ConfigCommon SetupRelease { PUSCH-ConfigCommon } OPTIONAL, -- Need M
+ pucch-ConfigCommon SetupRelease { PUCCH-ConfigCommon } OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-BWP-UPLINKCOMMON-STOP
+-- TAG-BWP-UPLINKDEDICATED-START
+
+BWP-UplinkDedicated ::= SEQUENCE {
+ pucch-Config SetupRelease { PUCCH-Config } OPTIONAL, -- Need M
+ pusch-Config SetupRelease { PUSCH-Config } OPTIONAL, -- Need M
+ configuredGrantConfig SetupRelease { ConfiguredGrantConfig } OPTIONAL, -- Need M
+ srs-Config SetupRelease { SRS-Config } OPTIONAL, -- Need M
+ beamFailureRecoveryConfig SetupRelease { BeamFailureRecoveryConfig } OPTIONAL, -- Cond SpCellOnly
+ ...
+}
+
+-- TAG-BWP-UPLINKDEDICATED-STOP
+-- TAG-CELL-ACCESS-RELATED-INFO-START
+
+CellAccessRelatedInfo ::= SEQUENCE {
+ plmn-IdentityList PLMN-IdentityInfoList,
+ cellReservedForOtherUse ENUMERATED {true} OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG- CELL-ACCESS-RELATED-INFO-STOP
+-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-5GC-START
+
+CellAccessRelatedInfo-EUTRA-5GC ::= SEQUENCE {
+ plmn-IdentityList-eutra-5gc PLMN-IdentityList-EUTRA-5GC,
+ trackingAreaCode-eutra-5gc TrackingAreaCode,
+ ranac-5gc RAN-AreaCode OPTIONAL,
+ cellIdentity-eutra-5gc CellIdentity-EUTRA-5GC
+}
+
+PLMN-IdentityList-EUTRA-5GC::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity-EUTRA-5GC
+
+PLMN-Identity-EUTRA-5GC ::= CHOICE {
+ plmn-Identity-EUTRA-5GC PLMN-Identity,
+plmn-index INTEGER (1..maxPLMN)
+}
+
+CellIdentity-EUTRA-5GC ::= CHOICE {
+ cellIdentity-EUTRA BIT STRING (SIZE (28)),
+cellId-index INTEGER (1..maxPLMN)
+}
+
+-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-5GC-STOP
+-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-EPC-START
+
+CellAccessRelatedInfo-EUTRA-EPC ::= SEQUENCE {
+ plmn-IdentityList-eutra-epc PLMN-IdentityList-EUTRA-EPC,
+ trackingAreaCode-eutra-epc BIT STRING (SIZE (16)),
+ cellIdentity-eutra-epc BIT STRING (SIZE (28))
+}
+
+PLMN-IdentityList-EUTRA-EPC::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity
+
+-- TAG-CELL-ACCESS-RELATED-INFO-EUTRA-5GC-STOP
+-- TAG-CELL-GROUP-CONFIG-START
+
+-- Configuration of one Cell-Group:
+CellGroupConfig ::= SEQUENCE {
+ cellGroupId CellGroupId,
+
+ rlc-BearerToAddModList SEQUENCE (SIZE(1..maxLC-ID)) OF RLC-BearerConfig OPTIONAL, -- Need N
+ rlc-BearerToReleaseList SEQUENCE (SIZE(1..maxLC-ID)) OF LogicalChannelIdentity OPTIONAL, -- Need N
+
+ mac-CellGroupConfig MAC-CellGroupConfig OPTIONAL, -- Need M
+
+ physicalCellGroupConfig PhysicalCellGroupConfig OPTIONAL, -- Need M
+
+ spCellConfig SpCellConfig OPTIONAL, -- Need M
+ sCellToAddModList SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig OPTIONAL, -- Need N
+ sCellToReleaseList SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex OPTIONAL, -- Need N
+ ...,
+ [[
+ reportUplinkTxDirectCurrent-v1530 ENUMERATED {true} OPTIONAL -- Cond BWP-Reconfig
+ ]]
+}
+
+
+
+-- Serving cell specific MAC and PHY parameters for a SpCell:
+SpCellConfig ::= SEQUENCE {
+ servCellIndex ServCellIndex OPTIONAL, -- Cond SCG
+ reconfigurationWithSync ReconfigurationWithSync OPTIONAL, -- Cond ReconfWithSync
+ rlf-TimersAndConstants SetupRelease { RLF-TimersAndConstants } OPTIONAL, -- Need M
+ rlmInSyncOutOfSyncThreshold ENUMERATED {n1} OPTIONAL, -- Need S
+ 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
+ ...,
+ [[
+ smtc SSB-MTC OPTIONAL -- Need S
+ ]]
+}
+
+SCellConfig ::= SEQUENCE {
+ sCellIndex SCellIndex,
+ sCellConfigCommon ServingCellConfigCommon OPTIONAL, -- Cond SCellAdd
+ sCellConfigDedicated ServingCellConfig OPTIONAL, -- Cond SCellAddMod
+ ...,
+ [[
+ smtc SSB-MTC OPTIONAL -- Need S
+ ]]
+}
+
+-- TAG-CELL-GROUP-CONFIG-STOP
+-- TAG-CELLGROUPID-START
+
+CellGroupId ::= INTEGER (0.. maxSecondaryCellGroups)
+
+-- TAG-CELLGROUPID-STOP
+
+CellIdentity ::= BIT STRING (SIZE (36))
+
+-- TAG-CELLRESELECTIONPRIORITY-START
+
+CellReselectionPriority ::= INTEGER (0..7)
+
+-- TAG-CELLRESELECTIONPRIORITY-STOP
+
+CellReselectionSubPriority ::= ENUMERATED {oDot2, oDot4, oDot6, oDot8}
+
+-- TAG-CGI-Info-START
+
+CGI-Info ::= SEQUENCE {
+ plmn-IdentityInfoList PLMN-IdentityInfoList OPTIONAL,
+ frequencyBandList MultiFrequencyBandListNR OPTIONAL,
+ noSIB1 SEQUENCE {
+ ssb-SubcarrierOffset INTEGER (0..15),
+ pdcch-ConfigSIB1 PDCCH-ConfigSIB1
+ } OPTIONAL,
+ ...
+}
+
+-- TAG-CGI-Info -STOP
+-- TAG-CODEBOOKCONFIG-START
+CodebookConfig ::= SEQUENCE {
+ codebookType CHOICE {
+ type1 SEQUENCE {
+ subType CHOICE {
+ typeI-SinglePanel SEQUENCE {
+ nrOfAntennaPorts CHOICE {
+ two SEQUENCE {
+ twoTX-CodebookSubsetRestriction BIT STRING (SIZE (6))
+ },
+ moreThanTwo SEQUENCE {
+ 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))
+ },
+ typeI-SinglePanel-codebookSubsetRestriction-i2 BIT STRING (SIZE (16)) OPTIONAL -- Need R
+ }
+ },
+ typeI-SinglePanel-ri-Restriction BIT STRING (SIZE (8))
+ },
+ typeI-MultiPanel SEQUENCE {
+ ng-n1-n2 CHOICE {
+ two-two-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (8)),
+ two-four-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (16)),
+ four-two-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (8)),
+ two-two-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (64)),
+ two-eight-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (32)),
+ four-four-one-TypeI-MultiPanel-Restriction BIT STRING (SIZE (16)),
+ two-four-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (128)),
+ four-two-two-TypeI-MultiPanel-Restriction BIT STRING (SIZE (64))
+ },
+ ri-Restriction BIT STRING (SIZE (4))
+ }
+ },
+ codebookMode INTEGER (1..2)
+
+ },
+ type2 SEQUENCE {
+ subType CHOICE {
+ typeII SEQUENCE {
+ n1-n2-codebookSubsetRestriction CHOICE {
+ two-one BIT STRING (SIZE (16)),
+ two-two BIT STRING (SIZE (43)),
+ four-one BIT STRING (SIZE (32)),
+ three-two BIT STRING (SIZE (59)),
+ six-one BIT STRING (SIZE (48)),
+ four-two BIT STRING (SIZE (75)),
+ eight-one BIT STRING (SIZE (64)),
+ four-three BIT STRING (SIZE (107)),
+ six-two BIT STRING (SIZE (107)),
+ twelve-one BIT STRING (SIZE (96)),
+ four-four BIT STRING (SIZE (139)),
+ eight-two BIT STRING (SIZE (139)),
+ sixteen-one BIT STRING (SIZE (128))
+ },
+ typeII-RI-Restriction BIT STRING (SIZE (2))
+ },
+ typeII-PortSelection SEQUENCE {
+ portSelectionSamplingSize ENUMERATED {n1, n2, n3, n4} OPTIONAL, -- Need R
+ typeII-PortSelectionRI-Restriction BIT STRING (SIZE (2))
+ }
+ },
+ phaseAlphabetSize ENUMERATED {n4, n8},
+ subbandAmplitude BOOLEAN,
+ numberOfBeams ENUMERATED {two, three, four}
+ }
+ }
+}
+
+-- TAG-CODEBOOKCONFIG-STOP
+-- TAG-CONFIGUREDGRANTCONFIG-START
+
+ConfiguredGrantConfig ::= SEQUENCE {
+ frequencyHopping ENUMERATED {intraSlot, interSlot} OPTIONAL, -- Need S,
+ cg-DMRS-Configuration DMRS-UplinkConfig,
+ mcs-Table ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S
+ mcs-TableTransformPrecoder ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S
+ uci-OnPUSCH SetupRelease { CG-UCI-OnPUSCH } OPTIONAL, -- Need M
+ resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch },
+ rbg-Size ENUMERATED {config2} OPTIONAL, -- Need S
+ powerControlLoopToUse ENUMERATED {n0, n1},
+ p0-PUSCH-Alpha P0-PUSCH-AlphaSetId,
+ transformPrecoder ENUMERATED {enabled, disabled} OPTIONAL, -- Need S
+ nrofHARQ-Processes INTEGER(1..16),
+ repK ENUMERATED {n1, n2, n4, n8},
+ repK-RV ENUMERATED {s1-0231, s2-0303, s3-0000} OPTIONAL, -- Need R
+ 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
+ },
+ configuredGrantTimer INTEGER (1..64) OPTIONAL, -- Need R
+ rrc-ConfiguredUplinkGrant SEQUENCE {
+ timeDomainOffset INTEGER (0..5119),
+ timeDomainAllocation INTEGER (0..15),
+ frequencyDomainAllocation BIT STRING (SIZE(18)),
+ antennaPort INTEGER (0..31),
+ dmrs-SeqInitialization INTEGER (0..1) OPTIONAL, -- Need R
+ precodingAndNumberOfLayers INTEGER (0..63),
+ srs-ResourceIndicator INTEGER (0..15) OPTIONAL, -- Need R
+ mcsAndTBS INTEGER (0..31),
+ frequencyHoppingOffset INTEGER (1.. maxNrofPhysicalResourceBlocks-1) OPTIONAL, -- Need R
+ pathlossReferenceIndex INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1),
+ ...
+ } OPTIONAL, -- Need R
+ ...
+}
+
+CG-UCI-OnPUSCH ::= CHOICE {
+ dynamic SEQUENCE (SIZE (1..4)) OF BetaOffsets,
+ semiStatic BetaOffsets
+}
+
+-- TAG-CONFIGUREDGRANTCONFIG-STOP
+-- TAG-CONNESTFAILURECONTROL-START
+
+ConnEstFailureControl ::= SEQUENCE {
+ connEstFailCount ENUMERATED {n1, n2, n3, n4},
+ connEstFailOffsetValidity ENUMERATED {s30, s60, s120, s240, s300, s420, s600, s900},
+ connEstFailOffset INTEGER (0..15) OPTIONAL -- Need S
+}
+
+-- TAG-CONNESTFAILURECONTROL-STOP
+-- TAG-CONTROLRESOURCESET-START
+
+ControlResourceSet ::= SEQUENCE {
+ controlResourceSetId ControlResourceSetId,
+
+ frequencyDomainResources BIT STRING (SIZE (45)),
+ duration INTEGER (1..maxCoReSetDuration),
+ cce-REG-MappingType CHOICE {
+ interleaved SEQUENCE {
+ reg-BundleSize ENUMERATED {n2, n3, n6},
+ interleaverSize ENUMERATED {n2, n3, n6},
+ shiftIndex INTEGER(0..maxNrofPhysicalResourceBlocks-1) OPTIONAL -- Need S
+ },
+ nonInterleaved NULL
+ },
+ precoderGranularity ENUMERATED {sameAsREG-bundle, allContiguousRBs},
+ tci-StatesPDCCH-ToAddList SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Need N
+ tci-StatesPDCCH-ToReleaseList SEQUENCE(SIZE (1..maxNrofTCI-StatesPDCCH)) OF TCI-StateId OPTIONAL, -- Need N
+tci-PresentInDCI ENUMERATED {enabled} OPTIONAL, -- Need S
+ pdcch-DMRS-ScramblingID INTEGER (0..65535) OPTIONAL, -- Need S
+ ...
+}
+
+-- TAG-CONTROLRESOURCESET-STOP
+-- TAG-CONTROL-RESOURCE-SET-ID-START
+
+ControlResourceSetId ::= INTEGER (0..maxNrofControlResourceSets-1)
+
+-- TAG-CONTROL-RESOURCE-SET-ID-STOP
+-- TAG-CONTROLRESOURCESETZERO-START
+
+ControlResourceSetZero ::= INTEGER (0..15)
+
+-- TAG-CONTROLRESOURCESETZERO-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)
+ }
+ },
+ ...
+}
+
+-- 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 {
+ reportConfigId CSI-ReportConfigId,
+ resourcesForChannel CHOICE {
+ nzp-CSI-RS SEQUENCE {
+ resourceSet INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig),
+ qcl-info SEQUENCE (SIZE(1..maxNrofAP-CSI-RS-ResourcesPerSet)) OF TCI-StateId OPTIONAL -- Cond Aperiodic
+ },
+ csi-SSB-ResourceSet INTEGER (1..maxNrofCSI-SSB-ResourceSetsPerConfig)
+ },
+ csi-IM-ResourcesForInterference INTEGER(1..maxNrofCSI-IM-ResourceSetsPerConfig) OPTIONAL, -- Cond CSI-IM-ForInterference
+ nzp-CSI-RS-ResourcesForInterference INTEGER (1..maxNrofNZP-CSI-RS-ResourceSetsPerConfig) OPTIONAL, -- Cond NZP-CSI-RS-ForInterference
+ ...
+}
+
+-- TAG-CSI-APERIODICTRIGGERSTATELIST-STOP
+-- TAG-CSI-FREQUENCYOCCUPATION-START
+
+CSI-FrequencyOccupation ::= SEQUENCE {
+ startingRB INTEGER (0..maxNrofPhysicalResourceBlocks-1),
+ nrofRBs INTEGER (24..maxNrofPhysicalResourceBlocksPlus1),
+ ...
+}
+
+-- TAG-CSI-FREQUENCYOCCUPATION-STOP
+-- TAG-CSI-IM-RESOURCE-START
+
+CSI-IM-Resource ::= SEQUENCE {
+ csi-IM-ResourceId CSI-IM-ResourceId,
+ csi-IM-ResourceElementPattern CHOICE {
+ pattern0 SEQUENCE {
+ subcarrierLocation-p0 ENUMERATED { s0, s2, s4, s6, s8, s10 },
+ symbolLocation-p0 INTEGER (0..12)
+ },
+ pattern1 SEQUENCE {
+ subcarrierLocation-p1 ENUMERATED { s0, s4, s8 },
+ symbolLocation-p1 INTEGER (0..13)
+ }
+ } OPTIONAL, -- Need M
+ freqBand CSI-FrequencyOccupation OPTIONAL, -- Need M
+ 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 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 {
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+
+ reportTriggerSize INTEGER (0..6) OPTIONAL, -- Need M
+ aperiodicTriggerStateList SetupRelease { CSI-AperiodicTriggerStateList } OPTIONAL, -- Need M
+ semiPersistentOnPUSCH-TriggerStateList SetupRelease { CSI-SemiPersistentOnPUSCH-TriggerStateList } OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-CSI-MEAS-CONFIG-STOP
+-- TAG-CSI-REPORTCONFIG-START
+
+CSI-ReportConfig ::= SEQUENCE {
+ reportConfigId CSI-ReportConfigId,
+ carrier ServCellIndex OPTIONAL, -- Need S
+ resourcesForChannelMeasurement CSI-ResourceConfigId,
+ csi-IM-ResourcesForInterference CSI-ResourceConfigId OPTIONAL, -- Need R
+ nzp-CSI-RS-ResourcesForInterference CSI-ResourceConfigId OPTIONAL, -- Need R
+ reportConfigType CHOICE {
+ periodic SEQUENCE {
+ reportSlotConfig CSI-ReportPeriodicityAndOffset,
+ pucch-CSI-ResourceList SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
+ },
+ semiPersistentOnPUCCH SEQUENCE {
+ reportSlotConfig CSI-ReportPeriodicityAndOffset,
+ pucch-CSI-ResourceList SEQUENCE (SIZE (1..maxNrofBWPs)) OF PUCCH-CSI-Resource
+ },
+ semiPersistentOnPUSCH SEQUENCE {
+ reportSlotConfig ENUMERATED {sl5, sl10, sl20, sl40, sl80, sl160, sl320},
+ reportSlotOffsetList SEQUENCE (SIZE (1.. maxNrofUL-Allocations)) OF INTEGER(0..32),
+ p0alpha P0-PUSCH-AlphaSetId
+ },
+ aperiodic SEQUENCE {
+ reportSlotOffsetList SEQUENCE (SIZE (1..maxNrofUL-Allocations)) OF INTEGER(0..32)
+ }
+ },
+ reportQuantity CHOICE {
+ none NULL,
+ cri-RI-PMI-CQI NULL,
+ cri-RI-i1 NULL,
+ cri-RI-i1-CQI SEQUENCE {
+ pdsch-BundleSizeForCSI ENUMERATED {n2, n4} OPTIONAL -- Need S
+ },
+ cri-RI-CQI NULL,
+ cri-RSRP NULL,
+ ssb-Index-RSRP NULL,
+ cri-RI-LI-PMI-CQI NULL
+ },
+ reportFreqConfiguration SEQUENCE {
+ cqi-FormatIndicator ENUMERATED { widebandCQI, subbandCQI } OPTIONAL, -- Need R
+ pmi-FormatIndicator ENUMERATED { widebandPMI, subbandPMI } OPTIONAL, -- Need R
+ 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)),
+ ...,
+ subbands19-v1530 BIT STRING(SIZE(19))
+ } OPTIONAL -- Need S
+
+ } OPTIONAL, -- Need R
+ timeRestrictionForChannelMeasurements ENUMERATED {configured, notConfigured},
+ timeRestrictionForInterferenceMeasurements ENUMERATED {configured, notConfigured},
+ codebookConfig CodebookConfig OPTIONAL, -- Need R
+ nrofCQIsPerReport ENUMERATED {n1, n2} OPTIONAL, -- Need R
+ groupBasedBeamReporting CHOICE {
+ enabled NULL,
+ disabled SEQUENCE {
+ nrofReportedRS ENUMERATED {n1, n2, n3, n4} OPTIONAL -- Need S
+ }
+ },
+ cqi-Table ENUMERATED {table1, table2, table3, spare1} OPTIONAL, -- Need R
+ subbandSize ENUMERATED {value1, value2},
+ non-PMI-PortIndication SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerConfig)) OF PortIndexFor8Ranks OPTIONAL, -- Need R
+ ...,
+ [[
+ semiPersistentOnPUSCH-v1530 SEQUENCE {
+ reportSlotConfig-v1530 ENUMERATED {sl4, sl8, sl16}
+ } OPTIONAL -- Need R
+ ]]
+}
+
+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 ::= SEQUENCE {
+ uplinkBandwidthPartId BWP-Id,
+ pucch-Resource PUCCH-ResourceId
+}
+
+PortIndexFor8Ranks ::= CHOICE {
+ portIndex8 SEQUENCE{
+ rank1-8 PortIndex8 OPTIONAL, -- Need R
+ rank2-8 SEQUENCE(SIZE(2)) OF PortIndex8 OPTIONAL, -- Need R
+ rank3-8 SEQUENCE(SIZE(3)) OF PortIndex8 OPTIONAL, -- Need R
+ rank4-8 SEQUENCE(SIZE(4)) OF PortIndex8 OPTIONAL, -- Need R
+ rank5-8 SEQUENCE(SIZE(5)) OF PortIndex8 OPTIONAL, -- Need R
+ rank6-8 SEQUENCE(SIZE(6)) OF PortIndex8 OPTIONAL, -- Need R
+ rank7-8 SEQUENCE(SIZE(7)) OF PortIndex8 OPTIONAL, -- Need R
+ rank8-8 SEQUENCE(SIZE(8)) OF PortIndex8 OPTIONAL -- Need R
+ },
+ portIndex4 SEQUENCE{
+ rank1-4 PortIndex4 OPTIONAL, -- Need R
+ rank2-4 SEQUENCE(SIZE(2)) OF PortIndex4 OPTIONAL, -- Need R
+ rank3-4 SEQUENCE(SIZE(3)) OF PortIndex4 OPTIONAL, -- Need R
+ rank4-4 SEQUENCE(SIZE(4)) OF PortIndex4 OPTIONAL -- Need R
+ },
+ portIndex2 SEQUENCE{
+ rank1-2 PortIndex2 OPTIONAL, -- Need R
+ rank2-2 SEQUENCE(SIZE(2)) OF PortIndex2 OPTIONAL -- Need R
+ },
+ portIndex1 NULL
+}
+
+PortIndex8::= INTEGER (0..7)
+PortIndex4::= INTEGER (0..3)
+PortIndex2::= INTEGER (0..1)
+
+-- TAG-CSI-REPORTCONFIG-STOP
+-- TAG-CSI-REPORTCONFIGID-START
+
+CSI-ReportConfigId ::= INTEGER (0..maxNrofCSI-ReportConfigurations-1)
+
+-- TAG-CSI-REPORTCONFIGID-STOP
+-- TAG-CSI-RESOURCECONFIG-START
+
+CSI-ResourceConfig ::= SEQUENCE {
+ csi-ResourceConfigId CSI-ResourceConfigId,
+ 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, -- Need R
+ csi-SSB-ResourceSetList SEQUENCE (SIZE (1..maxNrofCSI-SSB-ResourceSetsPerConfig)) OF CSI-SSB-ResourceSetId OPTIONAL -- Need R
+ },
+ csi-IM-ResourceSetList SEQUENCE (SIZE (1..maxNrofCSI-IM-ResourceSetsPerConfig)) OF CSI-IM-ResourceSetId
+ },
+
+ bwp-Id BWP-Id,
+ 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-RESOURCECONFIGMOBILITY-START
+
+CSI-RS-ResourceConfigMobility ::= SEQUENCE {
+ subcarrierSpacing SubcarrierSpacing,
+ csi-RS-CellList-Mobility SEQUENCE (SIZE (1..maxNrofCSI-RS-CellsRRM)) OF CSI-RS-CellMobility,
+ ... ,
+ [[
+ refServCellIndex-v1530 ServCellIndex OPTIONAL -- Need S
+ ]]
+
+
+}
+
+CSI-RS-CellMobility ::= SEQUENCE {
+ cellId PhysCellId,
+ csi-rs-MeasurementBW SEQUENCE {
+ nrofPRBs ENUMERATED { size24, size48, size96, size192, size264},
+ startPRB INTEGER(0..2169)
+ },
+ density ENUMERATED {d1,d3} OPTIONAL, -- Need R
+ 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,
+ slotConfig CHOICE {
+ ms4 INTEGER (0..31),
+ ms5 INTEGER (0..39),
+ ms10 INTEGER (0..79),
+ ms20 INTEGER (0..159),
+ ms40 INTEGER (0..319)
+ },
+ associatedSSB SEQUENCE {
+ ssb-Index SSB-Index,
+ isQuasiColocated BOOLEAN
+ } OPTIONAL, -- Need R
+ frequencyDomainAllocation CHOICE {
+ row1 BIT STRING (SIZE (4)),
+ row2 BIT STRING (SIZE (12))
+ },
+ firstOFDMSymbolInTimeDomain INTEGER (0..13),
+ sequenceGenerationConfig INTEGER (0..1023),
+ ...
+}
+
+CSI-RS-Index ::= INTEGER (0..maxNrofCSI-RS-ResourcesRRM-1)
+
+-- TAG-CSI-RS-RESOURCECONFIGMOBILITY-STOP
+-- TAG-CSI-RS-RESOURCEMAPPING-START
+
+CSI-RS-ResourceMapping ::= SEQUENCE {
+ frequencyDomainAllocation CHOICE {
+ row1 BIT STRING (SIZE (4)),
+ row2 BIT STRING (SIZE (12)),
+ row4 BIT STRING (SIZE (3)),
+ other BIT STRING (SIZE (6))
+ },
+ nrofPorts ENUMERATED {p1,p2,p4,p8,p12,p16,p24,p32},
+ firstOFDMSymbolInTimeDomain INTEGER (0..13),
+ firstOFDMSymbolInTimeDomain2 INTEGER (2..12) OPTIONAL, -- Need R
+ cdm-Type ENUMERATED {noCDM, fd-CDM2, cdm4-FD2-TD2, cdm8-FD2-TD4},
+ density CHOICE {
+ dot5 ENUMERATED {evenPRBs, oddPRBs},
+ one NULL,
+ three NULL,
+ spare NULL
+ },
+ 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,
+ ...
+}
+
+
+-- TAG-CSI-SEMIPERSISTENTONPUSCHTRIGGERSTATELIST-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-CSI-SSB-RESOURCESETID-START
+
+CSI-SSB-ResourceSetId ::= INTEGER (0..maxNrofCSI-SSB-ResourceSets-1)
+
+-- TAG-CSI-SSB-RESOURCESETID-STOP
+-- TAG-DEDICATED-NAS-MESSAGE-START
+
+DedicatedNAS-Message ::= OCTET STRING
+
+-- TAG-DEDICATED-NAS-MESSAGE-STOP
+-- TAG-DMRS-DOWNLINKCONFIG-START
+
+DMRS-DownlinkConfig ::= SEQUENCE {
+ dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need S
+ dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need S
+ maxLength ENUMERATED {len2} OPTIONAL, -- Need S
+ scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S
+ scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S
+ phaseTrackingRS SetupRelease { PTRS-DownlinkConfig } OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-DMRS-DOWNLINKCONFIG-STOP
+-- TAG-DMRS-UPLINKCONFIG-START
+
+DMRS-UplinkConfig ::= SEQUENCE {
+ dmrs-Type ENUMERATED {type2} OPTIONAL, -- Need S
+ dmrs-AdditionalPosition ENUMERATED {pos0, pos1, pos3} OPTIONAL, -- Need R
+ phaseTrackingRS SetupRelease { PTRS-UplinkConfig } OPTIONAL, -- Need M
+ maxLength ENUMERATED {len2} OPTIONAL, -- Need S
+
+ transformPrecodingDisabled SEQUENCE {
+ scramblingID0 INTEGER (0..65535) OPTIONAL, -- Need S
+ scramblingID1 INTEGER (0..65535) OPTIONAL, -- Need S
+ ...
+ } OPTIONAL, -- Need R
+ transformPrecodingEnabled SEQUENCE {
+ nPUSCH-Identity INTEGER(0..1007) OPTIONAL, -- Need S
+ sequenceGroupHopping ENUMERATED {disabled} OPTIONAL, -- Need S
+ sequenceHopping ENUMERATED {enabled} OPTIONAL, -- Need S
+ ...
+ } OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-DMRS-UPLINKCONFIG-STOP
+-- TAG-DOWNLINK-CONFIG-COMMON-START
+
+DownlinkConfigCommon ::= SEQUENCE {
+ frequencyInfoDL FrequencyInfoDL OPTIONAL, -- Cond InterFreqHOAndServCellAdd
+ initialDownlinkBWP BWP-DownlinkCommon OPTIONAL, -- Cond ServCellAdd
+ ...
+}
+
+-- TAG-DOWNLINK-CONFIG-COMMON-STOP
+-- TAG-DOWNLINK-CONFIG-COMMON-SIB-START
+
+DownlinkConfigCommonSIB ::= SEQUENCE {
+ frequencyInfoDL FrequencyInfoDL-SIB,
+ initialDownlinkBWP BWP-DownlinkCommon,
+ bcch-Config BCCH-Config,
+ pcch-Config PCCH-Config,
+ ...
+}
+
+
+BCCH-Config ::= SEQUENCE { modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16},
+ ...
+}
+
+
+PCCH-Config ::= SEQUENCE {
+ defaultPagingCycle PagingCycle,
+ nAndPagingFrameOffset CHOICE {
+ oneT NULL,
+ halfT INTEGER (0..1),
+ quarterT INTEGER (0..3),
+ oneEighthT INTEGER (0..7),
+ oneSixteenthT INTEGER (0..15)
+ },
+ ns ENUMERATED {four, two, one},
+ firstPDCCH-MonitoringOccasionOfPO CHOICE {
+ sCS15KHZoneT SEQUENCE (SIZE (1..4)) OF INTEGER (0..139),
+ sCS30KHZoneT-SCS15KHZhalfT SEQUENCE (SIZE (1..4)) OF INTEGER (0..279),
+ sCS60KHZoneT-SCS30KHZhalfT-SCS15KHZquarterT SEQUENCE (SIZE (1..4)) OF INTEGER (0..559),
+ sCS120KHZoneT-SCS60KHZhalfT-SCS30KHZquarterT-SCS15KHZoneEighthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..1119),
+ sCS120KHZhalfT-SCS60KHZquarterT-SCS30KHZoneEighthT-SCS15KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..2239),
+ sCS120KHZquarterT-SCS60KHZoneEighthT-SCS30KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..4479),
+ sCS120KHZoneEighthT-SCS60KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..8959),
+ sCS120KHZoneSixteenthT SEQUENCE (SIZE (1..4)) OF INTEGER (0..17919)
+ } OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-DOWNLINK-CONFIG-COMMON-SIB-STOP
+-- TAG-DOWNLINKPREEMPTION-START
+
+DownlinkPreemption ::= SEQUENCE {
+ int-RNTI RNTI-Value,
+ timeFrequencySet ENUMERATED {set0, set1},
+ dci-PayloadSize INTEGER (0..maxINT-DCI-PayloadSize),
+ int-ConfigurationPerServingCell SEQUENCE (SIZE (1..maxNrofServingCells)) OF INT-ConfigurationPerServingCell,
+ ...
+}
+
+INT-ConfigurationPerServingCell ::= SEQUENCE {
+ servingCellId ServCellIndex,
+ positionInDCI INTEGER (0..maxINT-DCI-PayloadSize-1)
+}
+
+-- TAG-DOWNLINKPREEMPTION-STOP
+-- TAG-DRB-IDENTITY-START
+
+DRB-Identity ::= INTEGER (1..32)
+
+-- TAG-DRB-IDENTITY-STOP
+-- TAG-DRX-CONFIG-START
+
+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, 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)
+ },
+
+ 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)
+}
+
+-- TAG-DRX-CONFIG-STOP
+-- TAG-FILTERCOEFFICIENT-START
+
+FilterCoefficient ::= ENUMERATED { fc0, fc1, fc2, fc3, fc4, fc5, fc6, fc7, fc8, fc9, fc11, fc13, fc15, fc17, fc19, spare1, ...}
+
+-- TAG-FILTERCOEFFICIENT-STOP
+-- TAG-FREQBANDINDICATORNR-START
+
+FreqBandIndicatorNR ::= INTEGER (1..1024)
+
+-- TAG-FREQBANDINDICATORNR-STOP
+-- TAG-FREQUENCY-INFO-DL-START
+
+FrequencyInfoDL ::= SEQUENCE {
+ absoluteFrequencySSB ARFCN-ValueNR OPTIONAL, -- Cond SpCellAdd
+ frequencyBandList MultiFrequencyBandListNR,
+ absoluteFrequencyPointA ARFCN-ValueNR,
+ scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
+ ...
+}
+
+-- TAG-FREQUENCY-INFO-UL-STOP
+-- TAG-FREQUENCY-INFO-DL-SIB-START
+
+FrequencyInfoDL-SIB ::= SEQUENCE {
+ frequencyBandList MultiFrequencyBandListNR-SIB,
+ offsetToPointA INTEGER (0..2199),
+ scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier
+}
+
+-- TAG-FREQUENCY-INFO-DL-SIB-STOP
+-- TAG-FREQUENCY-INFO-UL-START
+
+FrequencyInfoUL ::= SEQUENCE {
+ frequencyBandList MultiFrequencyBandListNR OPTIONAL, -- Cond FDD-OrSUL
+ absoluteFrequencyPointA ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL
+ scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
+ additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Need S
+ p-Max P-Max OPTIONAL, -- Need S
+ frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-OrSUL-Optional
+ ...
+}
+
+-- TAG-FREQUENCY-INFO-UL-STOP
+-- TAG-FREQUENCY-INFO-UL-SIB-START
+
+FrequencyInfoUL-SIB ::= SEQUENCE {
+ frequencyBandList MultiFrequencyBandListNR-SIB OPTIONAL, -- Cond FDD-OrSUL
+ absoluteFrequencyPointA ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL
+ scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
+ p-Max P-Max OPTIONAL, -- Need S
+ frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-OrSUL-Optional
+ ...
+}
+
+-- TAG-FREQUENCY-INFO-UL-SIB-STOP
+
+Hysteresis ::= INTEGER (0..30)
+
+-- TAG-I-RNTI-VALUE-START
+
+I-RNTI-Value ::= BIT STRING (SIZE(40))
+
+-- TAG-I-RNTI-VALUE-STOP
+-- TAG-LOCATION-MEASUREMENT-INFO-START
+
+LocationMeasurementInfo ::= CHOICE {
+ eutra-RSTD EUTRA-RSTD-InfoList,
+ ...
+}
+
+EUTRA-RSTD-InfoList ::= SEQUENCE (SIZE (1..maxInterRAT-RSTD-Freq)) OF EUTRA-RSTD-Info
+
+EUTRA-RSTD-Info ::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ measPRS-Offset INTEGER (0..39),
+ ...
+}
+
+-- TAG-LOCATION-MEASUREMENT-INFO-STOP
+-- TAG-LOGICAL-CHANNEL-CONFIG-START
+
+LogicalChannelConfig ::= SEQUENCE {
+ ul-SpecificParameters SEQUENCE {
+ priority INTEGER (1..16),
+ prioritisedBitRate ENUMERATED {kBps0, kBps8, kBps16, kBps32, kBps64, kBps128, kBps256, kBps512,
+ kBps1024, kBps2048, kBps4096, kBps8192, kBps16384, kBps32768, kBps65536, infinity},
+ bucketSizeDuration ENUMERATED {ms5, ms10, ms20, ms50, ms100, ms150, ms300, ms500, ms1000,
+ spare7, spare6, spare5, spare4, spare3,spare2, spare1},
+
+ allowedServingCells SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF ServCellIndex OPTIONAL, -- PDCP-CADuplication
+ 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,
+ ...,
+ bitRateQueryProhibitTimer ENUMERATED { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12,s30} OPTIONAL -- Need R
+ } OPTIONAL, -- Cond UL
+
+ ...
+}
+
+-- TAG-LOGICAL-CHANNEL-CONFIG-STOP
+-- TAG-LOGICALCHANNELIDENTITY-START
+
+LogicalChannelIdentity ::= INTEGER (1..maxLC-ID)
+
+-- TAG-LOGICALCHANNELIDENTITY-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
+ skipUplinkTxDynamic BOOLEAN,
+ ...,
+ [[
+ csi-Mask-v1530 BOOLEAN OPTIONAL , -- Need M
+ dataInactivityTimer-v1530 SetupRelease { DataInactivityTimer } OPTIONAL -- Need PCellOnly
+ ]]
+}
+
+DataInactivityTimer ::= ENUMERATED {s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, s80, s100, s120, s150, s180}
+
+-- TAG-MAC-CELL-GROUP-CONFIG-STOP
+-- TAG-MEAS-CONFIG-START
+
+MeasConfig ::= SEQUENCE {
+ measObjectToRemoveList MeasObjectToRemoveList OPTIONAL, -- Need N
+ measObjectToAddModList MeasObjectToAddModList OPTIONAL, -- Need N
+
+ reportConfigToRemoveList ReportConfigToRemoveList OPTIONAL, -- Need N
+ reportConfigToAddModList ReportConfigToAddModList OPTIONAL, -- Need N
+
+ measIdToRemoveList MeasIdToRemoveList OPTIONAL, -- Need N
+ measIdToAddModList MeasIdToAddModList OPTIONAL, -- Need N
+
+ s-MeasureConfig CHOICE {
+ ssb-RSRP RSRP-Range,
+ csi-RSRP RSRP-Range
+ } OPTIONAL, -- Need M
+
+ quantityConfig QuantityConfig OPTIONAL, -- Need M
+
+ measGapConfig MeasGapConfig OPTIONAL, -- Need M
+ measGapSharingConfig MeasGapSharingConfig 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, -- Need M
+ ...,
+ [[
+ gapFR1 SetupRelease { GapConfig } OPTIONAL, -- Need M
+ gapUE SetupRelease { GapConfig } OPTIONAL -- Need M
+ ]]
+
+}
+
+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-GAP-SHARING-CONFIG-START
+
+MeasGapSharingConfig ::= SEQUENCE {
+ gapSharingFR2 SetupRelease { MeasGapSharingScheme } OPTIONAL, -- Need M
+ ...,
+ [[
+ gapSharingFR1 SetupRelease { MeasGapSharingScheme } OPTIONAL, --Need M
+ gapSharingUE SetupRelease { MeasGapSharingScheme } OPTIONAL --Need M
+ ]]
+
+}
+
+MeasGapSharingScheme::= ENUMERATED {scheme00, scheme01, scheme10, scheme11}
+
+--TAG-MEAS-GAP-SHARING-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-EUTRA-NR-START
+
+MeasObjectEUTRA::= SEQUENCE {
+ carrierFreq ARFCN-ValueEUTRA,
+ allowedMeasBandwidth EUTRA-AllowedMeasBandwidth,
+ cellsToRemoveListEUTRAN EUTRA-CellIndexList OPTIONAL, -- Need N
+ cellsToAddModListEUTRAN SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-Cell OPTIONAL, -- Need N
+ blackCellsToRemoveListEUTRAN EUTRA-CellIndexList OPTIONAL, -- Need N
+ blackCellsToAddModListEUTRAN SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-BlackCell OPTIONAL, -- Need N
+ eutra-PresenceAntennaPort1 EUTRA-PresenceAntennaPort1 ,
+ eutra-Q-OffsetRange EUTRA-Q-OffsetRange OPTIONAL, -- Need R
+ widebandRSRQ-Meas BOOLEAN,
+ ...
+}
+
+EUTRA-CellIndexList ::= SEQUENCE (SIZE (1..maxCellMeasEUTRA)) OF EUTRA-CellIndex
+
+EUTRA-CellIndex ::= INTEGER (1..maxCellMeasEUTRA)
+
+
+EUTRA-Cell ::= SEQUENCE {
+ cellIndexEUTRA EUTRA-CellIndex,
+ physCellId EUTRA-PhysCellId,
+ cellIndividualOffset EUTRA-Q-OffsetRange
+}
+
+
+EUTRA-BlackCell ::= SEQUENCE {
+ cellIndexEUTRA EUTRA-CellIndex,
+ physCellIdRange EUTRA-PhysCellIdRange
+}
+
+-- TAG-MEAS-OBJECT-EUTRA-NR-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, -- Cond SSBorAssociatedSSB
+ ssbSubcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond SSBorAssociatedSSB
+ smtc1 SSB-MTC OPTIONAL, -- Cond SSBorAssociatedSSB
+ smtc2 SSB-MTC2 OPTIONAL, -- Cond IntraFreqConnected
+
+ refFreqCSI-RS ARFCN-ValueNR OPTIONAL,
+ referenceSignalConfig ReferenceSignalConfig,
+ absThreshSS-BlocksConsolidation ThresholdNR OPTIONAL, -- Need R
+ absThreshCSI-RS-Consolidation ThresholdNR OPTIONAL, -- Need R
+ nrofSS-BlocksToAverage INTEGER (2..maxNrofSS-BlocksToAverage) OPTIONAL, -- Need R
+ nrofCSI-RS-ResourcesToAverage INTEGER (2..maxNrofCSI-RS-ResourcesToAverage) OPTIONAL, -- Need R
+ quantityConfigIndex INTEGER (1..maxNrofQuantityConfig),
+
+ offsetMO Q-OffsetRangeList,
+
+ cellsToRemoveList PCI-List OPTIONAL, -- Need N
+ cellsToAddModList CellsToAddModList OPTIONAL, -- Need N
+
+ blackCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N
+ blackCellsToAddModList SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement OPTIONAL, -- Need N
+
+ whiteCellsToRemoveList PCI-RangeIndexList OPTIONAL, -- Need N
+ whiteCellsToAddModList SEQUENCE (SIZE (1..maxNrofPCI-Ranges)) OF PCI-RangeElement OPTIONAL, -- Need N
+ ... ,
+ [[
+ freqBandIndicatorNR-v1530 FreqBandIndicatorNR OPTIONAL, -- Need R
+ measCycleSCell-v1530 ENUMERATED {sf160, sf256, sf320, sf512,sf640, sf1024, sf1280} OPTIONAL -- Need R
+ ]]
+}
+
+ReferenceSignalConfig::= SEQUENCE {
+ ssb-ConfigMobility SSB-ConfigMobility OPTIONAL, -- Need M
+ csi-rs-ResourceConfigMobility SetupRelease { CSI-RS-ResourceConfigMobility } OPTIONAL -- Need M
+}
+
+SSB-ConfigMobility::= SEQUENCE {
+
+ ssb-ToMeasure SetupRelease { SSB-ToMeasure } OPTIONAL, -- Need M
+ deriveSSB-IndexFromCell BOOLEAN,
+ ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL, -- Need M
+ ...
+}
+
+
+Q-OffsetRangeList ::= SEQUENCE {
+ rsrpOffsetSSB Q-OffsetRange DEFAULT dB0,
+ rsrqOffsetSSB Q-OffsetRange DEFAULT dB0,
+ sinrOffsetSSB Q-OffsetRange DEFAULT dB0,
+ rsrpOffsetCSI-RS Q-OffsetRange DEFAULT dB0,
+ rsrqOffsetCSI-RS Q-OffsetRange DEFAULT dB0,
+ sinrOffsetCSI-RS Q-OffsetRange DEFAULT dB0
+}
+
+
+ThresholdNR ::= SEQUENCE{
+ thresholdRSRP RSRP-Range OPTIONAL, -- Need R
+ thresholdRSRQ RSRQ-Range OPTIONAL, -- Need R
+ thresholdSINR SINR-Range OPTIONAL -- Need R
+}
+
+CellsToAddModList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CellsToAddMod
+
+CellsToAddMod ::= SEQUENCE {
+ physCellId PhysCellId,
+ cellIndividualOffset Q-OffsetRangeList
+}
+
+
+
+
+-- TAG-MEAS-OBJECT-NR-STOP
+-- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-START
+
+MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectToAddMod
+
+MeasObjectToAddMod ::= SEQUENCE {
+ measObjectId MeasObjectId,
+ measObject CHOICE {
+ measObjectNR MeasObjectNR,
+ ... ,
+ measObjectEUTRA MeasObjectEUTRA
+ }
+}
+
+-- TAG-MEAS-OBJECT-TO-ADD-MOD-LIST-STOP
+-- TAG-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-MEAS-RESULTS-START
+
+MeasResults ::= SEQUENCE {
+ measId MeasId,
+ measResultServingMOList MeasResultServMOList,
+ measResultNeighCells CHOICE {
+ measResultListNR MeasResultListNR,
+ ...,
+ measResultListEUTRA MeasResultListEUTRA
+ } OPTIONAL,
+ ...
+}
+
+MeasResultServMOList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF MeasResultServMO
+
+MeasResultServMO ::= SEQUENCE {
+ servCellId ServCellIndex,
+ measResultServingCell MeasResultNR,
+ measResultBestNeighCell MeasResultNR OPTIONAL,
+ ...
+}
+
+MeasResultListNR ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultNR
+
+MeasResultNR ::= SEQUENCE {
+ physCellId PhysCellId 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
+ },
+ ...,
+ [[
+ cgi-Info CGI-Info OPTIONAL
+ ]]
+}
+
+MeasResultListEUTRA ::= SEQUENCE (SIZE (1..maxCellReport)) OF MeasResultEUTRA
+
+MeasResultEUTRA ::= SEQUENCE {
+ physCellId PhysCellId,
+ measResult MeasQuantityResultsEUTRA,
+
+ cgi-Info SEQUENCE {
+ cgi-info-EPC SEQUENCE {
+ cgi-info-EPC-legacy CellAccessRelatedInfo-EUTRA-EPC,
+ cgi-info-EPC-list SEQUENCE (SIZE (1..maxPLMN)) OF CellAccessRelatedInfo-EUTRA-EPC OPTIONAL
+ } OPTIONAL,
+
+ cgi-info-5GC SEQUENCE (SIZE (1..maxPLMN)) OF CellAccessRelatedInfo-EUTRA-5GC OPTIONAL,
+ freqBandIndicator FreqBandIndicatorEUTRA,
+ multiBandInfoList MultiBandInfoListEUTRA OPTIONAL,
+ freqBandIndicatorPriority ENUMERATED {true} OPTIONAL
+ } OPTIONAL,
+ ...
+}
+
+MultiBandInfoListEUTRA ::= SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicatorEUTRA
+
+MeasQuantityResults ::= SEQUENCE {
+ rsrp RSRP-Range OPTIONAL,
+ rsrq RSRQ-Range OPTIONAL,
+ sinr SINR-Range OPTIONAL
+}
+
+
+MeasQuantityResultsEUTRA ::= SEQUENCE {
+ rsrp RSRP-RangeEUTRA OPTIONAL,
+ rsrq RSRQ-RangeEUTRA OPTIONAL,
+ sinr SINR-RangeEUTRA OPTIONAL
+}
+
+
+ResultsPerSSB-IndexList::= SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) OF ResultsPerSSB-Index
+
+ResultsPerSSB-Index ::= SEQUENCE {
+ ssb-Index SSB-Index,
+ ssb-Results MeasQuantityResults OPTIONAL
+}
+
+ResultsPerCSI-RS-IndexList::= SEQUENCE (SIZE (1..maxNrofIndexesToReport2)) 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 {
+ measResultPerMOList MeasResultList2NR,
+ ...
+}
+
+MeasResultList2NR ::= SEQUENCE (SIZE (1..maxFreq)) OF MeasResult2NR
+
+MeasResult2NR ::= SEQUENCE {
+ ssbFrequency ARFCN-ValueNR OPTIONAL,
+ refFreqCSI-RS ARFCN-ValueNR OPTIONAL,
+ measResultServingCell MeasResultNR OPTIONAL,
+ measResultNeighCellListNR MeasResultListNR OPTIONAL,
+ ...
+}
+
+-- TAG-MEAS-RESULT-SCG-FAILURE-STOP
+-- TAG-MOBILITY-STATE-PARAMETERS-START
+
+MobilityStateParameters ::= SEQUENCE{
+ t-Evaluation ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ t-HystNormal ENUMERATED {
+ s30, s60, s120, s180, s240, spare3, spare2, spare1},
+ n-CellChangeMedium INTEGER (1..16),
+ n-CellChangeHigh INTEGER (1..16)
+}
+
+-- TAG-MOBILITY-STATE-PARAMETERS-STOP
+-- TAG-MULTIFREQUENCYBANDLISTNR-START
+
+MultiFrequencyBandListNR ::= SEQUENCE (SIZE (1..maxNrofMultiBands)) OF FreqBandIndicatorNR
+
+-- TAG-MULTIFREQUENCYBANDLISTNR-STOP
+-- TAG-NEXTHOPCHAININGCOUNT-START
+
+NextHopChainingCount ::= INTEGER (0..7)
+
+-- TAG-NEXTHOPCHAININGCOUNT-STOP
+-- TAG-NG-5G-S-TMSI-START
+
+NG-5G-S-TMSI::= BIT STRING (SIZE (48))
+
+-- TAG-NG-5G-S-TMSI-STOP
+-- TAG-NZP-CSI-RS-RESOURCE-START
+
+NZP-CSI-RS-Resource ::= SEQUENCE {
+ nzp-CSI-RS-ResourceId NZP-CSI-RS-ResourceId,
+ resourceMapping CSI-RS-ResourceMapping,
+ powerControlOffset INTEGER (-8..15),
+ powerControlOffsetSS ENUMERATED{db-3, db0, db3, db6} OPTIONAL, -- Need R
+ scramblingID ScramblingId,
+ periodicityAndOffset CSI-ResourcePeriodicityAndOffset OPTIONAL, -- Cond PeriodicOrSemiPersistent
+ 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-NZP-CSI-RS-RESOURCESET-START
+NZP-CSI-RS-ResourceSet ::= SEQUENCE {
+ nzp-CSI-ResourceSetId NZP-CSI-RS-ResourceSetId,
+ nzp-CSI-RS-Resources SEQUENCE (SIZE (1..maxNrofNZP-CSI-RS-ResourcesPerSet)) OF NZP-CSI-RS-ResourceId,
+ repetition ENUMERATED { on, off } OPTIONAL, -- Need S
+ aperiodicTriggeringOffset INTEGER(0..4) OPTIONAL, -- Need S
+ trs-Info ENUMERATED {true} OPTIONAL, -- Need R
+ ...
+}
+
+-- 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-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 S
+}
+
+-- TAG-PCI-RANGE-STOP
+-- TAG-PCI-RANGEELEMENT-START
+
+PCI-RangeElement ::= SEQUENCE {
+ pci-RangeIndex PCI-RangeIndex,
+ pci-Range PCI-Range
+}
+
+-- TAG-PCI-RANGEELEMENT-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 {
+ controlResourceSetToAddModList SEQUENCE(SIZE (1..3)) OF ControlResourceSet OPTIONAL, -- Need N
+ controlResourceSetToReleaseList SEQUENCE(SIZE (1..3)) OF ControlResourceSetId OPTIONAL, -- Need N
+ searchSpacesToAddModList SEQUENCE(SIZE (1..10)) OF SearchSpace OPTIONAL, -- Need N
+ searchSpacesToReleaseList SEQUENCE(SIZE (1..10)) OF SearchSpaceId OPTIONAL, -- Need N
+ downlinkPreemption SetupRelease { DownlinkPreemption } OPTIONAL, -- Need M
+ tpc-PUSCH SetupRelease { PUSCH-TPC-CommandConfig } OPTIONAL, -- Need M
+ tpc-PUCCH SetupRelease { PUCCH-TPC-CommandConfig } OPTIONAL, -- Cond PUCCH-CellOnly
+ tpc-SRS SetupRelease { SRS-TPC-CommandConfig} OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-PDCCH-CONFIG-STOP
+-- TAG-PDCCH-CONFIGCOMMON-START
+
+PDCCH-ConfigCommon ::= SEQUENCE {
+ controlResourceSetZero ControlResourceSetZero OPTIONAL, -- Cond InitialBWP-Only
+ commonControlResourceSet ControlResourceSet OPTIONAL, -- Need R
+ searchSpaceZero SearchSpaceZero OPTIONAL, -- Cond InitialBWP-Only
+ commonSearchSpaceList SEQUENCE (SIZE(1..4)) OF SearchSpace OPTIONAL, -- Need R
+ searchSpaceSIB1 SearchSpaceId OPTIONAL, -- Need S
+ searchSpaceOtherSystemInformation SearchSpaceId OPTIONAL, -- Need S
+ pagingSearchSpace SearchSpaceId OPTIONAL, -- Need S
+ ra-SearchSpace SearchSpaceId OPTIONAL, -- Need S
+ ...
+}
+
+-- TAG-PDCCH-CONFIGCOMMON-STOP
+-- TAG-PDCCH-CONFIGSIB1-START
+
+PDCCH-ConfigSIB1 ::= SEQUENCE {
+ controlResourceSetZero ControlResourceSetZero,
+ searchSpaceZero SearchSpaceZero
+}
+
+-- TAG-PDCCH-CONFIGSIB1-STOP
+-- TAG-PDCCH-SERVINGCELLCONFIG-START
+
+PDCCH-ServingCellConfig ::= SEQUENCE {
+ slotFormatIndicator SetupRelease { SlotFormatIndicator } OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-PDCCH-SERVINGCELLCONFIG-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 ENUMERATED { true } OPTIONAL -- Need N
+ },
+ uplinkOnlyROHC SEQUENCE {
+ maxCID INTEGER (1..16383) DEFAULT 15,
+ profiles SEQUENCE {
+ profile0x0006 BOOLEAN
+ },
+ drb-ContinueROHC ENUMERATED { true } OPTIONAL -- Need N
+ },
+ ...
+ },
+ integrityProtection ENUMERATED { enabled } OPTIONAL, -- Cond ConnectedTo5GC
+ statusReportRequired ENUMERATED { true } OPTIONAL, -- Cond Rlc-AM
+ outOfOrderDelivery ENUMERATED { true } OPTIONAL -- Need R
+ } OPTIONAL, -- Cond DRB
+ moreThanOneRLC SEQUENCE {
+ primaryPath SEQUENCE {
+ cellGroup CellGroupId OPTIONAL, -- Need R
+ logicalChannel LogicalChannelIdentity OPTIONAL -- Need R
+ },
+ ul-DataSplitThreshold UL-DataSplitThreshold OPTIONAL, -- Cond SplitBearer
+ pdcp-Duplication BOOLEAN 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
+ ...,
+ [[
+ cipheringDisabled ENUMERATED {true} OPTIONAL -- Cond ConnectedTo5GC
+ ]]
+
+}
+
+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 {
+ dataScramblingIdentityPDSCH INTEGER (0..1023) OPTIONAL, -- Need S
+ dmrs-DownlinkForPDSCH-MappingTypeA SetupRelease { DMRS-DownlinkConfig } OPTIONAL, -- Need M
+ dmrs-DownlinkForPDSCH-MappingTypeB SetupRelease { DMRS-DownlinkConfig } OPTIONAL, -- Need M
+
+ 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
+ vrb-ToPRB-Interleaver ENUMERATED {n2, n4} OPTIONAL, -- Need S
+ resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch},
+ pdsch-TimeDomainAllocationList SetupRelease { PDSCH-TimeDomainResourceAllocationList } OPTIONAL, -- Need M
+ pdsch-AggregationFactor ENUMERATED { n2, n4, n8 } OPTIONAL, -- Need S
+ rateMatchPatternToAddModList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N
+ rateMatchPatternToReleaseList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N
+ rateMatchPatternGroup1 RateMatchPatternGroup OPTIONAL, -- Need R
+ rateMatchPatternGroup2 RateMatchPatternGroup OPTIONAL, -- Need R
+
+ rbg-Size ENUMERATED {config1, config2},
+ mcs-Table ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S
+ maxNrofCodeWordsScheduledByDCI ENUMERATED {n1, n2} OPTIONAL, -- Need R
+
+ prb-BundlingType CHOICE {
+ staticBundling SEQUENCE {
+ bundleSize ENUMERATED { n4, wideband } OPTIONAL -- Need S
+ },
+ dynamicBundling SEQUENCE {
+ bundleSizeSet1 ENUMERATED { n4, wideband, n2-wideband, n4-wideband } OPTIONAL, -- Need S
+ bundleSizeSet2 ENUMERATED { n4, wideband } OPTIONAL -- Need S
+ }
+ },
+ 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 N
+ aperiodic-ZP-CSI-RS-ResourceSetsToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet OPTIONAL, -- Need N
+ aperiodic-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId OPTIONAL,
+ -- NeedN
+ sp-ZP-CSI-RS-ResourceSetsToAddModList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSet OPTIONAL, -- Need N
+ sp-ZP-CSI-RS-ResourceSetsToReleaseList SEQUENCE (SIZE (1..maxNrofZP-CSI-RS-ResourceSets)) OF ZP-CSI-RS-ResourceSetId OPTIONAL, -- Need N
+ p-ZP-CSI-RS-ResourceSet SetupRelease { ZP-CSI-RS-ResourceSet } OPTIONAL, -- Need M
+ ...
+}
+RateMatchPatternGroup ::= SEQUENCE (SIZE (1..maxNrofRateMatchPatternsPerGroup)) OF CHOICE {
+ cellLevel RateMatchPatternId,
+ bwpLevel RateMatchPatternId
+}
+
+-- TAG-PDSCH-CONFIG-STOP
+-- TAG-PDSCH-CONFIGCOMMON-START
+
+PDSCH-ConfigCommon ::= SEQUENCE {
+ pdsch-TimeDomainAllocationList PDSCH-TimeDomainResourceAllocationList OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-PDSCH-CONFIGCOMMON-STOP
+-- TAG-PDSCH-SERVINGCELLCONFIG-START
+
+PDSCH-ServingCellConfig ::= SEQUENCE {
+ codeBlockGroupTransmission SetupRelease { PDSCH-CodeBlockGroupTransmission } OPTIONAL, -- Need M
+ xOverhead ENUMERATED { xOh6, xOh12, xOh18 } OPTIONAL, -- Need S
+ nrofHARQ-ProcessesForPDSCH ENUMERATED {n2, n4, n6, n10, n12, n16} OPTIONAL, -- Need S
+ pucch-Cell ServCellIndex OPTIONAL , -- Cond SCellAddOnly
+ ...
+}
+
+PDSCH-CodeBlockGroupTransmission ::= SEQUENCE {
+ maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8},
+ codeBlockGroupFlushIndicator BOOLEAN,
+ ...
+}
+
+-- TAG-PDSCH-SERVINGCELLCONFIG-STOP
+-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-START
+
+
+PDSCH-TimeDomainResourceAllocationList ::= SEQUENCE (SIZE(1..maxNrofDL-Allocations)) OF PDSCH-TimeDomainResourceAllocation
+
+PDSCH-TimeDomainResourceAllocation ::= SEQUENCE {
+ k0 INTEGER(0..32) OPTIONAL, -- Need S
+ mappingType ENUMERATED {typeA, typeB},
+ startSymbolAndLength INTEGER (0..127)
+}
+
+-- TAG-PDSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-STOP
+-- TAG-PHR-CONFIG-START
+
+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,
+ dummy BOOLEAN,
+ phr-Type2OtherCell BOOLEAN,
+ phr-ModeOtherCG ENUMERATED {real, virtual},
+ ...
+}
+
+-- TAG-PHR-CONFIG-STOP
+-- TAG-PHYS-CELL-ID-START
+
+PhysCellId ::= INTEGER (0..1007)
+
+-- TAG-PHYS-CELL-ID-STOP
+-- TAG-PHYSICALCELLGROUPCONFIG-START
+
+PhysicalCellGroupConfig ::= SEQUENCE {
+ harq-ACK-SpatialBundlingPUCCH ENUMERATED {true} OPTIONAL, -- Need S
+ harq-ACK-SpatialBundlingPUSCH ENUMERATED {true} OPTIONAL, -- Need S
+ p-NR-FR1 P-Max OPTIONAL, -- Need R
+ pdsch-HARQ-ACK-Codebook ENUMERATED {semiStatic, dynamic},
+ tpc-SRS-RNTI RNTI-Value OPTIONAL, -- Need R
+ tpc-PUCCH-RNTI RNTI-Value OPTIONAL, -- Need R
+ tpc-PUSCH-RNTI RNTI-Value OPTIONAL, -- Need R
+ sp-CSI-RNTI RNTI-Value OPTIONAL, -- Cond SP-CSI-Report
+ cs-RNTI SetupRelease { RNTI-Value } OPTIONAL, -- Need M
+ ...,
+ [[
+ mcs-C-RNTI RNTI-Value OPTIONAL, -- Need R
+ p-UE-FR1 P-Max OPTIONAL -- Cond MCG-Only
+ ]]
+}
+
+-- TAG-PHYSICALCELLGROUPCONFIG-STOP
+-- TAG-PLMN-IDENTITY-INFORMATION-START
+
+PLMN-Identity ::= SEQUENCE {
+ mcc MCC OPTIONAL, -- Cond MCC
+ mnc MNC
+}
+
+MCC ::= SEQUENCE (SIZE (3)) OF MCC-MNC-Digit
+
+MNC ::= SEQUENCE (SIZE (2..3)) OF MCC-MNC-Digit
+
+MCC-MNC-Digit ::= INTEGER (0..9)
+
+
+-- TAG-PLMN-IDENTITY-INFORMATION-STOP
+-- TAG-PLMN-IDENTITY-LIST-START
+
+PLMN-IdentityInfoList ::= SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-IdentityInfo
+
+PLMN-IdentityInfo ::= SEQUENCE {
+ plmn-IdentityList SEQUENCE (SIZE (1..maxPLMN)) OF PLMN-Identity,
+ trackingAreaCode TrackingAreaCode OPTIONAL, -- Need R
+ ranac RAN-AreaCode OPTIONAL, -- Need R
+ cellIdentity CellIdentity,
+ cellReservedForOperatorUse ENUMERATED {reserved, notReserved},
+ ...
+}
+-- TAG-PLMN-IDENTITY-LIST-STOP
+-- TAG-PRB-ID-START
+
+PRB-Id ::= INTEGER (0..maxNrofPhysicalResourceBlocks-1)
+
+-- TAG-PRB-ID-STOP
+-- TAG-PTRS-DOWNLINKCONFIG-START
+
+PTRS-DownlinkConfig ::= SEQUENCE {
+ frequencyDensity SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S
+ timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S
+ epre-Ratio INTEGER (0..3) OPTIONAL, -- Need S
+ resourceElementOffset ENUMERATED { offset01, offset10, offset11 } OPTIONAL, -- Need S
+ ...
+}
+
+-- TAG-PTRS-DOWNLINKCONFIG-STOP
+-- TAG-PTRS-UPLINKCONFIG-START
+
+PTRS-UplinkConfig ::= SEQUENCE {
+ transformPrecoderDisabled SEQUENCE {
+ frequencyDensity
+ SEQUENCE (SIZE (2)) OF INTEGER (1..276) OPTIONAL, -- Need S
+ timeDensity SEQUENCE (SIZE (3)) OF INTEGER (0..29) OPTIONAL, -- Need S
+ maxNrofPorts ENUMERATED {n1, n2},
+ resourceElementOffset ENUMERATED {offset01, offset10, offset11 } OPTIONAL, -- Need S
+ ptrs-Power ENUMERATED {p00, p01, p10, p11}
+ } OPTIONAL, -- Need R
+ transformPrecoderEnabled SEQUENCE {
+ sampleDensity SEQUENCE (SIZE (5)) OF INTEGER (1..276),
+ timeDensityTransformPrecoding ENUMERATED {d2} OPTIONAL -- Need S
+ } OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-PTRS-UPLINKCONFIG-STOP
+-- TAG-PUCCH-CONFIG-START
+
+PUCCH-Config ::= SEQUENCE {
+ resourceSetToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSet OPTIONAL, -- Need N
+ resourceSetToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourceSets)) OF PUCCH-ResourceSetId OPTIONAL, -- Need N
+
+ resourceToAddModList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-Resource OPTIONAL, -- Need N
+ resourceToReleaseList SEQUENCE (SIZE (1..maxNrofPUCCH-Resources)) OF PUCCH-ResourceId OPTIONAL, -- Need N
+
+ format1 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M
+ format2 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M
+ format3 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M
+ format4 SetupRelease { PUCCH-FormatConfig } OPTIONAL, -- Need M
+
+ schedulingRequestResourceToAddModList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceConfig OPTIONAL, -- Need N
+ schedulingRequestResourceToReleaseList SEQUENCE (SIZE (1..maxNrofSR-Resources)) OF SchedulingRequestResourceId OPTIONAL, -- Need N
+
+ multi-CSI-PUCCH-ResourceList SEQUENCE (SIZE (1..2)) OF PUCCH-ResourceId OPTIONAL,-- Need M
+ dl-DataToUL-ACK SEQUENCE (SIZE (1..8)) OF INTEGER (0..15) OPTIONAL, -- Need M
+
+ 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 {
+ interslotFrequencyHopping ENUMERATED {enabled} OPTIONAL, -- Need R
+ additionalDMRS ENUMERATED {true} OPTIONAL, -- Need R
+ maxCodeRate PUCCH-MaxCodeRate OPTIONAL, -- Need R
+ nrofSlots ENUMERATED {n2,n4,n8} OPTIONAL, -- Need S
+ pi2BPSK ENUMERATED {enabled} OPTIONAL, -- Need R
+ simultaneousHARQ-ACK-CSI ENUMERATED {true} OPTIONAL -- Need R
+}
+
+PUCCH-MaxCodeRate ::= ENUMERATED {zeroDot08, zeroDot15, zeroDot25, zeroDot35, zeroDot45, zeroDot60, zeroDot80}
+
+-- A set with one or more PUCCH resources
+PUCCH-ResourceSet ::= SEQUENCE {
+ pucch-ResourceSetId PUCCH-ResourceSetId,
+ resourceList SEQUENCE (SIZE (1..maxNrofPUCCH-ResourcesPerSet)) OF PUCCH-ResourceId,
+ maxPayloadMinus1 INTEGER (4..256) OPTIONAL -- Need R
+}
+
+PUCCH-ResourceSetId ::= INTEGER (0..maxNrofPUCCH-ResourceSets-1)
+
+PUCCH-Resource ::= SEQUENCE {
+ pucch-ResourceId PUCCH-ResourceId,
+ startingPRB PRB-Id,
+ intraSlotFrequencyHopping ENUMERATED { enabled } OPTIONAL, -- Need R
+ secondHopPRB PRB-Id OPTIONAL, -- Need R
+ format CHOICE {
+ format0 PUCCH-format0,
+ format1 PUCCH-format1,
+ format2 PUCCH-format2,
+ format3 PUCCH-format3,
+ format4 PUCCH-format4
+ }
+}
+
+PUCCH-ResourceId ::= INTEGER (0..maxNrofPUCCH-Resources-1)
+
+
+PUCCH-format0 ::= SEQUENCE {
+ initialCyclicShift INTEGER(0..11),
+ nrofSymbols INTEGER (1..2),
+ startingSymbolIndex INTEGER(0..13)
+}
+
+PUCCH-format1 ::= SEQUENCE {
+ initialCyclicShift INTEGER(0..11),
+ nrofSymbols INTEGER (4..14),
+ startingSymbolIndex INTEGER(0..10),
+ timeDomainOCC INTEGER(0..6)
+}
+
+PUCCH-format2 ::= SEQUENCE {
+ nrofPRBs INTEGER (1..16),
+ nrofSymbols INTEGER (1..2),
+ startingSymbolIndex INTEGER(0..13)
+}
+
+PUCCH-format3 ::= SEQUENCE {
+ nrofPRBs INTEGER (1..16),
+ nrofSymbols INTEGER (4..14),
+ startingSymbolIndex INTEGER(0..10)
+}
+
+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 {
+ pucch-ResourceCommon INTEGER (0..15) OPTIONAL, -- Need R
+ pucch-GroupHopping ENUMERATED { neither, enable, disable },
+ hoppingId INTEGER (0..1023) OPTIONAL, -- Need R
+ p0-nominal INTEGER (-202..24) OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-PUCCH-CONFIGCOMMON-STOP
+-- TAG-PUCCH-PATHLOSSREFERENCERS-ID-START
+
+PUCCH-PathlossReferenceRS-Id ::= INTEGER (0..maxNrofPUCCH-PathlossReferenceRSs-1)
+
+-- TAG-PUCCH-PATHLOSSREFERENCERS-ID-STOP
+-- TAG-PUCCH-POWERCONTROL-START
+PUCCH-PowerControl ::= SEQUENCE {
+ deltaF-PUCCH-f0 INTEGER (-16..15) OPTIONAL, -- Need R
+ deltaF-PUCCH-f1 INTEGER (-16..15) OPTIONAL, -- Need R
+ deltaF-PUCCH-f2 INTEGER (-16..15) OPTIONAL, -- Need R
+ deltaF-PUCCH-f3 INTEGER (-16..15) OPTIONAL, -- Need R
+ deltaF-PUCCH-f4 INTEGER (-16..15) OPTIONAL, -- Need R
+ p0-Set SEQUENCE (SIZE (1..maxNrofPUCCH-P0-PerSet)) OF P0-PUCCH OPTIONAL, -- Need M
+ pathlossReferenceRSs SEQUENCE (SIZE (1..maxNrofPUCCH-PathlossReferenceRSs)) OF PUCCH-PathlossReferenceRS OPTIONAL, -- Need M
+ twoPUCCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need S
+ ...
+}
+
+P0-PUCCH ::= SEQUENCE {
+ p0-PUCCH-Id P0-PUCCH-Id,
+ p0-PUCCH-Value INTEGER (-16..15)
+}
+
+P0-PUCCH-Id ::= INTEGER (1..8)
+
+PUCCH-PathlossReferenceRS ::= SEQUENCE {
+ pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id,
+ referenceSignal CHOICE {
+ ssb-Index SSB-Index,
+ csi-RS-Index NZP-CSI-RS-ResourceId
+ }
+}
+
+-- TAG-PUCCH-POWERCONTROL-STOP
+-- TAG-PUCCH-SPATIALRELATIONINFO-START
+
+PUCCH-SpatialRelationInfo ::= SEQUENCE {
+ pucch-SpatialRelationInfoId PUCCH-SpatialRelationInfoId,
+ servingCellId ServCellIndex OPTIONAL, -- Need S
+ referenceSignal CHOICE {
+ ssb-Index SSB-Index,
+ csi-RS-Index NZP-CSI-RS-ResourceId,
+ srs SEQUENCE {
+ resource SRS-ResourceId,
+ uplinkBWP BWP-Id
+ }
+ },
+ pucch-PathlossReferenceRS-Id PUCCH-PathlossReferenceRS-Id,
+ p0-PUCCH-Id P0-PUCCH-Id,
+ closedLoopIndex ENUMERATED { i0, i1 }
+}
+
+PUCCH-SpatialRelationInfoId ::= INTEGER (1..maxNrofSpatialRelationInfos)
+
+
+-- TAG-PUCCH-SPATIALRELATIONINFO-STOP
+-- TAG-PUCCH-TPC-COMMANDCONFIG-START
+
+PUCCH-TPC-CommandConfig ::= SEQUENCE {
+ tpc-IndexPCell INTEGER (1..15) OPTIONAL, -- Cond PDCCH-OfSpcell
+ tpc-IndexPUCCH-SCell INTEGER (1..15) OPTIONAL, -- Cond PDCCH-ofSpCellOrPUCCH-Scell
+ ...
+}
+
+-- TAG-PUCCH-TPC-COMMANDCONFIG-STOP
+-- TAG-PUSCH-CONFIG-START
+
+PUSCH-Config ::= SEQUENCE {
+ dataScramblingIdentityPUSCH INTEGER (0..1023) OPTIONAL, -- Need S
+ txConfig ENUMERATED {codebook, nonCodebook} OPTIONAL, -- Need S
+ dmrs-UplinkForPUSCH-MappingTypeA SetupRelease { DMRS-UplinkConfig } OPTIONAL, -- Need M
+ dmrs-UplinkForPUSCH-MappingTypeB SetupRelease { DMRS-UplinkConfig } OPTIONAL, -- Need M
+
+ pusch-PowerControl PUSCH-PowerControl OPTIONAL, -- Need M
+ frequencyHopping ENUMERATED {intraSlot, interSlot} OPTIONAL, -- Need S
+ frequencyHoppingOffsetLists SEQUENCE (SIZE (1..4)) OF INTEGER (1.. maxNrofPhysicalResourceBlocks-1) OPTIONAL, -- Need M
+ resourceAllocation ENUMERATED { resourceAllocationType0, resourceAllocationType1, dynamicSwitch},
+ pusch-TimeDomainAllocationList SetupRelease { PUSCH-TimeDomainResourceAllocationList } OPTIONAL, -- Need M
+ pusch-AggregationFactor ENUMERATED { n2, n4, n8 } OPTIONAL, -- Need S
+ mcs-Table ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S
+ mcs-TableTransformPrecoder ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S
+ transformPrecoder ENUMERATED {enabled, disabled} OPTIONAL, -- Need S
+ codebookSubset ENUMERATED {fullyAndPartialAndNonCoherent, partialAndNonCoherent,
+ nonCoherent} OPTIONAL, -- Cond codebookBased
+ maxRank INTEGER (1..4) OPTIONAL, -- Cond codebookBased
+ rbg-Size ENUMERATED { config2} OPTIONAL, -- Need S
+ uci-OnPUSCH SetupRelease { UCI-OnPUSCH} OPTIONAL, -- Need M
+ tp-pi2BPSK ENUMERATED {enabled} OPTIONAL, -- Need S
+ ...
+}
+
+UCI-OnPUSCH ::= SEQUENCE {
+ betaOffsets CHOICE {
+ dynamic SEQUENCE (SIZE (4)) OF BetaOffsets,
+ semiStatic BetaOffsets
+ } OPTIONAL, -- Need M
+ scaling ENUMERATED { f0p5, f0p65, f0p8, f1 }
+}
+
+-- TAG-PUSCH-CONFIG-STOP
+-- TAG-PUSCH-CONFIGCOMMON-START
+
+PUSCH-ConfigCommon ::= SEQUENCE {
+ groupHoppingEnabledTransformPrecoding ENUMERATED {enabled} OPTIONAL, -- Need R
+ pusch-TimeDomainAllocationList PUSCH-TimeDomainResourceAllocationList OPTIONAL, -- Need R
+ msg3-DeltaPreamble INTEGER (-1..6) OPTIONAL, -- Need R
+ p0-NominalWithGrant INTEGER (-202..24) OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-PUSCH-CONFIGCOMMON-STOP
+-- TAG-PUSCH-POWERCONTROL-START
+
+PUSCH-PowerControl ::= SEQUENCE {
+ tpc-Accumulation ENUMERATED { disabled } OPTIONAL, -- Need S
+ msg3-Alpha Alpha OPTIONAL, -- Need S
+ p0-NominalWithoutGrant INTEGER (-202..24) OPTIONAL, -- Need M,
+ p0-AlphaSets SEQUENCE (SIZE (1..maxNrofP0-PUSCH-AlphaSets)) OF P0-PUSCH-AlphaSet OPTIONAL, -- Need M,
+ 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
+ twoPUSCH-PC-AdjustmentStates ENUMERATED {twoStates} OPTIONAL, -- Need S
+ deltaMCS ENUMERATED {enabled} OPTIONAL, -- Need S
+ sri-PUSCH-MappingToAddModList SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControl OPTIONAL, -- Need N
+ sri-PUSCH-MappingToReleaseList SEQUENCE (SIZE (1..maxNrofSRI-PUSCH-Mappings)) OF SRI-PUSCH-PowerControlId OPTIONAL -- Need N
+}
+
+-- 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. (see 38.213, section 7.1.1)
+P0-PUSCH-AlphaSet ::= SEQUENCE {
+ p0-PUSCH-AlphaSetId P0-PUSCH-AlphaSetId,
+ p0 INTEGER (-16..15) OPTIONAL, -- Need S
+ 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)
+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 {
+ sri-PUSCH-PowerControlId SRI-PUSCH-PowerControlId,
+ sri-PUSCH-PathlossReferenceRS-Id PUSCH-PathlossReferenceRS-Id,
+ sri-P0-PUSCH-AlphaSetId P0-PUSCH-AlphaSetId,
+ sri-PUSCH-ClosedLoopIndex ENUMERATED { i0, i1 }
+}
+
+SRI-PUSCH-PowerControlId ::= INTEGER (0..maxNrofSRI-PUSCH-Mappings-1)
+
+-- A set of beta-offset values
+BetaOffsets ::= SEQUENCE {
+ betaOffsetACK-Index1 INTEGER(0..31) OPTIONAL, -- Need S
+ betaOffsetACK-Index2 INTEGER(0..31) OPTIONAL, -- Need S
+ betaOffsetACK-Index3 INTEGER(0..31) OPTIONAL, -- Need S
+ betaOffsetCSI-Part1-Index1 INTEGER(0..31) OPTIONAL, -- Need S
+ betaOffsetCSI-Part1-Index2 INTEGER(0..31) OPTIONAL, -- Need S
+ betaOffsetCSI-Part2-Index1 INTEGER(0..31) OPTIONAL, -- Need S
+ betaOffsetCSI-Part2-Index2 INTEGER(0..31) OPTIONAL -- Need S
+}
+
+-- TAG-PUSCH-POWERCONTROL-STOP
+-- TAG-PUSCH-SERVINGCELLCONFIG-START
+
+PUSCH-ServingCellConfig ::= SEQUENCE {
+ codeBlockGroupTransmission SetupRelease { PUSCH-CodeBlockGroupTransmission } OPTIONAL, -- Need M
+ rateMatching ENUMERATED {limitedBufferRM} OPTIONAL, -- Need S
+ xOverhead ENUMERATED {xoh6, xoh12, xoh18} OPTIONAL, -- Need S
+ ...
+}
+
+PUSCH-CodeBlockGroupTransmission ::= SEQUENCE {
+ maxCodeBlockGroupsPerTransportBlock ENUMERATED {n2, n4, n6, n8},
+ ...
+}
+
+-- TAG-PUSCH-SERVINGCELLCONFIG-STOP
+-- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-START
+
+PUSCH-TimeDomainResourceAllocationList ::= SEQUENCE (SIZE(1..maxNrofUL-Allocations)) OF PUSCH-TimeDomainResourceAllocation
+
+PUSCH-TimeDomainResourceAllocation ::= SEQUENCE {
+ k2 INTEGER(0..32) OPTIONAL, -- Need S
+ mappingType ENUMERATED {typeA, typeB},
+ startSymbolAndLength INTEGER (0..127)
+}
+
+-- TAG-PUSCH-TIMEDOMAINRESOURCEALLOCATIONLIST-STOP
+-- TAG-PUSCH-TPC-COMMANDCONFIG-START
+
+PUSCH-TPC-CommandConfig ::= SEQUENCE {
+ tpc-Index INTEGER (1..15) OPTIONAL, -- Cond SUL
+ tpc-IndexSUL INTEGER (1..15) OPTIONAL, -- Cond SUL-Only
+ targetCell ServCellIndex OPTIONAL, -- Need S
+ ...
+}
+
+-- TAG-PUSCH-TPC-COMMANDCONFIG-STOP
+-- TAG-Q-OFFSET-START
+
+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-Q-OFFSET-STOP
+-- TAG-Q-QUALMIN-START
+
+Q-QualMin ::= INTEGER (-34..-3) -- FFS range
+
+-- TAG-Q-QUALMIN-STOP
+-- TAG-Q-RXLEVMIN-START
+
+Q-RxLevMin ::= INTEGER (-70..-22) -- FFS range
+
+-- TAG-Q-RXLEVMIN-STOP
+-- TAG-QUANTITY-CONFIG-START
+
+
+QuantityConfig ::= SEQUENCE {
+ quantityConfigNR-List SEQUENCE (SIZE (1..maxNrofQuantityConfig)) OF QuantityConfigNR OPTIONAL, -- Need M
+ ...,
+ [[
+ quantityConfigEUTRA FilterConfig OPTIONAL -- Need M
+ ]]
+}
+
+QuantityConfigNR::= SEQUENCE {
+ quantityConfigCell QuantityConfigRS,
+ quantityConfigRS-Index QuantityConfigRS OPTIONAL -- Need M
+}
+
+QuantityConfigRS ::= SEQUENCE {
+ ssb-FilterConfig FilterConfig,
+ 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 {
+ rach-ConfigGeneric RACH-ConfigGeneric,
+ totalNumberOfRA-Preambles INTEGER (1..63) OPTIONAL, -- Need S
+ 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 {
+ ra-Msg3SizeGroupA ENUMERATED {b56, b144, b208, b256, b282, b480, b640,
+ b800, b1000, b72, spare6, spare5,spare4, spare3, spare2, spare1},
+ messagePowerOffsetGroupB ENUMERATED { minusinfinity, dB0, dB5, dB8, dB10, dB12, dB15, dB18},
+ numberOfRA-PreamblesGroupA INTEGER (1..64)
+ } OPTIONAL, -- Need R
+ ra-ContentionResolutionTimer ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64},
+ rsrp-ThresholdSSB RSRP-Range OPTIONAL, -- Need R
+ rsrp-ThresholdSSB-SUL RSRP-Range OPTIONAL, -- Cond SUL
+ prach-RootSequenceIndex CHOICE {
+ l839 INTEGER (0..837),
+ l139 INTEGER (0..137)
+ },
+ msg1-SubcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond L139Need S
+ restrictedSetConfig ENUMERATED {unrestrictedSet, restrictedSetTypeA, restrictedSetTypeB},
+ msg3-transformPrecoder ENUMERATED {enabled} OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-RACH-CONFIG-COMMON-STOP
+-- TAG-RACH-CONFIG-DEDICATED-START
+
+
+RACH-ConfigDedicated ::= SEQUENCE {
+ cfra CFRA OPTIONAL, -- Need S
+ ra-Prioritization RA-Prioritization OPTIONAL, --Need N
+ ...
+}
+
+CFRA ::= SEQUENCE {
+ occasions SEQUENCE {
+ rach-ConfigGeneric RACH-ConfigGeneric,
+ ssb-perRACH-Occasion ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen} OPTIONAL -- Cond SSB-CFRA
+ } OPTIONAL, -- Need S
+ resources CHOICE {
+ ssb SEQUENCE {
+ ssb-ResourceList SEQUENCE (SIZE(1..maxRA-SSB-Resources)) OF CFRA-SSB-Resource,
+ ra-ssb-OccasionMaskIndex INTEGER (0..15)
+ },
+ csirs SEQUENCE {
+ csirs-ResourceList SEQUENCE (SIZE(1..maxRA-CSIRS-Resources)) OF CFRA-CSIRS-Resource,
+ rsrp-ThresholdCSI-RS RSRP-Range
+ }
+ },
+ ...,
+ [[
+ totalNumberOfRA-Preambles-v1530 INTEGER (1..63) OPTIONAL -- Cond Occasions
+ ]]
+}
+
+CFRA-SSB-Resource ::= SEQUENCE {
+ ssb SSB-Index,
+ ra-PreambleIndex INTEGER (0..63),
+ ...
+}
+
+CFRA-CSIRS-Resource ::= SEQUENCE {
+ csi-RS CSI-RS-Index,
+ ra-OccasionList SEQUENCE (SIZE(1..maxRA-OccasionsPerCSIRS)) OF INTEGER (0..maxRA-Occasions-1),
+ ra-PreambleIndex INTEGER (0..63),
+ ...
+}
+
+-- TAG-RACH-CONFIG-DEDICATED-STOP
+-- TAG-RACH-CONFIG-GENERIC-START
+
+RACH-ConfigGeneric ::= SEQUENCE {
+ prach-ConfigurationIndex INTEGER (0..255),
+ msg1-FDM ENUMERATED {one, two, four, eight},
+ msg1-FrequencyStart INTEGER (0..maxNrofPhysicalResourceBlocks-1),
+ zeroCorrelationZoneConfig INTEGER(0..15),
+ preambleReceivedTargetPower INTEGER (-202..-60),
+ preambleTransMax ENUMERATED {n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200},
+ powerRampingStep ENUMERATED {dB0, dB2, dB4, dB6},
+ ra-ResponseWindow ENUMERATED {sl1, sl2, sl4, sl8, sl10, sl20, sl40, sl80},
+ ...
+}
+
+-- TAG-RACH-CONFIG-GENERIC-STOP
+-- TAG-RA-PRIORITIZATION-START
+
+RA-Prioritization ::= SEQUENCE {
+ powerRampingStepHighPriority ENUMERATED {dB0, dB2, dB4, dB6},
+ scalingFactorBI ENUMERATED {zero, dot25, dot5, dot75} OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-RA-PRIORITIZATION-STOP
+-- TAG-RADIO-BEARER-CONFIG-START
+
+RadioBearerConfig ::= SEQUENCE {
+ srb-ToAddModList SRB-ToAddModList OPTIONAL, -- Cond HO-Conn
+ srb3-ToRelease ENUMERATED{true} OPTIONAL, -- Need N
+ drb-ToAddModList DRB-ToAddModList OPTIONAL, -- Cond HO-toNR
+ drb-ToReleaseList DRB-ToReleaseList OPTIONAL, -- Need N
+ securityConfig SecurityConfig OPTIONAL, -- Need M
+ ...
+}
+
+SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
+SRB-ToAddMod ::= SEQUENCE {
+ srb-Identity SRB-Identity,
+ 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 {
+ eps-BearerIdentity INTEGER (0..15), -- EPS-DRB-Setup
+ sdap-Config SDAP-Config -- 5GC
+ } OPTIONAL, -- Cond DRBSetup
+ drb-Identity DRB-Identity,
+ 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{master, secondary} OPTIONAL, -- Cond RBTermChange
+ ...
+}
+
+
+
+-- TAG-RADIO-BEARER-CONFIG-STOP
+-- TAG-RADIOLINKMONITORINGCONFIG-START
+
+RadioLinkMonitoringConfig ::= SEQUENCE {
+ failureDetectionResourcesToAddModList SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS OPTIONAL, -- Need N
+ failureDetectionResourcesToReleaseList SEQUENCE (SIZE(1..maxNrofFailureDetectionResources)) OF RadioLinkMonitoringRS-Id OPTIONAL,-- Need N
+ beamFailureInstanceMaxCount ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10} OPTIONAL, -- Need R
+ beamFailureDetectionTimer ENUMERATED {pbfd1, pbfd2, pbfd3, pbfd4, pbfd5, pbfd6, pbfd8, pbfd10} OPTIONAL, -- Need R
+ ...
+}
+
+RadioLinkMonitoringRS ::= SEQUENCE {
+ radioLinkMonitoringRS-Id RadioLinkMonitoringRS-Id,
+ purpose ENUMERATED {beamFailure, rlf, both},
+ detectionResource CHOICE {
+ ssb-Index SSB-Index,
+ csi-RS-Index NZP-CSI-RS-ResourceId
+ },
+ ...
+}
+
+-- TAG-RADIOLINKMONITORINGCONFIG-STOP
+-- TAG-RADIOLINKMONITORINGRSID-START
+
+RadioLinkMonitoringRS-Id ::= INTEGER (0..maxNrofFailureDetectionResources-1)
+
+-- TAG-RADIOLINKMONITORINGRSID-STOP
+-- TAG-RAN-AREACODE-START
+
+RAN-AreaCode ::= INTEGER (0..255)
+
+-- TAG-RAN-AREACODE-STOP
+-- TAG-RATEMATCHPATTERN-START
+
+RateMatchPattern ::= SEQUENCE {
+ rateMatchPatternId RateMatchPatternId,
+
+ patternType CHOICE {
+ bitmaps SEQUENCE {
+ resourceBlocks BIT STRING (SIZE (275)),
+ symbolsInResourceBlock CHOICE {
+ oneSlot BIT STRING (SIZE (14)),
+ twoSlots BIT STRING (SIZE (28))
+ },
+ 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
+ ...
+ },
+ controlResourceSet ControlResourceSetId
+ },
+ subcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond CellLevel
+ dummy ENUMERATED { dynamic, semiStatic },
+ ...
+}
+
+-- TAG-RATEMATCHPATTERN-STOP
+-- TAG-RATEMATCHPATTERNID-START
+
+RateMatchPatternId ::= INTEGER (0..maxNrofRateMatchPatterns-1)
+
+-- TAG-RATEMATCHPATTERNID-STOP
+-- TAG-RATEMATCHPATTERNLTE-CRS-START
+
+RateMatchPatternLTE-CRS ::= SEQUENCE {
+ carrierFreqDL INTEGER (0..16383),
+ carrierBandwidthDL ENUMERATED {n6, n15, n25, n50, n75, n100, spare2, spare1},
+ mbsfn-SubframeConfigList EUTRA-MBSFN-SubframeConfigList OPTIONAL, -- Need M
+ nrofCRS-Ports ENUMERATED {n1, n2, n4},
+ 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-INTER-RAT-START
+
+ReportConfigInterRAT ::= SEQUENCE {
+ reportType CHOICE {
+ periodical PeriodicalReportConfigInterRAT,
+ eventTriggered EventTriggerConfigInterRAT,
+ reportCGI ReportCGI-EUTRA,
+ ...
+ }
+}
+
+ReportCGI-EUTRA ::= SEQUENCE {
+ cellForWhichToReportCGI EUTRA-PhysCellId,
+ ...
+}
+
+EventTriggerConfigInterRAT ::= SEQUENCE {
+ eventId CHOICE {
+ eventB1 SEQUENCE {
+ b1-ThresholdEUTRA MeasTriggerQuantityEUTRA,
+ reportOnLeave BOOLEAN,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ ...
+ },
+ eventB2 SEQUENCE {
+ b2-Threshold1 MeasTriggerQuantity,
+ b2-Threshold2EUTRA MeasTriggerQuantityEUTRA,
+ reportOnLeave BOOLEAN,
+ hysteresis Hysteresis,
+ timeToTrigger TimeToTrigger,
+ ...
+ },
+ ...
+ },
+ rsType NR-RS-Type,
+
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ reportQuantity MeasReportQuantity,
+ maxReportCells INTEGER (1..maxCellReport),
+ ...
+
+}
+
+PeriodicalReportConfigInterRAT ::= SEQUENCE {
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+ reportQuantity MeasReportQuantity,
+ maxReportCells INTEGER (1..maxCellReport),
+ ...
+}
+
+MeasTriggerQuantityEUTRA::= CHOICE {
+ rsrp RSRP-RangeEUTRA,
+ rsrq RSRQ-RangeEUTRA,
+ sinr SINR-RangeEUTRA
+}
+
+RSRP-RangeEUTRA ::= INTEGER (0..97)
+RSRQ-RangeEUTRA ::= INTEGER (0..34)
+SINR-RangeEUTRA ::= INTEGER (0..127)
+
+-- TAG-REPORT-CONFIG-INTER-RAT-STOP
+-- TAG-REPORT-CONFIG-START
+
+ReportConfigNR ::= SEQUENCE {
+ reportType CHOICE {
+ periodical PeriodicalReportConfig,
+ eventTriggered EventTriggerConfig,
+ ...,
+ reportCGI ReportCGI
+ }
+}
+
+ReportCGI ::= SEQUENCE {
+ cellForWhichToReportCGI PhysCellId,
+ ...
+}
+
+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,
+
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+
+ reportQuantityCell MeasReportQuantity,
+ maxReportCells INTEGER (1..maxCellReport),
+
+ reportQuantityRsIndexes MeasReportQuantity OPTIONAL, -- Need R
+ maxNrofRSIndexesToReport INTEGER (1..maxNrofIndexesToReport) OPTIONAL, -- Need R
+ includeBeamMeasurements BOOLEAN,
+ reportAddNeighMeas ENUMERATED {setup} OPTIONAL, -- Need R
+ ...
+}
+
+PeriodicalReportConfig ::= SEQUENCE {
+ rsType NR-RS-Type,
+
+ reportInterval ReportInterval,
+ reportAmount ENUMERATED {r1, r2, r4, r8, r16, r32, r64, infinity},
+
+ reportQuantityCell MeasReportQuantity,
+ maxReportCells INTEGER (1..maxCellReport),
+
+ 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,
+ ...,
+ reportConfigInterRAT ReportConfigInterRAT
+ }
+}
+
+-- 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-RESELECTION-THRESHOLD-START
+
+ReselectionThreshold ::= INTEGER (0..31)
+
+-- TAG-RESELECTION-THRESHOLD-STOP
+-- TAG-RESELECTION-THRESHOLDQ-START
+
+ReselectionThresholdQ ::= INTEGER (0..31)
+
+-- TAG-RESELECTION-THRESHOLDQ-STOP
+-- TAG-RESUME-CAUSE-START
+
+ResumeCause ::= ENUMERATED {emergency, highPriorityAccess, mt-Access, mo-Signalling,
+ mo-Data, mo-VoiceCall, mo-VideoCall, mo-SMS, rna-Update, mps-PriorityAccess, mcs-PriorityAccess, spare1, spare2, spare3, spare4, spare5 }
+
+-- TAG-RESUME-CAUSE-STOP
+-- TAG-RLC-BEARERCONFIG-START
+
+RLC-BearerConfig ::= SEQUENCE {
+ logicalChannelIdentity LogicalChannelIdentity,
+ 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
+ ...
+}
+
+-- TAG-RLC-BEARERCONFIG-STOP
+-- TAG-RLC-CONFIG-START
+
+RLC-Config ::= CHOICE {
+ am SEQUENCE {
+ ul-AM-RLC UL-AM-RLC,
+ dl-AM-RLC DL-AM-RLC
+ },
+ um-Bi-Directional SEQUENCE {
+ ul-UM-RLC UL-UM-RLC,
+ dl-UM-RLC DL-UM-RLC
+ },
+ um-Uni-Directional-UL SEQUENCE {
+ ul-UM-RLC UL-UM-RLC
+ },
+ um-Uni-Directional-DL SEQUENCE {
+ dl-UM-RLC DL-UM-RLC
+ },
+ ...
+}
+
+UL-AM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLengthAM OPTIONAL, -- Cond Reestab
+ 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 OPTIONAL, -- Cond Reestab
+ t-Reassembly T-Reassembly,
+ t-StatusProhibit T-StatusProhibit
+}
+
+UL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLengthUM OPTIONAL -- Cond Reestab
+}
+
+DL-UM-RLC ::= SEQUENCE {
+ sn-FieldLength SN-FieldLengthUM OPTIONAL, -- Cond Reestab
+ 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},
+ ...,
+ [[
+ t311-v1530 ENUMERATED {ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000}
+ ]]
+}
+
+-- 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..127)
+
+-- TAG-RSRP-RANGE-STOP
+-- TAG-RSRQ-RANGE-START
+
+RSRQ-Range ::= INTEGER(0..127)
+
+-- TAG-RSRQ-RANGE-STOP
+-- TAG-SCELL-INDEX-START
+
+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 {
+ schedulingRequestId 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}
+}
+
+
+
+-- TAG-SCHEDULING-REQUEST-CONFIG-STOP
+-- TAG-SCHEDULINGREQUESTID-START
+
+SchedulingRequestId ::= INTEGER (0..7)
+
+-- TAG-SCHEDULINGREQUESTID-STOP
+-- TAG-SCHEDULING-REQUEST-RESOURCE-CONFIG-START
+
+SchedulingRequestResourceConfig ::= SEQUENCE {
+ schedulingRequestResourceId SchedulingRequestResourceId,
+ schedulingRequestID SchedulingRequestId,
+ 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
+ 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 {
+ offsetToCarrier INTEGER (0..2199),
+ subcarrierSpacing SubcarrierSpacing,
+ carrierBandwidth INTEGER (1..maxNrofPhysicalResourceBlocks),
+ ...,
+ [[
+ txDirectCurrentLocation-v1530 INTEGER (0..4095) OPTIONAL -- Need S
+ ]]
+}
+
+-- TAG-SCS-SPECIFIC-CARRIER-STOP
+-- TAG-SDAP-CONFIG-START
+
+SDAP-Config ::= SEQUENCE {
+ pdu-Session PDU-SessionID,
+ sdap-HeaderDL ENUMERATED {present, absent},
+ sdap-HeaderUL ENUMERATED {present, absent},
+ defaultDRB BOOLEAN,
+ mappedQoS-FlowsToAdd SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, -- Need N
+ 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 {
+ searchSpaceId SearchSpaceId,
+ controlResourceSetId ControlResourceSetId OPTIONAL, -- Cond SetupOnly
+ 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),
+ sl40 INTEGER (0..39),
+ sl80 INTEGER (0..79),
+ sl160 INTEGER (0..159),
+ sl320 INTEGER (0..319),
+ sl640 INTEGER (0..639),
+ sl1280 INTEGER (0..1279),
+ sl2560 INTEGER (0..2559)
+ } OPTIONAL, -- Cond Setup
+ duration INTEGER (2..2559) OPTIONAL, -- Need R
+ monitoringSymbolsWithinSlot BIT STRING (SIZE (14)) OPTIONAL, -- Cond Setup
+ 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
+ searchSpaceType CHOICE {
+ common SEQUENCE {
+ dci-Format0-0-AndFormat1-0 SEQUENCE {
+ ...
+ } OPTIONAL, -- Need R
+ dci-Format2-0 SEQUENCE {
+ 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
+ dci-Format2-1 SEQUENCE {
+ ...
+ } OPTIONAL, -- Need R
+ dci-Format2-2 SEQUENCE {
+ ...
+ } OPTIONAL, -- Need R
+ dci-Format2-3 SEQUENCE {
+ dummy1 ENUMERATED {sl1, sl2, sl4, sl5, sl8, sl10, sl16, sl20} OPTIONAL, -- Cond Setup
+ dummy2 ENUMERATED {n1, n2},
+ ...
+ } OPTIONAL -- Need R
+ },
+ ue-Specific SEQUENCE {
+ 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-SEARCHSPACEZERO-START
+
+SearchSpaceZero ::= INTEGER (0..15)
+
+-- TAG-SEARCHSPACEZERO-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 {
+ tdd-UL-DL-ConfigurationDedicated TDD-UL-DL-ConfigDedicated OPTIONAL, -- Cond TDD
+
+ initialDownlinkBWP BWP-DownlinkDedicated OPTIONAL, -- Need M
+ downlinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N
+ downlinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink OPTIONAL, -- Need N
+ firstActiveDownlinkBWP-Id BWP-Id OPTIONAL, -- Cond SyncAndCellAdd
+ 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
+ defaultDownlinkBWP-Id BWP-Id OPTIONAL, -- Need S
+
+ uplinkConfig UplinkConfig OPTIONAL, -- Need M
+ supplementaryUplink UplinkConfig OPTIONAL, -- Need M
+
+ pdcch-ServingCellConfig SetupRelease { PDCCH-ServingCellConfig } OPTIONAL, -- Need M
+ pdsch-ServingCellConfig SetupRelease { PDSCH-ServingCellConfig } OPTIONAL, -- Need M
+ csi-MeasConfig SetupRelease { CSI-MeasConfig } OPTIONAL, -- Need M
+ sCellDeactivationTimer ENUMERATED {ms20, ms40, ms80, ms160, ms200, ms240,
+ ms320, ms400, ms480, ms520, ms640, ms720,
+ ms840, ms1280, spare2,spare1} OPTIONAL, -- Cond ServingCellWithoutPUCCH
+ crossCarrierSchedulingConfig CrossCarrierSchedulingConfig OPTIONAL, -- Need M
+ tag-Id TAG-Id,
+ ue-BeamLockFunction ENUMERATED {enabled} OPTIONAL, -- Need R
+ pathlossReferenceLinking ENUMERATED {pCell, sCell} OPTIONAL, -- Cond SCellOnly
+ servingCellMO MeasObjectId OPTIONAL, -- Cond MeasObject
+ ...
+}
+
+UplinkConfig ::= SEQUENCE {
+ initialUplinkBWP BWP-UplinkDedicated OPTIONAL, -- Need M
+ uplinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N
+ uplinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink OPTIONAL, -- Need N
+ firstActiveUplinkBWP-Id BWP-Id OPTIONAL, -- Cond SyncAndCellAdd
+
+ pusch-ServingCellConfig SetupRelease { PUSCH-ServingCellConfig } OPTIONAL, -- Need M
+ carrierSwitching SetupRelease { SRS-CarrierSwitching } OPTIONAL, -- Need M
+ ...
+}
+
+-- TAG-SERVING-CELL-CONFIG-STOP
+-- TAG-SERVING-CELL-CONFIG-COMMON-START
+
+ServingCellConfigCommon ::= SEQUENCE {
+ physCellId PhysCellId OPTIONAL, -- Cond HOAndServCellAdd,
+ downlinkConfigCommon DownlinkConfigCommon OPTIONAL, -- Cond HOAndServCellAdd
+
+ uplinkConfigCommon UplinkConfigCommon OPTIONAL, -- Need M
+ supplementaryUplinkConfig UplinkConfigCommon OPTIONAL, -- Need S
+ n-TimingAdvanceOffset ENUMERATED { n0, n25600, n39936 } OPTIONAL, -- Need S
+ ssb-PositionsInBurst CHOICE {
+ shortBitmap BIT STRING (SIZE (4)),
+ mediumBitmap BIT STRING (SIZE (8)),
+ longBitmap BIT STRING (SIZE (64))
+ } OPTIONAL, -- Cond AbsFreqSSB
+ ssb-periodicityServingCell ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1 } OPTIONAL, -- Need S
+ dmrs-TypeA-Position ENUMERATED {pos2, pos3},
+ lte-CRS-ToMatchAround SetupRelease { RateMatchPatternLTE-CRS } OPTIONAL, -- Need M
+ rateMatchPatternToAddModList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N
+ rateMatchPatternToReleaseList SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N
+ subcarrierSpacing SubcarrierSpacing OPTIONAL, -- Cond HOAndServCellAdd
+ tdd-UL-DL-ConfigurationCommon TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD
+ ss-PBCH-BlockPower INTEGER (-60..50),
+ ...
+}
+
+
+-- TAG-SERVING-CELL-CONFIG-COMMON-STOP
+-- TAG-SERVINGCELLCONFIGCOMMONSIB-START
+
+ServingCellConfigCommonSIB ::= SEQUENCE {
+ downlinkConfigCommon DownlinkConfigCommonSIB,
+ uplinkConfigCommon UplinkConfigCommonSIB OPTIONAL, -- Need R
+ supplementaryUplink UplinkConfigCommonSIB OPTIONAL, -- Need R
+ n-TimingAdvanceOffset ENUMERATED { n0, n25560, n39936 } OPTIONAL, -- Need S
+ ssb-PositionsInBurst SEQUENCE {
+ inOneGroup BIT STRING (SIZE (8)),
+ groupPresence BIT STRING (SIZE (8)) OPTIONAL -- Cond Above6GHzOnly
+ },
+ ssb-PeriodicityServingCell ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160},
+
+ tdd-UL-DL-ConfigurationCommon TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD
+ ss-PBCH-BlockPower INTEGER (-60..50),
+ ...
+}
+
+-- TAG-SERVINGCELLCONFIGCOMMONSIB-STOP
+-- TAG-ShortI-RNTI-VALUE-START
+
+ShortI-RNTI-Value ::= BIT STRING (SIZE(24))
+
+-- TAG-ShortI-RNTI-VALUE-STOP
+-- TAG-SHORTMAC-I-START
+
+ShortMAC-I ::= BIT STRING (SIZE (16))
+
+-- TAG-SHORTMAC-I-STOP
+-- TAG-SINR-RANGE-START
+
+SINR-Range ::= INTEGER(0..127)
+
+-- TAG-SINR-RANGE-STOP
+-- TAG-OTHER-SI-INFO-START
+
+SI-SchedulingInfo ::= SEQUENCE {
+ schedulingInfoList SEQUENCE (SIZE (1..maxSI-Message)) OF SchedulingInfo,
+ si-WindowLength ENUMERATED {s5, s10, s20, s40, s80, s160, s320, s640, s1280},
+ si-RequestConfig SI-RequestConfig OPTIONAL, -- Cond MSG-1
+ si-RequestConfigSUL SI-RequestConfig OPTIONAL, -- Cond SUL-MSG-1
+ systemInformationAreaID BIT STRING (SIZE (24)) OPTIONAL, -- Need R
+ ...
+}
+
+SchedulingInfo ::= SEQUENCE {
+ si-BroadcastStatus ENUMERATED {broadcasting, notBroadcasting},
+ si-Periodicity ENUMERATED {rf8, rf16, rf32, rf64, rf128, rf256, rf512},
+ sib-MappingInfo SIB-Mapping
+}
+
+SIB-Mapping ::= SEQUENCE (SIZE (1..maxSIB)) OF SIB-TypeInfo
+
+SIB-TypeInfo ::= SEQUENCE {
+ type ENUMERATED {sibType2, sibType3, sibType4, sibType5, sibType6, sibType7, sibType8, sibType9,
+ spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1,... },
+ valueTag INTEGER (0..31) OPTIONAL, -- Cond SIB-TYPE
+ areaScope ENUMERATED {true} OPTIONAL -- Cond AREA-ID
+}
+
+-- Configuration for Msg1 based SI Request
+SI-RequestConfig::= SEQUENCE {
+ rach-OccasionsSI SEQUENCE {
+ rach-ConfigSI RACH-ConfigGeneric,
+ ssb-perRACH-Occasion ENUMERATED {oneEighth, oneFourth, oneHalf, one, two, four, eight, sixteen}
+ } OPTIONAL, -- Need R
+ si-RequestPeriod ENUMERATED {one, two, four, six, eight, ten, twelve, sixteen} OPTIONAL, -- Need R
+ si-RequestResources SEQUENCE (SIZE (1..maxSI-Message)) OF SI-RequestResources
+}
+
+SI-RequestResources ::= SEQUENCE {
+ ra-PreambleStartIndex INTEGER (0..63),
+ ra-AssociationPeriodIndex INTEGER (0..15) OPTIONAL, -- Need R
+ ra-ssb-OccasionMaskIndex INTEGER (0..15) OPTIONAL -- Need R
+}
+
+-- TAG-OTHER-SI-INFO-STOP
+-- TAG-SLOTFORMATCOMBINATIONSPERCELL-START
+
+SlotFormatCombinationsPerCell ::= SEQUENCE {
+ servingCellId ServCellIndex,
+ subcarrierSpacing SubcarrierSpacing,
+ subcarrierSpacing2 SubcarrierSpacing OPTIONAL, -- Need R
+ slotFormatCombinations SEQUENCE (SIZE (1..maxNrofSlotFormatCombinationsPerSet)) OF SlotFormatCombination OPTIONAL, -- Need M
+ positionInDCI INTEGER(0..maxSFI-DCI-PayloadSize-1) OPTIONAL, -- Need M
+ ...
+}
+
+SlotFormatCombination ::= SEQUENCE {
+ slotFormatCombinationId SlotFormatCombinationId,
+ slotFormats SEQUENCE (SIZE (1..maxNrofSlotFormatsPerCombination)) OF INTEGER (0..255)
+}
+
+SlotFormatCombinationId ::= INTEGER (0..maxNrofSlotFormatCombinationsPerSet-1)
+
+-- TAG-SLOTFORMATCOMBINATIONSPERCELL-STOP
+-- TAG-SLOTFORMATINDICATOR-START
+
+SlotFormatIndicator ::= SEQUENCE {
+ sfi-RNTI RNTI-Value,
+ dci-PayloadSize INTEGER (1..maxSFI-DCI-PayloadSize),
+ slotFormatCombToAddModList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF SlotFormatCombinationsPerCell OPTIONAL, -- Need N
+ slotFormatCombToReleaseList SEQUENCE (SIZE(1..maxNrofAggregatedCellsPerCellGroup)) OF ServCellIndex OPTIONAL, -- Need N
+ ...
+}
+
+-- TAG-SLOTFORMATINDICATOR-STOP
+-- TAG-S-NSSAI-START
+
+S-NSSAI ::= CHOICE{
+ sst BIT STRING (SIZE (8)),
+ sst-SD BIT STRING (SIZE (32))
+}
+
+-- TAG-S-NSSAI-STOP
+-- TAG-SPEEDSTATESCALEFACTORS-START
+
+SpeedStateScaleFactors ::= SEQUENCE {
+ sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0},
+ sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0}
+}
+-- TAG-SPEEDSTATESCALEFACTORS-STOP
+-- TAG-SS-RSSI-MEASUREMENT-START
+
+SS-RSSI-Measurement ::= SEQUENCE {
+ measurementSlots BIT STRING (SIZE (1..80)),
+ endSymbol INTEGER(0..3)
+}
+
+-- TAG-SS-RSSI-MEASUREMENT-STOP
+-- TAG-SPS-CONFIG-START
+
+SPS-Config ::= SEQUENCE {
+ periodicity ENUMERATED {ms10, ms20, ms32, ms40, ms64, ms80, ms128, ms160, ms320, ms640,
+ spare6, spare5, spare4, spare3, spare2, spare1},
+ nrofHARQ-Processes INTEGER (1..8),
+ n1PUCCH-AN PUCCH-ResourceId OPTIONAL, -- Need M
+ mcs-Table ENUMERATED {qam64LowSE} OPTIONAL, -- Need S
+ ...
+}
+
+-- TAG-SPS-CONFIG-STOP
+-- TAG-SRB-IDENTITY-START
+
+SRB-Identity ::= INTEGER (1..3)
+
+-- TAG-SRB-IDENTITY-STOP
+-- TAG-SRS-CARRIERSWITCHING-START
+
+SRS-CarrierSwitching ::= SEQUENCE {
+ srs-SwitchFromServCellIndex INTEGER (0..31) OPTIONAL, -- Need M
+ srs-SwitchFromCarrier ENUMERATED {sUL, nUL},
+ srs-TPC-PDCCH-Group CHOICE {
+ typeA SEQUENCE (SIZE (1..32)) OF SRS-TPC-PDCCH-Config,
+ typeB SRS-TPC-PDCCH-Config
+ } OPTIONAL, -- Need M
+ monitoringCells SEQUENCE (SIZE (1..maxNrofServingCells)) OF ServCellIndex OPTIONAL, -- Need M
+ ...
+}
+
+-- One trigger configuration for SRS-Carrier Switching. (see 38.212, 38.213, section 7.3.1, 11.3)
+SRS-TPC-PDCCH-Config ::= SEQUENCE {
+ srs-CC-SetIndexlist SEQUENCE (SIZE(1..4)) OF SRS-CC-SetIndex OPTIONAL -- Need M
+}
+
+SRS-CC-SetIndex ::= SEQUENCE {
+ cc-SetIndex INTEGER (0..3) OPTIONAL, -- Need M
+ cc-IndexInOneCC-Set INTEGER (0..7) OPTIONAL -- Need M
+}
+
+-- TAG-SRS-CARRIERSWITCHING-STOP
+-- TAG-SRS-CONFIG-START
+
+SRS-Config ::= SEQUENCE {
+ srs-ResourceSetToReleaseList SEQUENCE (SIZE(1..maxNrofSRS-ResourceSets)) OF SRS-ResourceSetId OPTIONAL, -- Need N
+ srs-ResourceSetToAddModList SEQUENCE (SIZE(1..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
+
+ tpc-Accumulation ENUMERATED {disabled} OPTIONAL, -- Need S
+ ...
+}
+
+SRS-ResourceSet ::= SEQUENCE {
+ srs-ResourceSetId SRS-ResourceSetId,
+ srs-ResourceIdList SEQUENCE (SIZE(1..maxNrofSRS-ResourcesPerSet)) OF SRS-ResourceId OPTIONAL, -- Cond Setup
+
+ resourceType CHOICE {
+ aperiodic SEQUENCE {
+ aperiodicSRS-ResourceTrigger INTEGER (1..maxNrofSRS-TriggerStates-1),
+ csi-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook
+ slotOffset INTEGER (1..32) OPTIONAL, -- Need S
+ ...,
+ [[
+ aperiodicSRS-ResourceTriggerList-v1530 SEQUENCE (SIZE(1..maxNrofSRS-TriggerStates-2))
+ OF INTEGER (1..maxNrofSRS-TriggerStates-1) OPTIONAL -- Need M
+ ]]
+ },
+ semi-persistent SEQUENCE {
+ associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook
+ ...
+ },
+ periodic SEQUENCE {
+ associatedCSI-RS NZP-CSI-RS-ResourceId OPTIONAL, -- Cond NonCodebook
+ ...
+ }
+ },
+ usage ENUMERATED {beamManagement, codebook, nonCodebook, antennaSwitching},
+ alpha Alpha OPTIONAL, -- Need S
+ p0 INTEGER (-202..24) OPTIONAL, -- Cond Setup
+ pathlossReferenceRS CHOICE {
+ ssb-Index SSB-Index,
+ csi-RS-Index NZP-CSI-RS-ResourceId
+ } OPTIONAL, -- Need M
+ 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},
+ ptrs-PortIndex ENUMERATED {n0, n1 } OPTIONAL, -- Need R
+ transmissionComb CHOICE {
+ n2 SEQUENCE {
+ combOffset-n2 INTEGER (0..1),
+ cyclicShift-n2 INTEGER (0..7)
+ },
+ n4 SEQUENCE {
+ combOffset-n4 INTEGER (0..3),
+ cyclicShift-n4 INTEGER (0..11)
+ }
+ },
+ resourceMapping SEQUENCE {
+ startPosition INTEGER (0..5),
+ nrofSymbols ENUMERATED {n1, n2, n4},
+ repetitionFactor ENUMERATED {n1, n2, n4}
+ },
+ freqDomainPosition INTEGER (0..67),
+ freqDomainShift INTEGER (0..268),
+ freqHopping SEQUENCE {
+ c-SRS INTEGER (0..63),
+ b-SRS INTEGER (0..3),
+ b-hop INTEGER (0..3)
+ },
+ groupOrSequenceHopping ENUMERATED { neither, groupHopping, sequenceHopping },
+ resourceType CHOICE {
+ aperiodic SEQUENCE {
+ ...
+ },
+ semi-persistent SEQUENCE {
+ periodicityAndOffset-sp SRS-PeriodicityAndOffset,
+ ...
+ },
+ periodic SEQUENCE {
+ periodicityAndOffset-p SRS-PeriodicityAndOffset,
+ ...
+ }
+ },
+ sequenceId INTEGER (0..1023),
+ spatialRelationInfo SRS-SpatialRelationInfo OPTIONAL, -- Need R
+ ...
+}
+
+SRS-SpatialRelationInfo ::= SEQUENCE {
+ servingCellId ServCellIndex OPTIONAL, -- Need S
+ referenceSignal CHOICE {
+ ssb-Index SSB-Index,
+ csi-RS-Index NZP-CSI-RS-ResourceId,
+ srs SEQUENCE {
+ resourceId SRS-ResourceId,
+ uplinkBWP BWP-Id
+ }
+ }
+}
+
+
+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-TPC-COMMANDCONFIG-START
+
+SRS-TPC-CommandConfig ::= SEQUENCE {
+ startingBitOfFormat2-3 INTEGER (1..31) OPTIONAL, -- Cond Setup
+ fieldTypeFormat2-3 INTEGER (0..1) OPTIONAL, -- Cond Setup
+ ...,
+ [[
+ startingBitOfFormat2-3SUL-v1530 INTEGER (1..31) OPTIONAL -- Cond Setup
+ ]]
+}
+
+-- TAG-SRS-TPC-COMMANDCONFIG-STOP
+-- TAG-SSB-INDEX-START
+
+SSB-Index ::= INTEGER (0..maxNrofSSBs-1)
+
+-- TAG-SSB-INDEX-STOP
+-- TAG-SSB-MTC-START
+
+SSB-MTC ::= SEQUENCE {
+ 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 ENUMERATED { sf1, sf2, sf3, sf4, sf5 }
+}
+
+SSB-MTC2 ::= SEQUENCE {
+ pci-List SEQUENCE (SIZE (1..maxNrofPCIsPerSMTC)) OF PhysCellId OPTIONAL, -- Need M
+ periodicity ENUMERATED {sf5, sf10, sf20, sf40, sf80, spare3, spare2, spare1}
+}
+
+-- TAG-SSB-MTC-STOP
+-- TAG-SSB-TOMEASURE-START
+
+SSB-ToMeasure ::= CHOICE {
+ shortBitmap BIT STRING (SIZE (4)),
+ mediumBitmap BIT STRING (SIZE (8)),
+ longBitmap BIT STRING (SIZE (64))
+}
+
+-- TAG-SSB-TOMEASURE-STOP
+-- TAG-SUBCARRIER-SPACING-START
+
+SubcarrierSpacing ::= ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, spare3, spare2, spare1}
+
+-- TAG-SUBCARRIER-SPACING-STOP
+-- TAG-TAG-CONFIG-START
+
+TAG-Config ::= SEQUENCE {
+ tag-ToReleaseList SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id OPTIONAL, -- Need N
+ tag-ToAddModList SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG OPTIONAL -- Need N
+}
+
+TAG ::= SEQUENCE {
+ tag-Id TAG-Id,
+ timeAlignmentTimer TimeAlignmentTimer,
+ ...
+}
+
+TAG-Id ::= INTEGER (0..maxNrofTAGs-1)
+
+TimeAlignmentTimer ::= ENUMERATED {ms500, ms750, ms1280, ms1920, ms2560, ms5120, ms10240, infinity}
+
+-- TAG-TAG-CONFIG-STOP
+-- TAG-TCI-STATE-START
+
+TCI-State ::= SEQUENCE {
+ tci-StateId TCI-StateId,
+ qcl-Type1 QCL-Info,
+ qcl-Type2 QCL-Info OPTIONAL, -- Need R
+ ...
+}
+
+QCL-Info ::= SEQUENCE {
+ cell ServCellIndex OPTIONAL, -- Need R
+ bwp-Id BWP-Id OPTIONAL, -- Cond CSI-RS-Indicated
+ referenceSignal CHOICE {
+ csi-rs NZP-CSI-RS-ResourceId,
+ ssb SSB-Index
+ },
+ 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 {
+ referenceSubcarrierSpacing SubcarrierSpacing,
+ pattern1 TDD-UL-DL-Pattern,
+ pattern2 TDD-UL-DL-Pattern OPTIONAL, -- Need R
+ ...
+}
+
+TDD-UL-DL-Pattern ::= SEQUENCE {
+ dl-UL-TransmissionPeriodicity ENUMERATED {ms0p5, ms0p625, ms1, ms1p25, ms2, ms2p5, ms5, ms10},
+ nrofDownlinkSlots INTEGER (0..maxNrofSlots),
+ nrofDownlinkSymbols INTEGER (0..maxNrofSymbols-1),
+ nrofUplinkSlots INTEGER (0..maxNrofSlots),
+ nrofUplinkSymbols INTEGER (0..maxNrofSymbols-1),
+ ...,
+ [[
+ dl-UL-TransmissionPeriodicity-v1530 ENUMERATED {ms3, ms4} OPTIONAL -- Need R
+ ]]
+}
+
+TDD-UL-DL-ConfigDedicated ::= SEQUENCE {
+ 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 {
+ slotIndex TDD-UL-DL-SlotIndex,
+ symbols CHOICE {
+ allDownlink NULL,
+ allUplink NULL,
+ explicit SEQUENCE {
+ nrofDownlinkSymbols INTEGER (1..maxNrofSymbols-1) OPTIONAL, -- Need S
+ nrofUplinkSymbols INTEGER (1..maxNrofSymbols-1) OPTIONAL -- Need S
+ }
+ }
+}
+
+TDD-UL-DL-SlotIndex ::= INTEGER (0..maxNrofSlots-1)
+
+-- TAG-TDD-UL-DL-CONFIG-STOP
+-- TAG-TRACKINGAREACODE-START
+
+TrackingAreaCode ::= BIT STRING (SIZE (24))
+
+-- TAG-TRACKINGAREACODE-STOP
+-- TAG-TRESELECTION-START
+
+T-Reselection ::= INTEGER (0..7)
+
+-- TAG-TRESELECTION-STOP
+-- TAG-TIMETOTRIGGER-START
+
+TimeToTrigger ::= ENUMERATED {
+ ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
+ ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
+ ms5120}
+
+-- TAG-TIMETOTRIGGER-STOP
+-- TAG-UAC-BARRING-INFO-SET-INDEX-START
+
+UAC-BarringInfoSetIndex ::= INTEGER (1..maxBarringInfoSet)
+
+-- TAG-UAC-BARRING-INFO-SET-INDEX-STOP
+-- TAG-UAC-BARRING-INFO-SET-LIST-START
+
+UAC-BarringInfoSetList ::= SEQUENCE (SIZE(1..maxBarringInfoSet)) OF UAC-BarringInfoSet
+
+UAC-BarringInfoSet ::= SEQUENCE {
+ uac-BarringFactor ENUMERATED {p00, p05, p10, p15, p20, p25, p30, p40,
+ p50, p60, p70, p75, p80, p85, p90, p95},
+ uac-BarringTime ENUMERATED {s4, s8, s16, s32, s64, s128, s256, s512},
+ uac-BarringForAccessIdentity BIT STRING (SIZE(7))
+}
+
+-- TAG-UAC-BARRING-INFO-SET-LIST-STOP
+-- TAG-UAC-BARRING-PER-CAT-LIST-START
+
+UAC-BarringPerCatList ::= SEQUENCE (SIZE (1..maxAccessCat-1)) OF UAC-BarringPerCat
+
+UAC-BarringPerCat ::= SEQUENCE {
+ accessCategory INTEGER (1..maxAccessCat-1),
+ uac-barringInfoSetIndex UAC-BarringInfoSetIndex
+}
+
+-- TAG-UAC-BARRING-PER-CAT-LIST-STOP
+-- TAG-UAC-BARRING-PER-PLMN-LIST-START
+
+UAC-BarringPerPLMN-List ::= SEQUENCE (SIZE (1.. maxPLMN)) OF UAC-BarringPerPLMN
+
+UAC-BarringPerPLMN ::= SEQUENCE {
+ plmn-IdentityIndex INTEGER (1..maxPLMN),
+ uac-ACBarringListType CHOICE{
+ uac-ImplicitACBarringList SEQUENCE (SIZE(maxAccessCat-1)) OF UAC-BarringInfoSetIndex,
+ uac-ExplicitACBarringList UAC-BarringPerCatList
+ } OPTIONAL
+}
+
+-- TAG-UAC-BARRING-PER-PLMN-LIST-STOP
+-- TAG-UE-TIMERS-AND-CONSTANTS-START
+
+UE-TimersAndConstants ::= SEQUENCE {
+ t300 ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000},
+ t301 ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000},
+ t310 ENUMERATED {ms0, ms50, ms100, ms200, ms500, ms1000, ms2000},
+ n310 ENUMERATED {n1, n2, n3, n4, n6, n8, n10, n20},
+ t311 ENUMERATED {ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000},
+ n311 ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10},
+ t319 ENUMERATED {ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000},
+ ...
+}
+
+-- TAG-UE-TIMERS-AND-CONSTANTS-STOP
+-- TAG-UPLINK-CONFIG-COMMON-START
+
+UplinkConfigCommon ::= SEQUENCE {
+ frequencyInfoUL FrequencyInfoUL OPTIONAL, -- Cond InterFreqHOAndServCellAddAndSIB1
+ initialUplinkBWP BWP-UplinkCommon OPTIONAL, -- Cond ServCellAddAndSIB1
+ dummy TimeAlignmentTimer
+}
+
+-- TAG-UPLINK-CONFIG-COMMON-STOP
+-- TAG-UPLINK-CONFIG-COMMON-START
+
+UplinkConfigCommonSIB ::= SEQUENCE {
+ frequencyInfoUL FrequencyInfoUL-SIB,
+ initialUplinkBWP BWP-UplinkCommon,
+ timeAlignmentTimerCommon TimeAlignmentTimer
+}
+
+-- TAG-UPLINK-CONFIG-COMMON-STOP
+-- TAG-UPLINKTXDIRECTCURRENTLIST-START
+
+UplinkTxDirectCurrentList ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF UplinkTxDirectCurrentCell
+
+UplinkTxDirectCurrentCell ::= SEQUENCE {
+ servCellIndex ServCellIndex,
+ uplinkDirectCurrentBWP SEQUENCE (SIZE (1..maxNrofBWPs)) OF UplinkTxDirectCurrentBWP,
+ ...
+}
+
+UplinkTxDirectCurrentBWP ::= SEQUENCE {
+ bwp-Id BWP-Id,
+ shift7dot5kHz BOOLEAN,
+ txDirectCurrentLocation INTEGER (0..3301)
+}
+
+-- TAG-UPLINKTXDIRECTCURRENTLIST-STOP
+-- TAG-ZP-CSI-RS-RESOURCE-START
+
+ZP-CSI-RS-Resource ::= SEQUENCE {
+ zp-CSI-RS-ResourceId ZP-CSI-RS-ResourceId,
+ resourceMapping CSI-RS-ResourceMapping,
+ 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,
+ zp-CSI-RS-ResourceIdList SEQUENCE (SIZE(1..maxNrofZP-CSI-RS-ResourcesPerSet)) OF ZP-CSI-RS-ResourceId,
+ ...
+}
+
+-- 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-ACCESSSTRATUMRELEASE-START
+
+AccessStratumRelease ::= ENUMERATED {
+ rel15, spare7, spare6, spare5, spare4, spare3, spare2, spare1, ... }
+
+-- TAG-ACCESSSTRATUMRELEASE-STOP
+-- TAG-BANDCOMBINATIONLIST-START
+
+BandCombinationList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombination
+
+BandCombination ::= SEQUENCE {
+ bandList SEQUENCE (SIZE (1..maxSimultaneousBands)) OF BandParameters,
+ featureSetCombination FeatureSetCombinationId,
+
+ ca-ParametersEUTRA CA-ParametersEUTRA OPTIONAL,
+ ca-ParametersNR CA-ParametersNR OPTIONAL,
+ mrdc-Parameters MRDC-Parameters OPTIONAL,
+ supportedBandwidthCombinationSet BIT STRING (SIZE (1..32)) OPTIONAL,
+ powerClass-v1530 ENUMERATED {pc2} OPTIONAL
+}
+
+BandParameters ::= CHOICE {
+ eutra SEQUENCE {
+ bandEUTRA FreqBandIndicatorEUTRA,
+ ca-BandwidthClassDL-EUTRA CA-BandwidthClassEUTRA OPTIONAL,
+ ca-BandwidthClassUL-EUTRA CA-BandwidthClassEUTRA OPTIONAL
+ },
+ nr SEQUENCE {
+ bandNR FreqBandIndicatorNR,
+ ca-BandwidthClassDL-NR CA-BandwidthClassNR OPTIONAL,
+ ca-BandwidthClassUL-NR CA-BandwidthClassNR OPTIONAL
+ }
+}
+
+-- TAG-BANDCOMBINATIONLIST-STOP
+-- TAG-CA-BANDWIDTHCLASSEUTRA-START
+
+CA-BandwidthClassEUTRA ::= ENUMERATED {a, b, c, d, e, f, ...}
+
+-- TAG-CA-BANDWIDTHCLASSEUTRA-STOP
+-- TAG-CA-BANDWIDTHCLASSNR-START
+
+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-PARAMETERSEUTRA-START
+
+CA-ParametersEUTRA ::= SEQUENCE {
+ multipleTimingAdvance ENUMERATED {supported} OPTIONAL,
+ simultaneousRx-Tx ENUMERATED {supported} OPTIONAL,
+ supportedNAICS-2CRS-AP BIT STRING (SIZE (1..8)) OPTIONAL,
+ additionalRx-Tx-PerformanceReq ENUMERATED {supported} OPTIONAL,
+ ue-CA-PowerClass-N ENUMERATED {class2} OPTIONAL,
+ supportedBandwidthCombinationSetEUTRA-v1530 BIT STRING (SIZE (1..32)) OPTIONAL,
+ ...
+}
+
+-- TAG-CA-PARAMETERSEUTRA-STOP
+-- TAG-CA-PARAMETERSNR-START
+
+CA-ParametersNR ::= SEQUENCE {
+ multipleTimingAdvances ENUMERATED {supported} OPTIONAL,
+ parallelTxSRS-PUCCH-PUSCH ENUMERATED {supported} OPTIONAL,
+ parallelTxPRACH-SRS-PUCCH-PUSCH ENUMERATED {supported} OPTIONAL,
+ simultaneousRxTxInterBandCA ENUMERATED {supported} OPTIONAL,
+ simultaneousRxTxSUL ENUMERATED {supported} OPTIONAL,
+ diffNumerologyAcrossPUCCH-Group ENUMERATED {supported} OPTIONAL,
+ diffNumerologyWithinPUCCH-Group ENUMERATED {supported} OPTIONAL,
+ supportedNumberTAG ENUMERATED {n2, n3, n4} OPTIONAL,
+ ...
+}
+
+-- TAG-CA-PARAMETERSNR-STOP
+-- TAG-FEATURESETCOMBINATION-START
+
+FeatureSetCombination ::= SEQUENCE (SIZE (1..maxSimultaneousBands)) OF FeatureSetsPerBand
+
+FeatureSetsPerBand ::= SEQUENCE (SIZE (1..maxFeatureSetsPerBand)) OF FeatureSet
+
+FeatureSet ::= CHOICE {
+ eutra SEQUENCE {
+ downlinkSetEUTRA FeatureSetEUTRA-DownlinkId,
+ uplinkSetEUTRA FeatureSetEUTRA-UplinkId
+ },
+ nr SEQUENCE {
+ downlinkSetNR FeatureSetDownlinkId,
+ uplinkSetNR FeatureSetUplinkId
+ }
+}
+
+-- TAG-FEATURESET-COMBINATION-ID-START
+
+FeatureSetCombinationId ::= INTEGER (0.. maxFeatureSetCombinations)
+
+-- TAG-FEATURESET-COMBINATION-ID-STOP
+-- TAG-FEATURESETDOWNLINK-START
+
+FeatureSetDownlink ::= SEQUENCE {
+ featureSetListPerDownlinkCC SEQUENCE (SIZE (1..maxNrofServingCells)) OF FeatureSetDownlinkPerCC-Id,
+
+ intraBandFreqSeparationDL FreqSeparationClass OPTIONAL,
+ scalingFactor ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL,
+ crossCarrierScheduling-OtherSCS ENUMERATED {supported} OPTIONAL,
+ scellWithoutSSB ENUMERATED {supported} OPTIONAL,
+ csi-RS-MeasSCellWithoutSSB ENUMERATED {supported} OPTIONAL,
+ srs-AssocCSI-RS ENUMERATED {supported} OPTIONAL,
+ type1-3-CSS ENUMERATED {supported} OPTIONAL,
+ pdcch-MonitoringAnyOccasions ENUMERATED {withoutDCI-Gap, withDCI-Gap} OPTIONAL,
+ pdcch-MonitoringAnyOccasionsWithSpanGap ENUMERATED {supported} OPTIONAL,
+ ue-SpecificUL-DL-Assignment ENUMERATED {supported} OPTIONAL,
+ searchSpaceSharingCA-DL ENUMERATED {supported} OPTIONAL,
+ timeDurationForQCL SEQUENCE {
+ scs-60kHz ENUMERATED {s7, s14, s28} OPTIONAL,
+ sch-120kHz ENUMERATED {s14, s28} OPTIONAL
+ } OPTIONAL,
+ pdsch-DifferentTB-PerSlot SEQUENCE {
+ scs-15kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL,
+ scs-30kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL,
+ scs-60kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL,
+ scs-120kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL
+ } OPTIONAL,
+ csi-RS-IM-ReceptionForFeedback CSI-RS-IM-ReceptionForFeedback OPTIONAL,
+ typeI-SinglePanelCodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeI-SinglePanelCodebook OPTIONAL,
+ typeI-MultiPanelCodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeI-MultiPanelCodebook OPTIONAL,
+ typeII-CodebookList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeII-Codebook OPTIONAL,
+ typeII-CodebookPortSelectionList SEQUENCE (SIZE (1.. maxNrofCodebooks)) OF TypeII-CodebookPortSelection OPTIONAL
+
+}
+
+CSI-RS-IM-ReceptionForFeedback ::= SEQUENCE {
+ maxNumberNZP-CSI-RS-PerCC INTEGER (1..32),
+ maxNumberPortsAcrossNZP-CSI-RS-PerCC ENUMERATED {p2, p4, p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80,
+ p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168,
+ p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256},
+ maxNumberCS-IM-PerCC ENUMERATED {n1, n2, n4, n8, n16, n32},
+ maxNumberSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {n5, n6, n7, n8, n9, n10, n12, n14, n16, n18, n20, n22, n24, n26,
+ n28, n30, n32, n34, n36, n38, n40, n42, n44, n46, n48, n50, n52,
+ n54, n56, n58, n60, n62, n64},
+ totalNumberPortsSimultaneousCSI-RS-ActBWP-AllCC ENUMERATED {p8, p12, p16, p24, p32, p40, p48, p56, p64, p72, p80,
+ p88, p96, p104, p112, p120, p128, p136, p144, p152, p160, p168,
+ p176, p184, p192, p200, p208, p216, p224, p232, p240, p248, p256}
+}
+
+TypeI-SinglePanelCodebook ::= SEQUENCE {
+ maxNumberTxPortsPerResource ENUMERATED {p2, p4, p8, p12, p16, p24, p32},
+ maxNumberResources INTEGER (1..64),
+ totalNumberTxPorts INTEGER (2..256),
+ supportedCodebookMode ENUMERATED {mode1, mode1AndMode2},
+ maxNumberCSI-RS-PerResourceSet INTEGER (1..8)
+}
+
+TypeI-MultiPanelCodebook ::= SEQUENCE {
+ maxNumberTxPortsPerResource ENUMERATED {p8, p16, p32},
+ maxNumberResources INTEGER (1..64),
+ totalNumberTxPorts INTEGER (2..256),
+ supportedCodebookMode ENUMERATED {mode1, mode2, both},
+ supportedNumberPanels ENUMERATED {n2, n4},
+ maxNumberCSI-RS-PerResourceSet INTEGER (1..8)
+}
+
+TypeII-Codebook ::= SEQUENCE {
+ maxNumberTxPortsPerResource ENUMERATED {p4, p8, p12, p16, p24, p32},
+ maxNumberResources INTEGER (1..64),
+ totalNumberTxPorts INTEGER (2..256),
+ parameterLx INTEGER (2..4),
+ amplitudeScalingType ENUMERATED {wideband, widebandAndSubband},
+ amplitudeSubsetRestriction ENUMERATED {supported} OPTIONAL,
+ maxNumberCSI-RS-PerResourceSet INTEGER (1..8)
+}
+
+TypeII-CodebookPortSelection ::= SEQUENCE {
+ maxNumberTxPortsPerResource ENUMERATED {p4, p8, p12, p16, p24, p32},
+ maxNumberResources INTEGER (1..64),
+ totalNumberTxPorts INTEGER (2..256),
+ parameterLx INTEGER (2..4),
+ amplitudeScalingType ENUMERATED {wideband, widebandAndSubband},
+ maxNumberCSI-RS-PerResourceSet INTEGER (1..8)
+}
+
+-- TAG-FEATURESETDOWNLINK-STOP
+-- TAG-FEATURESET-DOWNLINK-ID-START
+
+FeatureSetDownlinkId ::= INTEGER (0..maxDownlinkFeatureSets)
+
+-- TAG-FEATURESET-DOWNLINK-ID-STOP
+-- TAG-FEATURESETDOWNLINKPERCC-START
+
+FeatureSetDownlinkPerCC ::= SEQUENCE {
+ supportedSubcarrierSpacingDL SubcarrierSpacing,
+ supportedBandwidthDL SupportedBandwidth,
+ channelBW-90mhz ENUMERATED {supported} OPTIONAL,
+ maxNumberMIMO-LayersPDSCH MIMO-LayersDL OPTIONAL,
+ supportedModulationOrderDL ModulationOrder OPTIONAL
+}
+
+-- TAG-FEATURESETDOWNLINKPERCC-STOP
+-- TAG-FEATURESET-DOWNLINK-PER-CC-ID-START
+
+FeatureSetDownlinkPerCC-Id ::= INTEGER (1..maxPerCC-FeatureSets)
+
+-- TAG-FEATURESET-DOWNLINK-PER-CC-ID-STOP
+-- TAG-FEATURESET-EUTRA-DOWNLINK-ID-START
+
+FeatureSetEUTRA-DownlinkId ::= INTEGER (0..maxEUTRA-DL-FeatureSets)
+
+-- TAG-FEATURESET-EUTRA-DOWNLINK-ID-STOP
+-- TAG-FEATURESET-EUTRA-UPLINK-ID-START
+
+FeatureSetEUTRA-UplinkId ::= INTEGER (0..maxEUTRA-UL-FeatureSets)
+
+-- TAG-FEATURESET-EUTRA-UPLINK-ID-STOP
+-- TAG-FEATURESETS-START
+
+FeatureSets ::= SEQUENCE {
+ featureSetsDownlink SEQUENCE (SIZE (1..maxDownlinkFeatureSets)) OF FeatureSetDownlink OPTIONAL,
+ featureSetsDownlinkPerCC SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetDownlinkPerCC OPTIONAL,
+ featureSetsUplink SEQUENCE (SIZE (1..maxUplinkFeatureSets)) OF FeatureSetUplink OPTIONAL,
+ featureSetsUplinkPerCC SEQUENCE (SIZE (1..maxPerCC-FeatureSets)) OF FeatureSetUplinkPerCC OPTIONAL,
+ ...
+}
+
+-- TAG-FEATURESETUPLINK-START
+
+FeatureSetUplink ::= SEQUENCE {
+ featureSetListPerUplinkCC SEQUENCE (SIZE (1.. maxNrofServingCells)) OF FeatureSetUplinkPerCC-Id,
+ scalingFactor ENUMERATED {f0p4, f0p75, f0p8} OPTIONAL,
+ crossCarrierScheduling-OtherSCS ENUMERATED {supported} OPTIONAL,
+ intraBandFreqSeparationUL FreqSeparationClass OPTIONAL,
+ searchSpaceSharingCA-UL ENUMERATED {supported} OPTIONAL,
+ srs-TxSwitch SRS-TxSwitch OPTIONAL,
+ supportedSRS-Resources SRS-Resources OPTIONAL,
+ twoPUCCH-Group ENUMERATED {supported} OPTIONAL,
+ dynamicSwitchSUL ENUMERATED {supported} OPTIONAL,
+ simultaneousTxSUL-NonSUL-v1530 ENUMERATED {supported} OPTIONAL,
+ pusch-DifferentTB-PerSlot SEQUENCE {
+ scs-15kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL,
+ scs-30kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL,
+ scs-60kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL,
+ scs-120kHz ENUMERATED {upto2, upto4, upto7} OPTIONAL
+ } OPTIONAL,
+ csi-ReportFramework CSI-ReportFramework OPTIONAL
+}
+
+CSI-ReportFramework ::= SEQUENCE {
+ maxNumberPeriodicCSI-ReportPerBWP INTEGER (1..4),
+ maxNumberAperiodicCSI-ReportPerBWP INTEGER (1..4),
+ maxNumberSemiPersistentCSI-ReportPerBWP INTEGER (0..4),
+ simultaneousCSI-ReportsAllCC INTEGER (5..32)
+}
+
+-- TAG- FEATURESETUPLINK-STOP
+-- TAG-FEATURESET-UPLINK-ID-START
+
+FeatureSetUplinkId ::= INTEGER (0..maxUplinkFeatureSets)
+
+-- TAG-FEATURESET-UPLINK-ID-STOP
+-- TAG-FEATURESETUPLINKPERCC-START
+
+FeatureSetUplinkPerCC ::= SEQUENCE {
+ supportedSubcarrierSpacingUL SubcarrierSpacing,
+ supportedBandwidthUL SupportedBandwidth,
+ channelBW-90mhz ENUMERATED {supported} OPTIONAL,
+ mimo-CB-PUSCH SEQUENCE {
+ maxNumberMIMO-LayersCB-PUSCH MIMO-LayersUL OPTIONAL,
+ maxNumberSRS-ResourcePerSet INTEGER (1..2)
+ } OPTIONAL,
+ maxNumberMIMO-LayersNonCB-PUSCH MIMO-LayersUL OPTIONAL,
+ supportedModulationOrderUL ModulationOrder OPTIONAL
+
+}
+
+-- TAG-FEATURESETUPLINKPERCC-STOP
+-- TAG-FEATURESET-UPLINK-PER-CC-ID-START
+
+FeatureSetUplinkPerCC-Id ::= INTEGER (1..maxPerCC-FeatureSets)
+
+-- TAG-FEATURESET-UPLINK-PER-CC-ID-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 {
+ bandInformationEUTRA FreqBandInformationEUTRA,
+ bandInformationNR FreqBandInformationNR
+}
+
+FreqBandInformationEUTRA ::= SEQUENCE {
+ bandEUTRA FreqBandIndicatorEUTRA,
+ ca-BandwidthClassDL-EUTRA CA-BandwidthClassEUTRA OPTIONAL, -- Need N
+ ca-BandwidthClassUL-EUTRA CA-BandwidthClassEUTRA OPTIONAL -- Need N
+}
+
+FreqBandInformationNR ::= SEQUENCE {
+ bandNR FreqBandIndicatorNR,
+ maxBandwidthRequestedDL AggregatedBandwidth OPTIONAL, -- Need N
+ maxBandwidthRequestedUL AggregatedBandwidth OPTIONAL, -- Need N
+ maxCarriersRequestedDL INTEGER (1..maxNrofServingCells) OPTIONAL, -- Need N
+ maxCarriersRequestedUL INTEGER (1..maxNrofServingCells) OPTIONAL -- Need N
+}
+
+AggregatedBandwidth ::= ENUMERATED {mhz50, mhz100, mhz150, mhz200, mhz250, mhz300, mhz350,
+ mhz400, mhz450, mhz500, mhz550, mhz600, mhz650, mhz700, mhz750, mhz800}
+
+-- TAG-FREQBANDLIST-STOP
+-- TAG-FREQSEPARATIONCLASS-START
+
+FreqSeparationClass ::= ENUMERATED {c1, c2, c3, ...}
+
+-- TAG-FREQSEPARATIONCLASS-STOP
+-- TAG-INTERRAT-PARAMETERS-START
+
+InterRAT-Parameters ::= SEQUENCE {
+ eutra EUTRA-Parameters OPTIONAL,
+ ...
+}
+
+EUTRA-Parameters ::= SEQUENCE {
+ supportedBandListEUTRA SEQUENCE (SIZE (1..maxBandsEUTRA)) OF FreqBandIndicatorEUTRA,
+ eutra-ParametersCommon EUTRA-ParametersCommon OPTIONAL,
+ eutra-ParametersXDD-Diff EUTRA-ParametersXDD-Diff OPTIONAL,
+ ...
+}
+
+EUTRA-ParametersCommon ::= SEQUENCE {
+ mfbi-EUTRA ENUMERATED {supported} OPTIONAL,
+ modifiedMRP-BehaviorEUTRA BIT STRING (SIZE (32)) OPTIONAL,
+ multiNS-Pmax-EUTRA ENUMERATED {supported} OPTIONAL,
+ rs-SINR-MeasEUTRA ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+EUTRA-ParametersXDD-Diff ::= SEQUENCE {
+ rsrqMeasWidebandEUTRA ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+-- TAG-INTERRAT-PARAMETERS-STOP
+-- TAG-MAC-PARAMETERS-START
+
+MAC-Parameters ::= SEQUENCE {
+ mac-ParametersCommon MAC-ParametersCommon OPTIONAL,
+ mac-ParametersXDD-Diff MAC-ParametersXDD-Diff OPTIONAL
+}
+
+MAC-ParametersCommon ::= SEQUENCE {
+ lcp-Restriction ENUMERATED {supported} OPTIONAL,
+ pucch-SpatialRelInfoMAC-CE ENUMERATED {supported} OPTIONAL,
+ lch-ToSCellRestriction ENUMERATED {supported} OPTIONAL,
+ ...,
+ [[
+ recommendedBitRate ENUMERATED {supported} OPTIONAL,
+ recommendedBitRateQuery 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,
+ multipleConfiguredGrants ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+-- TAG-MAC-PARAMETERS-STOP
+-- TAG-MEASANDMOBPARAMETERS-START
+
+MeasAndMobParameters ::= SEQUENCE {
+ measAndMobParametersCommon MeasAndMobParametersCommon OPTIONAL,
+ measAndMobParametersXDD-Diff MeasAndMobParametersXDD-Diff OPTIONAL,
+ measAndMobParametersFRX-Diff MeasAndMobParametersFRX-Diff OPTIONAL
+}
+
+MeasAndMobParametersCommon ::= SEQUENCE {
+ supportedGapPattern BIT STRING (SIZE (22)) OPTIONAL,
+ ssb-RLM ENUMERATED {supported} OPTIONAL,
+ ssb-AndCSI-RS-RLM ENUMERATED {supported} OPTIONAL,
+ ...,
+ [[
+ eventB-MeasAndReport ENUMERATED {supported} OPTIONAL,
+ handoverFDD-TDD ENUMERATED {supported} OPTIONAL,
+ eutra-CGI-Reporting ENUMERATED {supported} OPTIONAL,
+ nr-CGI-Reporting ENUMERATED {supported} OPTIONAL
+ ]]
+}
+
+MeasAndMobParametersXDD-Diff ::= SEQUENCE {
+ intraAndInterF-MeasAndReport ENUMERATED {supported} OPTIONAL,
+ eventA-MeasAndReport ENUMERATED {supported} OPTIONAL,
+ ...,
+ [[
+ handoverInterF ENUMERATED {supported} OPTIONAL,
+ handoverLTE ENUMERATED {supported} OPTIONAL,
+ handover-eLTE ENUMERATED {supported} OPTIONAL
+ ]]
+}
+
+MeasAndMobParametersFRX-Diff ::= SEQUENCE {
+ ss-SINR-Meas ENUMERATED {supported} OPTIONAL,
+ csi-RSRP-AndRSRQ-MeasWithSSB ENUMERATED {supported} OPTIONAL,
+ csi-RSRP-AndRSRQ-MeasWithoutSSB ENUMERATED {supported} OPTIONAL,
+ csi-SINR-Meas ENUMERATED {supported} OPTIONAL,
+ csi-RS-RLM ENUMERATED {supported} OPTIONAL,
+ ...,
+ [[
+ handoverInterF ENUMERATED {supported} OPTIONAL,
+ handoverLTE ENUMERATED {supported} OPTIONAL,
+ handover-eLTE ENUMERATED {supported} OPTIONAL
+ ]]
+}
+
+-- TAG-MEASANDMOBPARAMETERS-STOP
+-- TAG-MEASANDMOBPARAMETERSMRDC-START
+
+MeasAndMobParametersMRDC ::= SEQUENCE {
+ measAndMobParametersMRDC-Common MeasAndMobParametersMRDC-Common OPTIONAL,
+ measAndMobParametersMRDC-XDD-Diff MeasAndMobParametersMRDC-XDD-Diff OPTIONAL,
+ measAndMobParametersMRDC-FRX-Diff MeasAndMobParametersMRDC-FRX-Diff OPTIONAL
+}
+
+MeasAndMobParametersMRDC-Common ::= SEQUENCE {
+ independentGapConfig ENUMERATED {supported} OPTIONAL
+}
+
+MeasAndMobParametersMRDC-XDD-Diff ::= SEQUENCE {
+ sftd-MeasPSCell ENUMERATED {supported} OPTIONAL,
+ sftd-MeasNR-Cell ENUMERATED {supported} OPTIONAL
+}
+
+MeasAndMobParametersMRDC-FRX-Diff ::= SEQUENCE {
+ simultaneousRxDataSSB-DiffNumerology ENUMERATED {supported} OPTIONAL
+}
+
+-- TAG-MEASANDMOBPARAMETERSMRDC-STOP
+-- TAG-MIMO-LAYERS-START
+
+MIMO-LayersDL ::= ENUMERATED {twoLayers, fourLayers, eightLayers}
+
+MIMO-LayersUL ::= ENUMERATED {oneLayer, twoLayers, fourLayers}
+
+-- TAG-MIMO-LAYERS-STOP
+-- TAG-MIMO-PARAMETERSPERBAND-START
+
+MIMO-ParametersPerBand ::= SEQUENCE {
+ tci-StatePDSCH SEQUENCE {
+ maxNumberConfiguredTCIstatesPerCC ENUMERATED {n4, n8, n16, n32, n64, n128} OPTIONAL,
+ maxNumberActiveTCI-PerBWP ENUMERATED {n1, n2, n4, n8} OPTIONAL
+ } OPTIONAL,
+ additionalActiveTCI-StatePDCCH ENUMERATED {supported} OPTIONAL,
+ pusch-TransCoherence ENUMERATED {nonCoherent, partialNonCoherent, fullCoherent} OPTIONAL,
+ beamCorrespondence ENUMERATED {supported} OPTIONAL,
+ periodicBeamReport ENUMERATED {supported} OPTIONAL,
+ aperiodicBeamReport ENUMERATED {supported} OPTIONAL,
+ sp-BeamReportPUCCH ENUMERATED {supported} OPTIONAL,
+ sp-BeamReportPUSCH ENUMERATED {supported} OPTIONAL,
+ beamManagementSSB-CSI-RS BeamManagementSSB-CSI-RS OPTIONAL,
+ maxNumberRxBeam INTEGER (2..8) OPTIONAL,
+ 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,
+ maxNumberNonGroupBeamReporting ENUMERATED {n1, n2, n4} OPTIONAL,
+ groupBeamReporting ENUMERATED {supported} OPTIONAL,
+ uplinkBeamManagement SEQUENCE {
+ maxNumberSRS-ResourcePerSet-BM ENUMERATED {n2, n4, n8, n16},
+ maxNumberSRS-ResourceSet INTEGER (1..8)
+ } OPTIONAL,
+ maxNumberCSI-RS-BFR INTEGER (1..64) OPTIONAL,
+ maxNumberSSB-BFR INTEGER (1..64) OPTIONAL,
+ maxNumberCSI-RS-SSB-BFR INTEGER (1..256) OPTIONAL,
+ twoPortsPTRS-DL ENUMERATED {supported} OPTIONAL,
+ twoPortsPTRS-UL ENUMERATED {supported} OPTIONAL,
+ supportedSRS-Resources SRS-Resources OPTIONAL,
+ maxNumberSimultaneousSRS-PerCC INTEGER (1..4) OPTIONAL,
+ beamReportTiming SEQUENCE {
+ scs-15kHz ENUMERATED {sym2, sym4, sym8} OPTIONAL,
+ scs-30kHz ENUMERATED {sym4, sym8, sym14} OPTIONAL,
+ scs-60kHz ENUMERATED {sym8, sym14, sym28} OPTIONAL,
+ scs-120kHz ENUMERATED {sym14, sym28, sym56} OPTIONAL
+ } OPTIONAL,
+ ptrs-DensityRecommendationSetDL SEQUENCE {
+ scs-15kHz PTRS-DensityRecommendationDL OPTIONAL,
+ scs-30kHz PTRS-DensityRecommendationDL OPTIONAL,
+ scs-60kHz PTRS-DensityRecommendationDL OPTIONAL,
+ scs-120kHz PTRS-DensityRecommendationDL OPTIONAL
+ } OPTIONAL,
+ ptrs-DensityRecommendationSetUL SEQUENCE {
+ scs-15kHz PTRS-DensityRecommendationUL OPTIONAL,
+ scs-30kHz PTRS-DensityRecommendationUL OPTIONAL,
+ scs-60kHz PTRS-DensityRecommendationUL OPTIONAL,
+ scs-120kHz PTRS-DensityRecommendationUL OPTIONAL
+ } OPTIONAL,
+ csi-RS-ForTracking CSI-RS-ForTracking OPTIONAL,
+ aperiodicTRS ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+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}
+}
+
+CSI-RS-ForTracking ::= SEQUENCE {
+ burstLength INTEGER (1..2),
+ maxSimultaneousResourceSetsPerCC INTEGER (1..8),
+ maxConfiguredResourceSetsPerCC INTEGER (1..64),
+ maxConfiguredResourceSetsAllCC INTEGER (1..128)
+}
+
+PTRS-DensityRecommendationDL ::= SEQUENCE {
+ frequencyDensity1 INTEGER (1..276),
+ frequencyDensity2 INTEGER (1..276),
+ timeDensity1 INTEGER (0..29),
+ timeDensity2 INTEGER (0..29),
+ timeDensity3 INTEGER (0..29)
+}
+
+PTRS-DensityRecommendationUL ::= SEQUENCE {
+ frequencyDensity1 INTEGER (1..276),
+ frequencyDensity2 INTEGER (1..276),
+ timeDensity1 INTEGER (0..29),
+ timeDensity2 INTEGER (0..29),
+ timeDensity3 INTEGER (0..29),
+ sampleDensity1 INTEGER (1..276),
+ sampleDensity2 INTEGER (1..276),
+ sampleDensity3 INTEGER (1..276),
+ sampleDensity4 INTEGER (1..276),
+ sampleDensity5 INTEGER (1..276)
+}
+
+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 {n1, n2, n4, n8, n16},
+ maxNumberSP-SRS-PerBWP-PerSlot INTEGER (1..6),
+ maxNumberSRS-Ports-PerResource ENUMERATED {n1, n2, n4}
+}
+
+SRS-TxSwitch ::= SEQUENCE {
+ supportedSRS-TxPortSwitch ENUMERATED {t1r2, t1r4, t2r4, t1r4-t2r4, tr-equal},
+ txSwitchImpactToRx ENUMERATED {true} OPTIONAL
+}
+
+-- TAG-MODULATION-ORDER-START
+
+ModulationOrder ::= ENUMERATED {bpsk-halfpi, bpsk, qpsk, qam16, qam64, qam256}
+
+-- TAG-MODULATION-ORDER-STOP
+-- TAG-MRDC-PARAMETERS-START
+
+MRDC-Parameters ::= SEQUENCE {
+ singleUL-Transmission ENUMERATED {supported} OPTIONAL,
+ dynamicPowerSharing ENUMERATED {supported} OPTIONAL,
+ tdm-Pattern ENUMERATED {supported} OPTIONAL,
+ ul-SharingEUTRA-NR ENUMERATED {tdm, fdm, both} OPTIONAL,
+ ul-SwitchingTimeEUTRA-NR ENUMERATED {type1, type2} OPTIONAL,
+ simultaneousRxTxInterBandENDC ENUMERATED {supported} OPTIONAL,
+ asyncIntraBandENDC ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+-- TAG-MRDC-PARAMETERS-STOP
+-- TAG-PDCP-PARAMETERS-START
+
+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,
+ pdcp-DuplicationSRB3 ENUMERATED {supported} OPTIONAL,
+ pdcp-DuplicationMCG-OrSCG ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+-- TAG-PDCP-PARAMETERS-STOP
+-- TAG-PDCP-PARAMETERSMRDC-START
+
+PDCP-ParametersMRDC ::= SEQUENCE {
+ pdcp-DuplicationSplitSRB ENUMERATED {supported} OPTIONAL,
+ pdcp-DuplicationSplitDRB ENUMERATED {supported} OPTIONAL
+}
+
+-- TAG-PDCP-PARAMETERSMRDC-STOP
+-- TAG-PHY-PARAMETERS-START
+
+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
+}
+
+Phy-ParametersCommon ::= SEQUENCE {
+ csi-RS-CFRA-ForHO ENUMERATED {supported} OPTIONAL,
+ dynamicPRB-BundlingDL ENUMERATED {supported} OPTIONAL,
+ sp-CSI-ReportPUCCH ENUMERATED {supported} OPTIONAL,
+ sp-CSI-ReportPUSCH ENUMERATED {supported} OPTIONAL,
+ nzp-CSI-RS-IntefMgmt ENUMERATED {supported} OPTIONAL,
+ type2-SP-CSI-Feedback-LongPUCCH ENUMERATED {supported} OPTIONAL,
+ precoderGranularityCORESET ENUMERATED {supported} OPTIONAL,
+ dynamicHARQ-ACK-Codebook ENUMERATED {supported} OPTIONAL,
+ semiStaticHARQ-ACK-Codebook ENUMERATED {supported} OPTIONAL,
+ spatialBundlingHARQ-ACK ENUMERATED {supported} OPTIONAL,
+ dynamicBetaOffsetInd-HARQ-ACK-CSI ENUMERATED {supported} OPTIONAL,
+ pucch-Repetition-F1-3-4 ENUMERATED {supported} OPTIONAL,
+ ra-Type0-PUSCH ENUMERATED {supported} OPTIONAL,
+ dynamicSwitchRA-Type0-1-PDSCH ENUMERATED {supported} OPTIONAL,
+ dynamicSwitchRA-Type0-1-PUSCH ENUMERATED {supported} OPTIONAL,
+ pdsch-MappingTypeA ENUMERATED {supported} OPTIONAL,
+ pdsch-MappingTypeB ENUMERATED {supported} OPTIONAL,
+ interleavingVRB-ToPRB-PDSCH ENUMERATED {supported} OPTIONAL,
+ interSlotFreqHopping-PUSCH ENUMERATED {supported} OPTIONAL,
+ type1-PUSCH-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL,
+ type2-PUSCH-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL,
+ pusch-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL,
+ pdsch-RepetitionMultiSlots ENUMERATED {supported} OPTIONAL,
+ downlinkSPS ENUMERATED {supported} OPTIONAL,
+ configuredUL-GrantType1 ENUMERATED {supported} OPTIONAL,
+ configuredUL-GrantType2 ENUMERATED {supported} OPTIONAL,
+ pre-EmptIndication-DL ENUMERATED {supported} OPTIONAL,
+ cbg-TransIndication-DL ENUMERATED {supported} OPTIONAL,
+ cbg-TransIndication-UL ENUMERATED {supported} OPTIONAL,
+ cbg-FlushIndication-DL ENUMERATED {supported} OPTIONAL,
+ dynamicHARQ-ACK-CodeB-CBG-Retx-DL ENUMERATED {supported} OPTIONAL,
+ rateMatchingResrcSetSemi-Static ENUMERATED {supported} OPTIONAL,
+ rateMatchingResrcSetDynamic ENUMERATED {supported} OPTIONAL,
+ bwp-SwitchingDelay ENUMERATED {type1, type2} OPTIONAL,
+ ... ,
+ [[
+ eutra-RS-SINR-measurement ENUMERATED {supported} OPTIONAL
+ ]]
+}
+
+Phy-ParametersXDD-Diff ::= SEQUENCE {
+ dynamicSFI ENUMERATED {supported} OPTIONAL,
+ twoPUCCH-F0-2-ConsecSymbols ENUMERATED {supported} OPTIONAL,
+ twoDifferentTPC-Loop-PUSCH ENUMERATED {supported} OPTIONAL,
+ twoDifferentTPC-Loop-PUCCH ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+Phy-ParametersFRX-Diff ::= SEQUENCE {
+ dynamicSFI ENUMERATED {supported} OPTIONAL,
+ oneFL-DMRS-TwoAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL,
+ twoFL-DMRS BIT STRING (SIZE (2)) OPTIONAL,
+ twoFL-DMRS-TwoAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL,
+ oneFL-DMRS-ThreeAdditionalDMRS BIT STRING (SIZE (2)) OPTIONAL,
+ supportedDMRS-TypeDL ENUMERATED {type1, type1And2} OPTIONAL,
+ supportedDMRS-TypeUL ENUMERATED {type1, type1And2} OPTIONAL,
+ semiOpenLoopCSI ENUMERATED {supported} OPTIONAL,
+ csi-ReportWithoutPMI ENUMERATED {supported} OPTIONAL,
+ csi-ReportWithoutCQI ENUMERATED {supported} OPTIONAL,
+ onePortsPTRS BIT STRING (SIZE (2)) OPTIONAL,
+ twoPUCCH-F0-2-ConsecSymbols ENUMERATED {supported} OPTIONAL,
+ pucch-F2-WithFH ENUMERATED {supported} OPTIONAL,
+ pucch-F3-WithFH ENUMERATED {supported} OPTIONAL,
+ pucch-F4-WithFH ENUMERATED {supported} OPTIONAL,
+ freqHoppingPUCCH-F0-2 ENUMERATED {notSupported} OPTIONAL,
+ freqHoppingPUCCH-F1-3-4 ENUMERATED {notSupported} OPTIONAL,
+ mux-SR-HARQ-ACK-CSI-PUCCH ENUMERATED {supported} OPTIONAL,
+ uci-CodeBlockSegmentation ENUMERATED {supported} OPTIONAL,
+ onePUCCH-LongAndShortFormat ENUMERATED {supported} OPTIONAL,
+ twoPUCCH-AnyOthersInSlot ENUMERATED {supported} OPTIONAL,
+ intraSlotFreqHopping-PUSCH ENUMERATED {supported} OPTIONAL,
+ pusch-LBRM ENUMERATED {supported} OPTIONAL,
+ pdcch-BlindDetectionCA INTEGER (4..16) OPTIONAL,
+ tpc-PUSCH-RNTI ENUMERATED {supported} OPTIONAL,
+ tpc-PUCCH-RNTI ENUMERATED {supported} OPTIONAL,
+ tpc-SRS-RNTI ENUMERATED {supported} OPTIONAL,
+ absoluteTPC-Command ENUMERATED {supported} OPTIONAL,
+ twoDifferentTPC-Loop-PUSCH ENUMERATED {supported} OPTIONAL,
+ twoDifferentTPC-Loop-PUCCH ENUMERATED {supported} OPTIONAL,
+ pusch-HalfPi-BPSK ENUMERATED {supported} OPTIONAL,
+ pucch-F3-4-HalfPi-BPSK ENUMERATED {supported} OPTIONAL,
+ almostContiguousCP-OFDM-UL ENUMERATED {supported} OPTIONAL,
+ sp-CSI-RS ENUMERATED {supported} OPTIONAL,
+ sp-CSI-IM ENUMERATED {supported} OPTIONAL,
+ tdd-MultiDL-UL-SwitchPerSlot ENUMERATED {supported} OPTIONAL,
+ multipleCORESET ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+Phy-ParametersFR1 ::= SEQUENCE {
+ pdcchMonitoringSingleOccasion ENUMERATED {supported} OPTIONAL,
+ scs-60kHz ENUMERATED {supported} OPTIONAL,
+ pdsch-256QAM-FR1 ENUMERATED {supported} OPTIONAL,
+ pdsch-RE-MappingFR1 ENUMERATED {n10, n20} OPTIONAL,
+ ...
+}
+
+Phy-ParametersFR2 ::= SEQUENCE {
+ calibrationGapPA ENUMERATED {supported} OPTIONAL,
+ pdsch-RE-MappingFR2 ENUMERATED {n6, n20} OPTIONAL,
+ ...
+}
+
+-- TAG-PHY-PARAMETERS-STOP
+-- TAG-PHY-PARAMETERSMRDC-START
+
+Phy-ParametersMRDC ::= SEQUENCE {
+ naics-Capability-List SEQUENCE (SIZE (1..maxNrofNAICS-Entries)) OF NAICS-Capability-Entry OPTIONAL,
+ ...
+}
+
+NAICS-Capability-Entry ::= SEQUENCE {
+ numberOfNAICS-CapableCC INTEGER(1..5),
+ numberOfAggregatedPRB ENUMERATED {n50, n75, n100, n125, n150, n175, n200, n225,
+ n250, n275, n300, n350, n400, n450, n500, spare},
+ ...
+}
+
+-- TAG-PHY-PARAMETERSMRDC-STOP
+-- TAG-RAT-TYPE-START
+
+RAT-Type ::= ENUMERATED {nr, eutra-nr, eutra, spare1, ...}
+
+-- TAG-RAT-TYPE-STOP
+-- TAG-RF-PARAMETERS-START
+
+RF-Parameters ::= SEQUENCE {
+ supportedBandListNR SEQUENCE (SIZE (1..maxBands)) OF BandNR,
+ supportedBandCombinationList BandCombinationList OPTIONAL,
+ appliedFreqBandListFilter FreqBandList OPTIONAL,
+ ...
+}
+
+BandNR ::= SEQUENCE {
+ bandNR FreqBandIndicatorNR,
+ modifiedMPR-Behaviour BIT STRING (SIZE (8)) OPTIONAL,
+ mimo-ParametersPerBand MIMO-ParametersPerBand OPTIONAL,
+ extendedCP ENUMERATED {supported} OPTIONAL,
+ multipleTCI ENUMERATED {supported} OPTIONAL,
+ bwp-WithoutRestriction ENUMERATED {supported} OPTIONAL,
+ bwp-SameNumerology ENUMERATED {upto2, upto4} OPTIONAL,
+ bwp-DiffNumerology ENUMERATED {upto4} OPTIONAL,
+ crossCarrierScheduling-SameSCS ENUMERATED {supported} OPTIONAL,
+ pdsch-256QAM-FR2 ENUMERATED {supported} OPTIONAL,
+ pusch-256QAM ENUMERATED {supported} OPTIONAL,
+ ue-PowerClass ENUMERATED {pc1, pc2, pc3, pc4} OPTIONAL,
+ rateMatchingLTE-CRS ENUMERATED {supported} OPTIONAL,
+ channelBWs-DL-v1530 CHOICE {
+ fr1 SEQUENCE {
+ scs-15kHz BIT STRING (SIZE (10)) OPTIONAL,
+ scs-30kHz BIT STRING (SIZE (10)) OPTIONAL,
+ scs-60kHz BIT STRING (SIZE (10)) OPTIONAL
+ },
+ fr2 SEQUENCE {
+ scs-60kHz BIT STRING (SIZE (3)) OPTIONAL,
+ scs-120kHz BIT STRING (SIZE (3)) OPTIONAL
+ }
+ } OPTIONAL,
+ channelBWs-UL-v1530 CHOICE {
+ fr1 SEQUENCE {
+ scs-15kHz BIT STRING (SIZE (10)) OPTIONAL,
+ scs-30kHz BIT STRING (SIZE (10)) OPTIONAL,
+ scs-60kHz BIT STRING (SIZE (10)) OPTIONAL
+ },
+ fr2 SEQUENCE {
+ scs-60kHz BIT STRING (SIZE (3)) OPTIONAL,
+ scs-120kHz BIT STRING (SIZE (3)) OPTIONAL
+ }
+ } OPTIONAL,
+ ...,
+ [[
+ maxUplinkDutyCycle ENUMERATED {n60, n70, n80, n90, n100} OPTIONAL
+ ]]
+
+}
+
+-- TAG-RF-PARAMETERS-STOP
+-- TAG-RF-PARAMETERSMRDC-START
+
+RF-ParametersMRDC ::= SEQUENCE {
+ supportedBandCombinationList BandCombinationList OPTIONAL,
+ appliedFreqBandListFilter FreqBandList OPTIONAL,
+ ...
+}
+
+-- TAG-RF-PARAMETERSMRDC-STOP
+-- TAG-RLC-PARAMETERS-START
+
+RLC-Parameters ::= SEQUENCE {
+ am-WithShortSN ENUMERATED {supported} OPTIONAL,
+ um-WithShortSN ENUMERATED {supported} OPTIONAL,
+ um-WithLongSN ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+-- TAG-RLC-PARAMETERS-STOP
+-- TAG-SUPPORTEDBANDWIDTH-START
+
+SupportedBandwidth ::= CHOICE {
+ fr1 ENUMERATED {mhz5, mhz10, mhz15, mhz20, mhz25, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100},
+ fr2 ENUMERATED {mhz50, mhz100, mhz200, mhz400}
+}
+
+-- TAG-SUPPORTEDBANDWIDTH-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-CAPABILITYRAT-REQUESTLIST-START
+
+UE-CapabilityRAT-RequestList ::= SEQUENCE (SIZE (1..maxRAT-CapabilityContainers)) OF UE-CapabilityRAT-Request
+
+UE-CapabilityRAT-Request ::= SEQUENCE {
+ rat-Type RAT-Type,
+ capabilityRequestFilter OCTET STRING OPTIONAL, -- Need N
+ ...
+}
+
+-- TAG-UE-CAPABILITYRAT-REQUESTLIST-STOP
+-- TAG-UE-CAPABILITYREQUESTFILTERNR-START
+
+UE-CapabilityRequestFilterNR ::= SEQUENCE {
+ frequencyBandList FreqBandList OPTIONAL, -- Need N
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG-UE-CAPABILITYREQUESTFILTERNR-STOP
+-- TAG-UE-MRDC-CAPABILITY-START
+
+UE-MRDC-Capability ::= SEQUENCE {
+ measAndMobParametersMRDC MeasAndMobParametersMRDC OPTIONAL,
+ phy-ParametersMRDC-v1530 Phy-ParametersMRDC OPTIONAL,
+ rf-ParametersMRDC RF-ParametersMRDC,
+ 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,
+ featureSetCombinations SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination OPTIONAL,
+ pdcp-ParametersMRDC-v1530 PDCP-ParametersMRDC OPTIONAL,
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+UE-MRDC-CapabilityAddXDD-Mode ::= SEQUENCE {
+ measAndMobParametersMRDC-XDD-Diff MeasAndMobParametersMRDC-XDD-Diff OPTIONAL,
+ generalParametersMRDC-XDD-Diff GeneralParametersMRDC-XDD-Diff OPTIONAL
+}
+
+UE-MRDC-CapabilityAddFRX-Mode ::= SEQUENCE {
+ measAndMobParametersMRDC-FRX-Diff MeasAndMobParametersMRDC-FRX-Diff
+}
+
+
+GeneralParametersMRDC-XDD-Diff ::= SEQUENCE {
+ splitSRB-WithOneUL-Path ENUMERATED {supported} OPTIONAL,
+ splitDRB-withUL-Both-MCG-SCG ENUMERATED {supported} OPTIONAL,
+ srb3 ENUMERATED {supported} OPTIONAL,
+ v2x-EUTRA-v1530 ENUMERATED {supported} OPTIONAL,
+ ...
+}
+
+-- TAG-UE-MRDC-CAPABILITY-STOP
+-- TAG-UE-NR-CAPABILITY-START
+
+UE-NR-Capability ::= SEQUENCE {
+ accessStratumRelease AccessStratumRelease,
+ pdcp-Parameters PDCP-Parameters,
+ rlc-Parameters RLC-Parameters OPTIONAL,
+ mac-Parameters MAC-Parameters OPTIONAL,
+ phy-Parameters Phy-Parameters,
+ rf-Parameters RF-Parameters,
+ measAndMobParameters MeasAndMobParameters 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,
+ featureSets FeatureSets OPTIONAL,
+ featureSetCombinations SEQUENCE (SIZE (1..maxFeatureSetCombinations)) OF FeatureSetCombination OPTIONAL,
+
+ lateNonCriticalExtension OCTET STRING OPTIONAL,
+ nonCriticalExtension UE-NR-Capability-1530 OPTIONAL
+}
+
+UE-NR-Capability-1530 ::= SEQUENCE {
+ fdd-Add-UE-NR-Capabilities-1530 UE-NR-CapabilityAddXDD-Mode-1530 OPTIONAL,
+ tdd-Add-UE-NR-Capabilities-1530 UE-NR-CapabilityAddXDD-Mode-1530 OPTIONAL,
+ voiceOverMCG-Bearer ENUMERATED {supported} OPTIONAL,
+ interRAT-Parameters InterRAT-Parameters OPTIONAL,
+ inactiveState ENUMERATED {supported} OPTIONAL,
+ delayBudgetReporting ENUMERATED {supported} OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+UE-NR-CapabilityAddXDD-Mode ::= SEQUENCE {
+ phy-ParametersXDD-Diff Phy-ParametersXDD-Diff OPTIONAL,
+ mac-ParametersXDD-Diff MAC-ParametersXDD-Diff OPTIONAL,
+ measAndMobParametersXDD-Diff MeasAndMobParametersXDD-Diff OPTIONAL
+}
+
+UE-NR-CapabilityAddXDD-Mode-1530 ::= SEQUENCE {
+ eutra-ParametersXDD-Diff EUTRA-ParametersXDD-Diff
+}
+
+UE-NR-CapabilityAddFRX-Mode ::= SEQUENCE {
+ phy-ParametersFRX-Diff Phy-ParametersFRX-Diff OPTIONAL,
+ measAndMobParametersFRX-Diff MeasAndMobParametersFRX-Diff OPTIONAL
+}
+
+-- TAG-UE-NR-CAPABILITY-STOP
+-- TAG-EUTRA-ALLOWED-MEAS-BANDWIDTH-START
+
+EUTRA-AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100}
+
+-- TAG-EUTRA-ALLOWED-MEAS-BANDWIDTH-STOP
+-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-START
+
+EUTRA-MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF EUTRA-MBSFN-SubframeConfig
+
+EUTRA-MBSFN-SubframeConfig ::= SEQUENCE {
+ radioframeAllocationPeriod ENUMERATED {n1, n2, n4, n8, n16, n32},
+ radioframeAllocationOffset INTEGER (0..7),
+ subframeAllocation1 CHOICE {
+ oneFrame BIT STRING (SIZE(6)),
+ fourFrames BIT STRING (SIZE(24))
+ },
+ subframeAllocation2 CHOICE {
+ oneFrame BIT STRING (SIZE(2)),
+ fourFrames BIT STRING (SIZE(8))
+ } OPTIONAL, -- Need R
+ ...
+}
+
+-- TAG-EUTRA-MBSFN-SUBFRAMECONFIGLIST-STOP
+-- TAG-EUTRA-MULTI-BAND-INFO-LIST-START
+
+EUTRA-MultiBandInfoList ::= SEQUENCE (SIZE (1..maxMultiBands)) OF EUTRA-MultiBandInfo
+
+EUTRA-MultiBandInfo ::= SEQUENCE {
+ eutra-FreqBandIndicator FreqBandIndicatorEUTRA,
+ eutra-NS-PmaxList EUTRA-NS-PmaxList OPTIONAL -- Need R
+}
+
+-- TAG-EUTRA-MULTI-BAND-INFO-LIST-STOP
+-- TAG-EUTRA-NS-PMAX-LIST-START
+
+EUTRA-NS-PmaxList ::= SEQUENCE (SIZE (1..maxEUTRA-NS-Pmax)) OF EUTRA-NS-PmaxValue
+
+EUTRA-NS-PmaxValue ::= SEQUENCE {
+ additionalPmax INTEGER (-30..33) OPTIONAL, -- Need R
+ additionalSpectrumEmission INTEGER (1..288) OPTIONAL -- Need R
+}
+
+-- TAG-EUTRA-NS-PMAX-LIST-STOP
+-- TAG-EUTRA-PHYS-CELL-ID-START
+
+EUTRA-PhysCellId ::= INTEGER (0..503)
+
+-- TAG-EUTRA-PHYS-CELL-ID-STOP
+-- TAG-EUTRA-PHYS-CELL-ID-RANGE-START
+
+EUTRA-PhysCellIdRange ::= SEQUENCE {
+ start EUTRA-PhysCellId,
+ range ENUMERATED {n4, n8, n12, n16, n24, n32, n48, n64, n84, n96,
+ n128, n168, n252, n504, spare2, spare1} OPTIONAL -- Need N
+}
+
+-- TAG-EUTRA-PHYS-CELL-ID-RANGE-STOP
+-- TAG-EUTRA-PRESENCE-ANTENNA-PORT1-START
+
+EUTRA-PresenceAntennaPort1 ::= BOOLEAN
+
+-- TAG-EUTRA-PRESENCE-ANTENNA-PORT1-STOP
+
+EUTRA-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-MULTIFREQUENCYBANDLISTNR-SIB-START
+
+MultiFrequencyBandListNR-SIB ::= SEQUENCE (SIZE (1.. maxNrofMultiBands)) OF NR-MultiBandInfo
+
+NR-MultiBandInfo ::= SEQUENCE {
+ freqBandIndicatorNR FreqBandIndicatorNR OPTIONAL, -- Cond OptULNotSIB2
+ nr-NS-PmaxList NR-NS-PmaxList OPTIONAL -- Need S
+}
+
+-- TAG-MULTIFREQUENCYBANDLISTNR-SIB-STOP
+-- TAG-NR-NS-PMAXLIST-START
+
+NR-NS-PmaxList ::= SEQUENCE (SIZE (1..maxNR-NS-Pmax)) OF NR-NS-PmaxValue
+
+NR-NS-PmaxValue ::= SEQUENCE {
+ additionalPmax P-Max OPTIONAL, -- Need N
+ additionalSpectrumEmission AdditionalSpectrumEmission
+}
+
+-- TAG-NR-NS-PMAXLIST-STOP
+-- TAG-OTHERCONFIG-START
+
+OtherConfig ::= SEQUENCE {
+ delayBudgetReportingConfig CHOICE{
+ release NULL,
+ setup SEQUENCE{
+ delayBudgetReportingProhibitTimer ENUMERATED {s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30}
+ }
+ } OPTIONAL -- Need N
+}
+
+-- TAG-OTHERCONFIG-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
+maxCellBlack INTEGER ::= 16 -- Maximum number of NR blacklisted cell ranges in SIB3, SIB4
+maxCellInter INTEGER ::= 16 -- Maximum number of inter-Freq cells listed in SIB4
+maxCellIntra INTEGER ::= 16 -- Maximum number of intra-Freq cells listed in SIB3
+maxCellMeasEUTRA INTEGER ::= 32 -- Maximum number of cells in EUTRAN
+maxEARFCN INTEGER ::= 262143 -- Maximum value of EUTRA carrier frequency
+maxEUTRA-CellBlack INTEGER ::= 16 -- Maximum number of EUTRA-blacklisted physical cell identity ranges in SIB5
+maxEUTRA-NS-Pmax INTEGER ::= 8 -- Maximum number of NS and P-Max values per band
+maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands that a cell belongs to
+maxNARFCN INTEGER ::= 3279165 -- Maximum value of NR carrier frequency
+maxNR-NS-Pmax INTEGER ::= 8 -- Maximum number of NS and P-Max values per band
+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
+maxNrofCombIDC INTEGER ::= 128 -- Maximum number of reported MR-DC combinations for IDC
+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 minus 1
+maxNrofPhysicalResourceBlocksPlus1 INTEGER ::= 276 -- Maximum number of PRBs plus 1
+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-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
+maxNrofRateMatchPatternsPerGroup INTEGER ::= 8 -- Max number of rate matching patterns that may be configured in one group
+
+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-ResourceSets INTEGER ::= 64 -- Maximum number of NZP CSI-RS resources per cell
+maxNrofNZP-CSI-RS-ResourceSets-1 INTEGER ::= 63 -- Maximum number of NZP CSI-RS resources per cell minus 1
+maxNrofNZP-CSI-RS-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of resource sets per resource configuration
+maxNrofNZP-CSI-RS-ResourcesPerConfig INTEGER ::= 128 -- Maximum number of resources 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 ::= 15
+maxNrofZP-CSI-RS-ResourcesPerSet INTEGER ::= 16
+maxNrofZP-CSI-RS-ResourceSets 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-ResourceSets INTEGER ::= 64 -- Maximum number of NZP CSI-IM resources per cell
+maxNrofCSI-IM-ResourceSets-1 INTEGER ::= 63 -- Maximum number of NZP CSI-IM resources per cell minus 1
+maxNrofCSI-IM-ResourceSetsPerConfig INTEGER ::= 16 -- Maximum number of CSI IM resource sets per resource configuration
+
+maxNrofCSI-SSB-ResourcePerSet INTEGER ::= 64 -- Maximum number of SSB resources in a resource set
+maxNrofCSI-SSB-ResourceSets INTEGER ::= 64 -- Maximum number of CSI SSB resource sets per cell
+maxNrofCSI-SSB-ResourceSets-1 INTEGER ::= 63 -- Maximum number of CSI SSB resource sets per cell minus 1
+maxNrofCSI-SSB-ResourceSetsPerConfig INTEGER ::= 1 -- Maximum number of CSI SSB resource sets per resource configuration
+
+maxNrofFailureDetectionResources INTEGER ::= 10 -- Maximum number of failure detection resources
+maxNrofFailureDetectionResources-1 INTEGER ::= 9 -- Maximum number of failure detection resources minus 1
+
+maxNrofObjectId INTEGER ::= 64 -- Maximum number of measurement objects
+maxNrofPageRec INTEGER ::= 32 -- Maximum number of page records
+maxNrofPCI-Ranges INTEGER ::= 8 -- Maximum number of PCI ranges
+maxPLMN INTEGER ::= 12 -- Maximum number of PLMNs broadcast and reported by UE at establisghment
+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.
+maxNrofSRS-Resources-1 INTEGER ::= 63 -- Maximum number of SRS resources in an SRS resource set minus 1.
+maxNrofSRS-ResourcesPerSet INTEGER ::= 16 -- Maximum number of SRS resources in an SRS resource set
+maxNrofSRS-TriggerStates-1 INTEGER ::= 3 -- Maximum number of SRS trigger states minus 1, i.e., the largest code point.
+maxNrofSRS-TriggerStates-2 INTEGER ::= 2 -- Maximum number of SRS trigger states minus 2.
+maxRAT-CapabilityContainers INTEGER ::= 8 -- Maximum number of interworking RAT containers (incl NR and MRDC)
+maxSimultaneousBands INTEGER ::= 32 -- Maximum number of simultaneously aggregated bands
+
+
+maxNrofSlotFormatCombinationsPerSet INTEGER ::= 512 -- Maximum number of Slot Format Combinations in a SF-Set.
+maxNrofSlotFormatCombinationsPerSet-1 INTEGER ::= 511 -- 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-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.
+maxNrofNAICS-Entries INTEGER ::= 8 -- Maximum number of supported NAICS capability set
+maxBands INTEGER ::= 1024 -- Maximum number of supported bands in UE capability.
+maxBandsMRDC INTEGER ::= 1280
+maxBandsEUTRA INTEGER ::= 256
+maxCellReport INTEGER ::= 8
+maxDRB INTEGER ::= 29 -- Maximum number of DRBs (that can be added in DRB-ToAddModLIst).
+maxFreq INTEGER ::= 8 -- Max number of frequencies.
+maxFreqIDC-MRDC INTEGER ::= 32 -- Maximum number of candidate NR frequencies for MR-DC IDC indication
+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
+maxNrOfSemiPersistentPUSCH-Triggers INTEGER ::= 64 -- Maximum number of triggers for semi persistent reporting on PUSCH
+maxNrofSR-Resources INTEGER ::= 8 -- Maximum number of SR resources per BWP in a cell.
+maxNrofSlotFormatsPerCombination INTEGER ::= 256
+maxNrofSpatialRelationInfos INTEGER ::= 8
+maxNrofIndexesToReport INTEGER ::= 32
+maxNrofIndexesToReport2 INTEGER ::= 64
+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.
+maxNrofS-NSSAI INTEGER ::= 8 -- Maximum number of S-NSSAI.
+maxNrofTCI-StatesPDCCH INTEGER ::= 64
+maxNrofTCI-States INTEGER ::= 128 -- Maximum number of TCI states.
+maxNrofTCI-States-1 INTEGER ::= 127 -- 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
+maxNrofCodebooks INTEGER ::= 16 -- Maximum number of codebooks suppoted by the UE
+
+maxNrofSRI-PUSCH-Mappings INTEGER ::= 16
+maxNrofSRI-PUSCH-Mappings-1 INTEGER ::= 15
+maxSIB INTEGER::= 32 -- Maximum number of SIBs
+maxSIB-1 INTEGER::= 31
+maxSI-Message INTEGER::= 32 -- Maximum number of SI messages
+
+maxAccessCat-1 INTEGER ::= 63 -- Maximum number of Acccess Categories minus 1
+maxBarringInfoSet INTEGER ::= 8 -- Maximum number of Acccess Categories
+maxCellEUTRA INTEGER ::= 8 -- Maximum number of EUTRA cells in SIB list
+maxEUTRA-Carrier INTEGER ::= 8 -- Maximum number of EUTRA carriers in SIB list
+maxPLMNIdentities INTEGER ::= 8 -- Maximum number of PLMN identites in RAN area configurations
+
+maxDownlinkFeatureSets INTEGER ::= 1024 -- (for NR DL) Total number of FeatureSets (size of the pool)
+maxUplinkFeatureSets INTEGER ::= 1024 -- (for NR UL) Total number of FeatureSets (size of the pool)
+maxEUTRA-DL-FeatureSets INTEGER ::= 256 -- (for EUTRA) Total number of FeatureSets (size of the pool)
+maxEUTRA-UL-FeatureSets INTEGER ::= 256 -- (for EUTRA) Total number of FeatureSets (size of the pool)
+maxFeatureSetsPerBand INTEGER ::= 128 -- (for NR) The number of feature sets associated with one band.
+maxPerCC-FeatureSets INTEGER ::= 1024 -- (for NR) Total number of CC-specific FeatureSets (size of the pool)
+maxFeatureSetCombinations INTEGER ::= 1024 -- (for MR-DC/NR)Total number of Feature set combinations (size of the pool)
+
+maxInterRAT-RSTD-Freq INTEGER ::= 3
+
+
+-- TAG-MULTIPLICITY-AND-TYPE-CONSTRAINT-DEFINITIONS-STOP
+
+END
+
+
+NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ CellIdentity,
+ MeasId,
+ MeasIdToAddModList,
+ MeasObjectToAddModList,
+ PhysCellId,
+ RNTI-Value,
+ ReportConfigToAddModList,
+ RSRP-Range,
+ QuantityConfig,
+ maxNrofCellMeas,
+ maxNrofMeasId
+FROM NR-RRC-Definitions;
+
+-- TAG-VAR-PENDING-RNA-UPDATE-START
+
+VarPendingRNA-Update ::= SEQUENCE {
+ pendingRNA-Update BOOLEAN OPTIONAL
+}
+
+-- TAG-VAR-PENDING-RNA-UPDATE-STOP
+-- 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
+-- TAG-VAR-RESUMEMACINPUT-START
+
+VarResumeMAC-Input ::= SEQUENCE {
+ sourcePhysCellId PhysCellId,
+ targetCellIdentity CellIdentity,
+ source-c-RNTI RNTI-Value
+
+}
+
+-- TAG-VAR-RESUMEMACINPUT-STOP
+-- TAG-VAR-SHORTMACINPUT-START
+
+VarShortMAC-Input ::= SEQUENCE {
+ sourcePhysCellId PhysCellId,
+ targetCellIdentity CellIdentity,
+ source-c-RNTI RNTI-Value
+}
+
+-- TAG-VAR- SHORTMACINPUT-STOP
+
+END
+
+-- TAG_NR-INTER-NODE-DEFINITIONS-START
+
+NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ARFCN-ValueNR,
+ ARFCN-ValueEUTRA,
+ CellIdentity,
+ CSI-RS-Index,
+ FreqBandIndicatorNR,
+ GapConfig,
+ maxBandComb,
+ maxBands,
+ maxFeatureSetsPerBand,
+ maxFreqIDC-MRDC,
+ maxNrofCombIDC,
+ maxNrofSCells,
+ maxNrofServingCells,
+ maxNrofServingCells-1,
+ maxNrofServingCellsEUTRA,
+ maxNrofIndexesToReport,
+ MeasQuantityResults,
+ MeasResultSCG-Failure,
+ MeasResultCellListSFTD,
+ MeasResultList2NR,
+ P-Max,
+ PhysCellId,
+ RadioBearerConfig,
+ RAN-NotificationAreaInfo,
+ RRCReconfiguration,
+ ServCellIndex,
+ SetupRelease,
+ SSB-Index,
+ SSB-MTC,
+ SS-RSSI-Measurement,
+ ShortMAC-I,
+ SubcarrierSpacing,
+ 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 AS-Config OPTIONAL, -- Cond HO
+ rrm-Config RRM-Config OPTIONAL,
+ as-Context AS-Context OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+AS-Config ::= SEQUENCE {
+ rrcReconfiguration OCTET STRING (CONTAINING RRCReconfiguration),
+ ...
+}
+
+AS-Context ::= SEQUENCE {
+ reestablishmentInfo ReestablishmentInfo OPTIONAL,
+ configRestrictInfo ConfigRestrictInfoSCG OPTIONAL,
+ ...,
+ [[ ran-NotificationAreaInfo RAN-NotificationAreaInfo OPTIONAL
+ ]]
+}
+
+ReestablishmentInfo ::= SEQUENCE {
+ sourcePhysCellId PhysCellId,
+ targetCellShortMAC-I ShortMAC-I,
+ additionalReestabInfoList ReestabNCellInfoList 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 MeasResultList2NR 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 MeasResultList2NR) OPTIONAL,
+ measConfigSN MeasConfigSN OPTIONAL,
+ selectedBandCombinationNR BandCombinationInfoSN OPTIONAL,
+ fr-InfoListSCG FR-InfoList OPTIONAL,
+ candidateServingFreqListNR CandidateServingFreqListNR OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+MeasConfigSN ::= SEQUENCE {
+ measuredFrequenciesSN SEQUENCE (SIZE (1..maxMeasFreqsSN)) OF NR-FreqInfo OPTIONAL,
+ ...
+}
+
+NR-FreqInfo ::= SEQUENCE {
+ measuredFrequency ARFCN-ValueNR OPTIONAL,
+ ...
+}
+
+ConfigRestrictModReqSCG ::= SEQUENCE {
+ requestedBC-MRDC BandCombinationInfoSN OPTIONAL,
+ requestedP-MaxFR1 P-Max OPTIONAL,
+ ...
+}
+
+BandCombinationIndex ::= INTEGER (1..maxBandComb)
+
+BandCombinationInfoSN ::= SEQUENCE {
+ bandCombinationIndex BandCombinationIndex,
+ requestedFeatureSets FeatureSetEntryIndex
+}
+
+FR-InfoList ::= SEQUENCE (SIZE (1..maxNrofServingCells-1)) OF FR-Info
+
+FR-Info ::= SEQUENCE {
+ servCellIndex ServCellIndex,
+ fr-Type ENUMERATED {fr1, fr2}
+}
+
+CandidateServingFreqListNR ::= SEQUENCE (SIZE (1.. maxFreqIDC-MRDC)) OF ARFCN-ValueNR
+
+
+-- 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 MeasResultList2NR OPTIONAL,
+ candidateCellInfoListSN OCTET STRING (CONTAINING MeasResultList2NR) 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,
+ mrdc-AssistanceInfo MRDC-AssistanceInfo OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+ConfigRestrictInfoSCG ::= SEQUENCE {
+ allowedBC-ListMRDC BandCombinationInfoList OPTIONAL,
+ powerCoordination-FR1 SEQUENCE {
+ p-maxNR-FR1 P-Max OPTIONAL,
+ p-maxEUTRA P-Max OPTIONAL,
+ p-maxUE-FR1 P-Max OPTIONAL
+ } OPTIONAL,
+ servCellIndexRangeSCG SEQUENCE {
+ lowBound ServCellIndex,
+ upBound ServCellIndex
+ } OPTIONAL, -- Cond SN-Addition
+ maxMeasFreqsSCG-NR INTEGER(1..maxMeasFreqsMN) OPTIONAL,
+ maxMeasIdentitiesSCG-NR INTEGER(1..maxMeasIdentitiesMN) OPTIONAL,
+ ...
+}
+
+BandCombinationInfoList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationInfo
+
+BandCombinationInfo ::= SEQUENCE {
+ bandCombinationIndex BandCombinationIndex,
+ allowedFeatureSetsList SEQUENCE (SIZE (1..maxFeatureSetsPerBand)) OF FeatureSetEntryIndex
+}
+
+FeatureSetEntryIndex ::= INTEGER (1.. maxFeatureSetsPerBand)
+
+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,
+ measGapConfig SetupRelease { GapConfig } OPTIONAL,
+ gapPurpose ENUMERATED {perUE, perFR1} OPTIONAL,
+ ...
+}
+
+MRDC-AssistanceInfo ::= SEQUENCE {
+ affectedCarrierFreqCombInfoListMRDC SEQUENCE (SIZE (1..maxNrofCombIDC)) OF AffectedCarrierFreqCombInfoMRDC,
+ ...
+}
+
+AffectedCarrierFreqCombInfoMRDC ::= SEQUENCE {
+ victimSystemType VictimSystemType,
+ interferenceDirectionMRDC ENUMERATED {eutra-nr, nr, other, utra-nr-other, nr-other, spare3, spare2, spare1},
+ affectedCarrierFreqCombMRDC SEQUENCE {
+ affectedCarrierFreqCombEUTRA AffectedCarrierFreqCombEUTRA OPTIONAL,
+ affectedCarrierFreqCombNR AffectedCarrierFreqCombNR
+ } OPTIONAL
+}
+
+VictimSystemType ::= SEQUENCE {
+ gps ENUMERATED {true} OPTIONAL,
+ glonass ENUMERATED {true} OPTIONAL,
+ bds ENUMERATED {true} OPTIONAL,
+ galileo ENUMERATED {true} OPTIONAL,
+ wlan ENUMERATED {true} OPTIONAL,
+ bluetooth ENUMERATED {true} OPTIONAL
+}
+
+AffectedCarrierFreqCombEUTRA ::= SEQUENCE (SIZE (1..maxNrofServingCellsEUTRA)) OF ARFCN-ValueEUTRA
+
+AffectedCarrierFreqCombNR ::= SEQUENCE (SIZE (1..maxNrofServingCells)) OF ARFCN-ValueNR
+
+-- 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 {
+ frequencyAndTiming SEQUENCE {
+ carrierFreq ARFCN-ValueNR,
+ ssbSubcarrierSpacing SubcarrierSpacing,
+ ssb-MeasurementTimingConfiguration SSB-MTC,
+ ss-RSSI-Measurement SS-RSSI-Measurement OPTIONAL
+ } OPTIONAL,
+ ...
+}
+
+-- TAG-MEASUREMENT-TIMING-CONFIGURATION-STOP
+
+UERadioPagingInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioPagingInformation UERadioPagingInformation-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioPagingInformation-IEs ::= SEQUENCE {
+ supportedBandListNRForPaging SEQUENCE (SIZE (1..maxBands)) OF FreqBandIndicatorNR OPTIONAL,
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+
+
+UERadioAccessCapabilityInformation ::= SEQUENCE {
+ criticalExtensions CHOICE {
+ c1 CHOICE{
+ ueRadioAccessCapabilityInformation
+ UERadioAccessCapabilityInformation-IEs,
+ spare7 NULL,
+ spare6 NULL, spare5 NULL, spare4 NULL,
+ spare3 NULL, spare2 NULL, spare1 NULL
+ },
+ criticalExtensionsFuture SEQUENCE {}
+ }
+}
+
+UERadioAccessCapabilityInformation-IEs ::= SEQUENCE {
+ ue-RadioAccessCapabilityInfo OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList),
+ nonCriticalExtension SEQUENCE {} OPTIONAL
+}
+
+-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-START
+
+maxMeasFreqsMN INTEGER ::= 32 -- Maximum number of MN-configured measurement frequencies
+maxMeasFreqsSN INTEGER ::= 32 -- Maximum number of SN-configured measurement frequencies
+maxMeasIdentitiesMN INTEGER ::= 62 -- Maximum number of measurement identities that a UE can be configured with
+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
diff --git a/openair2/RRC/NR_UE/rrc_UE.c b/openair2/RRC/NR_UE/rrc_UE.c
index d2ab1f50e4..8b4279dc31 100755
--- a/openair2/RRC/NR_UE/rrc_UE.c
+++ b/openair2/RRC/NR_UE/rrc_UE.c
@@ -385,6 +385,16 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
break;
case NR_DL_DCCH_MessageType__c1_PR_NOTHING:
+#if (NR_RRC_VERSION >= MAKE_VERSION(15, 3, 0))
+ case NR_DL_DCCH_MessageType__c1_PR_rrcResume:
+ case NR_DL_DCCH_MessageType__c1_PR_rrcRelease:
+ case NR_DL_DCCH_MessageType__c1_PR_rrcReestablishment:
+ case NR_DL_DCCH_MessageType__c1_PR_securityModeCommand:
+ case NR_DL_DCCH_MessageType__c1_PR_dlInformationTransfer:
+ case NR_DL_DCCH_MessageType__c1_PR_ueCapabilityEnquiry:
+ case NR_DL_DCCH_MessageType__c1_PR_counterCheck:
+ case NR_DL_DCCH_MessageType__c1_PR_mobilityFromNRCommand:
+#else
case NR_DL_DCCH_MessageType__c1_PR_spare15:
case NR_DL_DCCH_MessageType__c1_PR_spare14:
case NR_DL_DCCH_MessageType__c1_PR_spare13:
@@ -393,6 +403,7 @@ int8_t nr_rrc_ue_decode_NR_DL_DCCH_Message(
case NR_DL_DCCH_MessageType__c1_PR_spare10:
case NR_DL_DCCH_MessageType__c1_PR_spare9:
case NR_DL_DCCH_MessageType__c1_PR_spare8:
+#endif
case NR_DL_DCCH_MessageType__c1_PR_spare7:
case NR_DL_DCCH_MessageType__c1_PR_spare6:
case NR_DL_DCCH_MessageType__c1_PR_spare5:
diff --git a/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.3.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.3.0.asn1
new file mode 100644
index 0000000000..9a2eb33e59
--- /dev/null
+++ b/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.3.0.asn1
@@ -0,0 +1,8097 @@
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+X2AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+
+FROM X2AP-CommonDataTypes
+
+ CellActivationRequest,
+ CellActivationResponse,
+ CellActivationFailure,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverReport,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ LoadInformation,
+ PrivateMessage,
+ ResetRequest,
+ ResetResponse,
+ ResourceStatusFailure,
+ ResourceStatusRequest,
+ ResourceStatusResponse,
+ ResourceStatusUpdate,
+ RLFIndication,
+ SNStatusTransfer,
+ UEContextRelease,
+ X2SetupFailure,
+ X2SetupRequest,
+ X2SetupResponse,
+ MobilityChangeRequest,
+ MobilityChangeAcknowledge,
+ MobilityChangeFailure,
+ X2Release,
+ X2APMessageTransfer,
+ SeNBAdditionRequest,
+ SeNBAdditionRequestAcknowledge,
+ SeNBAdditionRequestReject,
+ SeNBReconfigurationComplete,
+ SeNBModificationRequest,
+ SeNBModificationRequestAcknowledge,
+ SeNBModificationRequestReject,
+ SeNBModificationRequired,
+ SeNBModificationConfirm,
+ SeNBModificationRefuse,
+ SeNBReleaseRequest,
+ SeNBReleaseRequired,
+ SeNBReleaseConfirm,
+ SeNBCounterCheckRequest,
+ X2RemovalFailure,
+ X2RemovalRequest,
+ X2RemovalResponse,
+ RetrieveUEContextRequest,
+ RetrieveUEContextResponse,
+ RetrieveUEContextFailure,
+ SgNBAdditionRequest,
+ SgNBAdditionRequestAcknowledge,
+ SgNBAdditionRequestReject,
+ SgNBReconfigurationComplete,
+ SgNBModificationRequest,
+ SgNBModificationRequestAcknowledge,
+ SgNBModificationRequestReject,
+ SgNBModificationRequired,
+ SgNBModificationConfirm,
+ SgNBModificationRefuse,
+ SgNBReleaseRequest,
+ SgNBReleaseRequestAcknowledge,
+ SgNBReleaseRequestReject,
+ SgNBReleaseRequired,
+ SgNBReleaseConfirm,
+ SgNBCounterCheckRequest,
+ SgNBChangeRequired,
+ SgNBChangeConfirm,
+ SgNBChangeRefuse,
+ RRCTransfer,
+ ENDCX2SetupRequest,
+ ENDCX2SetupResponse,
+ ENDCX2SetupFailure,
+ ENDCConfigurationUpdate,
+ ENDCConfigurationUpdateAcknowledge,
+ ENDCConfigurationUpdateFailure,
+ SecondaryRATDataUsageReport,
+ ENDCCellActivationRequest,
+ ENDCCellActivationResponse,
+ ENDCCellActivationFailure,
+ ENDCPartialResetRequired,
+ ENDCPartialResetConfirm,
+ EUTRANRCellResourceCoordinationRequest,
+ EUTRANRCellResourceCoordinationResponse,
+ SgNBActivityNotification,
+ ENDCX2RemovalRequest,
+ ENDCX2RemovalResponse,
+ ENDCX2RemovalFailure,
+ DataForwardingAddressIndication
+
+
+FROM X2AP-PDU-Contents
+
+ id-cellActivation,
+ id-eNBConfigurationUpdate,
+ id-errorIndication,
+ id-handoverCancel,
+ id-handoverReport,
+ id-handoverPreparation,
+
+ id-loadIndication,
+ id-privateMessage,
+ id-reset,
+
+ id-resourceStatusReporting,
+ id-resourceStatusReportingInitiation,
+ id-rLFIndication,
+ id-snStatusTransfer,
+ id-uEContextRelease,
+ id-x2Setup,
+ id-mobilitySettingsChange,
+ id-x2Release,
+ id-x2APMessageTransfer,
+ id-seNBAdditionPreparation,
+ id-seNBReconfigurationCompletion,
+ id-meNBinitiatedSeNBModificationPreparation,
+ id-seNBinitiatedSeNBModification,
+ id-meNBinitiatedSeNBRelease,
+ id-seNBinitiatedSeNBRelease,
+ id-seNBCounterCheck,
+ id-x2Removal,
+ id-retrieveUEContext,
+ id-sgNBAdditionPreparation,
+ id-sgNBReconfigurationCompletion,
+ id-meNBinitiatedSgNBModificationPreparation,
+ id-sgNBinitiatedSgNBModification,
+ id-meNBinitiatedSgNBRelease,
+ id-sgNBinitiatedSgNBRelease,
+ id-sgNBChange,
+ id-sgNBCounterCheck,
+ id-rRCTransfer,
+ id-endcX2Setup,
+ id-endcConfigurationUpdate,
+ id-secondaryRATDataUsageReport,
+ id-endcCellActivation,
+ id-endcPartialReset,
+ id-eUTRANRCellResourceCoordination,
+ id-SgNBActivityNotification,
+ id-endcX2Removal,
+ id-dataForwardingAddressIndication
+
+
+FROM X2AP-Constants;
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+X2AP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+X2AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
+ criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
+ criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
+ criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
+ X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
+ ...
+}
+
+X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
+ handoverPreparation |
+ reset |
+ x2Setup |
+ resourceStatusReportingInitiation |
+ eNBConfigurationUpdate |
+ mobilitySettingsChange |
+ cellActivation |
+ seNBAdditionPreparation |
+ meNBinitiatedSeNBModificationPreparation |
+ seNBinitiatedSeNBModification |
+ seNBinitiatedSeNBRelease |
+ x2Removal |
+ retrieveUEContext |
+ sgNBAdditionPreparation |
+ meNBinitiatedSgNBModificationPreparation |
+ sgNBinitiatedSgNBModification |
+ meNBinitiatedSgNBRelease |
+ sgNBinitiatedSgNBRelease |
+ sgNBChange |
+ endcX2Setup |
+ endcConfigurationUpdate |
+ endcCellActivation |
+ endcPartialReset |
+ eUTRANRCellResourceCoordination |
+ endcX2Removal ,
+ ...
+}
+
+X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
+ snStatusTransfer |
+ uEContextRelease |
+ handoverCancel |
+ errorIndication |
+ resourceStatusReporting |
+ loadIndication |
+ privateMessage |
+ rLFIndication |
+ handoverReport |
+ x2Release |
+ x2APMessageTransfer |
+ seNBReconfigurationCompletion |
+ meNBinitiatedSeNBRelease |
+ seNBCounterCheck |
+ sgNBReconfigurationCompletion |
+ sgNBCounterCheck |
+ rRCTransfer |
+ secondaryRATDataUsageReport |
+ sgNBActivityNotification |
+ dataForwardingAddressIndication,
+ ...
+
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequest
+ SUCCESSFUL OUTCOME HandoverRequestAcknowledge
+ UNSUCCESSFUL OUTCOME HandoverPreparationFailure
+ PROCEDURE CODE id-handoverPreparation
+ CRITICALITY reject
+}
+
+snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SNStatusTransfer
+ PROCEDURE CODE id-snStatusTransfer
+ CRITICALITY ignore
+}
+
+uEContextRelease X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextRelease
+ PROCEDURE CODE id-uEContextRelease
+ CRITICALITY ignore
+}
+
+
+handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverCancel
+ PROCEDURE CODE id-handoverCancel
+ CRITICALITY ignore
+}
+
+handoverReport X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverReport
+ PROCEDURE CODE id-handoverReport
+ CRITICALITY ignore
+}
+
+errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-errorIndication
+ CRITICALITY ignore
+}
+
+reset X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResetRequest
+ SUCCESSFUL OUTCOME ResetResponse
+ PROCEDURE CODE id-reset
+ CRITICALITY reject
+}
+
+x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE X2SetupRequest
+ SUCCESSFUL OUTCOME X2SetupResponse
+ UNSUCCESSFUL OUTCOME X2SetupFailure
+ PROCEDURE CODE id-x2Setup
+ CRITICALITY reject
+}
+
+
+loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LoadInformation
+ PROCEDURE CODE id-loadIndication
+ CRITICALITY ignore
+}
+
+eNBConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationUpdate
+ SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
+ PROCEDURE CODE id-eNBConfigurationUpdate
+ CRITICALITY reject
+}
+
+resourceStatusReportingInitiation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResourceStatusRequest
+ SUCCESSFUL OUTCOME ResourceStatusResponse
+ UNSUCCESSFUL OUTCOME ResourceStatusFailure
+ PROCEDURE CODE id-resourceStatusReportingInitiation
+ CRITICALITY reject
+}
+
+resourceStatusReporting X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ResourceStatusUpdate
+ PROCEDURE CODE id-resourceStatusReporting
+ CRITICALITY ignore
+}
+
+rLFIndication X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RLFIndication
+ PROCEDURE CODE id-rLFIndication
+ CRITICALITY ignore
+}
+
+privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-privateMessage
+ CRITICALITY ignore
+}
+
+mobilitySettingsChange X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MobilityChangeRequest
+ SUCCESSFUL OUTCOME MobilityChangeAcknowledge
+ UNSUCCESSFUL OUTCOME MobilityChangeFailure
+ PROCEDURE CODE id-mobilitySettingsChange
+ CRITICALITY reject
+}
+
+cellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE CellActivationRequest
+ SUCCESSFUL OUTCOME CellActivationResponse
+ UNSUCCESSFUL OUTCOME CellActivationFailure
+ PROCEDURE CODE id-cellActivation
+ CRITICALITY reject
+}
+
+x2Release X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE X2Release
+ PROCEDURE CODE id-x2Release
+ CRITICALITY reject
+}
+
+x2APMessageTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE X2APMessageTransfer
+ PROCEDURE CODE id-x2APMessageTransfer
+ CRITICALITY reject
+}
+
+seNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SeNBAdditionRequest
+ SUCCESSFUL OUTCOME SeNBAdditionRequestAcknowledge
+ UNSUCCESSFUL OUTCOME SeNBAdditionRequestReject
+ PROCEDURE CODE id-seNBAdditionPreparation
+ CRITICALITY reject
+}
+
+seNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SeNBReconfigurationComplete
+ PROCEDURE CODE id-seNBReconfigurationCompletion
+ CRITICALITY ignore
+}
+
+meNBinitiatedSeNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SeNBModificationRequest
+ SUCCESSFUL OUTCOME SeNBModificationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME SeNBModificationRequestReject
+ PROCEDURE CODE id-meNBinitiatedSeNBModificationPreparation
+ CRITICALITY reject
+}
+
+seNBinitiatedSeNBModification X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SeNBModificationRequired
+ SUCCESSFUL OUTCOME SeNBModificationConfirm
+ UNSUCCESSFUL OUTCOME SeNBModificationRefuse
+ PROCEDURE CODE id-seNBinitiatedSeNBModification
+ CRITICALITY reject
+}
+
+meNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SeNBReleaseRequest
+ PROCEDURE CODE id-meNBinitiatedSeNBRelease
+ CRITICALITY ignore
+}
+
+seNBinitiatedSeNBRelease X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SeNBReleaseRequired
+ SUCCESSFUL OUTCOME SeNBReleaseConfirm
+ PROCEDURE CODE id-seNBinitiatedSeNBRelease
+ CRITICALITY reject
+}
+
+seNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SeNBCounterCheckRequest
+ PROCEDURE CODE id-seNBCounterCheck
+ CRITICALITY reject
+}
+
+x2Removal X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE X2RemovalRequest
+ SUCCESSFUL OUTCOME X2RemovalResponse
+ UNSUCCESSFUL OUTCOME X2RemovalFailure
+ PROCEDURE CODE id-x2Removal
+ CRITICALITY reject
+}
+
+retrieveUEContext X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RetrieveUEContextRequest
+ SUCCESSFUL OUTCOME RetrieveUEContextResponse
+ UNSUCCESSFUL OUTCOME RetrieveUEContextFailure
+ PROCEDURE CODE id-retrieveUEContext
+ CRITICALITY reject
+}
+
+sgNBAdditionPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBAdditionRequest
+ SUCCESSFUL OUTCOME SgNBAdditionRequestAcknowledge
+ UNSUCCESSFUL OUTCOME SgNBAdditionRequestReject
+ PROCEDURE CODE id-sgNBAdditionPreparation
+ CRITICALITY reject
+}
+
+sgNBReconfigurationCompletion X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBReconfigurationComplete
+ PROCEDURE CODE id-sgNBReconfigurationCompletion
+ CRITICALITY ignore
+}
+
+meNBinitiatedSgNBModificationPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBModificationRequest
+ SUCCESSFUL OUTCOME SgNBModificationRequestAcknowledge
+ UNSUCCESSFUL OUTCOME SgNBModificationRequestReject
+ PROCEDURE CODE id-meNBinitiatedSgNBModificationPreparation
+ CRITICALITY reject
+}
+
+sgNBinitiatedSgNBModification X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBModificationRequired
+ SUCCESSFUL OUTCOME SgNBModificationConfirm
+ UNSUCCESSFUL OUTCOME SgNBModificationRefuse
+ PROCEDURE CODE id-sgNBinitiatedSgNBModification
+ CRITICALITY reject
+}
+
+meNBinitiatedSgNBRelease X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBReleaseRequest
+ SUCCESSFUL OUTCOME SgNBReleaseRequestAcknowledge
+ UNSUCCESSFUL OUTCOME SgNBReleaseRequestReject
+ PROCEDURE CODE id-meNBinitiatedSgNBRelease
+ CRITICALITY ignore
+}
+
+sgNBinitiatedSgNBRelease X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBReleaseRequired
+ SUCCESSFUL OUTCOME SgNBReleaseConfirm
+ PROCEDURE CODE id-sgNBinitiatedSgNBRelease
+ CRITICALITY reject
+}
+
+sgNBCounterCheck X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBCounterCheckRequest
+ PROCEDURE CODE id-sgNBCounterCheck
+ CRITICALITY reject
+}
+
+sgNBChange X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBChangeRequired
+ SUCCESSFUL OUTCOME SgNBChangeConfirm
+ UNSUCCESSFUL OUTCOME SgNBChangeRefuse
+ PROCEDURE CODE id-sgNBChange
+ CRITICALITY reject
+}
+
+rRCTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RRCTransfer
+ PROCEDURE CODE id-rRCTransfer
+ CRITICALITY reject
+}
+
+endcX2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENDCX2SetupRequest
+ SUCCESSFUL OUTCOME ENDCX2SetupResponse
+ UNSUCCESSFUL OUTCOME ENDCX2SetupFailure
+ PROCEDURE CODE id-endcX2Setup
+ CRITICALITY reject
+}
+
+
+endcConfigurationUpdate X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENDCConfigurationUpdate
+ SUCCESSFUL OUTCOME ENDCConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENDCConfigurationUpdateFailure
+ PROCEDURE CODE id-endcConfigurationUpdate
+ CRITICALITY reject
+}
+
+secondaryRATDataUsageReport X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecondaryRATDataUsageReport
+ PROCEDURE CODE id-secondaryRATDataUsageReport
+ CRITICALITY reject
+}
+
+endcCellActivation X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENDCCellActivationRequest
+ SUCCESSFUL OUTCOME ENDCCellActivationResponse
+ UNSUCCESSFUL OUTCOME ENDCCellActivationFailure
+ PROCEDURE CODE id-endcCellActivation
+ CRITICALITY reject
+}
+
+endcPartialReset X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENDCPartialResetRequired
+ SUCCESSFUL OUTCOME ENDCPartialResetConfirm
+ PROCEDURE CODE id-endcPartialReset
+ CRITICALITY reject
+}
+
+eUTRANRCellResourceCoordination X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE EUTRANRCellResourceCoordinationRequest
+ SUCCESSFUL OUTCOME EUTRANRCellResourceCoordinationResponse
+ PROCEDURE CODE id-eUTRANRCellResourceCoordination
+ CRITICALITY reject
+}
+
+sgNBActivityNotification X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SgNBActivityNotification
+ PROCEDURE CODE id-SgNBActivityNotification
+ CRITICALITY reject
+}
+
+
+endcX2Removal X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENDCX2RemovalRequest
+ SUCCESSFUL OUTCOME ENDCX2RemovalResponse
+ UNSUCCESSFUL OUTCOME ENDCX2RemovalFailure
+ PROCEDURE CODE id-endcX2Removal
+ CRITICALITY reject
+}
+
+dataForwardingAddressIndication X2AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DataForwardingAddressIndication
+ PROCEDURE CODE id-dataForwardingAddressIndication
+ CRITICALITY ignore
+}
+
+END
+
+
+-- **************************************************************
+--
+-- PDU definitions for X2AP.
+--
+-- **************************************************************
+
+X2AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ABSInformation,
+ ABS-Status,
+ AS-SecurityInformation,
+ BearerType,
+ Cause,
+ CompositeAvailableCapacityGroup,
+ Correlation-ID,
+ COUNTvalue,
+ CellReportingIndicator,
+ AerialUEsubscriptionInformation,
+ CriticalityDiagnostics,
+ CRNTI,
+ CSGMembershipStatus,
+ CSG-Id,
+ DeactivationIndication,
+ DL-Forwarding,
+ DynamicDLTransmissionInformation,
+ ECGI,
+ E-RAB-ID,
+ E-RAB-Level-QoS-Parameters,
+ E-RAB-List,
+ EUTRANTraceID,
+ GlobalENB-ID,
+ GTPtunnelEndpoint,
+ GUGroupIDList,
+ GUMMEI,
+ HandoverReportType,
+ HandoverRestrictionList,
+ Masked-IMEISV,
+ InvokeIndication,
+ LocationReportingInformation,
+ MDT-Configuration,
+ ManagementBasedMDTallowed,
+ MDTPLMNList,
+ Neighbour-Information,
+ PCI,
+ PDCP-SN,
+ PLMN-Identity,
+ ReceiveStatusofULPDCPSDUs,
+ Registration-Request,
+ RelativeNarrowbandTxPower,
+ RadioResourceStatus,
+ RLC-Status,
+ RRCConnReestabIndicator,
+ RRCConnSetupIndicator,
+ UE-RLF-Report-Container,
+ UEAppLayerMeasConfig,
+ RRC-Context,
+ ServedCell-Information,
+ ServedCells,
+ ShortMAC-I,
+ SRVCCOperationPossible,
+ SubscriberProfileIDforRFP,
+ TargetCellInUTRAN,
+ TargeteNBtoSource-eNBTransparentContainer,
+ TimeToWait,
+ TraceActivation,
+ TraceDepth,
+ TransportLayerAddress,
+ UEAggregateMaximumBitRate,
+ UE-HistoryInformation,
+ UE-HistoryInformationFromTheUE,
+ UE-S1AP-ID,
+ UESecurityCapabilities,
+ UEsToBeResetList,
+ UE-X2AP-ID,
+ UL-HighInterferenceIndicationInfo,
+ UL-InterferenceOverloadIndication,
+ HWLoadIndicator,
+ S1TNLLoadIndicator,
+ Measurement-ID,
+ ReportCharacteristics,
+ MobilityParametersInformation,
+ MobilityParametersModificationRange,
+ ReceiveStatusOfULPDCPSDUsExtended,
+ COUNTValueExtended,
+ SubframeAssignment,
+ ExtendedULInterferenceOverloadInfo,
+ ExpectedUEBehaviour,
+ SeNBSecurityKey,
+ MeNBtoSeNBContainer,
+ SeNBtoMeNBContainer,
+ SCGChangeIndication,
+ CoMPInformation,
+ ReportingPeriodicityRSRPMR,
+ RSRPMRList,
+ UE-RLF-Report-Container-for-extended-bands,
+ ProSeAuthorized,
+ CoverageModificationList,
+ ReportingPeriodicityCSIR,
+ CSIReportList,
+ ReceiveStatusOfULPDCPSDUsPDCP-SNlength18,
+ COUNTvaluePDCP-SNlength18,
+ LHN-ID,
+ UE-ContextKeptIndicator,
+ UE-X2AP-ID-Extension,
+ SIPTOBearerDeactivationIndication,
+ TunnelInformation,
+ V2XServicesAuthorized,
+ X2BenefitValue,
+ ResumeID,
+ EUTRANCellIdentifier,
+ MakeBeforeBreakIndicator,
+ WTID,
+ WT-UE-XwAP-ID,
+ UESidelinkAggregateMaximumBitRate,
+ SgNBSecurityKey,
+ MeNBtoSgNBContainer,
+ SgNBtoMeNBContainer,
+ SplitSRBs,
+ RRCContainer,
+ SRBType,
+ GlobalGNB-ID,
+ GNB-ID,
+ SCGConfigurationQuery,
+ SplitSRB,
+ UENRMeasurement,
+ EN-DC-ResourceConfiguration,
+ TAC,
+ NRFreqInfo,
+ NRCGI,
+ NRPCI,
+ NRUESecurityCapabilities,
+ PDCPChangeIndication,
+ ULConfiguration,
+ SgNB-UE-X2AP-ID,
+ SecondaryRATUsageReportList,
+ ActivationID,
+ MeNBResourceCoordinationInformation,
+ SgNBResourceCoordinationInformation,
+ NR-TxBW,
+ BroadcastPLMNs-Item,
+ RLCMode,
+ GBR-QosInformation,
+ DRB-ID,
+ FiveGS-TAC,
+ SULInformation,
+ Packet-LossRate,
+ ResourceType,
+ DataTrafficResourceIndication,
+ SpectrumSharingGroupID,
+ RRC-Config-Ind,
+ SGNB-Addition-Trigger-Ind,
+ UserPlaneTrafficActivityReport,
+ ERABActivityNotifyItemList,
+ PDCPSnLength,
+ Subscription-Based-UE-DifferentiationInfo
+
+
+FROM X2AP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-Single-Container{},
+ X2AP-PRIVATE-IES,
+ X2AP-PROTOCOL-EXTENSION,
+ X2AP-PROTOCOL-IES,
+ X2AP-PROTOCOL-IES-PAIR
+FROM X2AP-Containers
+
+ id-ABSInformation,
+ id-ActivatedCellList,
+ id-BearerType,
+ id-Cause,
+ id-CellInformation,
+ id-CellInformation-Item,
+ id-CellMeasurementResult,
+ id-CellMeasurementResult-Item,
+ id-CellToReport,
+ id-CellToReport-Item,
+ id-CompositeAvailableCapacityGroup,
+ id-AerialUEsubscriptionInformation,
+ id-CriticalityDiagnostics,
+ id-DeactivationIndication,
+ id-DynamicDLTransmissionInformation,
+ id-E-RABs-Admitted-Item,
+ id-E-RABs-Admitted-List,
+ id-E-RABs-NotAdmitted-List,
+ id-E-RABs-SubjectToStatusTransfer-List,
+ id-E-RABs-SubjectToStatusTransfer-Item,
+ id-E-RABs-ToBeSetup-Item,
+ id-GlobalENB-ID,
+ id-GUGroupIDList,
+ id-GUGroupIDToAddList,
+ id-GUGroupIDToDeleteList,
+ id-GUMMEI-ID,
+ id-Masked-IMEISV,
+ id-InvokeIndication,
+ id-New-eNB-UE-X2AP-ID,
+ id-Old-eNB-UE-X2AP-ID,
+ id-Registration-Request,
+ id-ReportingPeriodicity,
+ id-RLC-Status,
+ id-ServedCells,
+ id-ServedCellsToActivate,
+ id-ServedCellsToAdd,
+ id-ServedCellsToModify,
+ id-ServedCellsToDelete,
+ id-SRVCCOperationPossible,
+ id-TargetCell-ID,
+ id-TargeteNBtoSource-eNBTransparentContainer,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-UE-ContextInformation,
+ id-UE-HistoryInformation,
+ id-UE-X2AP-ID,
+ id-Measurement-ID,
+ id-ReportCharacteristics,
+ id-ENB1-Measurement-ID,
+ id-ENB2-Measurement-ID,
+ id-ENB1-Cell-ID,
+ id-ENB2-Cell-ID,
+ id-ENB2-Proposed-Mobility-Parameters,
+ id-ENB1-Mobility-Parameters,
+ id-ENB2-Mobility-Parameters-Modification-Range,
+ id-FailureCellPCI,
+ id-Re-establishmentCellECGI,
+ id-FailureCellCRNTI,
+ id-ShortMAC-I,
+ id-SourceCellECGI,
+ id-FailureCellECGI,
+ id-HandoverReportType,
+ id-UE-RLF-Report-Container,
+ id-PartialSuccessIndicator,
+ id-MeasurementInitiationResult-List,
+ id-MeasurementInitiationResult-Item,
+ id-MeasurementFailureCause-Item,
+ id-CompleteFailureCauseInformation-List,
+ id-CompleteFailureCauseInformation-Item,
+ id-CSGMembershipStatus,
+ id-CSG-Id,
+ id-MDTConfiguration,
+ id-ManagementBasedMDTallowed,
+ id-ABS-Status,
+ id-RRCConnSetupIndicator,
+ id-RRCConnReestabIndicator,
+ id-TargetCellInUTRAN,
+ id-MobilityInformation,
+ id-SourceCellCRNTI,
+ id-ManagementBasedMDTPLMNList,
+ id-ReceiveStatusOfULPDCPSDUsExtended,
+ id-ULCOUNTValueExtended,
+ id-DLCOUNTValueExtended,
+ id-IntendedULDLConfiguration,
+ id-ExtendedULInterferenceOverloadInfo,
+ id-RNL-Header,
+ id-x2APMessage,
+ id-UE-HistoryInformationFromTheUE,
+ id-ExpectedUEBehaviour,
+ id-MeNB-UE-X2AP-ID,
+ id-SeNB-UE-X2AP-ID,
+ id-UE-SecurityCapabilities,
+ id-SeNBSecurityKey,
+ id-SeNBUEAggregateMaximumBitRate,
+ id-ServingPLMN,
+ id-E-RABs-ToBeAdded-List,
+ id-E-RABs-ToBeAdded-Item,
+ id-MeNBtoSeNBContainer,
+ id-E-RABs-Admitted-ToBeAdded-List,
+ id-E-RABs-Admitted-ToBeAdded-Item,
+ id-SeNBtoMeNBContainer,
+ id-ResponseInformationSeNBReconfComp,
+ id-UE-ContextInformationSeNBModReq,
+ id-E-RABs-ToBeAdded-ModReqItem,
+ id-E-RABs-ToBeModified-ModReqItem,
+ id-E-RABs-ToBeReleased-ModReqItem,
+ id-E-RABs-Admitted-ToBeAdded-ModAckList,
+ id-E-RABs-Admitted-ToBeModified-ModAckList,
+ id-E-RABs-Admitted-ToBeReleased-ModAckList,
+ id-E-RABs-Admitted-ToBeAdded-ModAckItem,
+ id-E-RABs-Admitted-ToBeModified-ModAckItem,
+ id-E-RABs-Admitted-ToBeReleased-ModAckItem,
+ id-SCGChangeIndication,
+ id-E-RABs-ToBeReleased-ModReqd,
+ id-E-RABs-ToBeReleased-ModReqdItem,
+ id-E-RABs-ToBeReleased-List-RelReq,
+ id-E-RABs-ToBeReleased-RelReqItem,
+ id-E-RABs-ToBeReleased-List-RelConf,
+ id-E-RABs-ToBeReleased-RelConfItem,
+ id-E-RABs-SubjectToCounterCheck-List,
+ id-E-RABs-SubjectToCounterCheckItem,
+ id-CoMPInformation,
+ id-ReportingPeriodicityRSRPMR,
+ id-RSRPMRList,
+ id-UE-RLF-Report-Container-for-extended-bands,
+ id-ProSeAuthorized,
+ id-CoverageModificationList,
+ id-ReportingPeriodicityCSIR,
+ id-CSIReportList,
+ id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18,
+ id-ULCOUNTValuePDCP-SNlength18,
+ id-DLCOUNTValuePDCP-SNlength18,
+ id-LHN-ID,
+ id-Correlation-ID,
+ id-SIPTO-Correlation-ID,
+ id-UE-ContextReferenceAtSeNB,
+ id-UE-ContextReferenceAtWT,
+ id-UE-ContextKeptIndicator,
+ id-UEs-ToBeReset,
+ id-UEs-Admitted-ToBeReset,
+ id-WT-UE-ContextKeptIndicator,
+ id-New-eNB-UE-X2AP-ID-Extension,
+ id-Old-eNB-UE-X2AP-ID-Extension,
+ id-MeNB-UE-X2AP-ID-Extension,
+ id-SeNB-UE-X2AP-ID-Extension,
+ id-SIPTO-BearerDeactivationIndication,
+ id-Tunnel-Information-for-BBF,
+ id-SIPTO-L-GW-TransportLayerAddress,
+ id-GW-TransportLayerAddress,
+ id-X2RemovalThreshold,
+ id-CellReportingIndicator,
+ id-V2XServicesAuthorized,
+ id-resumeID,
+ id-UE-ContextInformationRetrieve,
+ id-E-RABs-ToBeSetupRetrieve-Item,
+ id-NewEUTRANCellIdentifier,
+ id-MakeBeforeBreakIndicator,
+ id-UESidelinkAggregateMaximumBitRate,
+ id-uL-GTPtunnelEndpoint,
+ id-SgNBSecurityKey,
+ id-SgNBUEAggregateMaximumBitRate,
+ id-E-RABs-ToBeAdded-SgNBAddReqList,
+ id-MeNBtoSgNBContainer,
+ id-SgNB-UE-X2AP-ID,
+ id-RequestedSplitSRBs,
+ id-E-RABs-ToBeAdded-SgNBAddReq-Item,
+ id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList,
+ id-SgNBtoMeNBContainer,
+ id-AdmittedSplitSRBs ,
+ id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item,
+ id-ResponseInformationSgNBReconfComp,
+ id-UE-ContextInformation-SgNBModReq,
+ id-E-RABs-ToBeAdded-SgNBModReq-Item,
+ id-E-RABs-ToBeModified-SgNBModReq-Item,
+ id-E-RABs-ToBeReleased-SgNBModReq-Item,
+ id-E-RABs-Admitted-ToBeAdded-SgNBModAckList,
+ id-E-RABs-Admitted-ToBeModified-SgNBModAckList,
+ id-E-RABs-Admitted-ToBeReleased-SgNBModAckList,
+ id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item,
+ id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item,
+ id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item,
+ id-E-RABs-ToBeReleased-SgNBModReqdList,
+ id-E-RABs-ToBeModified-SgNBModReqdList,
+ id-E-RABs-ToBeReleased-SgNBModReqd-Item,
+ id-E-RABs-ToBeModified-SgNBModReqd-Item,
+ id-E-RABs-ToBeReleased-SgNBChaConfList,
+ id-E-RABs-ToBeReleased-SgNBChaConf-Item,
+ id-E-RABs-ToBeReleased-SgNBRelReqList,
+ id-E-RABs-ToBeReleased-SgNBRelReq-Item,
+ id-E-RABs-ToBeReleased-SgNBRelConfList,
+ id-E-RABs-ToBeReleased-SgNBRelConf-Item,
+ id-E-RABs-SubjectToSgNBCounterCheck-List,
+ id-E-RABs-SubjectToSgNBCounterCheck-Item,
+ id-Target-SgNB-ID,
+ id-RRCContainer,
+ id-SRBType,
+ id-HandoverRestrictionList,
+ id-SCGConfigurationQuery,
+ id-SplitSRB,
+ id-UENRMeasurement,
+ id-InitiatingNodeType-EndcX2Setup,
+ id-InitiatingNodeType-EndcConfigUpdate,
+ id-RespondingNodeType-EndcX2Setup,
+ id-RespondingNodeType-EndcConfigUpdate,
+ id-NRUESecurityCapabilities,
+ id-PDCPChangeIndication,
+ id-ServedEUTRAcellsENDCX2ManagementList,
+ id-ServedEUTRAcellsToModifyListENDCConfUpd,
+ id-ServedEUTRAcellsToDeleteListENDCConfUpd,
+ id-ServedNRcellsToModifyListENDCConfUpd,
+ id-ServedNRcellsToDeleteListENDCConfUpd,
+ id-CellAssistanceInformation,
+ id-Globalen-gNB-ID,
+ id-ServedNRcellsENDCX2ManagementList,
+ id-Old-SgNB-UE-X2AP-ID,
+ id-UE-ContextReferenceAtSgNB,
+ id-SecondaryRATUsageReportList,
+ id-ActivationID,
+ id-ServedNRCellsToActivate,
+ id-ActivatedNRCellList,
+ id-MeNBResourceCoordinationInformation,
+ id-SgNBResourceCoordinationInformation,
+ id-UEAppLayerMeasConfig,
+ id-SelectedPLMN,
+ id-SubscriberProfileIDforRFP,
+ id-InitiatingNodeType-EutranrCellResourceCoordination,
+ id-RespondingNodeType-EutranrCellResourceCoordination,
+ id-DataTrafficResourceIndication,
+ id-SpectrumSharingGroupID,
+ id-ListofEUTRACellsinEUTRACoordinationReq,
+ id-ListofEUTRACellsinEUTRACoordinationResp,
+ id-ListofEUTRACellsinNRCoordinationReq,
+ id-ListofNRCellsinNRCoordinationReq,
+ id-ListofNRCellsinNRCoordinationResp,
+ id-RRCConfigIndication,
+ id-SGNB-Addition-Trigger-Ind,
+ id-RequestedSplitSRBsrelease,
+ id-AdmittedSplitSRBsrelease,
+ id-E-RABs-AdmittedToBeModified-SgNBModConfList,
+ id-E-RABs-AdmittedToBeModified-SgNBModConf-Item,
+ id-UEContextLevelUserPlaneActivity,
+ id-ERABActivityNotifyItemList,
+ id-MeNBCell-ID,
+ id-InitiatingNodeType-EndcX2Removal,
+ id-RespondingNodeType-EndcX2Removal,
+ id-pDCPSnLength,
+ id-dL-Forwarding,
+ id-E-RABs-DataForwardingAddress-List,
+ id-E-RABs-DataForwardingAddress-Item,
+ id-Subscription-Based-UE-DifferentiationInfo,
+
+
+ maxCellineNB,
+ maxnoofBearers,
+ maxnoofPDCP-SN,
+ maxFailedMeasObjects,
+ maxnoofCellIDforMDT,
+ maxnoofTAforMDT,
+ maxofNRNeighbours,
+ maxCellinengNB,
+ maxnoofCellIDforQMC,
+ maxnoofTAforQMC,
+ maxnoofPLMNforQMC,
+ maxnoofProtectedResourcePatterns,
+ maxnoNRcellsSpectrumSharingWithE-UTRA,
+ maxnoofNrCellBands
+
+FROM X2AP-Constants;
+
+-- **************************************************************
+--
+-- HANDOVER REQUEST
+--
+-- **************************************************************
+
+HandoverRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}},
+ ...
+}
+
+HandoverRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}|
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}|
+ { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory}|
+ { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-UE-HistoryInformationFromTheUE CRITICALITY ignore TYPE UE-HistoryInformationFromTheUE PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UE-ContextReferenceAtSeNB CRITICALITY ignore TYPE UE-ContextReferenceAtSeNB PRESENCE optional}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UE-ContextReferenceAtWT CRITICALITY ignore TYPE UE-ContextReferenceAtWT PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-UE-ContextReferenceAtSgNB CRITICALITY ignore TYPE UE-ContextReferenceAtSgNB PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+UE-ContextInformation ::= SEQUENCE {
+ mME-UE-S1AP-ID UE-S1AP-ID,
+ uESecurityCapabilities UESecurityCapabilities,
+ aS-SecurityInformation AS-SecurityInformation,
+ uEaggregateMaximumBitRate UEAggregateMaximumBitRate,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List,
+ rRC-Context RRC-Context,
+ handoverRestrictionList HandoverRestrictionList OPTIONAL,
+ locationReportingInformation LocationReportingInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }|
+{ ID id-ManagementBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional }|
+{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetup-ItemIEs} }
+
+E-RABs-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeSetup-Item CRITICALITY ignore TYPE E-RABs-ToBeSetup-Item PRESENCE mandatory },
+ ...
+}
+
+E-RABs-ToBeSetup-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ uL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetup-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+MobilityInformation ::= BIT STRING (SIZE(32))
+
+UE-ContextReferenceAtSeNB ::= SEQUENCE {
+ source-GlobalSeNB-ID GlobalENB-ID,
+ seNB-UE-X2AP-ID UE-X2AP-ID,
+ seNB-UE-X2AP-ID-Extension UE-X2AP-ID-Extension,
+ iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSeNB-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-ContextReferenceAtSeNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-ContextReferenceAtWT ::= SEQUENCE {
+ wTID WTID,
+ wT-UE-XwAP-ID WT-UE-XwAP-ID,
+ iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtWT-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-ContextReferenceAtWT-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-ContextReferenceAtSgNB ::= SEQUENCE {
+ source-GlobalSgNB-ID GlobalGNB-ID,
+ sgNB-UE-X2AP-ID SgNB-UE-X2AP-ID,
+ iE-Extensions ProtocolExtensionContainer { {UE-ContextReferenceAtSgNB-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-ContextReferenceAtSgNB-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER REQUEST ACKNOWLEDGE
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}},
+ ...
+}
+
+HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-Admitted-List CRITICALITY ignore TYPE E-RABs-Admitted-List PRESENCE mandatory}|
+ { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}|
+ { ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-WT-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional},
+ ...
+}
+
+E-RABs-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ItemIEs} }
+
+E-RABs-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-Item CRITICALITY ignore TYPE E-RABs-Admitted-Item PRESENCE mandatory }
+}
+
+E-RABs-Admitted-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION FAILURE
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}},
+ ...
+}
+
+HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Report
+--
+-- **************************************************************
+
+HandoverReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverReport-IEs}},
+ ...
+}
+
+HandoverReport-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-HandoverReportType CRITICALITY ignore TYPE HandoverReportType PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-SourceCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
+ { ID id-FailureCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
+ { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to “HO to Wrong Cell” -- |
+ { ID id-TargetCellInUTRAN CRITICALITY ignore TYPE TargetCellInUTRAN PRESENCE conditional} -- The IE shall be present if the Handover Report Type IE is set to "InterRAT ping-pong" --|
+ { ID id-SourceCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE optional}|
+ { ID id-MobilityInformation CRITICALITY ignore TYPE MobilityInformation PRESENCE optional}|
+ { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}|
+ { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SN Status Transfer
+--
+-- **************************************************************
+
+SNStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}},
+ ...
+}
+
+SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-SubjectToStatusTransfer-List CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-List PRESENCE mandatory}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional},
+ ...
+}
+
+E-RABs-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToStatusTransfer-ItemIEs} }
+
+E-RABs-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE E-RABs-SubjectToStatusTransfer-Item PRESENCE mandatory }
+}
+
+E-RABs-SubjectToStatusTransfer-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+
+ receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
+ uL-COUNTvalue COUNTvalue,
+ dL-COUNTvalue COUNTvalue,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}|
+ { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional}|
+ { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release
+--
+-- **************************************************************
+
+UEContextRelease ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}},
+ ...
+}
+
+UEContextRelease-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SIPTO-BearerDeactivationIndication CRITICALITY ignore TYPE SIPTOBearerDeactivationIndication PRESENCE optional}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL
+--
+-- **************************************************************
+
+HandoverCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}},
+ ...
+}
+
+HandoverCancel-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
+ ...
+}
+
+ErrorIndication-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}|
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-Old-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Request
+--
+-- **************************************************************
+
+ResetRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
+ ...
+}
+
+ResetRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- Reset Response
+--
+-- **************************************************************
+
+ResetResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
+ ...
+}
+
+ResetResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- X2 SETUP REQUEST
+--
+-- **************************************************************
+
+X2SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}},
+ ...
+}
+
+X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}|
+ { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}|
+ { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+...
+}
+
+
+
+-- **************************************************************
+--
+-- X2 SETUP RESPONSE
+--
+-- **************************************************************
+
+X2SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}},
+ ...
+}
+
+X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}|
+ { ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory}|
+ { ID id-GUGroupIDList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- X2 SETUP FAILURE
+--
+-- **************************************************************
+
+X2SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}},
+ ...
+}
+
+X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- LOAD INFORMATION
+--
+-- **************************************************************
+
+LoadInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{LoadInformation-IEs}},
+ ...
+}
+
+LoadInformation-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} ,
+ ...
+}
+
+CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} }
+
+CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory }
+}
+
+CellInformation-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication OPTIONAL,
+ ul-HighInterferenceIndicationInfo UL-HighInterferenceIndicationInfo OPTIONAL,
+ relativeNarrowbandTxPower RelativeNarrowbandTxPower OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }|
+{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }|
+{ ID id-IntendedULDLConfiguration CRITICALITY ignore EXTENSION SubframeAssignment PRESENCE optional }|
+{ ID id-ExtendedULInterferenceOverloadInfo CRITICALITY ignore EXTENSION ExtendedULInterferenceOverloadInfo PRESENCE optional }|
+{ ID id-CoMPInformation CRITICALITY ignore EXTENSION CoMPInformation PRESENCE optional }|
+{ ID id-DynamicDLTransmissionInformation CRITICALITY ignore EXTENSION DynamicDLTransmissionInformation PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE
+--
+-- **************************************************************
+
+ENBConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENBConfigurationUpdate-IEs}},
+ ...
+}
+
+ENBConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ServedCellsToAdd CRITICALITY reject TYPE ServedCells PRESENCE optional}|
+ { ID id-ServedCellsToModify CRITICALITY reject TYPE ServedCellsToModify PRESENCE optional}|
+ { ID id-ServedCellsToDelete CRITICALITY reject TYPE Old-ECGIs PRESENCE optional}|
+ { ID id-GUGroupIDToAddList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}|
+ { ID id-GUGroupIDToDeleteList CRITICALITY reject TYPE GUGroupIDList PRESENCE optional}|
+ { ID id-CoverageModificationList CRITICALITY reject TYPE CoverageModificationList PRESENCE optional},
+ ...
+}
+
+ServedCellsToModify::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToModify-Item
+
+ServedCellsToModify-Item::= SEQUENCE {
+ old-ecgi ECGI,
+ servedCellInfo ServedCell-Information,
+ neighbour-Info Neighbour-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ServedCellsToModify-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-DeactivationIndication CRITICALITY ignore EXTENSION DeactivationIndication PRESENCE optional },
+ ...
+}
+
+
+Old-ECGIs::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE ACKNOWLEDGE
+--
+-- **************************************************************
+
+ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateAcknowledge-IEs}},
+ ...
+}
+
+ENBConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE FAIURE
+--
+-- **************************************************************
+
+ENBConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENBConfigurationUpdateFailure-IEs}},
+ ...
+}
+
+ENBConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Resource Status Request
+--
+-- **************************************************************
+
+ResourceStatusRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusRequest-IEs}},
+ ...
+}
+
+ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”, “Partial stop” or to “Add”--
+ { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}|
+ { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}|
+ { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}|
+ { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}|
+ { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}|
+ { ID id-ReportingPeriodicityRSRPMR CRITICALITY ignore TYPE ReportingPeriodicityRSRPMR PRESENCE optional}|
+ { ID id-ReportingPeriodicityCSIR CRITICALITY ignore TYPE ReportingPeriodicityCSIR PRESENCE optional},
+ ...
+}
+
+
+CellToReport-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellToReport-ItemIEs} }
+
+CellToReport-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellToReport-Item CRITICALITY ignore TYPE CellToReport-Item PRESENCE mandatory}
+}
+
+CellToReport-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ iE-Extensions ProtocolExtensionContainer { {CellToReport-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellToReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+ReportingPeriodicity ::= ENUMERATED {
+ one-thousand-ms,
+ two-thousand-ms,
+ five-thousand-ms,
+ ten-thousand-ms,
+...
+}
+
+PartialSuccessIndicator ::= ENUMERATED {
+ partial-success-allowed,
+...
+}
+
+-- **************************************************************
+--
+-- Resource Status Response
+--
+-- **************************************************************
+
+ResourceStatusResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusResponse-IEs}},
+ ...
+}
+
+ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional},
+ ...
+}
+
+
+MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {MeasurementInitiationResult-ItemIEs} }
+
+MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory}
+}
+
+MeasurementInitiationResult-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ measurementFailureCause-List MeasurementFailureCause-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { {MeasurementFailureCause-ItemIEs} }
+
+MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory}
+}
+
+MeasurementFailureCause-Item ::= SEQUENCE {
+ measurementFailedReportCharacteristics ReportCharacteristics,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {MeasurementFailureCause-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Resource Status Failure
+--
+-- **************************************************************
+
+ResourceStatusFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusFailure-IEs}},
+ ...
+}
+
+ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional},
+ ...
+}
+
+CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} }
+
+CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory}
+}
+
+CompleteFailureCauseInformation-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ measurementFailureCause-List MeasurementFailureCause-List,
+ iE-Extensions ProtocolExtensionContainer { {CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Resource Status Update
+--
+-- **************************************************************
+
+ResourceStatusUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ResourceStatusUpdate-IEs}},
+ ...
+}
+
+ResourceStatusUpdate-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}|
+ { ID id-CellMeasurementResult CRITICALITY ignore TYPE CellMeasurementResult-List PRESENCE mandatory},
+ ...
+}
+
+CellMeasurementResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellMeasurementResult-ItemIEs} }
+
+CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellMeasurementResult-Item CRITICALITY ignore TYPE CellMeasurementResult-Item PRESENCE mandatory}
+}
+
+CellMeasurementResult-Item ::= SEQUENCE {
+ cell-ID ECGI,
+ hWLoadIndicator HWLoadIndicator OPTIONAL,
+ s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL,
+ radioResourceStatus RadioResourceStatus OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}|
+ { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}|
+ { ID id-RSRPMRList CRITICALITY ignore EXTENSION RSRPMRList PRESENCE optional}|
+ { ID id-CSIReportList CRITICALITY ignore EXTENSION CSIReportList PRESENCE optional}|
+ { ID id-CellReportingIndicator CRITICALITY ignore EXTENSION CellReportingIndicator PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
+ ...
+}
+
+PrivateMessage-IEs X2AP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- MOBILITY CHANGE REQUEST
+--
+-- **************************************************************
+
+MobilityChangeRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MobilityChangeRequest-IEs}},
+ ...
+}
+
+MobilityChangeRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}|
+ { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}|
+ { ID id-ENB1-Mobility-Parameters CRITICALITY ignore TYPE MobilityParametersInformation PRESENCE optional}|
+ { ID id-ENB2-Proposed-Mobility-Parameters CRITICALITY reject TYPE MobilityParametersInformation PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- MOBILITY CHANGE ACKNOWLEDGE
+--
+-- **************************************************************
+
+MobilityChangeAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MobilityChangeAcknowledge-IEs}},
+ ...
+}
+
+MobilityChangeAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}|
+ { ID id-ENB2-Cell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MOBILITY CHANGE FAILURE
+--
+-- **************************************************************
+
+MobilityChangeFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{MobilityChangeFailure-IEs}},
+ ...
+}
+
+MobilityChangeFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ENB1-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
+ { ID id-ENB2-Cell-ID CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-ENB2-Mobility-Parameters-Modification-Range CRITICALITY ignore TYPE MobilityParametersModificationRange PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Radio Link Failure Indication
+--
+-- **************************************************************
+
+RLFIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RLFIndication-IEs}},
+ ...
+}
+
+RLFIndication-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}|
+ { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}|
+ { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}|
+ { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}|
+ { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}|
+ { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}|
+ { ID id-RRCConnReestabIndicator CRITICALITY ignore TYPE RRCConnReestabIndicator PRESENCE optional}|
+ { ID id-UE-RLF-Report-Container-for-extended-bands CRITICALITY ignore TYPE UE-RLF-Report-Container-for-extended-bands PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Cell Activation Request
+--
+-- **************************************************************
+
+CellActivationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellActivationRequest-IEs}},
+ ...
+}
+
+CellActivationRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory},
+ ...
+}
+
+ServedCellsToActivate::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCellsToActivate-Item
+
+ServedCellsToActivate-Item::= SEQUENCE {
+ ecgi ECGI,
+ iE-Extensions ProtocolExtensionContainer { {ServedCellsToActivate-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Cell Activation Response
+--
+-- **************************************************************
+
+CellActivationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}},
+ ...
+}
+
+CellActivationResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ActivatedCellList CRITICALITY ignore TYPE ActivatedCellList PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+ActivatedCellList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ActivatedCellList-Item
+
+ActivatedCellList-Item::= SEQUENCE {
+ ecgi ECGI,
+ iE-Extensions ProtocolExtensionContainer { {ActivatedCellList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ActivatedCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+--**************************************************************
+--
+-- CELL ACTIVATION FAILURE
+--
+-- **************************************************************
+
+CellActivationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}},
+ ...
+}
+
+CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- X2 RELEASE
+--
+-- **************************************************************
+
+X2Release ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2Release-IEs}},
+ ...
+}
+
+X2Release-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory},
+...
+}
+
+-- **************************************************************
+--
+-- X2AP Message Transfer
+--
+-- **************************************************************
+
+X2APMessageTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2APMessageTransfer-IEs}},
+ ...
+}
+
+X2APMessageTransfer-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-RNL-Header CRITICALITY reject TYPE RNL-Header PRESENCE mandatory}|
+ { ID id-x2APMessage CRITICALITY reject TYPE X2AP-Message PRESENCE optional},
+ ...
+}
+
+RNL-Header ::= SEQUENCE {
+ source-GlobalENB-ID GlobalENB-ID,
+ target-GlobalENB-ID GlobalENB-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {RNL-Header-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RNL-Header-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+X2AP-Message ::= OCTET STRING
+
+-- **************************************************************
+--
+-- SENB ADDITION REQUEST
+--
+-- **************************************************************
+
+SeNBAdditionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBAdditionRequest-IEs}},
+ ...
+}
+
+SeNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-UE-SecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE conditional}|
+ -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” --
+ { ID id-SeNBSecurityKey CRITICALITY reject TYPE SeNBSecurityKey PRESENCE conditional}|
+ -- This IE shall be present if the Bearer Option IE is set to the value “SCG bearer” --
+ { ID id-SeNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}|
+ { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}|
+ { ID id-E-RABs-ToBeAdded-List CRITICALITY reject TYPE E-RABs-ToBeAdded-List PRESENCE mandatory}|
+ { ID id-MeNBtoSeNBContainer CRITICALITY reject TYPE MeNBtoSeNBContainer PRESENCE mandatory}|
+ { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeAdded-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ItemIEs} }
+
+E-RABs-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeAdded-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeAdded-Item ::= CHOICE {
+ sCG-Bearer E-RABs-ToBeAdded-Item-SCG-Bearer,
+ split-Bearer E-RABs-ToBeAdded-Item-Split-Bearer,
+ ...
+}
+
+E-RABs-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeAdded-Item-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ meNB-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB ADDITION REQUEST ACKNOWLEDGE
+--
+-- **************************************************************
+
+SeNBAdditionRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBAdditionRequestAcknowledge-IEs}},
+ ...
+}
+
+SeNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-Admitted-ToBeAdded-List CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-List PRESENCE mandatory}|
+ { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}|
+ { ID id-SeNBtoMeNBContainer CRITICALITY reject TYPE SeNBtoMeNBContainer PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional},
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ItemIEs} }
+
+E-RABs-Admitted-ToBeAdded-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-ToBeAdded-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-Item PRESENCE mandatory}
+}
+
+E-RABs-Admitted-ToBeAdded-Item ::= CHOICE {
+ sCG-Bearer E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer,
+ split-Bearer E-RABs-Admitted-ToBeAdded-Item-Split-Bearer,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-Item-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-Item-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-Item-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ seNB-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-Item-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB ADDITION REQUEST REJECT
+--
+-- **************************************************************
+
+SeNBAdditionRequestReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBAdditionRequestReject-IEs}},
+ ...
+}
+
+SeNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB RECONFIGURATION COMPLETE
+--
+-- **************************************************************
+
+SeNBReconfigurationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBReconfigurationComplete-IEs}},
+ ...
+}
+
+SeNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-ResponseInformationSeNBReconfComp CRITICALITY ignore TYPE ResponseInformationSeNBReconfComp PRESENCE mandatory}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+ResponseInformationSeNBReconfComp ::= CHOICE {
+ success ResponseInformationSeNBReconfComp-SuccessItem,
+ reject-by-MeNB ResponseInformationSeNBReconfComp-RejectByMeNBItem,
+ ...
+}
+
+ResponseInformationSeNBReconfComp-SuccessItem ::= SEQUENCE {
+ meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-SuccessItemExtIEs} } OPTIONAL,
+ ...
+}
+
+ResponseInformationSeNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResponseInformationSeNBReconfComp-RejectByMeNBItem ::= SEQUENCE {
+ cause Cause,
+ meNBtoSeNBContainer MeNBtoSeNBContainer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL,
+ ...
+}
+
+ResponseInformationSeNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB MODIFICATION REQUEST
+--
+-- **************************************************************
+
+SeNBModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ SeNBModificationRequest-IEs}},
+ ...
+}
+
+SeNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}|
+ { ID id-ServingPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}|
+ { ID id-UE-ContextInformationSeNBModReq CRITICALITY reject TYPE UE-ContextInformationSeNBModReq PRESENCE optional}|
+ { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+UE-ContextInformationSeNBModReq ::= SEQUENCE {
+ uE-SecurityCapabilities UESecurityCapabilities OPTIONAL,
+ seNB-SecurityKey SeNBSecurityKey OPTIONAL,
+ seNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL,
+ e-RABs-ToBeAdded E-RABs-ToBeAdded-List-ModReq OPTIONAL,
+ e-RABs-ToBeModified E-RABs-ToBeModified-List-ModReq OPTIONAL,
+ e-RABs-ToBeReleased E-RABs-ToBeReleased-List-ModReq OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSeNBModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-ContextInformationSeNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeAdded-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-ModReqItemIEs} }
+
+E-RABs-ToBeAdded-ModReqItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeAdded-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeAdded-ModReqItem PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeAdded-ModReqItem ::= CHOICE {
+ sCG-Bearer E-RABs-ToBeAdded-ModReqItem-SCG-Bearer,
+ split-Bearer E-RABs-ToBeAdded-ModReqItem-Split-Bearer,
+ ...
+}
+
+E-RABs-ToBeAdded-ModReqItem-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeAdded-ModReqItem-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ meNB-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeModified-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-ModReqItemIEs} }
+
+E-RABs-ToBeModified-ModReqItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeModified-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeModified-ModReqItem PRESENCE mandatory},
+ ...
+}
+
+
+E-RABs-ToBeModified-ModReqItem ::= CHOICE {
+ sCG-Bearer E-RABs-ToBeModified-ModReqItem-SCG-Bearer,
+ split-Bearer E-RABs-ToBeModified-ModReqItem-Split-Bearer,
+ ...
+}
+
+E-RABs-ToBeModified-ModReqItem-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
+ s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeModified-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeModified-ModReqItem-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
+ meNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeModified-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-List-ModReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqItemIEs} }
+
+E-RABs-ToBeReleased-ModReqItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-ModReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqItem PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeReleased-ModReqItem ::= CHOICE {
+ sCG-Bearer E-RABs-ToBeReleased-ModReqItem-SCG-Bearer,
+ split-Bearer E-RABs-ToBeReleased-ModReqItem-Split-Bearer,
+ ...
+}
+
+E-RABs-ToBeReleased-ModReqItem-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-ModReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-ModReqItem-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-ModReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB MODIFICATION REQUEST ACKNOWLEDGE
+--
+-- **************************************************************
+
+SeNBModificationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBModificationRequestAcknowledge-IEs}},
+ ...
+}
+
+SeNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-Admitted-ToBeAdded-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckList PRESENCE optional}|
+ { ID id-E-RABs-Admitted-ToBeModified-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckList PRESENCE optional}|
+ { ID id-E-RABs-Admitted-ToBeReleased-ModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-ModAckList PRESENCE optional}|
+ { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}|
+ { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-ModAckItemIEs} }
+
+E-RABs-Admitted-ToBeAdded-ModAckItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-ToBeAdded-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-ModAckItem PRESENCE mandatory}
+}
+
+E-RABs-Admitted-ToBeAdded-ModAckItem ::= CHOICE {
+ sCG-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer,
+ split-Bearer E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-ModAckItem-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ seNB-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+E-RABs-Admitted-ToBeModified-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-ModAckItemIEs} }
+
+E-RABs-Admitted-ToBeModified-ModAckItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-ToBeModified-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-ModAckItem PRESENCE mandatory}
+}
+
+E-RABs-Admitted-ToBeModified-ModAckItem ::= CHOICE {
+ sCG-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer,
+ split-Bearer E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer,
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-ModAckItem-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-ModAckItem-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ seNB-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-ModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-ModAckItemIEs} }
+
+E-RABs-Admitted-ToBeReleased-ModAckItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-ToBeReleased-ModAckItem CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-ModAckItem PRESENCE mandatory}
+}
+
+E-RABs-Admitted-ToReleased-ModAckItem ::= CHOICE {
+ sCG-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer,
+ split-Bearer E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer,
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-ModAckItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-ModAckItem-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-ModAckItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB MODIFICATION REQUEST REJECT
+--
+-- **************************************************************
+
+SeNBModificationRequestReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBModificationRequestReject-IEs}},
+ ...
+}
+
+SeNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB MODIFICATION REQUIRED
+--
+-- **************************************************************
+
+SeNBModificationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBModificationRequired-IEs}},
+ ...
+}
+
+SeNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-SCGChangeIndication CRITICALITY ignore TYPE SCGChangeIndication PRESENCE optional}|
+ { ID id-E-RABs-ToBeReleased-ModReqd CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqd PRESENCE optional}|
+ { ID id-SeNBtoMeNBContainer CRITICALITY ignore TYPE SeNBtoMeNBContainer PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+
+E-RABs-ToBeReleased-ModReqd ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-ModReqdItemIEs} }
+
+E-RABs-ToBeReleased-ModReqdItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-ModReqdItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-ModReqdItem PRESENCE mandatory },
+ ...
+}
+
+E-RABs-ToBeReleased-ModReqdItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-ModReqdItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-ModReqdItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB MODIFICATION CONFIRM
+--
+-- **************************************************************
+
+SeNBModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBModificationConfirm-IEs}},
+ ...
+}
+
+SeNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB MODIFICATION REFUSE
+--
+-- **************************************************************
+
+SeNBModificationRefuse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBModificationRefuse-IEs}},
+ ...
+}
+
+SeNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-MeNBtoSeNBContainer CRITICALITY ignore TYPE MeNBtoSeNBContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB RELEASE REQUEST
+--
+-- **************************************************************
+
+SeNBReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBReleaseRequest-IEs}},
+ ...
+}
+
+SeNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE optional}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional}|
+ { ID id-E-RABs-ToBeReleased-List-RelReq CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelReq PRESENCE optional}|
+ { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-MakeBeforeBreakIndicator CRITICALITY ignore TYPE MakeBeforeBreakIndicator PRESENCE optional},
+ ...
+}
+E-RABs-ToBeReleased-List-RelReq ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelReqItemIEs} }
+
+E-RABs-ToBeReleased-RelReqItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-RelReqItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelReqItem PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeReleased-RelReqItem ::= CHOICE {
+ sCG-Bearer E-RABs-ToBeReleased-RelReqItem-SCG-Bearer,
+ split-Bearer E-RABs-ToBeReleased-RelReqItem-Split-Bearer,
+ ...
+}
+
+E-RABs-ToBeReleased-RelReqItem-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-RelReqItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-RelReqItem-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-RelReqItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB RELEASE REQUIRED
+--
+-- **************************************************************
+
+SeNBReleaseRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBReleaseRequired-IEs}},
+ ...
+}
+
+SeNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB RELEASE CONFIRM
+--
+-- **************************************************************
+
+SeNBReleaseConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBReleaseConfirm-IEs}},
+ ...
+}
+
+SeNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-ToBeReleased-List-RelConf CRITICALITY ignore TYPE E-RABs-ToBeReleased-List-RelConf PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+E-RABs-ToBeReleased-List-RelConf ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-RelConfItemIEs} }
+
+E-RABs-ToBeReleased-RelConfItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-RelConfItem CRITICALITY ignore TYPE E-RABs-ToBeReleased-RelConfItem PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeReleased-RelConfItem ::= CHOICE {
+ sCG-Bearer E-RABs-ToBeReleased-RelConfItem-SCG-Bearer,
+ split-Bearer E-RABs-ToBeReleased-RelConfItem-Split-Bearer,
+ ...
+}
+
+E-RABs-ToBeReleased-RelConfItem-SCG-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-RelConfItem-SCG-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-RelConfItem-Split-Bearer ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-RelConfItem-Split-BearerExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SENB COUNTER CHECK REQUEST
+--
+-- **************************************************************
+
+SeNBCounterCheckRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SeNBCounterCheckRequest-IEs}},
+ ...
+}
+
+SeNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-SubjectToCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheck-List PRESENCE mandatory}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+E-RABs-SubjectToCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToCounterCheckItemIEs} }
+
+E-RABs-SubjectToCounterCheckItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-SubjectToCounterCheckItem CRITICALITY ignore TYPE E-RABs-SubjectToCounterCheckItem PRESENCE mandatory},
+ ...
+}
+
+E-RABs-SubjectToCounterCheckItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-Count INTEGER (0..4294967295),
+ dL-Count INTEGER (0..4294967295),
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToCounterCheckItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-SubjectToCounterCheckItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- X2 REMOVAL REQUEST
+--
+-- **************************************************************
+
+X2RemovalRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2RemovalRequest-IEs}},
+ ...
+}
+
+X2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}|
+ { ID id-X2RemovalThreshold CRITICALITY reject TYPE X2BenefitValue PRESENCE optional},
+...
+}
+
+
+
+-- **************************************************************
+--
+-- X2 REMOVAL RESPONSE
+--
+-- **************************************************************
+
+X2RemovalResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2RemovalResponse-IEs}},
+ ...
+}
+
+X2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- X2 REMOVAL FAILURE
+--
+-- **************************************************************
+
+X2RemovalFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{X2RemovalFailure-IEs}},
+ ...
+}
+
+X2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- RETRIEVE UE CONTEXT REQUEST
+--
+-- **************************************************************
+
+RetrieveUEContextRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ RetrieveUEContextRequest-IEs}},
+ ...
+}
+
+RetrieveUEContextRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-resumeID CRITICALITY reject TYPE ResumeID PRESENCE mandatory}|
+ { ID id-ShortMAC-I CRITICALITY reject TYPE ShortMAC-I PRESENCE mandatory}|
+ { ID id-NewEUTRANCellIdentifier CRITICALITY reject TYPE EUTRANCellIdentifier PRESENCE mandatory}|
+ {ID id-FailureCellCRNTI CRITICALITY reject TYPE CRNTI PRESENCE optional}|
+ {ID id-FailureCellPCI CRITICALITY reject TYPE PCI PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- RETRIEVE UE CONTEXT RESPONSE
+--
+-- **************************************************************
+
+RetrieveUEContextResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}},
+ ...
+}
+
+RetrieveUEContextResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory}|
+ { ID id-UE-ContextInformationRetrieve CRITICALITY reject TYPE UE-ContextInformationRetrieve PRESENCE mandatory}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+UE-ContextInformationRetrieve ::= SEQUENCE {
+ mME-UE-S1AP-ID UE-S1AP-ID,
+ uESecurityCapabilities UESecurityCapabilities,
+ aS-SecurityInformation AS-SecurityInformation,
+ uEaggregateMaximumBitRate UEAggregateMaximumBitRate,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ e-RABs-ToBeSetup-ListRetrieve E-RABs-ToBeSetup-ListRetrieve,
+ rRC-Context RRC-Context,
+ handoverRestrictionList HandoverRestrictionList OPTIONAL,
+ locationReportingInformation LocationReportingInformation OPTIONAL,
+ managBasedMDTallowed ManagementBasedMDTallowed OPTIONAL,
+ managBasedMDTPLMNList MDTPLMNList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationRetrieve-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-ContextInformationRetrieve-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+{ ID id-UESidelinkAggregateMaximumBitRate CRITICALITY ignore EXTENSION UESidelinkAggregateMaximumBitRate PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeSetup-ListRetrieve ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeSetupRetrieve-ItemIEs} }
+
+E-RABs-ToBeSetupRetrieve-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeSetupRetrieve-Item CRITICALITY ignore TYPE E-RABs-ToBeSetupRetrieve-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeSetupRetrieve-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ bearerType BearerType OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeSetupRetrieve-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeSetupRetrieve-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-uL-GTPtunnelEndpoint CRITICALITY reject EXTENSION GTPtunnelEndpoint PRESENCE mandatory}|
+ { ID id-dL-Forwarding CRITICALITY ignore EXTENSION DL-Forwarding PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- RETRIEVE UE CONTEXT FAILURE
+--
+-- **************************************************************
+
+RetrieveUEContextFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}},
+ ...
+}
+
+RetrieveUEContextFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB ADDITION REQUEST
+--
+-- **************************************************************
+
+SgNBAdditionRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBAdditionRequest-IEs}},
+ ...
+}
+
+SgNBAdditionRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-NRUESecurityCapabilities CRITICALITY reject TYPE NRUESecurityCapabilities PRESENCE mandatory}|
+ { ID id-SgNBSecurityKey CRITICALITY reject TYPE SgNBSecurityKey PRESENCE mandatory}|
+ { ID id-SgNBUEAggregateMaximumBitRate CRITICALITY reject TYPE UEAggregateMaximumBitRate PRESENCE mandatory}|
+ { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-E-RABs-ToBeAdded-SgNBAddReqList CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReqList PRESENCE mandatory}|
+ { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-RequestedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}|
+ { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}|
+ { ID id-SGNB-Addition-Trigger-Ind CRITICALITY reject TYPE SGNB-Addition-Trigger-Ind PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-MeNBCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBAddReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBAddReq-ItemIEs} }
+
+E-RABs-ToBeAdded-SgNBAddReq-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeAdded-SgNBAddReq-Item CRITICALITY reject TYPE E-RABs-ToBeAdded-SgNBAddReq-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBAddReq-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ drb-ID DRB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBAddReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresent ::= SEQUENCE {
+ full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ max-MCG-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL,
+-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE --
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL,
+-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” --
+ s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint,
+ secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
+ rlc-Mode RLCMode,
+ uL-Configuration ULConfiguration OPTIONAL,
+-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” --
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBAddReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-pDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB ADDITION REQUEST ACKNOWLEDGE
+--
+-- **************************************************************
+
+SgNBAdditionRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBAdditionRequestAcknowledge-IEs}},
+ ...
+}
+
+SgNBAdditionRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList PRESENCE mandatory}|
+ { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}|
+ { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-AdmittedSplitSRBs CRITICALITY reject TYPE SplitSRBs PRESENCE optional}|
+ { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}|
+ { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional},
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs} }
+
+E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item PRESENCE mandatory}
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBAddReqAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresent ::= SEQUENCE {
+ s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
+-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” --
+ rlc-Mode RLCMode OPTIONAL,
+-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” --
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
+-- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE --
+ uL-Configuration ULConfiguration OPTIONAL,
+-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” --
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-pDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional},
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint,
+ secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- SGNB ADDITION REQUEST REJECT
+--
+-- **************************************************************
+
+SgNBAdditionRequestReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBAdditionRequestReject-IEs}},
+ ...
+}
+
+SgNBAdditionRequestReject-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- SGNB RECONFIGURATION COMPLETE
+--
+-- **************************************************************
+
+SgNBReconfigurationComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBReconfigurationComplete-IEs}},
+ ...
+}
+
+SgNBReconfigurationComplete-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-ResponseInformationSgNBReconfComp CRITICALITY ignore TYPE ResponseInformationSgNBReconfComp PRESENCE mandatory}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+ResponseInformationSgNBReconfComp ::= CHOICE {
+ success-SgNBReconfComp ResponseInformationSgNBReconfComp-SuccessItem,
+ reject-by-MeNB-SgNBReconfComp ResponseInformationSgNBReconfComp-RejectByMeNBItem,
+ ...
+}
+
+ResponseInformationSgNBReconfComp-SuccessItem ::= SEQUENCE {
+ meNBtoSgNBContainer MeNBtoSgNBContainer OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-SuccessItemExtIEs} } OPTIONAL,
+ ...
+}
+
+ResponseInformationSgNBReconfComp-SuccessItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResponseInformationSgNBReconfComp-RejectByMeNBItem ::= SEQUENCE {
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs} } OPTIONAL,
+ ...
+}
+
+ResponseInformationSgNBReconfComp-RejectByMeNBItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- SGNB MODIFICATION REQUEST
+--
+-- **************************************************************
+
+SgNBModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ SgNBModificationRequest-IEs}},
+ ...
+}
+
+SgNBModificationRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-SelectedPLMN CRITICALITY ignore TYPE PLMN-Identity PRESENCE optional}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-SCGConfigurationQuery CRITICALITY ignore TYPE SCGConfigurationQuery PRESENCE optional}|
+ { ID id-UE-ContextInformation-SgNBModReq CRITICALITY reject TYPE UE-ContextInformation-SgNBModReq PRESENCE optional}|
+ { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional}|
+ { ID id-RequestedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}|
+ { ID id-RequestedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional},
+ ...
+}
+
+UE-ContextInformation-SgNBModReq ::= SEQUENCE {
+ nRUE-SecurityCapabilities NRUESecurityCapabilities OPTIONAL,
+ sgNB-SecurityKey SgNBSecurityKey OPTIONAL,
+ sgNBUEAggregateMaximumBitRate UEAggregateMaximumBitRate OPTIONAL,
+ e-RABs-ToBeAdded E-RABs-ToBeAdded-SgNBModReq-List OPTIONAL,
+ e-RABs-ToBeModified E-RABs-ToBeModified-SgNBModReq-List OPTIONAL,
+ e-RABs-ToBeReleased E-RABs-ToBeReleased-SgNBModReq-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UE-ContextInformationSgNBModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-ContextInformationSgNBModReqExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore EXTENSION SubscriberProfileIDforRFP PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeAdded-SgNBModReq-ItemIEs} }
+
+E-RABs-ToBeAdded-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeAdded-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeAdded-SgNBModReq-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBModReq-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ drb-ID DRB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE {
+ full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL,
+-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” and GBR QoS Information IE is present in Full E-RAB Level QoS Parameters IE --
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL,
+-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE is set to “present” --
+ s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters,
+ meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint,
+ secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
+ rlc-Mode RLCMode,
+ uL-Configuration ULConfiguration OPTIONAL,
+-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” --
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-pDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional},
+ ...
+}
+
+
+E-RABs-ToBeModified-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReq-ItemIEs} }
+
+E-RABs-ToBeModified-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeModified-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReq-Item PRESENCE mandatory},
+ ...
+}
+
+
+E-RABs-ToBeModified-SgNBModReq-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE {
+ full-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
+ max-MN-admit-E-RAB-Level-QoS-Parameters GBR-QosInformation OPTIONAL,
+ meNB-DL-GTP-TEIDatMCG GTPtunnelEndpoint OPTIONAL,
+ s1-UL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional },
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ requested-SCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
+ meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
+ uL-Configuration ULConfiguration OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-pDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReq-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReq-ItemIEs} }
+
+E-RABs-ToBeReleased-SgNBModReq-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-SgNBModReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReq-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReq-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresent ::= SEQUENCE {
+ dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- SGNB MODIFICATION REQUEST ACKNOWLEDGE
+--
+-- **************************************************************
+
+SgNBModificationRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBModificationRequestAcknowledge-IEs}},
+ ...
+}
+
+SgNBModificationRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAckList PRESENCE optional}|
+ { ID id-E-RABs-Admitted-ToBeModified-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAckList PRESENCE optional}|
+ { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAckList CRITICALITY ignore TYPE E-RABs-Admitted-ToBeReleased-SgNBModAckList PRESENCE optional}|
+ { ID id-E-RABs-NotAdmitted-List CRITICALITY ignore TYPE E-RAB-List PRESENCE optional}|
+ { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}|
+ { ID id-AdmittedSplitSRBs CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}|
+ { ID id-AdmittedSplitSRBsrelease CRITICALITY ignore TYPE SplitSRBs PRESENCE optional}|
+ { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional},
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs} }
+
+E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeAdded-SgNBModAck-Item PRESENCE mandatory}
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE {
+ s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint,
+ sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
+-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” --
+ rlc-Mode RLCMode OPTIONAL,
+-- This IE shall be present if MCG resource IE in the the EN-DC Resource Configuration IE are set to “present” --
+ dL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ uL-Forwarding-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
+-- This IE shall be present if MCG resource and SCG resource IEs in the the EN-DC Resource Configuration IE are set to “present” and the GBR QoS Information IE is present in the Requested MCG E-RAB Level QoS Parameters IE --
+ uL-Configuration ULConfiguration OPTIONAL,
+-- This IE shall be present if MCG resource and SCG resources IEs in the the EN-DC Resource Configuration IE are set to “present” --
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-pDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional},
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint,
+ secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeAdded-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs} }
+
+E-RABs-Admitted-ToBeModified-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToBeModified-SgNBModAck-Item PRESENCE mandatory}
+}
+
+E-RABs-Admitted-ToBeModified-SgNBModAck-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeAdded-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE {
+ s1-DL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
+ mCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
+ uL-Configuration ULConfiguration OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-pDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional},
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeModified-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-SgNBModAckList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs} }
+
+E-RABs-Admitted-ToBeReleased-SgNBModAck-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item CRITICALITY ignore TYPE E-RABs-Admitted-ToReleased-SgNBModAck-Item PRESENCE mandatory}
+}
+
+E-RABs-Admitted-ToReleased-SgNBModAck-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModAck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresent ::= SEQUENCE {
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-Admitted-ToBeReleased-SgNBModAck-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- SGNB MODIFICATION REQUEST REJECT
+--
+-- **************************************************************
+
+SgNBModificationRequestReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBModificationRequestReject-IEs}},
+ ...
+}
+
+SgNBModificationRequestReject-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- SGNB MODIFICATION REQUIRED
+--
+-- **************************************************************
+
+SgNBModificationRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBModificationRequired-IEs}},
+ ...
+}
+
+SgNBModificationRequired-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-PDCPChangeIndication CRITICALITY ignore TYPE PDCPChangeIndication PRESENCE optional}|
+ { ID id-E-RABs-ToBeReleased-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqdList PRESENCE optional}|
+ { ID id-SgNBtoMeNBContainer CRITICALITY ignore TYPE SgNBtoMeNBContainer PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-E-RABs-ToBeModified-SgNBModReqdList CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqdList PRESENCE optional}|
+ { ID id-SgNBResourceCoordinationInformation CRITICALITY ignore TYPE SgNBResourceCoordinationInformation PRESENCE optional}|
+ { ID id-RRCConfigIndication CRITICALITY reject TYPE RRC-Config-Ind PRESENCE optional},
+ ...
+}
+
+
+E-RABs-ToBeReleased-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBModReqd-ItemIEs} }
+
+E-RABs-ToBeReleased-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBModReqd-Item PRESENCE mandatory },
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReqd-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReqdList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeModified-SgNBModReqd-ItemIEs} }
+
+E-RABs-ToBeModified-SgNBModReqd-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeModified-SgNBModReqd-Item CRITICALITY ignore TYPE E-RABs-ToBeModified-SgNBModReqd-Item PRESENCE mandatory },
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReqd-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReqd-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresent ::= SEQUENCE {
+ requested-MCG-E-RAB-Level-QoS-Parameters E-RAB-Level-QoS-Parameters OPTIONAL,
+ uL-Configuration ULConfiguration OPTIONAL,
+ sgNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
+ s1-DL-GTP-TEIDatSgNB GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-pDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL,
+ secondary-sgNB-DL-GTP-TEIDatSCG GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeModified-SgNBModReqd-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-RLC-Status CRITICALITY ignore EXTENSION RLC-Status PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- SGNB MODIFICATION CONFIRM
+--
+-- **************************************************************
+
+SgNBModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBModificationConfirm-IEs}},
+ ...
+}
+
+SgNBModificationConfirm-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-AdmittedToBeModified-SgNBModConfList CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConfList PRESENCE optional}|
+ { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-MeNBResourceCoordinationInformation CRITICALITY ignore TYPE MeNBResourceCoordinationInformation PRESENCE optional},
+ ...
+}
+
+E-RABs-AdmittedToBeModified-SgNBModConfList ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container
+ { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs} }
+
+E-RABs-AdmittedToBeModified-SgNBModConf-ItemIEs X2AP-PROTOCOL-IES ::= {
+{ ID id-E-RABs-AdmittedToBeModified-SgNBModConf-Item CRITICALITY ignore TYPE E-RABs-AdmittedToBeModified-SgNBModConf-Item PRESENCE mandatory },
+ ...
+}
+
+E-RABs-AdmittedToBeModified-SgNBModConf-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-AdmittedToBeModified-SgNBModConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresent ::= SEQUENCE {
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ secondary-meNB-UL-GTP-TEIDatPDCP GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-AdmittedToBeModified-SgNBModConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-pDCPSnLength CRITICALITY ignore EXTENSION PDCPSnLength PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB MODIFICATION REFUSE
+--
+-- **************************************************************
+
+SgNBModificationRefuse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBModificationRefuse-IEs}},
+ ...
+}
+
+SgNBModificationRefuse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-MeNBtoSgNBContainer CRITICALITY ignore TYPE MeNBtoSgNBContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB RELEASE REQUEST
+--
+-- **************************************************************
+
+SgNBReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBReleaseRequest-IEs}},
+ ...
+}
+
+SgNBReleaseRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE optional}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-E-RABs-ToBeReleased-SgNBRelReqList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReqList PRESENCE optional}|
+ { ID id-UE-ContextKeptIndicator CRITICALITY ignore TYPE UE-ContextKeptIndicator PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional}|
+ { ID id-MeNBtoSgNBContainer CRITICALITY reject TYPE MeNBtoSgNBContainer PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelReqList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelReq-ItemIEs} }
+
+E-RABs-ToBeReleased-SgNBRelReq-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-SgNBRelReq-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelReq-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelReq-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelReq-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresent ::= SEQUENCE {
+ uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelReq-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB RELEASE REQUEST ACKNOWLEDGE
+--
+-- **************************************************************
+
+SgNBReleaseRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBReleaseRequestAcknowledge-IEs}},
+ ...
+}
+
+SgNBReleaseRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB RELEASE REQUEST REJECT
+--
+-- **************************************************************
+
+SgNBReleaseRequestReject ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBReleaseRequestReject-IEs}},
+ ...
+}
+
+SgNBReleaseRequestReject-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB RELEASE REQUIRED
+--
+-- **************************************************************
+
+SgNBReleaseRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBReleaseRequired-IEs}},
+ ...
+}
+
+SgNBReleaseRequired-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB RELEASE CONFIRM
+--
+-- **************************************************************
+
+SgNBReleaseConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBReleaseConfirm-IEs}},
+ ...
+}
+
+SgNBReleaseConfirm-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-ToBeReleased-SgNBRelConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConfList PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBRelConf-ItemIEs} }
+
+E-RABs-ToBeReleased-SgNBRelConf-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-SgNBRelConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBRelConf-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelConf-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresent ::= SEQUENCE {
+ uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBRelConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- SGNB COUNTER CHECK REQUEST
+--
+-- **************************************************************
+
+SgNBCounterCheckRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBCounterCheckRequest-IEs}},
+ ...
+}
+
+SgNBCounterCheckRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-SubjectToSgNBCounterCheck-List CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-List PRESENCE mandatory}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+E-RABs-SubjectToSgNBCounterCheck-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-SubjectToSgNBCounterCheck-ItemIEs} }
+
+E-RABs-SubjectToSgNBCounterCheck-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-SubjectToSgNBCounterCheck-Item CRITICALITY ignore TYPE E-RABs-SubjectToSgNBCounterCheck-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-SubjectToSgNBCounterCheck-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-Count INTEGER (0..4294967295),
+ dL-Count INTEGER (0..4294967295),
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-SubjectToSgNBCounterCheck-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB CHANGE REQUIRED
+--
+-- **************************************************************
+
+SgNBChangeRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBChangeRequired-IEs}},
+ ...
+}
+
+SgNBChangeRequired-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Target-SgNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-SgNBtoMeNBContainer CRITICALITY reject TYPE SgNBtoMeNBContainer PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB CHANGE CONFIRM
+--
+-- **************************************************************
+
+SgNBChangeConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBChangeConfirm-IEs}},
+ ...
+}
+
+SgNBChangeConfirm-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-E-RABs-ToBeReleased-SgNBChaConfList CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConfList PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBChaConfList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-ToBeReleased-SgNBChaConf-ItemIEs} }
+
+E-RABs-ToBeReleased-SgNBChaConf-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-ToBeReleased-SgNBChaConf-Item CRITICALITY ignore TYPE E-RABs-ToBeReleased-SgNBChaConf-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBChaConf-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ en-DC-ResourceConfiguration EN-DC-ResourceConfiguration,
+ resource-configuration CHOICE {
+ sgNBPDCPpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent,
+ sgNBPDCPnotpresent E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBChaConf-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresent ::= SEQUENCE {
+ uL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ dL-GTPtunnelEndpoint GTPtunnelEndpoint OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresent ::= SEQUENCE {
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-ToBeReleased-SgNBChaConf-Item-SgNBPDCPnotpresentExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- RRC Transfer
+--
+-- **************************************************************
+
+RRCTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RRCTransfer-IEs}},
+ ...
+}
+
+RRCTransfer-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SplitSRB CRITICALITY reject TYPE SplitSRB PRESENCE optional}|
+ { ID id-UENRMeasurement CRITICALITY reject TYPE UENRMeasurement PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- SGNB CHANGE REFUSE
+--
+-- **************************************************************
+
+SgNBChangeRefuse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBChangeRefuse-IEs}},
+ ...
+}
+
+SgNBChangeRefuse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY ignore TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC X2 SETUP REQUEST
+--
+-- **************************************************************
+
+ENDCX2SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCX2SetupRequest-IEs}},
+ ...
+}
+
+ENDCX2SetupRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-InitiatingNodeType-EndcX2Setup CRITICALITY reject TYPE InitiatingNodeType-EndcX2Setup PRESENCE mandatory},
+ ...
+}
+
+InitiatingNodeType-EndcX2Setup ::= CHOICE {
+ init-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqIEs}},
+ init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqIEs}},
+ ...
+}
+
+ENB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}|
+ { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory},
+ ...
+}
+
+ServedEUTRAcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE {
+ servedEUTRACellInfo ServedCell-Information,
+ nrNeighbourInfo NRNeighbour-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsENDCX2Management-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedEUTRAcellsENDCX2Management-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+En-gNB-ENDCX2SetupReqIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}|
+ { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory},
+ ...
+}
+
+ServedNRcellsENDCX2ManagementList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF SEQUENCE {
+ servedNRCellInfo ServedNRCell-Information,
+ nRNeighbourInfo NRNeighbour-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {En-gNBServedCells-ExtIEs} } OPTIONAL,
+ ...
+}
+
+En-gNBServedCells-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedNRCell-Information ::= SEQUENCE {
+ nrpCI NRPCI,
+ nrCellID NRCGI,
+ fiveGS-TAC FiveGS-TAC OPTIONAL,
+ configured-TAC TAC OPTIONAL,
+ broadcastPLMNs BroadcastPLMNs-Item,
+ nrModeInfo CHOICE {
+ fdd FDD-InfoServedNRCell-Information,
+ tdd TDD-InfoServedNRCell-Information,
+ ...
+ },
+ measurementTimingConfiguration OCTET STRING,
+ iE-Extensions ProtocolExtensionContainer { {ServedNRCell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FDD-InfoServedNRCell-Information ::= SEQUENCE {
+ ul-NRFreqInfo NRFreqInfo,
+ dl-NRFreqInfo NRFreqInfo,
+ ul-NR-TxBW NR-TxBW,
+ dl-NR-TxBW NR-TxBW,
+ iE-Extensions ProtocolExtensionContainer { {FDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+FDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE {
+ ul-NRFreqInfo NRFreqInfo,
+ dl-NRFreqInfo NRFreqInfo,
+ iE-Extensions ProtocolExtensionContainer { {FDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-InfoServedNRCell-Information ::= SEQUENCE {
+ nRFreqInfo NRFreqInfo,
+ nR-TxBW NR-TxBW,
+ iE-Extensions ProtocolExtensionContainer { {TDD-InfoServedNRCell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-InfoServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TDD-InfoNeighbourServedNRCell-Information ::= SEQUENCE {
+ nRFreqInfo NRFreqInfo,
+ iE-Extensions ProtocolExtensionContainer { {TDD-InfoNeighbourServedNRCell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TDD-InfoNeighbourServedNRCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NRNeighbour-Information ::= SEQUENCE (SIZE (1.. maxofNRNeighbours))OF SEQUENCE {
+ nrpCI NRPCI,
+ nrCellID NRCGI,
+ nrFreqInfo NRFreqInfo,
+ fiveGS-TAC FiveGS-TAC OPTIONAL,
+ configured-TAC TAC OPTIONAL,
+ measurementTimingConfiguration OCTET STRING,
+ nRNeighbourModeInfo CHOICE {
+ fdd FDD-InfoNeighbourServedNRCell-Information,
+ tdd TDD-InfoNeighbourServedNRCell-Information,
+ ...
+ },
+ iE-Extensions ProtocolExtensionContainer { {NRNeighbour-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NRNeighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellAssistanceInformation ::= CHOICE {
+ limited-list Limited-list,
+ full-list ENUMERATED {allServedNRcells, ...},
+ ...
+}
+
+
+Limited-list ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF SEQUENCE {
+ nrCellID NRCGI,
+ iE-Extensions ProtocolExtensionContainer { {Limited-list-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Limited-list-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC X2 SETUP RESPONSE
+--
+-- **************************************************************
+
+ENDCX2SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCX2SetupResponse-IEs}},
+ ...
+}
+
+ENDCX2SetupResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-RespondingNodeType-EndcX2Setup CRITICALITY reject TYPE RespondingNodeType-EndcX2Setup PRESENCE mandatory},
+ ...
+}
+
+RespondingNodeType-EndcX2Setup ::= CHOICE {
+ respond-eNB ProtocolIE-Container {{ENB-ENDCX2SetupReqAckIEs}},
+ respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2SetupReqAckIEs}},
+ ...
+}
+
+ENB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory}|
+ { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE mandatory},
+ ...
+}
+
+
+En-gNB-ENDCX2SetupReqAckIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory}|
+ { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC X2 SETUP FAILURE
+--
+-- **************************************************************
+
+ENDCX2SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCX2SetupFailure-IEs}},
+ ...
+}
+
+ENDCX2SetupFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC CONFIGURATION UPDATE
+--
+-- **************************************************************
+
+ENDCConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdate-IEs}},
+ ...
+}
+
+ENDCConfigurationUpdate-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-InitiatingNodeType-EndcConfigUpdate CRITICALITY reject TYPE InitiatingNodeType-EndcConfigUpdate PRESENCE mandatory},
+ ...
+}
+
+InitiatingNodeType-EndcConfigUpdate::= CHOICE {
+ init-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateIEs}},
+ init-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateIEs}},
+ ...
+}
+
+ENB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-CellAssistanceInformation CRITICALITY reject TYPE CellAssistanceInformation PRESENCE optional }|
+ { ID id-ServedEUTRAcellsENDCX2ManagementList CRITICALITY reject TYPE ServedEUTRAcellsENDCX2ManagementList PRESENCE optional }|
+ { ID id-ServedEUTRAcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToModifyListENDCConfUpd PRESENCE optional }|
+ { ID id-ServedEUTRAcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedEUTRAcellsToDeleteListENDCConfUpd PRESENCE optional },
+ ...
+}
+
+ServedEUTRAcellsToModifyListENDCConfUpd ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE {
+ old-ECGI ECGI,
+ servedEUTRACellInfo ServedCell-Information,
+ nrNeighbourInfo NRNeighbour-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedEUTRAcellsToModifyListENDCConfUpd-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedEUTRAcellsToDeleteListENDCConfUpd ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI
+
+
+En-gNB-ENDCConfigUpdateIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional }|
+ { ID id-ServedNRcellsToModifyListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToModifyENDCConfUpdList PRESENCE optional }|
+ { ID id-ServedNRcellsToDeleteListENDCConfUpd CRITICALITY reject TYPE ServedNRcellsToDeleteENDCConfUpdList PRESENCE optional },
+ ...
+}
+
+ServedNRcellsToModifyENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF ServedNRCellsToModify-Item
+
+ServedNRCellsToModify-Item::= SEQUENCE {
+ old-nrcgi NRCGI,
+ servedNRCellInformation ServedNRCell-Information,
+ nrNeighbourInformation NRNeighbour-Information OPTIONAL,
+ nrDeactivationIndication DeactivationIndication OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToModify-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedNRCellsToModify-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedNRcellsToDeleteENDCConfUpdList ::= SEQUENCE (SIZE (1..maxCellinengNB)) OF NRCGI
+
+-- **************************************************************
+--
+-- EN-DC CONFIGURATION UPDATE ACKNOWLEDGE
+--
+-- **************************************************************
+
+ENDCConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateAcknowledge-IEs}},
+ ...
+}
+
+ENDCConfigurationUpdateAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-RespondingNodeType-EndcConfigUpdate CRITICALITY reject TYPE RespondingNodeType-EndcConfigUpdate PRESENCE mandatory},
+ ...
+}
+
+
+RespondingNodeType-EndcConfigUpdate::= CHOICE {
+ respond-eNB ProtocolIE-Container {{ENB-ENDCConfigUpdateAckIEs}},
+ respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCConfigUpdateAckIEs}},
+ ...
+}
+
+
+ENB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= {
+ ...
+}
+
+En-gNB-ENDCConfigUpdateAckIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ServedNRcellsENDCX2ManagementList CRITICALITY reject TYPE ServedNRcellsENDCX2ManagementList PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- EN-DC CONFIGURATION UPDATE FAILURE
+--
+-- **************************************************************
+
+ENDCConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCConfigurationUpdateFailure-IEs}},
+ ...
+}
+
+ENDCConfigurationUpdateFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- EN-DC CELL ACTIVATION REQUEST
+--
+-- **************************************************************
+
+ENDCCellActivationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCCellActivationRequest-IEs}},
+ ...
+}
+
+ENDCCellActivationRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ServedNRCellsToActivate CRITICALITY reject TYPE ServedNRCellsToActivate PRESENCE mandatory}|
+ { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory},
+ ...
+}
+
+ServedNRCellsToActivate::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ServedNRCellsToActivate-Item
+
+ServedNRCellsToActivate-Item::= SEQUENCE {
+ nrCellID NRCGI,
+ iE-Extensions ProtocolExtensionContainer { {ServedNRCellsToActivate-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedNRCellsToActivate-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC CELL ACTIVATION RESPONSE
+--
+-- **************************************************************
+
+ENDCCellActivationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCCellActivationResponse-IEs}},
+ ...
+}
+
+ENDCCellActivationResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ActivatedNRCellList CRITICALITY ignore TYPE ActivatedNRCellList PRESENCE mandatory}|
+ { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+ActivatedNRCellList ::= SEQUENCE (SIZE (1.. maxCellinengNB)) OF ActivatedNRCellList-Item
+
+ActivatedNRCellList-Item::= SEQUENCE {
+ nrCellID NRCGI,
+ iE-Extensions ProtocolExtensionContainer { {ActivatedNRCellList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ActivatedNRCellList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+--**************************************************************
+--
+-- EN-DC CELL ACTIVATION FAILURE
+--
+-- **************************************************************
+
+ENDCCellActivationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCCellActivationFailure-IEs}},
+ ...
+}
+
+ENDCCellActivationFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-ActivationID CRITICALITY reject TYPE ActivationID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- SECONDARY RAT DATA USAGE REPORT
+--
+-- **************************************************************
+
+SecondaryRATDataUsageReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SecondaryRATDataUsageReport-IEs}},
+ ...
+}
+
+SecondaryRATDataUsageReport-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SecondaryRATUsageReportList CRITICALITY reject TYPE SecondaryRATUsageReportList PRESENCE mandatory}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+SgNBActivityNotification ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{SgNBActivityNotification-IEs}},
+ ...
+}
+
+SgNBActivityNotification-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-MeNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-SgNB-UE-X2AP-ID CRITICALITY reject TYPE SgNB-UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-UEContextLevelUserPlaneActivity CRITICALITY reject TYPE UserPlaneTrafficActivityReport PRESENCE mandatory}|
+ { ID id-ERABActivityNotifyItemList CRITICALITY reject TYPE ERABActivityNotifyItemList PRESENCE mandatory}|
+ { ID id-MeNB-UE-X2AP-ID-Extension CRITICALITY reject TYPE UE-X2AP-ID-Extension PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC PARTIAL RESET REQUIRED
+--
+-- **************************************************************
+
+ENDCPartialResetRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCPartialResetRequired-IEs}},
+ ...
+}
+
+ENDCPartialResetRequired-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-UEs-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC PARTIAL RESET CONFIRM
+--
+-- **************************************************************
+
+ENDCPartialResetConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCPartialResetConfirm-IEs}},
+ ...
+}
+
+ENDCPartialResetConfirm-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-UEs-Admitted-ToBeReset CRITICALITY reject TYPE UEsToBeResetList PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- E-UTRA - NR CELL RESOURCE COORDINATION REQUEST
+--
+-- **************************************************************
+
+EUTRANRCellResourceCoordinationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationRequest-IEs}},
+ ...
+}
+
+EUTRANRCellResourceCoordinationRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-InitiatingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE InitiatingNodeType-EutranrCellResourceCoordination PRESENCE mandatory},
+ ...
+}
+
+InitiatingNodeType-EutranrCellResourceCoordination ::= CHOICE {
+ initiate-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqIEs}},
+ initiate-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqIEs}},
+ ...
+}
+
+
+ENB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}|
+ { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}|
+ { ID id-ListofEUTRACellsinEUTRACoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationReq PRESENCE mandatory},
+ ...
+}
+
+
+En-gNB-EUTRA-NRCellResourceCoordinationReqIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}|
+ { ID id-ListofEUTRACellsinNRCoordinationReq CRITICALITY reject TYPE ListofEUTRACellsinNRCoordinationReq PRESENCE mandatory }|
+ { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}|
+ { ID id-ListofNRCellsinNRCoordinationReq CRITICALITY reject TYPE ListofNRCellsinNRCoordinationReq PRESENCE mandatory},
+ ...
+}
+
+
+ListofEUTRACellsinEUTRACoordinationReq ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI
+ListofEUTRACellsinNRCoordinationReq ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ECGI
+ListofNRCellsinNRCoordinationReq ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI
+
+-- **************************************************************
+--
+-- E-UTRA - NR CELL RESOURCE COORDINATION RESPONSE
+--
+-- **************************************************************
+
+EUTRANRCellResourceCoordinationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{EUTRANRCellResourceCoordinationResponse-IEs}},
+ ...
+}
+
+EUTRANRCellResourceCoordinationResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-RespondingNodeType-EutranrCellResourceCoordination CRITICALITY reject TYPE RespondingNodeType-EutranrCellResourceCoordination PRESENCE mandatory},
+ ...
+}
+
+RespondingNodeType-EutranrCellResourceCoordination ::= CHOICE {
+ respond-eNB ProtocolIE-Container {{ENB-EUTRA-NRCellResourceCoordinationReqAckIEs}},
+ respond-en-gNB ProtocolIE-Container {{En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs}},
+ ...
+}
+
+
+ENB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}|
+ { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}|
+ { ID id-ListofEUTRACellsinEUTRACoordinationResp CRITICALITY reject TYPE ListofEUTRACellsinEUTRACoordinationResp PRESENCE mandatory},
+ ...
+}
+
+
+En-gNB-EUTRA-NRCellResourceCoordinationReqAckIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-DataTrafficResourceIndication CRITICALITY reject TYPE DataTrafficResourceIndication PRESENCE mandatory}|
+ { ID id-SpectrumSharingGroupID CRITICALITY reject TYPE SpectrumSharingGroupID PRESENCE mandatory}|
+ { ID id-ListofNRCellsinNRCoordinationResp CRITICALITY reject TYPE ListofNRCellsinNRCoordinationResp PRESENCE mandatory},
+
+
+ ...
+}
+
+ListofEUTRACellsinEUTRACoordinationResp ::= SEQUENCE (SIZE (0..maxCellineNB)) OF ECGI
+ListofNRCellsinNRCoordinationResp ::= SEQUENCE (SIZE (0..maxnoNRcellsSpectrumSharingWithE-UTRA)) OF NRCGI
+
+-- **************************************************************
+--
+-- EN-DC X2 REMOVAL REQUEST
+--
+-- **************************************************************
+
+ENDCX2RemovalRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCX2RemovalRequest-IEs}},
+ ...
+}
+
+ENDCX2RemovalRequest-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-InitiatingNodeType-EndcX2Removal CRITICALITY reject TYPE InitiatingNodeType-EndcX2Removal PRESENCE mandatory},
+ ...
+}
+
+InitiatingNodeType-EndcX2Removal ::= CHOICE {
+ init-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqIEs}},
+ init-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqIEs}},
+ ...
+}
+
+ENB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory},
+ ...
+}
+
+En-gNB-ENDCX2RemovalReqIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC X2 REMOVAL RESPONSE
+--
+-- **************************************************************
+
+ENDCX2RemovalResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCX2RemovalResponse-IEs}},
+ ...
+}
+
+ENDCX2RemovalResponse-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-RespondingNodeType-EndcX2Removal CRITICALITY reject TYPE RespondingNodeType-EndcX2Removal PRESENCE mandatory},
+ ...
+}
+
+RespondingNodeType-EndcX2Removal ::= CHOICE {
+ respond-eNB ProtocolIE-Container {{ENB-ENDCX2RemovalReqAckIEs}},
+ respond-en-gNB ProtocolIE-Container {{En-gNB-ENDCX2RemovalReqAckIEs}},
+ ...
+}
+
+ENB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-GlobalENB-ID CRITICALITY reject TYPE GlobalENB-ID PRESENCE mandatory},
+ ...
+}
+
+En-gNB-ENDCX2RemovalReqAckIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Globalen-gNB-ID CRITICALITY reject TYPE GlobalGNB-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- EN-DC X2 REMOVAL FAILURE
+--
+-- **************************************************************
+
+ENDCX2RemovalFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ENDCX2RemovalFailure-IEs}},
+ ...
+}
+
+ENDCX2RemovalFailure-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DATA FORWARDING ADDRESS INDICATION
+--
+-- **************************************************************
+
+DataForwardingAddressIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DataForwardingAddressIndication-IEs}},
+ ...
+}
+
+DataForwardingAddressIndication-IEs X2AP-PROTOCOL-IES ::= {
+ { ID id-New-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }|
+ { ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE mandatory}|
+ { ID id-Old-eNB-UE-X2AP-ID-Extension CRITICALITY ignore TYPE UE-X2AP-ID-Extension PRESENCE optional }|
+ { ID id-E-RABs-DataForwardingAddress-List CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-List PRESENCE mandatory},
+ ...
+}
+
+E-RABs-DataForwardingAddress-List ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RABs-DataForwardingAddress-ItemIEs} }
+
+E-RABs-DataForwardingAddress-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABs-DataForwardingAddress-Item CRITICALITY ignore TYPE E-RABs-DataForwardingAddress-Item PRESENCE mandatory},
+ ...
+}
+
+E-RABs-DataForwardingAddress-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dl-GTPtunnelEndpoint GTPtunnelEndpoint,
+ iE-Extensions ProtocolExtensionContainer { {E-RABs-DataForwardingAddress-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABs-DataForwardingAddress-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+END
+
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+X2AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+
+ id-E-RAB-Item,
+ id-Number-of-Antennaports,
+ id-MBSFN-Subframe-Info,
+ id-PRACH-Configuration,
+ id-CSG-Id,
+ id-MDTConfiguration,
+ id-SignallingBasedMDTPLMNList,
+ id-MultibandInfoList,
+ id-FreqBandIndicatorPriority,
+ id-NeighbourTAC,
+ id-Time-UE-StayedInCell-EnhancedGranularity,
+ id-MBMS-Service-Area-List,
+ id-HO-cause,
+ id-eARFCNExtension,
+ id-DL-EARFCNExtension,
+ id-UL-EARFCNExtension,
+ id-M3Configuration,
+ id-M4Configuration,
+ id-M5Configuration,
+ id-MDT-Location-Info,
+ id-NRrestrictioninEPSasSecondaryRAT,
+ id-NRrestrictionin5GS,
+ id-AdditionalSpecialSubframe-Info,
+ id-UEID,
+ id-enhancedRNTP,
+ id-ProSeUEtoNetworkRelaying,
+ id-M6Configuration,
+ id-M7Configuration,
+ id-OffsetOfNbiotChannelNumberToDL-EARFCN,
+ id-OffsetOfNbiotChannelNumberToUL-EARFCN,
+ id-AdditionalSpecialSubframeExtension-Info,
+ id-BandwidthReducedSI,
+ id-extended-e-RAB-MaximumBitrateDL,
+ id-extended-e-RAB-MaximumBitrateUL,
+ id-extended-e-RAB-GuaranteedBitrateDL,
+ id-extended-e-RAB-GuaranteedBitrateUL,
+ id-extended-uEaggregateMaximumBitRateDownlink,
+ id-extended-uEaggregateMaximumBitRateUplink,
+ id-E-RABUsageReport-Item,
+ id-SecondaryRATUsageReport-Item,
+ id-UEAppLayerMeasConfig,
+ id-DL-scheduling-PDCCH-CCE-usage,
+ id-UL-scheduling-PDCCH-CCE-usage,
+ id-DownlinkPacketLossRate,
+ id-UplinkPacketLossRate,
+ id-serviceType,
+ id-ProtectedEUTRAResourceIndication,
+ id-NRS-NSSS-PowerOffset,
+ id-NSSS-NumOccasionDifferentPrecoder,
+ id-CNTypeRestrictions,
+ id-BluetoothMeasurementConfiguration,
+ id-WLANMeasurementConfiguration,
+
+
+ maxnoofBearers,
+ maxCellineNB,
+ maxEARFCN,
+ maxEARFCNPlusOne,
+ newmaxEARFCN,
+ maxInterfaces,
+
+ maxnoofBands,
+ maxnoofBPLMNs,
+ maxnoofCells,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofNeighbours,
+ maxnoofPRBs,
+ maxNrOfErrors,
+ maxPools,
+ maxnoofMBSFN,
+ maxnoofTAforMDT,
+ maxnoofCellIDforMDT,
+ maxnoofMBMSServiceAreaIdentities,
+ maxnoofMDTPLMNs,
+ maxnoofCoMPHypothesisSet,
+ maxnoofCoMPCells,
+ maxUEReport,
+ maxCellReport,
+ maxnoofPA,
+ maxCSIProcess,
+ maxCSIReport,
+ maxSubband,
+ maxnooftimeperiods,
+ maxnoofCellIDforQMC,
+ maxnoofTAforQMC,
+ maxnoofPLMNforQMC,
+ maxUEsinengNBDU,
+ maxnoofProtectedResourcePatterns,
+ maxnoNRcellsSpectrumSharingWithE-UTRA,
+ maxnoofNrCellBands,
+ maxnoofBluetoothName,
+ maxnoofWLANName
+
+FROM X2AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM X2AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ ProtocolIE-Single-Container{},
+
+ X2AP-PROTOCOL-EXTENSION,
+ X2AP-PROTOCOL-IES
+FROM X2AP-Containers;
+
+-- A
+
+ABSInformation ::= CHOICE {
+ fdd ABSInformationFDD,
+ tdd ABSInformationTDD,
+ abs-inactive NULL,
+ ...
+}
+
+ABSInformationFDD ::= SEQUENCE {
+ abs-pattern-info BIT STRING (SIZE(40)),
+ numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...},
+ measurement-subset BIT STRING (SIZE(40)),
+ iE-Extensions ProtocolExtensionContainer { {ABSInformationFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ABSInformationTDD ::= SEQUENCE {
+ abs-pattern-info BIT STRING (SIZE(1..70, ...)),
+ numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...},
+ measurement-subset BIT STRING (SIZE(1..70, ...)),
+ iE-Extensions ProtocolExtensionContainer { {ABSInformationTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ABS-Status ::= SEQUENCE {
+ dL-ABS-status DL-ABS-status,
+ usableABSInformation UsableABSInformation,
+ iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ActivationID ::= INTEGER (0..255)
+
+AdditionalSpecialSubframe-Info ::= SEQUENCE {
+ additionalspecialSubframePatterns AdditionalSpecialSubframePatterns,
+ cyclicPrefixDL CyclicPrefixDL,
+ cyclicPrefixUL CyclicPrefixUL,
+ iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframe-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AdditionalSpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AdditionalSpecialSubframePatterns ::= ENUMERATED {
+ ssp0,
+ ssp1,
+ ssp2,
+ ssp3,
+ ssp4,
+ ssp5,
+ ssp6,
+ ssp7,
+ ssp8,
+ ssp9,
+ ...
+}
+
+AdditionalSpecialSubframeExtension-Info ::= SEQUENCE {
+ additionalspecialSubframePatternsExtension AdditionalSpecialSubframePatternsExtension,
+ cyclicPrefixDL CyclicPrefixDL,
+ cyclicPrefixUL CyclicPrefixUL,
+ iE-Extensions ProtocolExtensionContainer { {AdditionalSpecialSubframeExtension-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AdditionalSpecialSubframeExtension-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AdditionalSpecialSubframePatternsExtension ::= ENUMERATED {
+ ssp10,
+ ...
+}
+
+AerialUEsubscriptionInformation ::= ENUMERATED {
+ allowed,
+ not-allowed,
+ ...
+}
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AreaScopeOfMDT ::= CHOICE {
+ cellBased CellBasedMDT,
+ tABased TABasedMDT,
+ pLMNWide NULL,
+ ...,
+ tAIBased TAIBasedMDT
+}
+
+AreaScopeOfQMC ::= CHOICE {
+ cellBased CellBasedQMC,
+ tABased TABasedQMC,
+ tAIBased TAIBasedQMC,
+ pLMNAreaBased PLMNAreaBasedQMC,
+ ...
+}
+
+AS-SecurityInformation ::= SEQUENCE {
+ key-eNodeB-star Key-eNodeB-Star,
+ nextHopChainingCount NextHopChainingCount,
+ iE-Extensions ProtocolExtensionContainer { {AS-SecurityInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- B
+
+BandwidthReducedSI::= ENUMERATED {
+ scheduled,
+ ...
+}
+
+BearerType ::= ENUMERATED {
+ non-IP,
+ ...
+}
+
+BenefitMetric ::= INTEGER (-101..100, ...)
+
+BitRate ::= INTEGER (0..10000000000)
+BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
+
+BluetoothMeasurementConfiguration ::= SEQUENCE {
+ bluetoothMeasConfig BluetoothMeasConfig,
+ bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL,
+ bt-rssi ENUMERATED {true, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {BluetoothMeasurementConfiguration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BluetoothMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BluetoothMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofBluetoothName)) OF BluetoothName
+
+BluetoothMeasConfig::= ENUMERATED {setup,...}
+
+BluetoothName ::= OCTET STRING (SIZE (1..248))
+
+-- C
+
+CapacityValue ::= INTEGER (0..100)
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ hardware-failure,
+ om-intervention,
+ not-enough-user-plane-processing-resources,
+ unspecified,
+ ...
+}
+
+CauseProtocol ::= ENUMERATED {
+ transfer-syntax-error,
+ abstract-syntax-error-reject,
+ abstract-syntax-error-ignore-and-notify,
+ message-not-compatible-with-receiver-state,
+ semantic-error,
+ unspecified,
+ abstract-syntax-error-falsely-constructed-message,
+ ...
+}
+
+CauseRadioNetwork ::= ENUMERATED {
+ handover-desirable-for-radio-reasons,
+ time-critical-handover,
+ resource-optimisation-handover,
+ reduce-load-in-serving-cell,
+ partial-handover,
+ unknown-new-eNB-UE-X2AP-ID,
+ unknown-old-eNB-UE-X2AP-ID,
+ unknown-pair-of-UE-X2AP-ID,
+ ho-target-not-allowed,
+ tx2relocoverall-expiry,
+ trelocprep-expiry,
+ cell-not-available,
+ no-radio-resources-available-in-target-cell,
+ invalid-MME-GroupID,
+ unknown-MME-Code,
+ encryption-and-or-integrity-protection-algorithms-not-supported,
+ reportCharacteristicsEmpty,
+ noReportPeriodicity,
+ existingMeasurementID,
+ unknown-eNB-Measurement-ID,
+ measurement-temporarily-not-available,
+ unspecified,
+ ...,
+ load-balancing,
+ handover-optimisation,
+ value-out-of-allowed-range,
+ multiple-E-RAB-ID-instances,
+ switch-off-ongoing,
+ not-supported-QCI-value,
+ measurement-not-supported-for-the-object,
+ tDCoverall-expiry,
+ tDCprep-expiry,
+ action-desirable-for-radio-reasons,
+ reduce-load,
+ resource-optimisation,
+ time-critical-action,
+ target-not-allowed,
+ no-radio-resources-available,
+ invalid-QoS-combination,
+ encryption-algorithms-not-aupported,
+ procedure-cancelled,
+ rRM-purpose,
+ improve-user-bit-rate,
+ user-inactivity,
+ radio-connection-with-UE-lost,
+ failure-in-the-radio-interface-procedure,
+ bearer-option-not-supported,
+ mCG-Mobility,
+ sCG-Mobility,
+ count-reaches-max-value,
+ unknown-old-en-gNB-UE-X2AP-ID,
+ pDCP-Overload
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CellBasedMDT::= SEQUENCE {
+ cellIdListforMDT CellIdListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellBasedQMC::= SEQUENCE {
+ cellIdListforQMC CellIdListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellCapacityClassValue ::= INTEGER (1..100, ...)
+
+CellDeploymentStatusIndicator ::= ENUMERATED {pre-change-notification, ...}
+
+CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI
+
+CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF ECGI
+
+CellReplacingInfo ::= SEQUENCE {
+ replacingCellsList ReplacingCellsList,
+ iE-Extensions ProtocolExtensionContainer { {CellReplacingInfo-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellReplacingInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellReportingIndicator ::= ENUMERATED {stop-request, ... }
+
+Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... }
+
+
+CellType ::= SEQUENCE {
+ cell-Size Cell-Size,
+ iE-Extensions ProtocolExtensionContainer { {CellType-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CNTypeRestrictions ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictionsItem
+
+CNTypeRestrictionsItem ::= SEQUENCE {
+ plmn-Id PLMN-Identity,
+ cn-type ENUMERATED {fiveGC-forbidden, ...},
+ iE-Extensions ProtocolExtensionContainer { {CNTypeRestrictionsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CNTypeRestrictionsItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CoMPHypothesisSet ::= SEQUENCE (SIZE(1..maxnoofCoMPCells)) OF CoMPHypothesisSetItem
+
+CoMPHypothesisSetItem ::= SEQUENCE {
+ coMPCellID ECGI,
+ coMPHypothesis BIT STRING (SIZE(6..4400, ...)),
+ iE-Extensions ProtocolExtensionContainer { {CoMPHypothesisSetItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CoMPHypothesisSetItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CoMPInformation ::= SEQUENCE {
+ coMPInformationItem CoMPInformationItem,
+ coMPInformationStartTime CoMPInformationStartTime,
+ iE-Extensions ProtocolExtensionContainer { {CoMPInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CoMPInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CoMPInformationItem ::= SEQUENCE (SIZE(1..maxnoofCoMPHypothesisSet)) OF
+ SEQUENCE {
+ coMPHypothesisSet CoMPHypothesisSet,
+ benefitMetric BenefitMetric,
+ iE-Extensions ProtocolExtensionContainer { {CoMPInformationItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CoMPInformationItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CoMPInformationStartTime ::= SEQUENCE (SIZE(0..1)) OF
+ SEQUENCE {
+ startSFN INTEGER (0..1023, ...),
+ startSubframeNumber INTEGER (0..9, ...),
+ iE-Extensions ProtocolExtensionContainer { {CoMPInformationStartTime-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CoMPInformationStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompositeAvailableCapacity ::= SEQUENCE {
+ cellCapacityClassValue CellCapacityClassValue OPTIONAL,
+ capacityValue CapacityValue,
+ iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacity-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompositeAvailableCapacityGroup ::= SEQUENCE {
+ dL-CompositeAvailableCapacity CompositeAvailableCapacity,
+ uL-CompositeAvailableCapacity CompositeAvailableCapacity,
+ iE-Extensions ProtocolExtensionContainer { {CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Correlation-ID ::= OCTET STRING (SIZE (4))
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTValueExtended ::= SEQUENCE {
+ pDCP-SNExtended PDCP-SNExtended,
+ hFNModified HFNModified,
+ iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTValueExtended-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvaluePDCP-SNlength18 ::= SEQUENCE {
+ pDCP-SNlength18 PDCP-SNlength18,
+ hFNforPDCP-SNlength18 HFNforPDCP-SNlength18,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTvaluePDCP-SNlength18-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CoverageModificationList ::= SEQUENCE (SIZE (1..maxCellineNB)) OF CoverageModification-Item
+
+CoverageModification-Item ::= SEQUENCE {
+ eCGI ECGI,
+ coverageState INTEGER (0..15, ...),
+ cellDeploymentStatusIndicator CellDeploymentStatusIndicator OPTIONAL,
+ cellReplacingInfo CellReplacingInfo OPTIONAL,
+-- Included in case the Cell Deployment Status Indicator IE is present
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+ SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CRNTI ::= BIT STRING (SIZE (16))
+
+CSGMembershipStatus ::= ENUMERATED {
+ member,
+ not-member
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+CSIReportList ::= SEQUENCE (SIZE(1..maxUEReport)) OF
+ SEQUENCE {
+ uEID UEID,
+ cSIReportPerCSIProcess CSIReportPerCSIProcess,
+ iE-Extensions ProtocolExtensionContainer { {CSIReportList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CSIReportList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSIReportPerCSIProcess ::= SEQUENCE (SIZE(1.. maxCSIProcess)) OF
+ SEQUENCE {
+ cSIProcessConfigurationIndex INTEGER (1..7, ...),
+ cSIReportPerCSIProcessItem CSIReportPerCSIProcessItem,
+ iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcess-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CSIReportPerCSIProcess-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSIReportPerCSIProcessItem ::= SEQUENCE (SIZE(1.. maxCSIReport)) OF
+ SEQUENCE {
+ rI INTEGER (1..8, ...),
+ widebandCQI WidebandCQI,
+ subbandSize SubbandSize,
+ subbandCQIList SubbandCQIList OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CSIReportPerCSIProcessItem-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CSIReportPerCSIProcessItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CyclicPrefixDL ::= ENUMERATED {
+ normal,
+ extended,
+ ...
+}
+
+CyclicPrefixUL ::= ENUMERATED {
+ normal,
+ extended,
+ ...
+}
+
+
+-- D
+
+
+DataTrafficResources ::= BIT STRING (SIZE(6..17600))
+
+DataTrafficResourceIndication ::= SEQUENCE {
+ activationSFN INTEGER (0..1023),
+ sharedResourceType SharedResourceType,
+ reservedSubframePattern ReservedSubframePattern OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {DataTrafficResourceIndication-ExtIEs} } OPTIONAL,
+...
+}
+
+DataTrafficResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DeactivationIndication::= ENUMERATED {
+ deactivated,
+ ...
+}
+
+DeliveryStatus ::= SEQUENCE {
+ highestSuccessDeliveredPDCPSN INTEGER (0..4095),
+ iE-Extensions ProtocolExtensionContainer { {DeliveryStatus-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DeliveryStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+DL-ABS-status::= INTEGER (0..100)
+
+DL-Forwarding ::= ENUMERATED {
+ dL-forwardingProposed,
+ ...
+}
+
+DL-GBR-PRB-usage::= INTEGER (0..100)
+
+DL-non-GBR-PRB-usage::= INTEGER (0..100)
+
+DLResourceBitmapULandDLSharing ::= DataTrafficResources
+
+DLResourcesULandDLSharing ::= CHOICE {
+unchanged NULL,
+ changed DLResourceBitmapULandDLSharing,
+ ...
+}
+
+DL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100)
+
+DL-Total-PRB-usage::= INTEGER (0..100)
+
+DRB-ID ::= INTEGER (1..32)
+
+DynamicDLTransmissionInformation ::= CHOICE {
+ naics-active DynamicNAICSInformation,
+ naics-inactive NULL,
+ ...
+}
+
+DynamicNAICSInformation ::= SEQUENCE {
+ transmissionModes BIT STRING (SIZE(8)) OPTIONAL,
+ pB-information INTEGER(0..3) OPTIONAL,
+ pA-list SEQUENCE (SIZE(0..maxnoofPA)) OF PA-Values,
+ iE-Extensions ProtocolExtensionContainer { {DynamicNAICSInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DynamicNAICSInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- E
+
+EARFCN ::= INTEGER (0..maxEARFCN)
+
+EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...)
+
+ECGI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ eUTRANcellIdentifier EUTRANCellIdentifier,
+ iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EnhancedRNTP ::= SEQUENCE {
+ enhancedRNTPBitmap BIT STRING (SIZE(12..8800, ...)),
+ rNTP-High-Power-Threshold RNTP-Threshold,
+ enhancedRNTPStartTime EnhancedRNTPStartTime OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {EnhancedRNTP-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EnhancedRNTP-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EnhancedRNTPStartTime ::= SEQUENCE {
+ startSFN INTEGER (0..1023, ...),
+ startSubframeNumber INTEGER (0..9, ...),
+ iE-Extensions ProtocolExtensionContainer { {EnhancedRNTPStartTime-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+EnhancedRNTPStartTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-ID ::= CHOICE {
+ macro-eNB-ID BIT STRING (SIZE (20)),
+ home-eNB-ID BIT STRING (SIZE (28)),
+ ... ,
+ short-Macro-eNB-ID BIT STRING (SIZE(18)),
+ long-Macro-eNB-ID BIT STRING (SIZE(21))
+}
+
+EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...))
+
+EN-DC-ResourceConfiguration ::= SEQUENCE {
+ pDCPatSgNB ENUMERATED {present, not-present, ...},
+ mCGresources ENUMERATED {present, not-present, ...},
+ sCGresources ENUMERATED {present, not-present, ...},
+ iE-Extensions ProtocolExtensionContainer { {EN-DC-ResourceConfigurationExtIEs} } OPTIONAL,
+ ...
+}
+
+EN-DC-ResourceConfigurationExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
+
+ERABActivityNotifyItemList ::= SEQUENCE (SIZE (0..maxnoofBearers)) OF ERABActivityNotifyItem
+
+ERABActivityNotifyItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ activityReport UserPlaneTrafficActivityReport,
+ iE-Extensions ProtocolExtensionContainer { {ERABActivityNotifyItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ERABActivityNotifyItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RAB-ID ::= INTEGER (0..15, ...)
+
+E-RAB-Level-QoS-Parameters ::= SEQUENCE {
+ qCI QCI,
+ allocationAndRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RAB-Level-QoS-Parameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RAB-Level-QoS-Parameters-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+-- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance –
+ { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}|
+ { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional},
+ ...
+}
+
+E-RAB-List ::= SEQUENCE (SIZE(1.. maxnoofBearers)) OF ProtocolIE-Single-Container { {E-RAB-ItemIEs} }
+
+E-RAB-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RAB-Item CRITICALITY ignore TYPE E-RAB-Item PRESENCE mandatory },
+ ...
+}
+
+E-RAB-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RAB-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RAB-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-Single-Container { {E-RABUsageReport-ItemIEs} }
+
+E-RABUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-E-RABUsageReport-Item CRITICALITY ignore TYPE E-RABUsageReport-Item PRESENCE mandatory },
+ ...
+}
+
+E-RABUsageReport-Item ::= SEQUENCE {
+ startTimeStamp OCTET STRING (SIZE(4)),
+ endTimeStamp OCTET STRING (SIZE(4)),
+ usageCountUL INTEGER (0..18446744073709551615),
+ usageCountDL INTEGER (0..18446744073709551615),
+ iE-Extensions ProtocolExtensionContainer { {E-RABUsageReport-Item-ExtIEs} } OPTIONAL,
+...
+}
+
+E-RABUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRA-Mode-Info ::= CHOICE {
+ fDD FDD-Info,
+ tDD TDD-Info,
+ ...
+}
+
+EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
+
+EUTRANTraceID ::= OCTET STRING (SIZE (8))
+
+EventType ::= ENUMERATED{
+ change-of-serving-cell,
+ ...
+}
+
+ExpectedUEBehaviour ::= SEQUENCE {
+ expectedActivity ExpectedUEActivityBehaviour OPTIONAL,
+ expectedHOInterval ExpectedHOInterval OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ExpectedUEBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedUEActivityBehaviour ::= SEQUENCE {
+ expectedActivityPeriod ExpectedActivityPeriod OPTIONAL,
+ expectedIdlePeriod ExpectedIdlePeriod OPTIONAL,
+ sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEActivityBehaviour-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+ExpectedHOInterval ::= ENUMERATED {
+ sec15, sec30, sec60, sec90, sec120, sec180, long-time,
+ ...
+}
+
+ExtendedULInterferenceOverloadInfo ::= SEQUENCE {
+ associatedSubframes BIT STRING (SIZE (5)),
+ extended-ul-InterferenceOverloadIndication UL-InterferenceOverloadIndication,
+ iE-Extensions ProtocolExtensionContainer { {ExtendedULInterferenceOverloadInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExtendedULInterferenceOverloadInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExtendedBitRate ::= INTEGER (10000000001..4000000000000,...)
+
+-- F
+
+FDD-Info ::= SEQUENCE {
+ uL-EARFCN EARFCN,
+ dL-EARFCN EARFCN,
+ uL-Transmission-Bandwidth Transmission-Bandwidth,
+ dL-Transmission-Bandwidth Transmission-Bandwidth,
+ iE-Extensions ProtocolExtensionContainer { {FDD-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-UL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}|
+ { ID id-DL-EARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}|
+ { ID id-OffsetOfNbiotChannelNumberToDL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}|
+ { ID id-OffsetOfNbiotChannelNumberToUL-EARFCN CRITICALITY reject EXTENSION OffsetOfNbiotChannelNumberToEARFCN PRESENCE optional}|
+ { ID id-NRS-NSSS-PowerOffset CRITICALITY ignore EXTENSION NRS-NSSS-PowerOffset PRESENCE optional}|
+ { ID id-NSSS-NumOccasionDifferentPrecoder CRITICALITY ignore EXTENSION NSSS-NumOccasionDifferentPrecoder PRESENCE optional},
+ ...
+}
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...,
+ geranandutran,
+ cdma2000andutran
+
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ forbiddenTACs ForbiddenTACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenTAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ forbiddenLACs ForbiddenLACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenLAs-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+Fourframes ::= BIT STRING (SIZE (24))
+
+FreqBandIndicator ::= INTEGER (1..256, ...)
+
+FreqBandIndicatorPriority ::= ENUMERATED {
+ not-broadcasted,
+ broadcasted,
+ ...
+}
+
+
+FreqBandNrItem ::= SEQUENCE {
+ freqBandIndicatorNr INTEGER (1..1024,...),
+ supportedSULBandList SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem,
+ iE-Extensions ProtocolExtensionContainer { {FreqBandNrItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FreqBandNrItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- G
+
+GBR-QosInformation ::= SEQUENCE {
+ e-RAB-MaximumBitrateDL BitRate,
+ e-RAB-MaximumBitrateUL BitRate,
+ e-RAB-GuaranteedBitrateDL BitRate,
+ e-RAB-GuaranteedBitrateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { {GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+-- Extension for maximum bitrate > 10Gbps --
+ { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional},
+ ...
+}
+
+GlobalENB-ID ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GlobalGNB-ID ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ gNB-ID GNB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalGNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalGNB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GTPtunnelEndpoint ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEI,
+ iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GTP-TEI ::= OCTET STRING (SIZE (4))
+
+GUGroupIDList ::= SEQUENCE (SIZE (1..maxPools)) OF GU-Group-ID
+
+
+GU-Group-ID ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ mME-Group-ID MME-Group-ID,
+ iE-Extensions ProtocolExtensionContainer { {GU-Group-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GU-Group-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GUMMEI ::= SEQUENCE {
+
+ gU-Group-ID GU-Group-ID,
+ mME-Code MME-Code,
+ iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GUMMEI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GNB-ID ::= CHOICE {
+ gNB-ID BIT STRING (SIZE (22..32)),
+ ...
+}
+
+-- H
+
+HandoverReportType ::= ENUMERATED {
+ hoTooEarly,
+ hoToWrongCell,
+ ...,
+ interRATpingpong
+}
+
+HandoverRestrictionList ::= SEQUENCE {
+ servingPLMN PLMN-Identity,
+ equivalentPLMNs EPLMNs OPTIONAL,
+ forbiddenTAs ForbiddenTAs OPTIONAL,
+ forbiddenLAs ForbiddenLAs OPTIONAL,
+ forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-NRrestrictioninEPSasSecondaryRAT CRITICALITY ignore EXTENSION NRrestrictioninEPSasSecondaryRAT PRESENCE optional}|
+ { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}|
+ { ID id-NRrestrictionin5GS CRITICALITY ignore EXTENSION NRrestrictionin5GS PRESENCE optional},
+ ...
+}
+
+HFN ::= INTEGER (0..1048575)
+
+HFNModified ::= INTEGER (0..131071)
+
+HFNforPDCP-SNlength18 ::= INTEGER (0..16383)
+
+HWLoadIndicator ::= SEQUENCE {
+ dLHWLoadIndicator LoadIndicator,
+ uLHWLoadIndicator LoadIndicator,
+ iE-Extensions ProtocolExtensionContainer { {HWLoadIndicator-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- I
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...))
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+
+InvokeIndication ::= ENUMERATED{
+ abs-information,
+ ...,
+ naics-information-start,
+ naics-information-stop
+}
+
+-- J
+-- K
+
+Key-eNodeB-Star ::= BIT STRING (SIZE(256))
+
+-- L
+
+LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H))
+
+LastVisitedCell-Item ::= CHOICE {
+ e-UTRAN-Cell LastVisitedEUTRANCellInformation,
+ uTRAN-Cell LastVisitedUTRANCellInformation,
+ gERAN-Cell LastVisitedGERANCellInformation,
+ ...,
+ nG-RAN-Cell LastVisitedNGRANCellInformation
+}
+
+LastVisitedEUTRANCellInformation ::= SEQUENCE {
+ global-Cell-ID ECGI,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { {LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LastVisitedEUTRANCellInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell --
+ { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}|
+ { ID id-HO-cause CRITICALITY ignore EXTENSION Cause PRESENCE optional},
+ ...
+}
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+LastVisitedNGRANCellInformation ::= OCTET STRING
+
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LHN-ID ::= OCTET STRING(SIZE (32..256))
+
+Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...}
+
+LoadIndicator ::= ENUMERATED {
+ lowLoad,
+ mediumLoad,
+ highLoad,
+ overLoad,
+ ...
+}
+
+LocationReportingInformation ::= SEQUENCE {
+ eventType EventType,
+ reportArea ReportArea,
+ iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={
+ ...
+}
+
+-- M
+
+M1PeriodicReporting ::= SEQUENCE {
+ reportInterval ReportIntervalMDT,
+ reportAmount ReportAmountMDT,
+ iE-Extensions ProtocolExtensionContainer { {M1PeriodicReporting-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M1ReportingTrigger::= ENUMERATED{
+ periodic,
+ a2eventtriggered,
+ ...,
+ a2eventtriggered-periodic
+}
+
+M1ThresholdEventA2 ::= SEQUENCE {
+ measurementThreshold MeasurementThresholdA2,
+ iE-Extensions ProtocolExtensionContainer { {M1ThresholdEventA2-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M3Configuration ::= SEQUENCE {
+ m3period M3period,
+ iE-Extensions ProtocolExtensionContainer { {M3Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M3Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... }
+
+M4Configuration ::= SEQUENCE {
+ m4period M4period,
+ m4-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { {M4Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M4Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+
+M5Configuration ::= SEQUENCE {
+ m5period M5period,
+ m5-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { {M5Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M5Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M6Configuration ::= SEQUENCE {
+ m6report-interval M6report-interval,
+ m6delay-threshold M6delay-threshold OPTIONAL,
+-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” --
+ m6-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { {M6Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M6Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M6report-interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... }
+
+M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... }
+
+M7Configuration ::= SEQUENCE {
+ m7period M7period,
+ m7-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { {M7Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M7Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M7period ::= INTEGER(1..60, ...)
+
+MakeBeforeBreakIndicator::= ENUMERATED {true, ...}
+
+ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...}
+
+Masked-IMEISV ::= BIT STRING (SIZE (64))
+
+MDT-Activation ::= ENUMERATED {
+ immediate-MDT-only,
+ immediate-MDT-and-Trace,
+ ...
+}
+
+MDT-Configuration ::= SEQUENCE {
+ mdt-Activation MDT-Activation,
+ areaScopeOfMDT AreaScopeOfMDT,
+ measurementsToActivate MeasurementsToActivate,
+ m1reportingTrigger M1ReportingTrigger,
+ m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
+-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+ m1periodicReporting M1PeriodicReporting OPTIONAL,
+-- Included in case of periodic, or event-triggered periodic reporting for measurement M1
+ iE-Extensions ProtocolExtensionContainer { {MDT-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ {ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}|
+ {ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}|
+ {ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}|
+ {ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}|
+ {ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional}|
+ {ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}|
+ {ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}|
+ { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}|
+ { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional},
+ ...
+}
+
+MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity
+
+MDT-Location-Info ::= BIT STRING (SIZE (8))
+
+Measurement-ID ::= INTEGER (1..4095, ...)
+
+MeasurementsToActivate::= BIT STRING (SIZE (8))
+
+MeasurementThresholdA2 ::= CHOICE {
+ threshold-RSRP Threshold-RSRP,
+ threshold-RSRQ Threshold-RSRQ,
+ ...
+}
+
+MeNBResourceCoordinationInformation ::= SEQUENCE {
+ eUTRA-Cell-ID ECGI,
+ uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)),
+ dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MeNBResourceCoordinationInformationExtIEs} } OPTIONAL,
+ ...
+}
+
+MeNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MeNBtoSeNBContainer ::= OCTET STRING
+
+MME-Group-ID ::= OCTET STRING (SIZE (2))
+
+MME-Code ::= OCTET STRING (SIZE (1))
+
+MBMS-Service-Area-Identity-List ::= SEQUENCE (SIZE(1.. maxnoofMBMSServiceAreaIdentities)) OF MBMS-Service-Area-Identity
+
+MBMS-Service-Area-Identity ::= OCTET STRING (SIZE (2))
+
+MBSFN-Subframe-Infolist::= SEQUENCE (SIZE(1.. maxnoofMBSFN)) OF MBSFN-Subframe-Info
+
+MBSFN-Subframe-Info ::= SEQUENCE {
+ radioframeAllocationPeriod RadioframeAllocationPeriod,
+ radioframeAllocationOffset RadioframeAllocationOffset,
+ subframeAllocation SubframeAllocation,
+ iE-Extensions ProtocolExtensionContainer { {MBSFN-Subframe-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MobilityParametersModificationRange ::= SEQUENCE {
+ handoverTriggerChangeLowerLimit INTEGER (-20..20),
+ handoverTriggerChangeUpperLimit INTEGER (-20..20),
+ ...
+}
+
+MobilityParametersInformation ::= SEQUENCE {
+ handoverTriggerChange INTEGER (-20..20),
+ ...
+}
+
+MultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofBands)) OF BandInfo
+
+
+BandInfo ::= SEQUENCE {
+ freqBandIndicator FreqBandIndicator,
+ iE-Extensions ProtocolExtensionContainer { {BandInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+BandInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MeNBtoSgNBContainer ::= OCTET STRING
+
+SplitSRBs ::= ENUMERATED {srb1, srb2, srb1and2, ...}
+
+SplitSRB ::= SEQUENCE {
+ rrcContainer RRCContainer OPTIONAL,
+ srbType SRBType,
+ deliveryStatus DeliveryStatus OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SplitSRB-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SplitSRB-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UENRMeasurement ::= SEQUENCE {
+ uENRMeasurements RRCContainer,
+ iE-Extensions ProtocolExtensionContainer { {UENRMeasurement-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UENRMeasurement-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- N
+
+Neighbour-Information ::= SEQUENCE (SIZE (0..maxnoofNeighbours)) OF SEQUENCE {
+ eCGI ECGI,
+ pCI PCI,
+ eARFCN EARFCN,
+ iE-Extensions ProtocolExtensionContainer { {Neighbour-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Neighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-NeighbourTAC CRITICALITY ignore EXTENSION TAC PRESENCE optional}|
+ { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional},
+ ...
+}
+
+NextHopChainingCount ::= INTEGER (0..7)
+
+Number-of-Antennaports ::= ENUMERATED {
+ an1,
+ an2,
+ an4,
+ ...
+}
+
+NRFreqInfo ::= SEQUENCE{
+ nRARFCN INTEGER (0.. 3279165),
+ nRARFCN-SUL INTEGER (0.. 3279165) OPTIONAL,
+ freqBandListNr SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF FreqBandNrItem,
+ sULInformation SULInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {NRFreqInfo-ExtIEs} } OPTIONAL,
+
+ ...
+}
+
+NRFreqInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NRCellIdentifier ::= BIT STRING (SIZE (36))
+
+NRCGI ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ nRcellIdentifier NRCellIdentifier,
+ iE-Extensions ProtocolExtensionContainer { {NRCGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NRCGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NRPCI ::= INTEGER (0..1007)
+
+NRrestrictioninEPSasSecondaryRAT ::= ENUMERATED {
+ nRrestrictedinEPSasSecondaryRAT,
+ ...
+}
+
+NRrestrictionin5GS ::= ENUMERATED {
+ nRrestrictedin5GS,
+ ...
+}
+
+NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+NR-TxBW ::= SEQUENCE {
+ nRSCS NRSCS,
+ nRNRB NRNRB,
+ iE-Extensions ProtocolExtensionContainer { {NR-TxBW-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NR-TxBW-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NRNRB ::= ENUMERATED { nrb11, nrb18, nrb24, nrb25, nrb31, nrb32, nrb38, nrb51, nrb52, nrb65, nrb66, nrb78, nrb79, nrb93, nrb106, nrb107, nrb121, nrb132, nrb133, nrb135, nrb160, nrb162, nrb189, nrb216, nrb217, nrb245, nrb264, nrb270, nrb273, ...}
+
+NRSCS ::= ENUMERATED { scs15, scs30, scs60, scs120, ...}
+
+NRS-NSSS-PowerOffset ::= ENUMERATED { minusThree, zero, three, ...}
+
+FiveGS-TAC ::= OCTET STRING (SIZE (3))
+
+NRUESecurityCapabilities ::= SEQUENCE {
+ nRencryptionAlgorithms NRencryptionAlgorithms,
+ nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { {NRUESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+NRUESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NSSS-NumOccasionDifferentPrecoder ::= ENUMERATED { two, four, eight, ...}
+
+-- O
+
+OffsetOfNbiotChannelNumberToEARFCN ::= ENUMERATED {
+ minusTen,
+ minusNine,
+ minusEight,
+ minusSeven,
+ minusSix,
+ minusFive,
+ minusFour,
+ minusThree,
+ minusTwo,
+ minusOne,
+ minusZeroDotFive,
+ zero,
+ one,
+ two,
+ three,
+ four,
+ five,
+ six,
+ seven,
+ eight,
+ nine,
+ ...
+}
+
+Oneframe ::= BIT STRING (SIZE (6))
+
+-- P
+
+Packet-LossRate ::= INTEGER(0..1000)
+
+PA-Values ::= ENUMERATED {
+ dB-6,
+ dB-4dot77,
+ dB-3,
+ dB-1dot77,
+ dB0,
+ dB1,
+ dB2,
+ dB3,
+ ...
+}
+
+PDCPChangeIndication ::= ENUMERATED {s-KgNB-update-required, pDCP-data-recovery-required,...}
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PDCP-SNExtended ::= INTEGER (0..32767)
+
+PDCP-SNlength18 ::= INTEGER (0..262143)
+
+PDCPSnLength ::= ENUMERATED {twelve-bits,eighteen-bits,...}
+
+PCI ::= INTEGER (0..503, ...)
+
+PLMN-Identity ::= OCTET STRING (SIZE(3))
+
+Port-Number ::= OCTET STRING (SIZE (2))
+
+PRACH-Configuration ::= SEQUENCE {
+ rootSequenceIndex INTEGER (0..837),
+ zeroCorrelationIndex INTEGER (0..15),
+ highSpeedFlag BOOLEAN,
+ prach-FreqOffset INTEGER (0..94),
+ prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD --
+ iE-Extensions ProtocolExtensionContainer { {PRACH-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLMNAreaBasedQMC ::= SEQUENCE {
+ plmnListforQMC PLMNListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLMNAreaBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMN-Identity
+
+
+PRACH-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+ProSeAuthorized ::= SEQUENCE {
+ proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL,
+ proSeDirectCommunication ProSeDirectCommunication OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ProSeAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional},
+ ...
+}
+
+ProSeDirectDiscovery ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeDirectCommunication ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeUEtoNetworkRelaying ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProtectedEUTRAResourceIndication::= SEQUENCE {
+ activationSFN INTEGER (0..1023),
+ protectedResourceList ProtectedResourceList,
+ mBSFNControlRegionLength INTEGER (0..3) OPTIONAL,
+ pDCCHRegionLength INTEGER (1..3) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ProtectedEUTRAResourceIndication-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ProtectedEUTRAResourceIndication-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+} -- Rapporteur: missing extension --
+
+
+ProtectedFootprintTimePattern ::= SEQUENCE {
+ protectedFootprintTimePeriodicity INTEGER (1..320, ...),
+ protectedFootprintStartTime INTEGER (1..20, ...),
+ iE-Extensions ProtocolExtensionContainer { {ProtectedFootprintTimePattern-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ProtectedFootprintTimePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ProtectedResourceList ::= SEQUENCE (SIZE(1.. maxnoofProtectedResourcePatterns)) OF ProtectedResourceList-Item
+
+ProtectedResourceList-Item ::= SEQUENCE {
+ resourceType ResourceType,
+ intraPRBProtectedResourceFootprint BIT STRING (SIZE(84, ...)),
+ protectedFootprintFrequencyPattern BIT STRING (SIZE(6..110, ...)),
+ protectedFootprintTimePattern ProtectedFootprintTimePattern,
+ iE-Extensions ProtocolExtensionContainer { {ProtectedResourceList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ProtectedResourceList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+RadioframeAllocationOffset ::= INTEGER (0..7, ...)
+
+RadioframeAllocationPeriod ::= ENUMERATED{
+ n1,
+ n2,
+ n4,
+ n8,
+ n16,
+ n32,
+ ...
+}
+
+
+RadioResourceStatus ::= SEQUENCE {
+ dL-GBR-PRB-usage DL-GBR-PRB-usage,
+ uL-GBR-PRB-usage UL-GBR-PRB-usage,
+ dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage,
+ uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage,
+ dL-Total-PRB-usage DL-Total-PRB-usage,
+ uL-Total-PRB-usage UL-Total-PRB-usage,
+ iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ {ID id-DL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION DL-scheduling-PDCCH-CCE-usage PRESENCE optional}|
+
+ {ID id-UL-scheduling-PDCCH-CCE-usage CRITICALITY ignore EXTENSION UL-scheduling-PDCCH-CCE-usage PRESENCE optional},
+ ...
+}
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384))
+
+ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072))
+
+Reestablishment-Indication ::= ENUMERATED {
+ reestablished,
+ ...
+}
+
+Registration-Request ::= ENUMERATED {
+ start,
+ stop,
+ ...,
+ partial-stop,
+ add
+}
+
+RelativeNarrowbandTxPower ::= SEQUENCE {
+
+ rNTP-PerPRB BIT STRING (SIZE(6..110, ...)),
+ rNTP-Threshold RNTP-Threshold,
+ numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...},
+ p-B INTEGER (0..3,...),
+ pDCCH-InterferenceImpact INTEGER (0..4,...),
+ iE-Extensions ProtocolExtensionContainer { {RelativeNarrowbandTxPower-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-enhancedRNTP CRITICALITY ignore EXTENSION EnhancedRNTP PRESENCE optional },
+ ...
+}
+
+ReplacingCellsList ::= SEQUENCE (SIZE(0.. maxCellineNB)) OF ReplacingCellsList-Item
+
+ReplacingCellsList-Item ::= SEQUENCE {
+ eCGI ECGI,
+ ...
+}
+
+ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity}
+
+ReportArea ::= ENUMERATED{
+ ecgi,
+ ...
+}
+
+ReportCharacteristics ::= BIT STRING (SIZE (32))
+
+ReportingPeriodicityCSIR ::= ENUMERATED {
+ ms5,
+ ms10,
+ ms20,
+ ms40,
+ ms80,
+...
+}
+
+ReportingPeriodicityRSRPMR ::= ENUMERATED {
+ one-hundred-20-ms,
+ two-hundred-40-ms,
+ four-hundred-80-ms,
+ six-hundred-40-ms,
+...
+}
+
+ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60}
+
+ReservedSubframePattern ::= SEQUENCE{
+ subframeType SubframeType,
+ reservedSubframePattern BIT STRING (SIZE(10..160)),
+ mBSFNControlRegionLength INTEGER (0..3),
+ iE-Extensions ProtocolExtensionContainer { {ReservedSubframePattern-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ReservedSubframePattern-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ResourceType ::= ENUMERATED {
+ downlinknonCRS,
+ cRS,
+ uplink,
+ ...
+}
+
+ResumeID ::= CHOICE {
+ non-truncated BIT STRING(SIZE(40)),
+ truncated BIT STRING(SIZE(24)),
+ ...
+}
+
+RLCMode ::= ENUMERATED {
+ rlc-am,
+ rlc-um-bidirectional,
+ rlc-um-unidirectional-ul,
+ rlc-um-unidirectional-dl,
+ ...
+}
+
+RLC-Status ::= SEQUENCE {
+ reestablishment-Indication Reestablishment-Indication,
+ iE-Extensions ProtocolExtensionContainer { {RLC-Status-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RLC-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNTP-Threshold ::= ENUMERATED {
+ minusInfinity,
+ minusEleven,
+ minusTen,
+ minusNine,
+ minusEight,
+ minusSeven,
+ minusSix,
+ minusFive,
+ minusFour,
+ minusThree,
+ minusTwo,
+ minusOne,
+ zero,
+ one,
+ two,
+ three,
+ ...
+}
+
+RRC-Config-Ind ::= ENUMERATED {
+ full-config,
+ delta-config,
+ ...
+}
+
+RRC-Context ::= OCTET STRING
+
+RRCConnReestabIndicator ::= ENUMERATED {
+ reconfigurationFailure, handoverFailure, otherFailure, ...
+}
+-- The values correspond to the values of ReestablishmentCause reported from the UE in the RRCConnectionReestablishmentRequest, as defined in TS 36.331 [9]
+
+RRCConnSetupIndicator::= ENUMERATED {
+ rrcConnSetup,
+ ...
+}
+
+RSRPMeasurementResult ::= SEQUENCE (SIZE(1..maxCellReport)) OF
+ SEQUENCE {
+ rSRPCellID ECGI,
+ rSRPMeasured INTEGER (0..97, ...),
+ iE-Extensions ProtocolExtensionContainer { {RSRPMeasurementResult-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RSRPMeasurementResult-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RSRPMRList ::= SEQUENCE (SIZE(1..maxUEReport)) OF
+ SEQUENCE {
+ rSRPMeasurementResult RSRPMeasurementResult,
+ iE-Extensions ProtocolExtensionContainer { {RSRPMRList-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+RSRPMRList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-UEID CRITICALITY ignore EXTENSION UEID PRESENCE optional},
+ ...
+}
+
+RRCContainer ::= OCTET STRING
+
+-- S
+
+S1TNLLoadIndicator ::= SEQUENCE {
+ dLS1TNLLoadIndicator LoadIndicator,
+ uLS1TNLLoadIndicator LoadIndicator,
+ iE-Extensions ProtocolExtensionContainer { {S1TNLLoadIndicator-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SCGChangeIndication ::= ENUMERATED {pDCPCountWrapAround, pSCellChange, other, ...}
+
+SecondaryRATUsageReportList ::= SEQUENCE (SIZE(1..maxnoofBearers)) OF ProtocolIE-Single-Container {{SecondaryRATUsageReport-ItemIEs}}
+
+SecondaryRATUsageReport-ItemIEs X2AP-PROTOCOL-IES ::= {
+ { ID id-SecondaryRATUsageReport-Item CRITICALITY reject TYPE SecondaryRATUsageReport-Item PRESENCE mandatory},
+ ...
+}
+
+SecondaryRATUsageReport-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ secondaryRATType ENUMERATED {nr, ...},
+ e-RABUsageReportList E-RABUsageReportList,
+ iE-Extensions ProtocolExtensionContainer { {SecondaryRATUsageReport-Item-ExtIEs} } OPTIONAL,
+...
+}
+
+SecondaryRATUsageReport-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SeNBSecurityKey ::= BIT STRING (SIZE(256))
+
+SeNBtoMeNBContainer ::= OCTET STRING
+
+
+ServedCells ::= SEQUENCE (SIZE (1.. maxCellineNB)) OF SEQUENCE {
+ servedCellInfo ServedCell-Information,
+ neighbour-Info Neighbour-Information OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ServedCell-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedCell-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedCell-Information ::= SEQUENCE {
+ pCI PCI,
+ cellId ECGI,
+ tAC TAC,
+ broadcastPLMNs BroadcastPLMNs-Item,
+ eUTRA-Mode-Info EUTRA-Mode-Info,
+ iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional}|
+ { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional}|
+ { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}|
+ { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional}|
+ { ID id-MBMS-Service-Area-List CRITICALITY ignore EXTENSION MBMS-Service-Area-Identity-List PRESENCE optional}|
+ { ID id-MultibandInfoList CRITICALITY ignore EXTENSION MultibandInfoList PRESENCE optional}|
+ { ID id-FreqBandIndicatorPriority CRITICALITY ignore EXTENSION FreqBandIndicatorPriority PRESENCE optional}|
+ { ID id-BandwidthReducedSI CRITICALITY ignore EXTENSION BandwidthReducedSI PRESENCE optional}|
+ { ID id-ProtectedEUTRAResourceIndication CRITICALITY ignore EXTENSION ProtectedEUTRAResourceIndication PRESENCE optional},
+ ...
+}
+
+ServiceType ::= ENUMERATED{
+ qMC-for-streaming-service,
+ qMC-for-MTSI-service,
+ ...
+}
+
+SgNBResourceCoordinationInformation ::= SEQUENCE {
+ nR-CGI NRCGI,
+ uLCoordinationInformation BIT STRING (SIZE(6..4400, ...)),
+ dLCoordinationInformation BIT STRING (SIZE(6..4400, ...)) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SgNBResourceCoordinationInformationExtIEs} } OPTIONAL,
+ ...
+}
+
+SgNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SgNB-UE-X2AP-ID ::= INTEGER (0..4294967295)
+
+SIPTOBearerDeactivationIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+SharedResourceType ::= CHOICE{
+ uLOnlySharing ULOnlySharing,
+ uLandDLSharing ULandDLSharing,
+ ...
+}
+
+ShortMAC-I ::= BIT STRING (SIZE(16))
+
+
+SGNB-Addition-Trigger-Ind ::= ENUMERATED {
+ sn-change,
+ inter-eNB-HO,
+ intra-eNB-HO,
+ ...
+}
+
+SourceOfUEActivityBehaviourInformation ::= ENUMERATED {
+ subscription-information,
+ statistics,
+ ...
+}
+
+SpecialSubframe-Info ::= SEQUENCE {
+ specialSubframePatterns SpecialSubframePatterns,
+ cyclicPrefixDL CyclicPrefixDL,
+ cyclicPrefixUL CyclicPrefixUL,
+ iE-Extensions ProtocolExtensionContainer { {SpecialSubframe-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SpecialSubframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SpecialSubframePatterns ::= ENUMERATED {
+ ssp0,
+ ssp1,
+ ssp2,
+ ssp3,
+ ssp4,
+ ssp5,
+ ssp6,
+ ssp7,
+ ssp8,
+ ...
+}
+
+SpectrumSharingGroupID ::= INTEGER (1..maxCellineNB)
+
+SubbandCQI ::= SEQUENCE {
+ subbandCQICodeword0 SubbandCQICodeword0,
+ subbandCQICodeword1 SubbandCQICodeword1 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SubbandCQI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Subscription-Based-UE-DifferentiationInfo ::= SEQUENCE {
+ periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ...} OPTIONAL,
+ periodicTime INTEGER (1..3600, ...) OPTIONAL,
+ scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL,
+ stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL,
+ trafficProfile ENUMERATED {single-packet, dual-packets, multiple-packets, ...} OPTIONAL,
+ batteryIndication ENUMERATED {battery-powered, battery-powered-not-rechargeable-or-replaceable, not-battery-powered, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Subscription-Based-UE-DifferentiationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Subscription-Based-UE-DifferentiationInfo-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ScheduledCommunicationTime ::= SEQUENCE {
+ dayofWeek BIT STRING (SIZE(7)) OPTIONAL,
+ timeofDayStart INTEGER (0..86399, ...) OPTIONAL,
+ timeofDayEnd INTEGER (0..86399, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ScheduledCommunicationTime-ExtIEs}} OPTIONAL,
+ ...
+}
+
+ScheduledCommunicationTime-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCCOperationPossible ::= ENUMERATED {
+ possible,
+ ...
+}
+
+SubbandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SubbandCQICodeword0 ::= CHOICE {
+ four-bitCQI INTEGER (0..15, ...),
+ two-bitSubbandDifferentialCQI INTEGER (0..3, ...),
+ two-bitDifferentialCQI INTEGER (0..3, ...),
+ ...
+}
+SubbandCQICodeword1 ::= CHOICE {
+ four-bitCQI INTEGER (0..15, ...),
+ three-bitSpatialDifferentialCQI INTEGER (0..7, ...),
+ two-bitSubbandDifferentialCQI INTEGER (0..3, ...),
+ two-bitDifferentialCQI INTEGER (0..3, ...),
+ ...
+}
+
+SubbandCQIList ::= SEQUENCE (SIZE(1.. maxSubband)) OF SubbandCQIItem
+
+SubbandCQIItem ::= SEQUENCE {
+ subbandCQI SubbandCQI,
+ subbandIndex INTEGER (0..27,...),
+ iE-Extensions ProtocolExtensionContainer { {SubbandCQIItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SubbandCQIItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SubbandSize ::= ENUMERATED {
+ size2,
+ size3,
+ size4,
+ size6,
+ size8,
+ ...
+}
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SubframeAllocation ::= CHOICE {
+ oneframe Oneframe,
+ fourframes Fourframes,
+ ...
+}
+
+SubframeAssignment ::= ENUMERATED {
+ sa0,
+ sa1,
+ sa2,
+ sa3,
+ sa4,
+ sa5,
+ sa6,
+ ...
+}
+
+SubframeType ::= ENUMERATED{mbsfn,nonmbsfn,...}
+
+SgNBSecurityKey ::= BIT STRING (SIZE(256))
+
+SgNBtoMeNBContainer ::= OCTET STRING
+
+SRBType ::= ENUMERATED {srb1, srb2, ...}
+SCGConfigurationQuery ::= ENUMERATED {true,...}
+
+SULInformation ::= SEQUENCE {
+ sUL-ARFCN INTEGER (0.. 3279165),
+ sUL-TxBW NR-TxBW,
+ iE-Extensions ProtocolExtensionContainer { {SULInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SupportedSULFreqBandItem ::= SEQUENCE {
+ freqBandIndicatorNr INTEGER (1..1024,...),
+ iE-Extensions ProtocolExtensionContainer { {SupportedSULFreqBandItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SupportedSULFreqBandItem-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SULInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- T
+
+TABasedMDT::= SEQUENCE {
+ tAListforMDT TAListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAIBasedMDT ::= SEQUENCE {
+ tAIListforMDT TAIListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI-Item
+
+TAI-Item ::= SEQUENCE {
+ tAC TAC,
+ pLMN-Identity PLMN-Identity,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
+
+TABasedQMC ::= SEQUENCE {
+ tAListforQMC TAListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC
+
+TAIBasedQMC ::= SEQUENCE {
+ tAIListforQMC TAIListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedQMC-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI-Item
+
+TargetCellInUTRAN ::= OCTET STRING -- This IE is to be encoded according to the UTRAN Cell ID in the Last Visited UTRAN Cell Information IE in TS 25.413 [24]
+
+TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
+
+TDD-Info ::= SEQUENCE {
+ eARFCN EARFCN,
+ transmission-Bandwidth Transmission-Bandwidth,
+ subframeAssignment SubframeAssignment,
+ specialSubframe-Info SpecialSubframe-Info,
+ iE-Extensions ProtocolExtensionContainer { {TDD-Info-ExtIEs} } OPTIONAL,
+ ...
+}
+TDD-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-AdditionalSpecialSubframe-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframe-Info PRESENCE optional}|
+ { ID id-eARFCNExtension CRITICALITY reject EXTENSION EARFCNExtension PRESENCE optional}|
+ { ID id-AdditionalSpecialSubframeExtension-Info CRITICALITY ignore EXTENSION AdditionalSpecialSubframeExtension-Info PRESENCE optional},
+ ...
+}
+
+Threshold-RSRP ::= INTEGER(0..97)
+
+Threshold-RSRQ ::= INTEGER(0..34)
+
+TimeToWait ::= ENUMERATED {
+ v1s,
+ v2s,
+ v5s,
+ v10s,
+ v20s,
+ v60s,
+ ...
+}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950)
+
+TraceActivation ::= SEQUENCE {
+ eUTRANTraceID EUTRANTraceID,
+ interfacesToTrace InterfacesToTrace,
+traceDepth TraceDepth,
+traceCollectionEntityIPAddress TraceCollectionEntityIPAddress,
+ iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}|
+ { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional},
+ ...
+}
+
+TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+Transmission-Bandwidth ::= ENUMERATED {
+ bw6,
+ bw15,
+ bw25,
+ bw50,
+ bw75,
+ bw100,
+ ...,
+ bw1
+}
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TunnelInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uDP-Port-Number Port-Number OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Tunnel-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+
+-- U
+
+UEAggregateMaximumBitRate ::= SEQUENCE {
+ uEaggregateMaximumBitRateDownlink BitRate,
+ uEaggregateMaximumBitRateUplink BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ { ID id-extended-uEaggregateMaximumBitRateDownlink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-uEaggregateMaximumBitRateUplink CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional},
+ ...
+}
+
+UEAppLayerMeasConfig ::= SEQUENCE {
+ containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)),
+ areaScopeOfQMC AreaScopeOfQMC,
+ iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAppLayerMeasConfig-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional},
+ ...
+}
+
+UE-ContextKeptIndicator ::= ENUMERATED {
+ true,
+ ...
+}
+
+UEID ::= BIT STRING (SIZE (16))
+
+UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
+
+UE-HistoryInformationFromTheUE ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [9]
+
+UE-S1AP-ID ::= INTEGER (0.. 4294967295)
+
+UE-X2AP-ID ::= INTEGER (0..4095)
+
+UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...)
+
+UE-RLF-Report-Container::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the RLF-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [9]
+
+UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the RLF-Report-v9e0 field contained in the UEInformationResponse message as defined in TS 36.331 [9]
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { {UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UESidelinkAggregateMaximumBitRate ::= SEQUENCE {
+ uESidelinkAggregateMaximumBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-Sidelink-Aggregate-MaximumBitRate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEsToBeResetList ::= SEQUENCE (SIZE (1.. maxUEsinengNBDU)) OF UEsToBeResetList-Item
+
+UEsToBeResetList-Item::= SEQUENCE {
+ meNB-ID UE-X2AP-ID,
+ meNB-ID-ext UE-X2AP-ID-Extension OPTIONAL,
+ sgNB-ID SgNB-UE-X2AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {UEsToBeResetList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEsToBeResetList-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ULandDLSharing ::= SEQUENCE{
+ uLResourcesULandDLSharing ULResourcesULandDLSharing,
+ dLResourcesULandDLSharing DLResourcesULandDLSharing,
+ iE-Extensions ProtocolExtensionContainer { {ULandDLSharing-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ULandDLSharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ULConfiguration::= SEQUENCE {
+ uL-PDCP UL-UE-Configuration,
+ iE-Extensions ProtocolExtensionContainer { {ULConfiguration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ULConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-UE-Configuration::= ENUMERATED { no-data, shared, only, ... }
+
+UL-GBR-PRB-usage::= INTEGER (0..100)
+
+UL-HighInterferenceIndicationInfo ::= SEQUENCE (SIZE(1..maxCellineNB)) OF UL-HighInterferenceIndicationInfo-Item
+
+UL-HighInterferenceIndicationInfo-Item ::= SEQUENCE {
+ target-Cell-ID ECGI,
+ ul-interferenceindication UL-HighInterferenceIndication,
+ iE-Extensions ProtocolExtensionContainer { {UL-HighInterferenceIndicationInfo-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...))
+
+UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item
+
+UL-InterferenceOverloadIndication-Item ::= ENUMERATED {
+ high-interference,
+ medium-interference,
+ low-interference,
+ ...
+}
+
+UL-non-GBR-PRB-usage::= INTEGER (0..100)
+
+ULOnlySharing ::= SEQUENCE{
+ uLResourceBitmapULOnlySharing DataTrafficResources,
+ iE-Extensions ProtocolExtensionContainer { {ULOnlySharing-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ULOnlySharing-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ULResourceBitmapULandDLSharing ::= DataTrafficResources
+
+
+ULResourcesULandDLSharing ::= CHOICE {
+ unchanged NULL,
+ changed ULResourceBitmapULandDLSharing,
+ ...
+}
+
+UL-scheduling-PDCCH-CCE-usage::= INTEGER (0..100)
+
+UL-Total-PRB-usage::= INTEGER (0..100)
+
+UsableABSInformation ::= CHOICE {
+ fdd UsableABSInformationFDD,
+ tdd UsableABSInformationTDD,
+ ...
+}
+
+UsableABSInformationFDD ::= SEQUENCE {
+ usable-abs-pattern-info BIT STRING (SIZE(40)),
+ iE-Extensions ProtocolExtensionContainer { {UsableABSInformationFDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UsableABSInformationTDD ::= SEQUENCE {
+ usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)),
+ iE-Extensions ProtocolExtensionContainer { {UsableABSInformationTDD-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UserPlaneTrafficActivityReport ::= ENUMERATED {inactive, re-activated, ...}
+
+-- V
+
+V2XServicesAuthorized ::= SEQUENCE {
+ vehicleUE VehicleUE OPTIONAL,
+pedestrianUE PedestrianUE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+V2XServicesAuthorized-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+VehicleUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+PedestrianUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+-- W
+
+WidebandCQI ::= SEQUENCE {
+ widebandCQICodeword0 INTEGER (0..15, ...),
+ widebandCQICodeword1 WidebandCQICodeword1 OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {WidebandCQI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+WidebandCQI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+WidebandCQICodeword1::= CHOICE {
+ four-bitCQI INTEGER (0..15, ...),
+ three-bitSpatialDifferentialCQI INTEGER (0..7, ...),
+ ...
+}
+
+WLANMeasurementConfiguration ::= SEQUENCE {
+ wlanMeasConfig WLANMeasConfig,
+ wlanMeasConfigNameList WLANMeasConfigNameList OPTIONAL,
+ wlan-rssi ENUMERATED {true, ...} OPTIONAL,
+ wlan-rtt ENUMERATED {true, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {WLANMeasurementConfiguration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+WLANMeasurementConfiguration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+WLANMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofWLANName)) OF WLANName
+
+WLANMeasConfig::= ENUMERATED {setup,...}
+
+WLANName ::= OCTET STRING (SIZE (1..32))
+
+WTID ::= CHOICE {
+ wTID-Type1 WTID-Type1,
+ wTID-Type2 WTID-Long-Type2,
+ ...
+}
+
+WTID-Type1 ::= SEQUENCE {
+ pLMN-Identity PLMN-Identity,
+ shortWTID BIT STRING (SIZE(24)),
+ ...
+}
+
+WTID-Long-Type2 ::= BIT STRING (SIZE(48))
+
+WT-UE-XwAP-ID ::= OCTET STRING (SIZE (3))
+
+-- X
+
+X2BenefitValue ::= INTEGER (1..8, ...)
+
+-- Y
+-- Z
+
+END
+
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+X2AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+
+-- **************************************************************
+--
+-- Common Data Types
+--
+-- **************************************************************
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0.. maxPrivateIEs),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+
+ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
+
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
+
+END
+
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+X2AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+FROM X2AP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-handoverPreparation ProcedureCode ::= 0
+id-handoverCancel ProcedureCode ::= 1
+id-loadIndication ProcedureCode ::= 2
+id-errorIndication ProcedureCode ::= 3
+id-snStatusTransfer ProcedureCode ::= 4
+id-uEContextRelease ProcedureCode ::= 5
+id-x2Setup ProcedureCode ::= 6
+id-reset ProcedureCode ::= 7
+id-eNBConfigurationUpdate ProcedureCode ::= 8
+id-resourceStatusReportingInitiation ProcedureCode ::= 9
+id-resourceStatusReporting ProcedureCode ::= 10
+id-privateMessage ProcedureCode ::= 11
+id-mobilitySettingsChange ProcedureCode ::= 12
+id-rLFIndication ProcedureCode ::= 13
+id-handoverReport ProcedureCode ::= 14
+id-cellActivation ProcedureCode ::= 15
+id-x2Release ProcedureCode ::= 16
+id-x2APMessageTransfer ProcedureCode ::= 17
+id-x2Removal ProcedureCode ::= 18
+id-seNBAdditionPreparation ProcedureCode ::= 19
+id-seNBReconfigurationCompletion ProcedureCode ::= 20
+id-meNBinitiatedSeNBModificationPreparation ProcedureCode ::= 21
+id-seNBinitiatedSeNBModification ProcedureCode ::= 22
+id-meNBinitiatedSeNBRelease ProcedureCode ::= 23
+id-seNBinitiatedSeNBRelease ProcedureCode ::= 24
+id-seNBCounterCheck ProcedureCode ::= 25
+id-retrieveUEContext ProcedureCode ::= 26
+id-sgNBAdditionPreparation ProcedureCode ::= 27
+id-sgNBReconfigurationCompletion ProcedureCode ::= 28
+id-meNBinitiatedSgNBModificationPreparation ProcedureCode ::= 29
+id-sgNBinitiatedSgNBModification ProcedureCode ::= 30
+id-meNBinitiatedSgNBRelease ProcedureCode ::= 31
+id-sgNBinitiatedSgNBRelease ProcedureCode ::= 32
+id-sgNBCounterCheck ProcedureCode ::= 33
+id-sgNBChange ProcedureCode ::= 34
+id-rRCTransfer ProcedureCode ::= 35
+id-endcX2Setup ProcedureCode ::= 36
+id-endcConfigurationUpdate ProcedureCode ::= 37
+id-secondaryRATDataUsageReport ProcedureCode ::= 38
+id-endcCellActivation ProcedureCode ::= 39
+id-endcPartialReset ProcedureCode ::= 40
+id-eUTRANRCellResourceCoordination ProcedureCode ::= 41
+id-SgNBActivityNotification ProcedureCode ::= 42
+id-endcX2Removal ProcedureCode ::= 43
+id-dataForwardingAddressIndication ProcedureCode ::= 44
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxEARFCN INTEGER ::= 65535
+maxEARFCNPlusOne INTEGER ::= 65536
+newmaxEARFCN INTEGER ::= 262143
+maxInterfaces INTEGER ::= 16
+maxCellineNB INTEGER ::= 256
+maxnoofBands INTEGER ::= 16
+maxnoofBearers INTEGER ::= 256
+maxNrOfErrors INTEGER ::= 256
+maxnoofPDCP-SN INTEGER ::= 16
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofNeighbours INTEGER ::= 512
+maxnoofPRBs INTEGER ::= 110
+maxPools INTEGER ::= 16
+maxnoofCells INTEGER ::= 16
+maxnoofMBSFN INTEGER ::= 8
+maxFailedMeasObjects INTEGER ::= 32
+maxnoofCellIDforMDT INTEGER ::= 32
+maxnoofTAforMDT INTEGER ::= 8
+maxnoofMBMSServiceAreaIdentities INTEGER ::= 256
+maxnoofMDTPLMNs INTEGER ::= 16
+maxnoofCoMPHypothesisSet INTEGER ::= 256
+maxnoofCoMPCells INTEGER ::= 32
+maxUEReport INTEGER ::= 128
+maxCellReport INTEGER ::= 9
+maxnoofPA INTEGER ::= 3
+maxCSIProcess INTEGER ::= 4
+maxCSIReport INTEGER ::= 2
+maxSubband INTEGER ::= 14
+maxofNRNeighbours INTEGER ::= 1024
+maxCellinengNB INTEGER ::= 16384
+-- maxnoofNRCarriers INTEGER ::= 32
+maxnooftimeperiods INTEGER ::= 2
+maxnoofCellIDforQMC INTEGER ::= 32
+maxnoofTAforQMC INTEGER ::= 8
+maxnoofPLMNforQMC INTEGER ::= 16
+maxUEsinengNBDU INTEGER ::= 8192
+maxnoofProtectedResourcePatterns INTEGER ::= 16
+maxnoNRcellsSpectrumSharingWithE-UTRA INTEGER ::= 64
+maxnoofNrCellBands INTEGER ::= 32
+maxnoofBluetoothName INTEGER ::= 4
+maxnoofWLANName INTEGER ::= 4
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-E-RABs-Admitted-Item ProtocolIE-ID ::= 0
+id-E-RABs-Admitted-List ProtocolIE-ID ::= 1
+id-E-RAB-Item ProtocolIE-ID ::= 2
+id-E-RABs-NotAdmitted-List ProtocolIE-ID ::= 3
+id-E-RABs-ToBeSetup-Item ProtocolIE-ID ::= 4
+id-Cause ProtocolIE-ID ::= 5
+id-CellInformation ProtocolIE-ID ::= 6
+id-CellInformation-Item ProtocolIE-ID ::= 7
+id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9
+id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10
+id-TargetCell-ID ProtocolIE-ID ::= 11
+id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12
+id-TraceActivation ProtocolIE-ID ::= 13
+id-UE-ContextInformation ProtocolIE-ID ::= 14
+id-UE-HistoryInformation ProtocolIE-ID ::= 15
+id-UE-X2AP-ID ProtocolIE-ID ::= 16
+id-CriticalityDiagnostics ProtocolIE-ID ::= 17
+id-E-RABs-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18
+id-E-RABs-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19
+id-ServedCells ProtocolIE-ID ::= 20
+id-GlobalENB-ID ProtocolIE-ID ::= 21
+id-TimeToWait ProtocolIE-ID ::= 22
+id-GUMMEI-ID ProtocolIE-ID ::= 23
+id-GUGroupIDList ProtocolIE-ID ::= 24
+id-ServedCellsToAdd ProtocolIE-ID ::= 25
+id-ServedCellsToModify ProtocolIE-ID ::= 26
+id-ServedCellsToDelete ProtocolIE-ID ::= 27
+id-Registration-Request ProtocolIE-ID ::= 28
+id-CellToReport ProtocolIE-ID ::= 29
+id-ReportingPeriodicity ProtocolIE-ID ::= 30
+id-CellToReport-Item ProtocolIE-ID ::= 31
+id-CellMeasurementResult ProtocolIE-ID ::= 32
+id-CellMeasurementResult-Item ProtocolIE-ID ::= 33
+id-GUGroupIDToAddList ProtocolIE-ID ::= 34
+id-GUGroupIDToDeleteList ProtocolIE-ID ::= 35
+id-SRVCCOperationPossible ProtocolIE-ID ::= 36
+id-Measurement-ID ProtocolIE-ID ::= 37
+id-ReportCharacteristics ProtocolIE-ID ::= 38
+id-ENB1-Measurement-ID ProtocolIE-ID ::= 39
+id-ENB2-Measurement-ID ProtocolIE-ID ::= 40
+id-Number-of-Antennaports ProtocolIE-ID ::= 41
+id-CompositeAvailableCapacityGroup ProtocolIE-ID ::= 42
+id-ENB1-Cell-ID ProtocolIE-ID ::= 43
+id-ENB2-Cell-ID ProtocolIE-ID ::= 44
+id-ENB2-Proposed-Mobility-Parameters ProtocolIE-ID ::= 45
+id-ENB1-Mobility-Parameters ProtocolIE-ID ::= 46
+id-ENB2-Mobility-Parameters-Modification-Range ProtocolIE-ID ::= 47
+id-FailureCellPCI ProtocolIE-ID ::= 48
+id-Re-establishmentCellECGI ProtocolIE-ID ::= 49
+id-FailureCellCRNTI ProtocolIE-ID ::= 50
+id-ShortMAC-I ProtocolIE-ID ::= 51
+id-SourceCellECGI ProtocolIE-ID ::= 52
+id-FailureCellECGI ProtocolIE-ID ::= 53
+id-HandoverReportType ProtocolIE-ID ::= 54
+id-PRACH-Configuration ProtocolIE-ID ::= 55
+id-MBSFN-Subframe-Info ProtocolIE-ID ::= 56
+id-ServedCellsToActivate ProtocolIE-ID ::= 57
+id-ActivatedCellList ProtocolIE-ID ::= 58
+id-DeactivationIndication ProtocolIE-ID ::= 59
+id-UE-RLF-Report-Container ProtocolIE-ID ::= 60
+id-ABSInformation ProtocolIE-ID ::= 61
+id-InvokeIndication ProtocolIE-ID ::= 62
+id-ABS-Status ProtocolIE-ID ::= 63
+id-PartialSuccessIndicator ProtocolIE-ID ::= 64
+id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65
+id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66
+id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67
+id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68
+id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69
+id-CSG-Id ProtocolIE-ID ::= 70
+id-CSGMembershipStatus ProtocolIE-ID ::= 71
+id-MDTConfiguration ProtocolIE-ID ::= 72
+id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74
+id-RRCConnSetupIndicator ProtocolIE-ID ::= 75
+id-NeighbourTAC ProtocolIE-ID ::= 76
+id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 77
+id-RRCConnReestabIndicator ProtocolIE-ID ::= 78
+id-MBMS-Service-Area-List ProtocolIE-ID ::= 79
+id-HO-cause ProtocolIE-ID ::= 80
+id-TargetCellInUTRAN ProtocolIE-ID ::= 81
+id-MobilityInformation ProtocolIE-ID ::= 82
+id-SourceCellCRNTI ProtocolIE-ID ::= 83
+id-MultibandInfoList ProtocolIE-ID ::= 84
+id-M3Configuration ProtocolIE-ID ::= 85
+id-M4Configuration ProtocolIE-ID ::= 86
+id-M5Configuration ProtocolIE-ID ::= 87
+id-MDT-Location-Info ProtocolIE-ID ::= 88
+id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 89
+id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 90
+id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 91
+id-ULCOUNTValueExtended ProtocolIE-ID ::= 92
+id-DLCOUNTValueExtended ProtocolIE-ID ::= 93
+id-eARFCNExtension ProtocolIE-ID ::= 94
+id-UL-EARFCNExtension ProtocolIE-ID ::= 95
+id-DL-EARFCNExtension ProtocolIE-ID ::= 96
+id-AdditionalSpecialSubframe-Info ProtocolIE-ID ::= 97
+id-Masked-IMEISV ProtocolIE-ID ::= 98
+id-IntendedULDLConfiguration ProtocolIE-ID ::= 99
+id-ExtendedULInterferenceOverloadInfo ProtocolIE-ID ::= 100
+id-RNL-Header ProtocolIE-ID ::= 101
+id-x2APMessage ProtocolIE-ID ::= 102
+id-ProSeAuthorized ProtocolIE-ID ::= 103
+id-ExpectedUEBehaviour ProtocolIE-ID ::= 104
+id-UE-HistoryInformationFromTheUE ProtocolIE-ID ::= 105
+id-DynamicDLTransmissionInformation ProtocolIE-ID ::= 106
+id-UE-RLF-Report-Container-for-extended-bands ProtocolIE-ID ::= 107
+id-CoMPInformation ProtocolIE-ID ::= 108
+id-ReportingPeriodicityRSRPMR ProtocolIE-ID ::= 109
+id-RSRPMRList ProtocolIE-ID ::= 110
+id-MeNB-UE-X2AP-ID ProtocolIE-ID ::= 111
+id-SeNB-UE-X2AP-ID ProtocolIE-ID ::= 112
+id-UE-SecurityCapabilities ProtocolIE-ID ::= 113
+id-SeNBSecurityKey ProtocolIE-ID ::= 114
+id-SeNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 115
+id-ServingPLMN ProtocolIE-ID ::= 116
+id-E-RABs-ToBeAdded-List ProtocolIE-ID ::= 117
+id-E-RABs-ToBeAdded-Item ProtocolIE-ID ::= 118
+id-MeNBtoSeNBContainer ProtocolIE-ID ::= 119
+id-E-RABs-Admitted-ToBeAdded-List ProtocolIE-ID ::= 120
+id-E-RABs-Admitted-ToBeAdded-Item ProtocolIE-ID ::= 121
+id-SeNBtoMeNBContainer ProtocolIE-ID ::= 122
+id-ResponseInformationSeNBReconfComp ProtocolIE-ID ::= 123
+id-UE-ContextInformationSeNBModReq ProtocolIE-ID ::= 124
+id-E-RABs-ToBeAdded-ModReqItem ProtocolIE-ID ::= 125
+id-E-RABs-ToBeModified-ModReqItem ProtocolIE-ID ::= 126
+id-E-RABs-ToBeReleased-ModReqItem ProtocolIE-ID ::= 127
+id-E-RABs-Admitted-ToBeAdded-ModAckList ProtocolIE-ID ::= 128
+id-E-RABs-Admitted-ToBeModified-ModAckList ProtocolIE-ID ::= 129
+id-E-RABs-Admitted-ToBeReleased-ModAckList ProtocolIE-ID ::= 130
+id-E-RABs-Admitted-ToBeAdded-ModAckItem ProtocolIE-ID ::= 131
+id-E-RABs-Admitted-ToBeModified-ModAckItem ProtocolIE-ID ::= 132
+id-E-RABs-Admitted-ToBeReleased-ModAckItem ProtocolIE-ID ::= 133
+id-E-RABs-ToBeReleased-ModReqd ProtocolIE-ID ::= 134
+id-E-RABs-ToBeReleased-ModReqdItem ProtocolIE-ID ::= 135
+id-SCGChangeIndication ProtocolIE-ID ::= 136
+id-E-RABs-ToBeReleased-List-RelReq ProtocolIE-ID ::= 137
+id-E-RABs-ToBeReleased-RelReqItem ProtocolIE-ID ::= 138
+id-E-RABs-ToBeReleased-List-RelConf ProtocolIE-ID ::= 139
+id-E-RABs-ToBeReleased-RelConfItem ProtocolIE-ID ::= 140
+id-E-RABs-SubjectToCounterCheck-List ProtocolIE-ID ::= 141
+id-E-RABs-SubjectToCounterCheckItem ProtocolIE-ID ::= 142
+id-CoverageModificationList ProtocolIE-ID ::= 143
+id-ReportingPeriodicityCSIR ProtocolIE-ID ::= 145
+id-CSIReportList ProtocolIE-ID ::= 146
+id-UEID ProtocolIE-ID ::= 147
+id-enhancedRNTP ProtocolIE-ID ::= 148
+id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 149
+id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 150
+id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 151
+id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 152
+id-UE-ContextReferenceAtSeNB ProtocolIE-ID ::= 153
+id-UE-ContextKeptIndicator ProtocolIE-ID ::= 154
+id-New-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 155
+id-Old-eNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 156
+id-MeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 157
+id-SeNB-UE-X2AP-ID-Extension ProtocolIE-ID ::= 158
+id-LHN-ID ProtocolIE-ID ::= 159
+id-FreqBandIndicatorPriority ProtocolIE-ID ::= 160
+id-M6Configuration ProtocolIE-ID ::= 161
+id-M7Configuration ProtocolIE-ID ::= 162
+id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 163
+id-SIPTO-BearerDeactivationIndication ProtocolIE-ID ::= 164
+id-GW-TransportLayerAddress ProtocolIE-ID ::= 165
+id-Correlation-ID ProtocolIE-ID ::= 166
+id-SIPTO-Correlation-ID ProtocolIE-ID ::= 167
+id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 168
+id-X2RemovalThreshold ProtocolIE-ID ::= 169
+id-CellReportingIndicator ProtocolIE-ID ::= 170
+id-BearerType ProtocolIE-ID ::= 171
+id-resumeID ProtocolIE-ID ::= 172
+id-UE-ContextInformationRetrieve ProtocolIE-ID ::= 173
+id-E-RABs-ToBeSetupRetrieve-Item ProtocolIE-ID ::= 174
+id-NewEUTRANCellIdentifier ProtocolIE-ID ::= 175
+id-V2XServicesAuthorized ProtocolIE-ID ::= 176
+id-OffsetOfNbiotChannelNumberToDL-EARFCN ProtocolIE-ID ::= 177
+id-OffsetOfNbiotChannelNumberToUL-EARFCN ProtocolIE-ID ::= 178
+id-AdditionalSpecialSubframeExtension-Info ProtocolIE-ID ::= 179
+id-BandwidthReducedSI ProtocolIE-ID ::= 180
+id-MakeBeforeBreakIndicator ProtocolIE-ID ::= 181
+id-UE-ContextReferenceAtWT ProtocolIE-ID ::= 182
+id-WT-UE-ContextKeptIndicator ProtocolIE-ID ::= 183
+id-UESidelinkAggregateMaximumBitRate ProtocolIE-ID ::= 184
+id-uL-GTPtunnelEndpoint ProtocolIE-ID ::= 185
+id-DL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 193
+id-UL-scheduling-PDCCH-CCE-usage ProtocolIE-ID ::= 194
+id-UEAppLayerMeasConfig ProtocolIE-ID ::= 195
+id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 196
+id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 197
+id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 198
+id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 199
+id-extended-uEaggregateMaximumBitRateDownlink ProtocolIE-ID ::= 200
+id-extended-uEaggregateMaximumBitRateUplink ProtocolIE-ID ::= 201
+id-NRrestrictioninEPSasSecondaryRAT ProtocolIE-ID ::= 202
+id-SgNBSecurityKey ProtocolIE-ID ::= 203
+id-SgNBUEAggregateMaximumBitRate ProtocolIE-ID ::= 204
+id-E-RABs-ToBeAdded-SgNBAddReqList ProtocolIE-ID ::= 205
+id-MeNBtoSgNBContainer ProtocolIE-ID ::= 206
+id-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 207
+id-RequestedSplitSRBs ProtocolIE-ID ::= 208
+id-E-RABs-ToBeAdded-SgNBAddReq-Item ProtocolIE-ID ::= 209
+id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAckList ProtocolIE-ID ::= 210
+id-SgNBtoMeNBContainer ProtocolIE-ID ::= 211
+id-AdmittedSplitSRBs ProtocolIE-ID ::= 212
+id-E-RABs-Admitted-ToBeAdded-SgNBAddReqAck-Item ProtocolIE-ID ::= 213
+id-ResponseInformationSgNBReconfComp ProtocolIE-ID ::= 214
+id-UE-ContextInformation-SgNBModReq ProtocolIE-ID ::= 215
+id-E-RABs-ToBeAdded-SgNBModReq-Item ProtocolIE-ID ::= 216
+id-E-RABs-ToBeModified-SgNBModReq-Item ProtocolIE-ID ::= 217
+id-E-RABs-ToBeReleased-SgNBModReq-Item ProtocolIE-ID ::= 218
+id-E-RABs-Admitted-ToBeAdded-SgNBModAckList ProtocolIE-ID ::= 219
+id-E-RABs-Admitted-ToBeModified-SgNBModAckList ProtocolIE-ID ::= 220
+id-E-RABs-Admitted-ToBeReleased-SgNBModAckList ProtocolIE-ID ::= 221
+id-E-RABs-Admitted-ToBeAdded-SgNBModAck-Item ProtocolIE-ID ::= 222
+id-E-RABs-Admitted-ToBeModified-SgNBModAck-Item ProtocolIE-ID ::= 223
+id-E-RABs-Admitted-ToBeReleased-SgNBModAck-Item ProtocolIE-ID ::= 224
+id-E-RABs-ToBeReleased-SgNBModReqdList ProtocolIE-ID ::= 225
+id-E-RABs-ToBeModified-SgNBModReqdList ProtocolIE-ID ::= 226
+id-E-RABs-ToBeReleased-SgNBModReqd-Item ProtocolIE-ID ::= 227
+id-E-RABs-ToBeModified-SgNBModReqd-Item ProtocolIE-ID ::= 228
+id-E-RABs-ToBeReleased-SgNBChaConfList ProtocolIE-ID ::= 229
+id-E-RABs-ToBeReleased-SgNBChaConf-Item ProtocolIE-ID ::= 230
+id-E-RABs-ToBeReleased-SgNBRelReqList ProtocolIE-ID ::= 231
+id-E-RABs-ToBeReleased-SgNBRelReq-Item ProtocolIE-ID ::= 232
+id-E-RABs-ToBeReleased-SgNBRelConfList ProtocolIE-ID ::= 233
+id-E-RABs-ToBeReleased-SgNBRelConf-Item ProtocolIE-ID ::= 234
+id-E-RABs-SubjectToSgNBCounterCheck-List ProtocolIE-ID ::= 235
+id-E-RABs-SubjectToSgNBCounterCheck-Item ProtocolIE-ID ::= 236
+id-RRCContainer ProtocolIE-ID ::= 237
+id-SRBType ProtocolIE-ID ::= 238
+id-Target-SgNB-ID ProtocolIE-ID ::= 239
+id-HandoverRestrictionList ProtocolIE-ID ::= 240
+id-SCGConfigurationQuery ProtocolIE-ID ::= 241
+id-SplitSRB ProtocolIE-ID ::= 242
+id-UENRMeasurement ProtocolIE-ID ::= 243
+id-InitiatingNodeType-EndcX2Setup ProtocolIE-ID ::= 244
+id-InitiatingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 245
+id-RespondingNodeType-EndcX2Setup ProtocolIE-ID ::= 246
+id-RespondingNodeType-EndcConfigUpdate ProtocolIE-ID ::= 247
+id-NRUESecurityCapabilities ProtocolIE-ID ::= 248
+id-PDCPChangeIndication ProtocolIE-ID ::= 249
+id-ServedEUTRAcellsENDCX2ManagementList ProtocolIE-ID ::= 250
+id-CellAssistanceInformation ProtocolIE-ID ::= 251
+id-Globalen-gNB-ID ProtocolIE-ID ::= 252
+id-ServedNRcellsENDCX2ManagementList ProtocolIE-ID ::= 253
+id-UE-ContextReferenceAtSgNB ProtocolIE-ID ::= 254
+id-SecondaryRATUsageReport ProtocolIE-ID ::= 255
+id-ActivationID ProtocolIE-ID ::= 256
+id-MeNBResourceCoordinationInformation ProtocolIE-ID ::= 257
+id-SgNBResourceCoordinationInformation ProtocolIE-ID ::= 258
+id-ServedEUTRAcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 259
+id-ServedEUTRAcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 260
+id-ServedNRcellsToModifyListENDCConfUpd ProtocolIE-ID ::= 261
+id-ServedNRcellsToDeleteListENDCConfUpd ProtocolIE-ID ::= 262
+id-E-RABUsageReport-Item ProtocolIE-ID ::= 263
+id-Old-SgNB-UE-X2AP-ID ProtocolIE-ID ::= 264
+id-SecondaryRATUsageReportList ProtocolIE-ID ::= 265
+id-SecondaryRATUsageReport-Item ProtocolIE-ID ::= 266
+id-ServedNRCellsToActivate ProtocolIE-ID ::= 267
+id-ActivatedNRCellList ProtocolIE-ID ::= 268
+id-SelectedPLMN ProtocolIE-ID ::= 269
+id-UEs-ToBeReset ProtocolIE-ID ::= 270
+id-UEs-Admitted-ToBeReset ProtocolIE-ID ::= 271
+id-RRCConfigIndication ProtocolIE-ID ::= 272
+id-DownlinkPacketLossRate ProtocolIE-ID ::= 273
+id-UplinkPacketLossRate ProtocolIE-ID ::= 274
+id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 275
+id-serviceType ProtocolIE-ID ::= 276
+id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277
+id-SGNB-Addition-Trigger-Ind ProtocolIE-ID ::= 278
+id-MeNBCell-ID ProtocolIE-ID ::= 279
+id-RequestedSplitSRBsrelease ProtocolIE-ID ::= 280
+id-AdmittedSplitSRBsrelease ProtocolIE-ID ::= 281
+id-NRS-NSSS-PowerOffset ProtocolIE-ID ::= 282
+id-NSSS-NumOccasionDifferentPrecoder ProtocolIE-ID ::= 283
+id-ProtectedEUTRAResourceIndication ProtocolIE-ID ::= 284
+id-InitiatingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 285
+id-RespondingNodeType-EutranrCellResourceCoordination ProtocolIE-ID ::= 286
+id-DataTrafficResourceIndication ProtocolIE-ID ::= 287
+id-SpectrumSharingGroupID ProtocolIE-ID ::= 288
+id-ListofEUTRACellsinEUTRACoordinationReq ProtocolIE-ID ::= 289
+id-ListofEUTRACellsinEUTRACoordinationResp ProtocolIE-ID ::= 290
+id-ListofEUTRACellsinNRCoordinationReq ProtocolIE-ID ::= 291
+id-ListofNRCellsinNRCoordinationReq ProtocolIE-ID ::= 292
+id-ListofNRCellsinNRCoordinationResp ProtocolIE-ID ::= 293
+id-E-RABs-AdmittedToBeModified-SgNBModConfList ProtocolIE-ID ::= 294
+id-E-RABs-AdmittedToBeModified-SgNBModConf-Item ProtocolIE-ID ::= 295
+id-UEContextLevelUserPlaneActivity ProtocolIE-ID ::= 296
+id-ERABActivityNotifyItemList ProtocolIE-ID ::= 297
+id-InitiatingNodeType-EndcX2Removal ProtocolIE-ID ::= 298
+id-RespondingNodeType-EndcX2Removal ProtocolIE-ID ::= 299
+id-RLC-Status ProtocolIE-ID ::= 300
+id-CNTypeRestrictions ProtocolIE-ID ::= 301
+id-pDCPSnLength ProtocolIE-ID ::= 302
+id-BluetoothMeasurementConfiguration ProtocolIE-ID ::= 303
+id-WLANMeasurementConfiguration ProtocolIE-ID ::= 304
+id-NRrestrictionin5GS ProtocolIE-ID ::= 305
+id-dL-Forwarding ProtocolIE-ID ::= 306
+id-E-RABs-DataForwardingAddress-List ProtocolIE-ID ::= 307
+id-E-RABs-DataForwardingAddress-Item ProtocolIE-ID ::= 308
+id-Subscription-Based-UE-DifferentiationInfo ProtocolIE-ID ::= 309
+
+END
+
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+X2AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs,
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolIE-ID
+FROM X2AP-CommonDataTypes;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+X2AP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+X2AP-PROTOCOL-IES-PAIR ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &firstCriticality Criticality,
+ &FirstValue,
+ &secondCriticality Criticality,
+ &SecondValue,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ FIRST CRITICALITY &firstCriticality
+ FIRST TYPE &FirstValue
+ SECOND CRITICALITY &secondCriticality
+ SECOND TYPE &SecondValue
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+X2AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+X2AP-PRIVATE-IES ::= CLASS {
+ &id PrivateIE-ID,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id X2AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-Container {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (1..maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id X2AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
diff --git a/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.7.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.7.0.asn1
new file mode 100644
index 0000000000..b8adf58c61
--- /dev/null
+++ b/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.7.0.asn1
@@ -0,0 +1,6998 @@
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+S1AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM S1AP-CommonDataTypes
+
+ CellTrafficTrace,
+ DeactivateTrace,
+ DownlinkUEAssociatedLPPaTransport,
+ DownlinkNASTransport,
+ DownlinkNonUEAssociatedLPPaTransport,
+ DownlinkS1cdma2000tunnelling,
+ ENBDirectInformationTransfer,
+ ENBStatusTransfer,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverCancelAcknowledge,
+ HandoverCommand,
+ HandoverFailure,
+ HandoverNotify,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ HandoverRequired,
+ InitialContextSetupFailure,
+ InitialContextSetupRequest,
+ InitialContextSetupResponse,
+ InitialUEMessage,
+ KillRequest,
+ KillResponse,
+ LocationReportingControl,
+ LocationReportingFailureIndication,
+ LocationReport,
+ MMEConfigurationUpdate,
+ MMEConfigurationUpdateAcknowledge,
+ MMEConfigurationUpdateFailure,
+ MMEDirectInformationTransfer,
+ MMEStatusTransfer,
+ NASNonDeliveryIndication,
+ OverloadStart,
+ OverloadStop,
+ Paging,
+ PathSwitchRequest,
+ PathSwitchRequestAcknowledge,
+ PathSwitchRequestFailure,
+ PrivateMessage,
+ Reset,
+ ResetAcknowledge,
+ S1SetupFailure,
+ S1SetupRequest,
+ S1SetupResponse,
+ E-RABModifyRequest,
+ E-RABModifyResponse,
+ E-RABModificationIndication,
+ E-RABModificationConfirm,
+ E-RABReleaseCommand,
+ E-RABReleaseResponse,
+ E-RABReleaseIndication,
+ E-RABSetupRequest,
+ E-RABSetupResponse,
+ TraceFailureIndication,
+ TraceStart,
+ UECapabilityInfoIndication,
+ UEContextModificationFailure,
+ UEContextModificationRequest,
+ UEContextModificationResponse,
+ UEContextReleaseCommand,
+ UEContextReleaseComplete,
+ UEContextReleaseRequest,
+ UERadioCapabilityMatchRequest,
+ UERadioCapabilityMatchResponse,
+ UplinkUEAssociatedLPPaTransport,
+ UplinkNASTransport,
+ UplinkNonUEAssociatedLPPaTransport,
+ UplinkS1cdma2000tunnelling,
+ WriteReplaceWarningRequest,
+ WriteReplaceWarningResponse,
+ ENBConfigurationTransfer,
+ MMEConfigurationTransfer,
+ PWSRestartIndication,
+ UEContextModificationIndication,
+ UEContextModificationConfirm,
+ RerouteNASRequest,
+ PWSFailureIndication,
+ UEContextSuspendRequest,
+ UEContextSuspendResponse,
+ UEContextResumeRequest,
+ UEContextResumeResponse,
+ UEContextResumeFailure,
+ ConnectionEstablishmentIndication,
+ NASDeliveryIndication,
+ RetrieveUEInformation,
+ UEInformationTransfer,
+ ENBCPRelocationIndication,
+ MMECPRelocationIndication
+
+
+FROM S1AP-PDU-Contents
+
+ id-CellTrafficTrace,
+ id-DeactivateTrace,
+ id-downlinkUEAssociatedLPPaTransport,
+ id-downlinkNASTransport,
+ id-downlinkNonUEAssociatedLPPaTransport,
+ id-DownlinkS1cdma2000tunnelling,
+ id-eNBStatusTransfer,
+ id-ErrorIndication,
+ id-HandoverCancel,
+ id-HandoverNotification,
+ id-HandoverPreparation,
+ id-HandoverResourceAllocation,
+ id-InitialContextSetup,
+ id-initialUEMessage,
+ id-ENBConfigurationUpdate,
+ id-Kill,
+ id-LocationReportingControl,
+ id-LocationReportingFailureIndication,
+ id-LocationReport,
+ id-eNBDirectInformationTransfer,
+ id-MMEConfigurationUpdate,
+ id-MMEDirectInformationTransfer,
+ id-MMEStatusTransfer,
+ id-NASNonDeliveryIndication,
+ id-OverloadStart,
+ id-OverloadStop,
+ id-Paging,
+ id-PathSwitchRequest,
+ id-PrivateMessage,
+ id-Reset,
+ id-S1Setup,
+ id-E-RABModify,
+ id-E-RABModificationIndication,
+ id-E-RABRelease,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-TraceFailureIndication,
+ id-TraceStart,
+ id-UECapabilityInfoIndication,
+ id-UEContextModification,
+ id-UEContextRelease,
+ id-UEContextReleaseRequest,
+ id-UERadioCapabilityMatch,
+ id-uplinkUEAssociatedLPPaTransport,
+ id-uplinkNASTransport,
+ id-uplinkNonUEAssociatedLPPaTransport,
+ id-UplinkS1cdma2000tunnelling,
+ id-WriteReplaceWarning,
+ id-eNBConfigurationTransfer,
+ id-MMEConfigurationTransfer,
+ id-PWSRestartIndication,
+ id-UEContextModificationIndication,
+ id-RerouteNASRequest,
+ id-PWSFailureIndication,
+ id-UEContextSuspend,
+ id-UEContextResume,
+ id-ConnectionEstablishmentIndication,
+ id-NASDeliveryIndication,
+ id-RetrieveUEInformation,
+ id-UEInformationTransfer,
+ id-eNBCPRelocationIndication,
+ id-MMECPRelocationIndication
+
+
+FROM S1AP-Constants;
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+S1AP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+S1AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= {
+ S1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ S1AP-ELEMENTARY-PROCEDURES-CLASS-2,
+ ...
+}
+
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverPreparation |
+ handoverResourceAllocation |
+ pathSwitchRequest |
+ e-RABSetup |
+ e-RABModify |
+ e-RABRelease |
+ initialContextSetup |
+ handoverCancel |
+ kill |
+ reset |
+ s1Setup |
+ uEContextModification |
+ uEContextRelease |
+ eNBConfigurationUpdate |
+ mMEConfigurationUpdate |
+ writeReplaceWarning ,
+ ...,
+ uERadioCapabilityMatch |
+ e-RABModificationIndication |
+ uEContextModificationIndication |
+ uEContextSuspend |
+ uEContextResume
+}
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverNotification |
+ e-RABReleaseIndication |
+ paging |
+ downlinkNASTransport |
+ initialUEMessage |
+ uplinkNASTransport |
+ errorIndication |
+ nASNonDeliveryIndication |
+ uEContextReleaseRequest |
+ downlinkS1cdma2000tunnelling |
+ uplinkS1cdma2000tunnelling |
+ uECapabilityInfoIndication |
+ eNBStatusTransfer |
+ mMEStatusTransfer |
+ deactivateTrace |
+ traceStart |
+ traceFailureIndication |
+ cellTrafficTrace |
+ locationReportingControl |
+ locationReportingFailureIndication |
+ locationReport |
+ overloadStart |
+ overloadStop |
+ eNBDirectInformationTransfer |
+ mMEDirectInformationTransfer |
+ eNBConfigurationTransfer |
+ mMEConfigurationTransfer |
+ privateMessage ,
+ ...,
+ downlinkUEAssociatedLPPaTransport |
+ uplinkUEAssociatedLPPaTransport |
+ downlinkNonUEAssociatedLPPaTransport |
+ uplinkNonUEAssociatedLPPaTransport |
+ pWSRestartIndication |
+ rerouteNASRequest |
+ pWSFailureIndication |
+ connectionEstablishmentIndication |
+ nASDeliveryIndication |
+ retrieveUEInformation |
+ uEInformationTransfer |
+ eNBCPRelocationIndication |
+ mMECPRelocationIndication
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequired
+ SUCCESSFUL OUTCOME HandoverCommand
+ UNSUCCESSFUL OUTCOME HandoverPreparationFailure
+ PROCEDURE CODE id-HandoverPreparation
+ CRITICALITY reject
+}
+
+handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequest
+ SUCCESSFUL OUTCOME HandoverRequestAcknowledge
+ UNSUCCESSFUL OUTCOME HandoverFailure
+ PROCEDURE CODE id-HandoverResourceAllocation
+ CRITICALITY reject
+}
+
+handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverNotify
+ PROCEDURE CODE id-HandoverNotification
+ CRITICALITY ignore
+}
+
+pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PathSwitchRequest
+ SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
+ UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
+ PROCEDURE CODE id-PathSwitchRequest
+ CRITICALITY reject
+}
+
+e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABSetupRequest
+ SUCCESSFUL OUTCOME E-RABSetupResponse
+ PROCEDURE CODE id-E-RABSetup
+ CRITICALITY reject
+}
+
+e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModifyRequest
+ SUCCESSFUL OUTCOME E-RABModifyResponse
+ PROCEDURE CODE id-E-RABModify
+ CRITICALITY reject
+}
+
+e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseCommand
+ SUCCESSFUL OUTCOME E-RABReleaseResponse
+ PROCEDURE CODE id-E-RABRelease
+ CRITICALITY reject
+}
+
+e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseIndication
+ PROCEDURE CODE id-E-RABReleaseIndication
+ CRITICALITY ignore
+}
+
+initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialContextSetupRequest
+ SUCCESSFUL OUTCOME InitialContextSetupResponse
+ UNSUCCESSFUL OUTCOME InitialContextSetupFailure
+ PROCEDURE CODE id-InitialContextSetup
+ CRITICALITY reject
+}
+
+uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseRequest
+ PROCEDURE CODE id-UEContextReleaseRequest
+ CRITICALITY ignore
+}
+
+paging S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkNASTransport
+ PROCEDURE CODE id-downlinkNASTransport
+ CRITICALITY ignore
+}
+
+initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUEMessage
+ PROCEDURE CODE id-initialUEMessage
+ CRITICALITY ignore
+}
+
+uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkNASTransport
+ PROCEDURE CODE id-uplinkNASTransport
+ CRITICALITY ignore
+}
+nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE NASNonDeliveryIndication
+ PROCEDURE CODE id-NASNonDeliveryIndication
+ CRITICALITY ignore
+}
+
+handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverCancel
+ SUCCESSFUL OUTCOME HandoverCancelAcknowledge
+ PROCEDURE CODE id-HandoverCancel
+ CRITICALITY reject
+}
+
+reset S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+errorIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+s1Setup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE S1SetupRequest
+ SUCCESSFUL OUTCOME S1SetupResponse
+ UNSUCCESSFUL OUTCOME S1SetupFailure
+ PROCEDURE CODE id-S1Setup
+ CRITICALITY reject
+}
+
+eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationUpdate
+ SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
+ PROCEDURE CODE id-ENBConfigurationUpdate
+ CRITICALITY reject
+}
+
+mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationUpdate
+ SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
+ PROCEDURE CODE id-MMEConfigurationUpdate
+ CRITICALITY reject
+}
+
+downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkS1cdma2000tunnelling
+ PROCEDURE CODE id-DownlinkS1cdma2000tunnelling
+ CRITICALITY ignore
+}
+
+uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkS1cdma2000tunnelling
+ PROCEDURE CODE id-UplinkS1cdma2000tunnelling
+ CRITICALITY ignore
+}
+
+uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationRequest
+ SUCCESSFUL OUTCOME UEContextModificationResponse
+ UNSUCCESSFUL OUTCOME UEContextModificationFailure
+ PROCEDURE CODE id-UEContextModification
+ CRITICALITY reject
+}
+
+uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UECapabilityInfoIndication
+ PROCEDURE CODE id-UECapabilityInfoIndication
+ CRITICALITY ignore
+}
+
+uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseCommand
+ SUCCESSFUL OUTCOME UEContextReleaseComplete
+ PROCEDURE CODE id-UEContextRelease
+ CRITICALITY reject
+}
+
+eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBStatusTransfer
+ PROCEDURE CODE id-eNBStatusTransfer
+ CRITICALITY ignore
+}
+
+mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEStatusTransfer
+ PROCEDURE CODE id-MMEStatusTransfer
+ CRITICALITY ignore
+}
+
+deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DeactivateTrace
+ PROCEDURE CODE id-DeactivateTrace
+ CRITICALITY ignore
+}
+
+traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceStart
+ PROCEDURE CODE id-TraceStart
+ CRITICALITY ignore
+}
+
+traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceFailureIndication
+ PROCEDURE CODE id-TraceFailureIndication
+ CRITICALITY ignore
+}
+cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
+ INITIATING MESSAGE CellTrafficTrace
+ PROCEDURE CODE id-CellTrafficTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingFailureIndication
+ PROCEDURE CODE id-LocationReportingFailureIndication
+ CRITICALITY ignore
+}
+
+locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStart
+ PROCEDURE CODE id-OverloadStart
+ CRITICALITY ignore
+}
+
+overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStop
+ PROCEDURE CODE id-OverloadStop
+ CRITICALITY reject
+}
+
+writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE WriteReplaceWarningRequest
+ SUCCESSFUL OUTCOME WriteReplaceWarningResponse
+ PROCEDURE CODE id-WriteReplaceWarning
+ CRITICALITY reject
+}
+
+eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBDirectInformationTransfer
+ PROCEDURE CODE id-eNBDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEDirectInformationTransfer
+ PROCEDURE CODE id-MMEDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationTransfer
+ PROCEDURE CODE id-eNBConfigurationTransfer
+ CRITICALITY ignore
+}
+
+mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationTransfer
+ PROCEDURE CODE id-MMEConfigurationTransfer
+ CRITICALITY ignore
+}
+
+
+privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-PrivateMessage
+ CRITICALITY ignore
+}
+
+pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWSRestartIndication
+ PROCEDURE CODE id-PWSRestartIndication
+ CRITICALITY ignore
+}
+
+kill S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE KillRequest
+ SUCCESSFUL OUTCOME KillResponse
+ PROCEDURE CODE id-Kill
+ CRITICALITY reject
+}
+
+downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport
+ PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkUEAssociatedLPPaTransport
+ PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport
+ PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport
+ PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UERadioCapabilityMatchRequest
+ SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse
+ PROCEDURE CODE id-UERadioCapabilityMatch
+ CRITICALITY reject
+}
+
+e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModificationIndication
+ SUCCESSFUL OUTCOME E-RABModificationConfirm
+ PROCEDURE CODE id-E-RABModificationIndication
+ CRITICALITY reject
+}
+
+uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationIndication
+ SUCCESSFUL OUTCOME UEContextModificationConfirm
+ PROCEDURE CODE id-UEContextModificationIndication
+ CRITICALITY reject
+}
+
+rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RerouteNASRequest
+ PROCEDURE CODE id-RerouteNASRequest
+ CRITICALITY reject
+}
+
+pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWSFailureIndication
+ PROCEDURE CODE id-PWSFailureIndication
+ CRITICALITY ignore
+}
+
+uEContextSuspend S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextSuspendRequest
+ SUCCESSFUL OUTCOME UEContextSuspendResponse
+ PROCEDURE CODE id-UEContextSuspend
+ CRITICALITY reject
+}
+
+uEContextResume S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextResumeRequest
+ SUCCESSFUL OUTCOME UEContextResumeResponse
+ UNSUCCESSFUL OUTCOME UEContextResumeFailure
+ PROCEDURE CODE id-UEContextResume
+ CRITICALITY reject
+}
+
+connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ConnectionEstablishmentIndication
+ PROCEDURE CODE id-ConnectionEstablishmentIndication
+ CRITICALITY reject
+}
+
+nASDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE NASDeliveryIndication
+ PROCEDURE CODE id-NASDeliveryIndication
+ CRITICALITY ignore
+}
+
+retrieveUEInformation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RetrieveUEInformation
+ PROCEDURE CODE id-RetrieveUEInformation
+ CRITICALITY reject
+}
+
+uEInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEInformationTransfer
+ PROCEDURE CODE id-UEInformationTransfer
+ CRITICALITY reject
+}
+
+eNBCPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBCPRelocationIndication
+ PROCEDURE CODE id-eNBCPRelocationIndication
+ CRITICALITY reject
+}
+
+mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMECPRelocationIndication
+ PROCEDURE CODE id-MMECPRelocationIndication
+ CRITICALITY reject
+}
+
+
+END
+
+
+
+-- **************************************************************
+--
+-- PDU definitions for S1AP.
+--
+-- **************************************************************
+
+S1AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+
+ UEAggregateMaximumBitrate,
+ BearerType,
+ Cause,
+ CellAccessMode,
+ Cdma2000HORequiredIndication,
+ Cdma2000HOStatus,
+ Cdma2000OneXSRVCCInfo,
+ Cdma2000OneXRAND,
+ Cdma2000PDU,
+ Cdma2000RATType,
+ Cdma2000SectorID,
+ EUTRANRoundTripDelayEstimationInfo,
+ CNDomain,
+ ConcurrentWarningMessageIndicator,
+ CriticalityDiagnostics,
+ CSFallbackIndicator,
+ CSG-Id,
+ CSG-IdList,
+ CSGMembershipStatus,
+ Data-Forwarding-Not-Possible,
+ Direct-Forwarding-Path-Availability,
+ Global-ENB-ID,
+ EUTRAN-CGI,
+ ENBname,
+ ENB-StatusTransfer-TransparentContainer,
+ ENB-UE-S1AP-ID,
+ ExtendedRepetitionPeriod,
+ GTP-TEID,
+ GUMMEI,
+ GUMMEIType,
+ HandoverRestrictionList,
+ HandoverType,
+ Masked-IMEISV,
+ LAI,
+ LPPa-PDU,
+ ManagementBasedMDTAllowed,
+ MDTPLMNList,
+ MMEname,
+ MMERelaySupportIndicator,
+ MME-UE-S1AP-ID,
+ MSClassmark2,
+ MSClassmark3,
+ NAS-PDU,
+ NASSecurityParametersfromE-UTRAN,
+ NASSecurityParameterstoE-UTRAN,
+ OverloadResponse,
+ PagingDRX,
+ PagingPriority,
+ PLMNidentity,
+ ProSeAuthorized,
+ RIMTransfer,
+ RelativeMMECapacity,
+ RequestType,
+ E-RAB-ID,
+ E-RABLevelQoSParameters,
+ E-RABList,
+ RelayNode-Indicator,
+ Routing-ID,
+ SecurityKey,
+ SecurityContext,
+ ServedGUMMEIs,
+ SONConfigurationTransfer,
+ Source-ToTarget-TransparentContainer,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceeNB-ToTargeteNB-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SubscriberProfileIDforRFP,
+ SRVCCOperationNotPossible,
+ SRVCCOperationPossible,
+ SRVCCHOIndication,
+ SupportedTAs,
+ TAI,
+ Target-ToSource-TransparentContainer,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargeteNB-ToSourceeNB-TransparentContainer,
+ TargetID,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TimeToWait,
+ TraceActivation,
+ TrafficLoadReductionIndication,
+ E-UTRAN-Trace-ID,
+ TransportLayerAddress,
+ UEIdentityIndexValue,
+ UEPagingID,
+ UERadioCapability,
+ UERadioCapabilityForPaging,
+ UE-RetentionInformation,
+ UE-S1AP-IDs,
+ UE-associatedLogicalS1-ConnectionItem,
+ UESecurityCapabilities,
+ S-TMSI,
+ MessageIdentifier,
+ SerialNumber,
+ WarningAreaList,
+ RepetitionPeriod,
+ NumberofBroadcastRequest,
+ WarningType,
+ WarningSecurityInfo,
+ DataCodingScheme,
+ WarningMessageContents,
+ BroadcastCompletedAreaList,
+ RRC-Establishment-Cause,
+ BroadcastCancelledAreaList,
+ PS-ServiceNotAvailable,
+ GUMMEIList,
+ Correlation-ID,
+ GWContextReleaseIndication,
+ PrivacyIndicator,
+ VoiceSupportMatchIndicator,
+ TunnelInformation,
+ KillAllWarningMessages,
+ TransportInformation,
+ LHN-ID,
+ UserLocationInformation,
+ AdditionalCSFallbackIndicator,
+ ECGIListForRestart,
+ TAIListForRestart,
+ EmergencyAreaIDListForRestart,
+ ExpectedUEBehaviour,
+ Paging-eDRXInformation,
+ Extended-UEIdentityIndexValue,
+ MME-Group-ID,
+ Additional-GUTI,
+ PWSfailedECGIList,
+ CellIdentifierAndCELevelForCECapableUEs,
+ AssistanceDataForPaging,
+ InformationOnRecommendedCellsAndENBsForPaging,
+ UE-Usage-Type,
+ UEUserPlaneCIoTSupportIndicator,
+ NB-IoT-DefaultPagingDRX,
+ NB-IoT-Paging-eDRXInformation,
+ CE-mode-B-SupportIndicator,
+ NB-IoT-UEIdentityIndexValue,
+ V2XServicesAuthorized,
+ DCN-ID,
+ ServedDCNs,
+ UESidelinkAggregateMaximumBitrate,
+ DLNASPDUDeliveryAckRequest,
+ Coverage-Level,
+ EnhancedCoverageRestricted,
+ DL-CP-SecurityInformation,
+ UL-CP-SecurityInformation,
+ CE-ModeBRestricted,
+ PendingDataIndication
+
+
+
+FROM S1AP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-SingleContainer{},
+ S1AP-PRIVATE-IES,
+ S1AP-PROTOCOL-EXTENSION,
+ S1AP-PROTOCOL-IES,
+ S1AP-PROTOCOL-IES-PAIR
+FROM S1AP-Containers
+
+
+ id-AssistanceDataForPaging,
+ id-uEaggregateMaximumBitrate,
+ id-BearerType,
+ id-Cause,
+ id-CellAccessMode,
+ id-CellIdentifierAndCELevelForCECapableUEs,
+ id-cdma2000HORequiredIndication,
+ id-cdma2000HOStatus,
+ id-cdma2000OneXSRVCCInfo,
+ id-cdma2000OneXRAND,
+ id-cdma2000PDU,
+ id-cdma2000RATType,
+ id-cdma2000SectorID,
+ id-EUTRANRoundTripDelayEstimationInfo,
+ id-CNDomain,
+ id-ConcurrentWarningMessageIndicator,
+ id-CriticalityDiagnostics,
+ id-CSFallbackIndicator,
+ id-CSG-Id,
+ id-CSG-IdList,
+ id-CSGMembershipStatus,
+ id-Data-Forwarding-Not-Possible,
+ id-DefaultPagingDRX,
+ id-Direct-Forwarding-Path-Availability,
+ id-Global-ENB-ID,
+ id-EUTRAN-CGI,
+ id-eNBname,
+ id-eNB-StatusTransfer-TransparentContainer,
+ id-eNB-UE-S1AP-ID,
+ id-GERANtoLTEHOInformationRes,
+ id-GUMMEI-ID,
+ id-GUMMEIType,
+ id-HandoverRestrictionList,
+ id-HandoverType,
+ id-Masked-IMEISV,
+ id-InformationOnRecommendedCellsAndENBsForPaging,
+ id-InitialContextSetup,
+ id-Inter-SystemInformationTransferTypeEDT,
+ id-Inter-SystemInformationTransferTypeMDT,
+ id-LPPa-PDU,
+ id-NAS-DownlinkCount,
+ id-ManagementBasedMDTAllowed,
+ id-ManagementBasedMDTPLMNList,
+ id-MMEname,
+ id-MME-UE-S1AP-ID,
+ id-MSClassmark2,
+ id-MSClassmark3,
+ id-NAS-PDU,
+ id-NASSecurityParametersfromE-UTRAN,
+ id-NASSecurityParameterstoE-UTRAN,
+ id-OverloadResponse,
+ id-pagingDRX,
+ id-PagingPriority,
+ id-RelativeMMECapacity,
+ id-RequestType,
+ id-Routing-ID,
+ id-E-RABAdmittedItem,
+ id-E-RABAdmittedList,
+ id-E-RABDataForwardingItem,
+ id-E-RABFailedToModifyList,
+ id-E-RABFailedToReleaseList,
+ id-E-RABFailedtoSetupItemHOReqAck,
+ id-E-RABFailedToSetupListBearerSURes,
+ id-E-RABFailedToSetupListCtxtSURes,
+ id-E-RABFailedToSetupListHOReqAck,
+ id-E-RABFailedToBeReleasedList,
+ id-E-RABFailedToResumeListResumeReq,
+ id-E-RABFailedToResumeItemResumeReq,
+ id-E-RABFailedToResumeListResumeRes,
+ id-E-RABFailedToResumeItemResumeRes,
+ id-E-RABModify,
+ id-E-RABModifyItemBearerModRes,
+ id-E-RABModifyListBearerModRes,
+ id-E-RABRelease,
+ id-E-RABReleaseItemBearerRelComp,
+ id-E-RABReleaseItemHOCmd,
+ id-E-RABReleaseListBearerRelComp,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-E-RABSetupItemBearerSURes,
+ id-E-RABSetupItemCtxtSURes,
+ id-E-RABSetupListBearerSURes,
+ id-E-RABSetupListCtxtSURes,
+ id-E-RABSubjecttoDataForwardingList,
+ id-E-RABToBeModifiedItemBearerModReq,
+ id-E-RABToBeModifiedListBearerModReq,
+ id-E-RABToBeModifiedListBearerModInd,
+ id-E-RABToBeModifiedItemBearerModInd,
+ id-E-RABNotToBeModifiedListBearerModInd,
+ id-E-RABNotToBeModifiedItemBearerModInd,
+ id-E-RABModifyListBearerModConf,
+ id-E-RABModifyItemBearerModConf,
+ id-E-RABFailedToModifyListBearerModConf,
+ id-E-RABToBeReleasedListBearerModConf,
+ id-E-RABToBeReleasedList,
+ id-E-RABReleasedList,
+ id-E-RABToBeSetupItemBearerSUReq,
+ id-E-RABToBeSetupItemCtxtSUReq,
+ id-E-RABToBeSetupItemHOReq,
+ id-E-RABToBeSetupListBearerSUReq,
+ id-E-RABToBeSetupListCtxtSUReq,
+ id-E-RABToBeSetupListHOReq,
+ id-E-RABToBeSwitchedDLItem,
+ id-E-RABToBeSwitchedDLList,
+ id-E-RABToBeSwitchedULList,
+ id-E-RABToBeSwitchedULItem,
+ id-E-RABtoReleaseListHOCmd,
+ id-ProSeAuthorized,
+ id-SecurityKey,
+ id-SecurityContext,
+ id-ServedGUMMEIs,
+ id-SONConfigurationTransferECT,
+ id-SONConfigurationTransferMCT,
+ id-Source-ToTarget-TransparentContainer,
+ id-Source-ToTarget-TransparentContainer-Secondary,
+ id-SourceMME-UE-S1AP-ID,
+ id-SRVCCOperationNotPossible,
+ id-SRVCCOperationPossible,
+ id-SRVCCHOIndication,
+ id-SubscriberProfileIDforRFP,
+ id-SupportedTAs,
+ id-S-TMSI,
+ id-TAI,
+ id-TAIItem,
+ id-TAIList,
+ id-Target-ToSource-TransparentContainer,
+ id-Target-ToSource-TransparentContainer-Secondary,
+ id-TargetID,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-TrafficLoadReductionIndication,
+ id-E-UTRAN-Trace-ID,
+ id-UEIdentityIndexValue,
+ id-UEPagingID,
+ id-UERadioCapability,
+ id-UERadioCapabilityForPaging,
+ id-UTRANtoLTEHOInformationRes,
+ id-UE-associatedLogicalS1-ConnectionListResAck,
+ id-UE-associatedLogicalS1-ConnectionItem,
+ id-UE-RetentionInformation,
+ id-UESecurityCapabilities,
+ id-UE-S1AP-IDs,
+ id-V2XServicesAuthorized,
+ id-ResetType,
+ id-MessageIdentifier,
+ id-SerialNumber,
+ id-WarningAreaList,
+ id-RepetitionPeriod,
+ id-NumberofBroadcastRequest,
+ id-WarningType,
+ id-WarningSecurityInfo,
+ id-DataCodingScheme,
+ id-WarningMessageContents,
+ id-BroadcastCompletedAreaList,
+ id-BroadcastCancelledAreaList,
+ id-RRC-Establishment-Cause,
+ id-TraceCollectionEntityIPAddress,
+ maxnoofTAIs,
+ maxnoofErrors,
+ maxnoofE-RABs,
+ maxnoofIndividualS1ConnectionsToReset,
+ maxnoofEmergencyAreaID,
+ maxnoofCellID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ id-ExtendedRepetitionPeriod,
+ id-PS-ServiceNotAvailable,
+ id-RegisteredLAI,
+ id-GUMMEIList,
+ id-SourceMME-GUMMEI,
+ id-MME-UE-S1AP-ID-2,
+ id-GW-TransportLayerAddress,
+ id-RelayNode-Indicator,
+ id-Correlation-ID,
+ id-MMERelaySupportIndicator,
+ id-GWContextReleaseIndication,
+ id-PrivacyIndicator,
+ id-VoiceSupportMatchIndicator,
+ id-Tunnel-Information-for-BBF,
+ id-SIPTO-Correlation-ID,
+ id-SIPTO-L-GW-TransportLayerAddress,
+ id-KillAllWarningMessages,
+ id-TransportInformation,
+ id-LHN-ID,
+ id-UserLocationInformation,
+ id-AdditionalCSFallbackIndicator,
+ id-ECGIListForRestart,
+ id-TAIListForRestart,
+ id-EmergencyAreaIDListForRestart,
+ id-ExpectedUEBehaviour,
+ id-Paging-eDRXInformation,
+ id-extended-UEIdentityIndexValue,
+ id-CSGMembershipInfo,
+ id-MME-Group-ID,
+ id-Additional-GUTI,
+ id-S1-Message,
+ id-PWSfailedECGIList,
+ id-PWSFailureIndication,
+ id-UE-Usage-Type,
+ id-UEUserPlaneCIoTSupportIndicator,
+ id-NB-IoT-DefaultPagingDRX,
+ id-NB-IoT-Paging-eDRXInformation,
+ id-CE-mode-B-SupportIndicator,
+ id-NB-IoT-UEIdentityIndexValue,
+ id-RRC-Resume-Cause,
+ id-DCN-ID,
+ id-ServedDCNs,
+ id-UESidelinkAggregateMaximumBitrate,
+ id-DLNASPDUDeliveryAckRequest,
+ id-Coverage-Level,
+ id-EnhancedCoverageRestricted,
+ id-UE-Level-QoS-Parameters,
+ id-DL-CP-SecurityInformation,
+ id-UL-CP-SecurityInformation,
+ id-CE-ModeBRestricted,
+ id-PendingDataIndication
+
+
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Required
+--
+-- **************************************************************
+
+HandoverRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} },
+ ...
+}
+
+HandoverRequiredIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}|
+ { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}|
+ { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}|
+ { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}|
+ { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}|
+ { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}|
+ { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Command
+--
+-- **************************************************************
+
+HandoverCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCommandIEs} },
+ ...
+}
+
+HandoverCommandIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional
+ -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}|
+ { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}|
+ { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} }
+
+E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+E-RABDataForwardingItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Handover Preparation Failure
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} },
+ ...
+}
+
+HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Request
+--
+-- **************************************************************
+
+HandoverRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestIEs} },
+ ...
+}
+
+HandoverRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}|
+ { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}|
+ { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional},
+ ...
+}
+
+E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} }
+
+E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemHOReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ e-RABlevelQosParameters E-RABLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Request Acknowledge
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} },
+ ...
+}
+
+HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory}|
+ { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional}|
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}|
+ { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}|
+ { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional},
+ ...
+}
+
+E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} }
+
+E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory },
+ ...
+}
+
+E-RABAdmittedItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} }
+
+E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory },
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAck ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Failure
+--
+-- **************************************************************
+
+HandoverFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverFailureIEs} },
+ ...
+}
+
+HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Notify
+--
+-- **************************************************************
+
+HandoverNotify ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} },
+ ...
+}
+
+HandoverNotifyIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Path Switch Request
+--
+-- **************************************************************
+
+PathSwitchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} },
+ ...
+}
+
+PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}|
+ { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}|
+ { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional },
+ ...
+}
+
+E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} }
+
+E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Path Switch Request Acknowledge
+--
+-- **************************************************************
+
+PathSwitchRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} },
+ ...
+}
+
+PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional},
+ ...
+}
+
+E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} }
+
+E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedULItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Path Switch Request Failure
+--
+-- **************************************************************
+
+PathSwitchRequestFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} },
+ ...
+}
+
+PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Cancel
+--
+-- **************************************************************
+
+HandoverCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCancelIEs} },
+ ...
+}
+
+HandoverCancelIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Cancel Request Acknowledge
+--
+-- **************************************************************
+
+HandoverCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} },
+ ...
+}
+
+HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Setup Request
+--
+-- **************************************************************
+
+E-RABSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} },
+ ...
+}
+
+E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} }
+
+E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemBearerSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Setup Response
+--
+-- **************************************************************
+
+E-RABSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} },
+ ...
+}
+
+E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }|
+ { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} }
+
+E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemBearerSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFY ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modify Request
+--
+-- **************************************************************
+
+E-RABModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} },
+ ...
+}
+
+E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} }
+
+E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedItemBearerModReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABLevelQoSParameters E-RABLevelQoSParameters,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB Modify Response
+--
+-- **************************************************************
+
+E-RABModifyResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} },
+ ...
+}
+
+E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }|
+ { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} }
+
+E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory},
+ ...
+}
+
+E-RABModifyItemBearerModRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Command
+--
+-- **************************************************************
+
+E-RABReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} },
+ ...
+}
+
+E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Release Response
+--
+-- **************************************************************
+
+E-RABReleaseResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } },
+ ...
+}
+
+E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }|
+ { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional },
+ ...
+}
+
+
+E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} }
+
+E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory },
+ ...
+}
+
+E-RABReleaseItemBearerRelComp ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Indication
+--
+-- **************************************************************
+
+E-RABReleaseIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} },
+ ...
+}
+
+E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial Context Setup Request
+--
+-- **************************************************************
+
+InitialContextSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} },
+ ...
+}
+
+InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}|
+ { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}|
+ { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}|
+ { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional},
+ ...
+}
+
+
+
+
+E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} }
+
+E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Response
+--
+-- **************************************************************
+
+InitialContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} },
+ ...
+}
+
+InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }|
+ { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} }
+
+E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemCtxtSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Failure
+--
+-- **************************************************************
+
+InitialContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} },
+ ...
+}
+
+InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PagingIEs}},
+ ...
+}
+
+PagingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}|
+ { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}|
+ { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}|
+ { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}|
+ { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}|
+ { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}|
+-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –-
+ { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}|
+ { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}|
+ { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}|
+ { ID id-NB-IoT-Paging-eDRXInformation CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInformation PRESENCE optional}|
+ { ID id-NB-IoT-UEIdentityIndexValue CRITICALITY ignore TYPE NB-IoT-UEIdentityIndexValue PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional},
+ ...
+}
+
+TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}}
+
+TAIItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory },
+ ...
+}
+
+TAIItem ::= SEQUENCE {
+ tAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Release Request
+--
+-- **************************************************************
+
+UEContextReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}},
+ ...
+}
+
+UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Command
+--
+-- **************************************************************
+
+UEContextReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}},
+ ...
+}
+
+UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Complete
+--
+-- **************************************************************
+
+UEContextReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}},
+ ...
+}
+
+UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}|
+-- Extension for Release 13 to support Paging Optimisation
+ { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
+-- Extension for Release 13 to support coverage enhancement paging –
+ { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Request
+--
+-- **************************************************************
+
+UEContextModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} },
+ ...
+}
+
+UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}|
+ { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional},
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Response
+--
+-- **************************************************************
+
+UEContextModificationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} },
+ ...
+}
+
+UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Failure
+--
+-- **************************************************************
+
+UEContextModificationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} },
+ ...
+}
+
+UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Radio Capability Match Request
+--
+-- **************************************************************
+
+UERadioCapabilityMatchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} },
+ ...
+}
+
+UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Radio Capability Match Response
+--
+-- **************************************************************
+
+UERadioCapabilityMatchResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} },
+ ...
+}
+
+UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- NAS TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DOWNLINK NAS TRANSPORT
+--
+-- **************************************************************
+
+DownlinkNASTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}},
+ ...
+}
+
+DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}|
+ { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE
+--
+-- **************************************************************
+
+InitialUEMessage ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}},
+ ...
+}
+
+InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}|
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}|
+ { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}|
+ { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}|
+ { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}|
+ { ID id-DCN-ID CRITICALITY ignore TYPE DCN-ID PRESENCE optional}|
+ { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional},
+
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UPLINK NAS TRANSPORT
+--
+-- **************************************************************
+
+UplinkNASTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}},
+ ...
+}
+
+UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+ ...
+}
+-- **************************************************************
+--
+-- NAS NON DELIVERY INDICATION
+--
+-- **************************************************************
+
+NASNonDeliveryIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}},
+ ...
+}
+
+NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- REROUTE NAS REQUEST
+--
+-- **************************************************************
+
+RerouteNASRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}},
+ ...
+}
+
+RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}|
+ { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}|
+ { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}|
+ { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- NAS DELIVERY INDICATION
+--
+-- **************************************************************
+
+NASDeliveryIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { NASDeliveryIndicationIEs} },
+ ...
+}
+
+NASDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ ...
+}
+
+ResetIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ s1-Interface ResetAll,
+ partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes,
+ ...
+}
+
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } }
+
+UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } }
+
+UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}},
+ ...
+}
+
+ErrorIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- S1 Setup Request
+--
+-- **************************************************************
+
+S1SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} },
+ ...
+}
+
+S1SetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}|
+ { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Response
+--
+-- **************************************************************
+
+S1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} },
+ ...
+}
+
+
+S1SetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}|
+ { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}|
+ { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}|
+ { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Failure
+--
+-- **************************************************************
+
+S1SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} },
+ ...
+}
+
+S1SetupFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Update
+--
+-- **************************************************************
+
+ENBConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} },
+ ...
+}
+
+ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}|
+ { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Acknowledge
+--
+-- **************************************************************
+
+ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Failure
+--
+-- **************************************************************
+
+ENBConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} },
+ ...
+}
+
+ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+...
+}
+
+
+-- **************************************************************
+--
+-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Update
+--
+-- **************************************************************
+
+MMEConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} },
+ ...
+}
+
+MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }|
+ { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }|
+ { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Acknowledge
+--
+-- **************************************************************
+
+MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Failure
+--
+-- **************************************************************
+
+MMEConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} },
+ ...
+}
+
+MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Downlink S1 CDMA2000 Tunnelling
+--
+-- **************************************************************
+
+DownlinkS1cdma2000tunnelling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} },
+ ...
+}
+
+DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }|
+ { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }|
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }|
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink S1 CDMA2000 Tunnelling
+--
+-- **************************************************************
+
+UplinkS1cdma2000tunnelling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} },
+ ...
+}
+
+UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }|
+ { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }|
+ { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }|
+ { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }|
+ { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }|
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }|
+ { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional },
+ -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE --
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Capability Info Indication
+--
+-- **************************************************************
+
+UECapabilityInfoIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} },
+ ...
+}
+
+UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Status Transfer
+--
+-- **************************************************************
+
+ENBStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} },
+ ...
+}
+
+ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Status Transfer
+--
+-- **************************************************************
+
+MMEStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} },
+ ...
+}
+
+MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- TRACE ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- Trace Start
+--
+-- **************************************************************
+
+TraceStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceStartIEs} },
+ ...
+}
+
+TraceStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Trace Failure Indication
+--
+-- **************************************************************
+
+TraceFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} },
+ ...
+}
+
+TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Deactivate Trace
+--
+-- **************************************************************
+
+DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} },
+ ...
+}
+
+DeactivateTraceIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Cell Traffic Trace
+--
+-- **************************************************************
+
+CellTrafficTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
+ ...
+}
+
+CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= {
+ {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }|
+ {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }|
+ {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }|
+ {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} },
+ ...
+}
+
+LocationReportingControlIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report Failure Indication
+--
+-- **************************************************************
+
+LocationReportingFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} },
+ ...
+}
+
+LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportIEs} },
+ ...
+}
+
+LocationReportIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload Start
+--
+-- **************************************************************
+
+OverloadStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStartIEs} },
+ ...
+}
+
+OverloadStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }|
+ { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }|
+ { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Overload Stop
+--
+-- **************************************************************
+
+OverloadStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStopIEs} },
+ ...
+}
+
+OverloadStopIEs S1AP-PROTOCOL-IES ::= {
+{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Write-Replace Warning Request
+--
+-- **************************************************************
+
+
+WriteReplaceWarningRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} },
+ ...
+}
+
+WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }|
+ { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }|
+ { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }|
+ { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }|
+ { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }|
+ { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }|
+ { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }|
+ { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }|
+ { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Write-Replace Warning Response
+--
+-- **************************************************************
+
+WriteReplaceWarningResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} },
+ ...
+}
+
+WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Direct Information Transfer
+--
+-- **************************************************************
+
+ENBDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}},
+ ...
+}
+
+ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory },
+ ...
+}
+
+Inter-SystemInformationTransferType ::= CHOICE {
+ rIMTransfer RIMTransfer,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Direct Information Transfer
+--
+-- **************************************************************
+
+MMEDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}},
+ ...
+}
+
+MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Transfer
+--
+-- **************************************************************
+
+ENBConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}},
+ ...
+}
+
+ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Transfer
+--
+-- **************************************************************
+
+MMEConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}},
+ ...
+}
+
+MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Private Message
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessageIEs}},
+ ...
+}
+
+PrivateMessageIEs S1AP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- KILL PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Kill Request
+--
+-- **************************************************************
+
+
+KillRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {KillRequestIEs} },
+ ...
+}
+
+KillRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}|
+ { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Kill Response
+--
+-- **************************************************************
+
+KillResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {KillResponseIEs} },
+ ...
+}
+
+KillResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS RESTART INDICATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- PWS Restart Indication
+--
+-- **************************************************************
+
+PWSRestartIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}},
+ ...
+}
+
+PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}|
+ { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS Failure Indication
+--
+-- **************************************************************
+
+PWSFailureIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}},
+ ...
+}
+
+PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- LPPA TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+DownlinkUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+UplinkUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modification Indication
+--
+-- **************************************************************
+
+E-RABModificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} },
+ ...
+}
+
+E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}|
+ { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}|
+ { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional},
+ ...
+}
+
+E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} }
+
+E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory},
+ ...
+}
+
+E-RABToBeModifiedItemBearerModInd ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ dL-GTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} }
+
+E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory},
+ ...
+}
+
+E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ dL-GTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSGMembershipInfo ::= SEQUENCE {
+ cSGMembershipStatus CSGMembershipStatus,
+ cSG-Id CSG-Id,
+ cellAccessMode CellAccessMode OPTIONAL,
+ pLMNidentity PLMNidentity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB Modification Confirm
+--
+-- **************************************************************
+
+E-RABModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} },
+ ...
+}
+
+E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}|
+ { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional},
+ ...
+}
+
+E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} }
+
+E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory},
+ ...
+}
+
+E-RABModifyItemBearerModConf ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Indication
+--
+-- **************************************************************
+
+UEContextModificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} },
+ ...
+}
+
+UEContextModificationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE Context Modification Confirm
+--
+-- **************************************************************
+
+UEContextModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} },
+ ...
+}
+
+UEContextModificationConfirmIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT SUSPEND ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Suspend Request
+--
+-- **************************************************************
+
+UEContextSuspendRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextSuspendRequestIEs} },
+ ...
+}
+
+UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
+ { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Suspend Response
+--
+-- **************************************************************
+
+UEContextSuspendResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UEContextSuspendResponseIEs} },
+ ...
+}
+
+UEContextSuspendResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RESUME ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Resume Request
+--
+-- **************************************************************
+
+UEContextResumeRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeRequestIEs} },
+ ...
+}
+
+UEContextResumeRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABFailedToResumeListResumeReq CRITICALITY reject TYPE E-RABFailedToResumeListResumeReq PRESENCE optional}|
+ { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional},
+ ...
+}
+
+E-RABFailedToResumeListResumeReq ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeReqIEs} }
+
+E-RABFailedToResumeItemResumeReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedToResumeItemResumeReq CRITICALITY reject TYPE E-RABFailedToResumeItemResumeReq PRESENCE mandatory},
+ ...
+}
+
+E-RABFailedToResumeItemResumeReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToResumeItemResumeReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Resume Response
+--
+-- **************************************************************
+
+UEContextResumeResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeResponseIEs} },
+ ...
+}
+
+UEContextResumeResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABFailedToResumeListResumeRes CRITICALITY reject TYPE E-RABFailedToResumeListResumeRes PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional},
+ ...
+}
+
+E-RABFailedToResumeListResumeRes ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeResIEs} }
+
+E-RABFailedToResumeItemResumeResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedToResumeItemResumeRes CRITICALITY reject TYPE E-RABFailedToResumeItemResumeRes PRESENCE mandatory},
+ ...
+}
+
+E-RABFailedToResumeItemResumeRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToResumeItemResumeRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Resume Failure
+--
+-- **************************************************************
+
+UEContextResumeFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeFailureIEs} },
+ ...
+}
+
+UEContextResumeFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Connection Establishment Indication
+--
+-- **************************************************************
+
+ConnectionEstablishmentIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ConnectionEstablishmentIndicationIEs} },
+ ...
+}
+
+ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional }|
+ { ID id-DL-CP-SecurityInformation CRITICALITY ignore TYPE DL-CP-SecurityInformation PRESENCE optional }|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Retrieve UE Information
+--
+-- **************************************************************
+
+RetrieveUEInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { RetrieveUEInformationIEs} },
+ ...
+}
+
+RetrieveUEInformationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory},
+...
+
+}
+
+
+-- **************************************************************
+
+-- UE Information Transfer
+--
+-- **************************************************************
+UEInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEInformationTransferIEs} },
+ ...
+}
+
+UEInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}|
+ { ID id-UE-Level-QoS-Parameters CRITICALITY ignore TYPE E-RABLevelQoSParameters PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- eNB CP Relocation Indication
+--
+-- **************************************************************
+
+ENBCPRelocationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { ENBCPRelocationIndicationIEs} },
+ ...
+}
+
+ENBCPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UL-CP-SecurityInformation CRITICALITY reject TYPE UL-CP-SecurityInformation PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME CP Relocation Indication
+--
+-- **************************************************************
+
+MMECPRelocationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MMECPRelocationIndicationIEs} },
+ ...
+}
+
+MMECPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory},
+ ...
+}
+
+END
+
+
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+S1AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ id-E-RABInformationListItem,
+ id-E-RABItem,
+ id-Bearers-SubjectToStatusTransfer-Item,
+ id-Time-Synchronisation-Info,
+ id-x2TNLConfigurationInfo,
+ id-eNBX2ExtendedTransportLayerAddresses,
+ id-MDTConfiguration,
+ id-Time-UE-StayedInCell-EnhancedGranularity,
+ id-HO-Cause,
+ id-M3Configuration,
+ id-M4Configuration,
+ id-M5Configuration,
+ id-MDT-Location-Info,
+ id-SignallingBasedMDTPLMNList,
+ id-MobilityInformation,
+ id-ULCOUNTValueExtended,
+ id-DLCOUNTValueExtended,
+ id-ReceiveStatusOfULPDCPSDUsExtended,
+ id-eNBIndirectX2TransportLayerAddresses,
+ id-Muting-Availability-Indication,
+ id-Muting-Pattern-Information,
+ id-Synchronisation-Information,
+ id-uE-HistoryInformationFromTheUE,
+ id-LoggedMBSFNMDT,
+ id-SON-Information-Report,
+ id-RecommendedCellItem,
+ id-RecommendedENBItem,
+ id-ProSeUEtoNetworkRelaying,
+ id-ULCOUNTValuePDCP-SNlength18,
+ id-DLCOUNTValuePDCP-SNlength18,
+ id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18,
+ id-M6Configuration,
+ id-M7Configuration,
+ id-RAT-Type,
+ maxnoofCSGs,
+ maxnoofE-RABs,
+ maxnoofErrors,
+ maxnoofBPLMNs,
+ maxnoofPLMNsPerMME,
+ maxnoofTACs,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofCells,
+ maxnoofCellID,
+ maxnoofDCNs,
+ maxnoofEmergencyAreaID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ maxnoofeNBX2TLAs,
+ maxnoofeNBX2ExtTLAs,
+ maxnoofeNBX2GTPTLAs,
+ maxnoofRATs,
+ maxnoofGroupIDs,
+ maxnoofMMECs,
+ maxnoofTAforMDT,
+ maxnoofCellIDforMDT,
+ maxnoofMDTPLMNs,
+ maxnoofCellsforRestart,
+ maxnoofRestartTAIs,
+ maxnoofRestartEmergencyAreaIDs,
+ maxnoofMBSFNAreaMDT,
+ maxEARFCN,
+ maxnoofCellsineNB,
+ maxnoofRecommendedCells,
+ maxnoofRecommendedENBs
+
+
+
+FROM S1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM S1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ S1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ S1AP-PROTOCOL-IES
+
+FROM S1AP-Containers;
+
+-- A
+
+Additional-GUTI::= SEQUENCE {
+ gUMMEI GUMMEI,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AreaScopeOfMDT ::= CHOICE {
+ cellBased CellBasedMDT,
+ tABased TABasedMDT,
+ pLMNWide NULL,
+ ...,
+ tAIBased TAIBasedMDT
+}
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForCECapableUEs ::= SEQUENCE {
+ cellIdentifierAndCELevelForCECapableUEs CellIdentifierAndCELevelForCECapableUEs,
+ iE-Extensions ProtocolExtensionContainer { { InformationForCECapableUEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForPaging ::= SEQUENCE {
+ assistanceDataForRecommendedCells AssistanceDataForRecommendedCells OPTIONAL,
+ assistanceDataForCECapableUEs AssistanceDataForCECapableUEs OPTIONAL,
+ pagingAttemptInformation PagingAttemptInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AssistanceDataForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForRecommendedCells ::= SEQUENCE {
+ recommendedCellsForPaging RecommendedCellsForPaging,
+ iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AssistanceDataForRecommendedCells-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- B
+
+Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } }
+
+Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory },
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-COUNTvalue COUNTvalue,
+ dL-COUNTvalue COUNTvalue,
+ receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}|
+ { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional},
+ ...
+}
+
+BearerType ::= ENUMERATED {
+ non-IP,
+ ...
+}
+
+BitRate ::= INTEGER (0..10000000000)
+
+BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity
+
+BroadcastCancelledAreaList ::= CHOICE {
+ cellID-Cancelled CellID-Cancelled,
+ tAI-Cancelled TAI-Cancelled,
+ emergencyAreaID-Cancelled EmergencyAreaID-Cancelled,
+ ...
+}
+
+BroadcastCompletedAreaList ::= CHOICE {
+ cellID-Broadcast CellID-Broadcast,
+ tAI-Broadcast TAI-Broadcast,
+ emergencyAreaID-Broadcast EmergencyAreaID-Broadcast,
+ ...
+}
+
+
+-- C
+
+CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item
+
+CancelledCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item
+
+CancelledCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ nas CauseNas,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ not-enough-user-plane-processing-resources,
+ hardware-failure,
+ om-intervention,
+ unspecified,
+ unknown-PLMN,
+...
+}
+
+CauseProtocol ::= ENUMERATED {
+ transfer-syntax-error,
+ abstract-syntax-error-reject,
+ abstract-syntax-error-ignore-and-notify,
+ message-not-compatible-with-receiver-state,
+ semantic-error,
+ abstract-syntax-error-falsely-constructed-message,
+ unspecified,
+ ...
+}
+
+CauseRadioNetwork ::= ENUMERATED {
+ unspecified,
+ tx2relocoverall-expiry,
+ successful-handover,
+ release-due-to-eutran-generated-reason,
+ handover-cancelled,
+ partial-handover,
+ ho-failure-in-target-EPC-eNB-or-target-system,
+ ho-target-not-allowed,
+ tS1relocoverall-expiry,
+ tS1relocprep-expiry,
+ cell-not-available,
+ unknown-targetID,
+ no-radio-resources-available-in-target-cell,
+ unknown-mme-ue-s1ap-id,
+ unknown-enb-ue-s1ap-id,
+ unknown-pair-ue-s1ap-id,
+ handover-desirable-for-radio-reason,
+ time-critical-handover,
+ resource-optimisation-handover,
+ reduce-load-in-serving-cell,
+ user-inactivity,
+ radio-connection-with-ue-lost,
+ load-balancing-tau-required,
+ cs-fallback-triggered,
+ ue-not-available-for-ps-service,
+ radio-resources-not-available,
+ failure-in-radio-interface-procedure,
+ invalid-qos-combination,
+ interrat-redirection,
+ interaction-with-other-procedure,
+ unknown-E-RAB-ID,
+ multiple-E-RAB-ID-instances,
+ encryption-and-or-integrity-protection-algorithms-not-supported,
+ s1-intra-system-handover-triggered,
+ s1-inter-system-handover-triggered,
+ x2-handover-triggered,
+ ...,
+ redirection-towards-1xRTT,
+ not-supported-QCI-value,
+ invalid-CSG-Id,
+ release-due-to-pre-emption
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseNas ::= ENUMERATED {
+ normal-release,
+ authentication-failure,
+ detach,
+ unspecified,
+ ...,
+ csg-subscription-expiry
+}
+
+CellAccessMode ::= ENUMERATED {
+ hybrid,
+ ...
+}
+
+CellIdentifierAndCELevelForCECapableUEs ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cELevel CELevel,
+ iE-Extensions ProtocolExtensionContainer { { CellIdentifierAndCELevelForCECapableUEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellIdentifierAndCELevelForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- Coverage Enhancement level encoded according to TS 36.331 [16] --
+CELevel ::= OCTET STRING
+
+CE-mode-B-SupportIndicator ::= ENUMERATED {
+ supported,
+ ...
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item
+
+CellID-Broadcast-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item
+
+CellID-Cancelled-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellBasedMDT::= SEQUENCE {
+ cellIdListforMDT CellIdListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI
+
+Cdma2000PDU ::= OCTET STRING
+
+Cdma2000RATType ::= ENUMERATED {
+ hRPD,
+ onexRTT,
+ ...
+}
+
+Cdma2000SectorID ::= OCTET STRING
+
+Cdma2000HOStatus ::= ENUMERATED {
+ hOSuccess,
+ hOFailure,
+ ...
+}
+
+Cdma2000HORequiredIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo ::= SEQUENCE {
+ cdma2000OneXMEID Cdma2000OneXMEID,
+ cdma2000OneXMSI Cdma2000OneXMSI,
+ cdma2000OneXPilot Cdma2000OneXPilot,
+ iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cdma2000OneXMEID ::= OCTET STRING
+
+Cdma2000OneXMSI ::= OCTET STRING
+
+Cdma2000OneXPilot ::= OCTET STRING
+
+Cdma2000OneXRAND ::= OCTET STRING
+
+
+Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...}
+
+CellType ::= SEQUENCE {
+ cell-Size Cell-Size,
+ iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ rAC RAC OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CI ::= OCTET STRING (SIZE (2))
+
+CNDomain ::= ENUMERATED {
+ ps,
+ cs
+}
+
+ConcurrentWarningMessageIndicator ::= ENUMERATED {
+ true
+}
+
+Correlation-ID ::= OCTET STRING (SIZE (4))
+
+CSFallbackIndicator ::= ENUMERATED {
+ cs-fallback-required,
+ ...,
+ cs-fallback-high-priority
+}
+
+AdditionalCSFallbackIndicator ::= ENUMERATED {
+ no-restriction,
+ restriction,
+ ...
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item
+
+CSG-IdList-Item ::= SEQUENCE {
+ cSG-Id CSG-Id,
+ iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSGMembershipStatus ::= ENUMERATED {
+ member,
+ not-member
+}
+
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTValueExtended ::= SEQUENCE {
+ pDCP-SNExtended PDCP-SNExtended,
+ hFNModified HFNModified,
+ iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvaluePDCP-SNlength18 ::= SEQUENCE {
+ pDCP-SNlength18 PDCP-SNlength18,
+ hFNforPDCP-SNlength18 HFNforPDCP-SNlength18,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Coverage-Level ::= ENUMERATED {
+ extendedcoverage,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item
+
+CriticalityDiagnostics-IE-Item ::= SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+
+DataCodingScheme ::= BIT STRING (SIZE (8))
+
+DCN-ID ::= INTEGER (0..65535)
+
+ServedDCNs ::= SEQUENCE (SIZE(0..maxnoofDCNs)) OF ServedDCNsItem
+
+ServedDCNsItem ::= SEQUENCE {
+ dCN-ID DCN-ID,
+ relativeDCNCapacity RelativeMMECapacity,
+ iE-Extensions ProtocolExtensionContainer { {ServedDCNsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedDCNsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CP-SecurityInformation ::= SEQUENCE {
+ dl-NAS-MAC DL-NAS-MAC,
+ iE-Extensions ProtocolExtensionContainer { { DL-CP-SecurityInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Forwarding ::= ENUMERATED {
+ dL-Forwarding-proposed,
+ ...
+}
+
+DL-NAS-MAC ::= BIT STRING (SIZE (16))
+
+Direct-Forwarding-Path-Availability ::= ENUMERATED {
+ directPathAvailable,
+ ...
+}
+
+Data-Forwarding-Not-Possible ::= ENUMERATED {
+ data-Forwarding-not-Possible,
+ ...
+}
+
+DLNASPDUDeliveryAckRequest ::= ENUMERATED {
+ requested,
+ ...
+}
+
+-- E
+
+EARFCN ::= INTEGER(0..maxEARFCN, ...)
+
+ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI
+
+EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID
+
+EmergencyAreaID ::= OCTET STRING (SIZE (3))
+
+EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item
+
+EmergencyAreaID-Broadcast-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ completedCellinEAI CompletedCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item
+
+EmergencyAreaID-Cancelled-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ cancelledCellinEAI CancelledCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item
+
+CompletedCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI
+
+EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ... ,
+ short-macroENB-ID BIT STRING (SIZE(18)),
+ long-macroENB-ID BIT STRING (SIZE(21))
+}
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI
+
+ENB-StatusTransfer-TransparentContainer ::= SEQUENCE {
+ bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList,
+ iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-UE-S1AP-ID ::= INTEGER (0..16777215)
+
+ENBname ::= PrintableString (SIZE (1..150,...))
+
+ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+EncryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+EnhancedCoverageRestricted ::= ENUMERATED {
+ restricted,
+ ...
+}
+
+CE-ModeBRestricted ::= ENUMERATED {
+ restricted,
+ not-restricted,
+ ...
+}
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity
+EventType ::= ENUMERATED {
+ direct,
+ change-of-serve-cell,
+ stop-change-of-serve-cell,
+ ...
+}
+
+E-RAB-ID ::= INTEGER (0..15, ...)
+
+E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } }
+
+E-RABInformationListIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory },
+ ...
+}
+
+E-RABInformationListItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} }
+
+E-RABItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory },
+ ...
+}
+
+E-RABItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+E-RABLevelQoSParameters ::= SEQUENCE {
+ qCI QCI,
+ allocationRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+EUTRAN-CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047)
+
+ExpectedUEBehaviour ::= SEQUENCE {
+ expectedActivity ExpectedUEActivityBehaviour OPTIONAL,
+ expectedHOInterval ExpectedHOInterval OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedUEActivityBehaviour ::= SEQUENCE {
+ expectedActivityPeriod ExpectedActivityPeriod OPTIONAL,
+ expectedIdlePeriod ExpectedIdlePeriod OPTIONAL,
+ sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+SourceOfUEActivityBehaviourInformation ::= ENUMERATED {
+ subscription-information,
+ statistics,
+ ...
+}
+
+ExpectedHOInterval ::= ENUMERATED {
+ sec15, sec30, sec60, sec90, sec120, sec180, long-time,
+ ...
+}
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+ExtendedRepetitionPeriod ::= INTEGER (4096..131071)
+
+Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14))
+
+-- F
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...,
+ geranandutran,
+ cdma2000andutran
+
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenTACs ForbiddenTACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenLACs ForbiddenLACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+-- G
+
+GBR-QosInformation ::= SEQUENCE {
+ e-RAB-MaximumBitrateDL BitRate,
+ e-RAB-MaximumBitrateUL BitRate,
+ e-RAB-GuaranteedBitrateDL BitRate,
+ e-RAB-GuaranteedBitrateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+GUMMEI ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ mME-Group-ID MME-Group-ID,
+ mME-Code MME-Code,
+ iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GUMMEIType ::= ENUMERATED {
+ native,
+ mapped,
+ ...
+}
+
+GWContextReleaseIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+-- H
+
+HandoverRestrictionList ::= SEQUENCE {
+ servingPLMN PLMNidentity,
+ equivalentPLMNs EPLMNs OPTIONAL,
+ forbiddenTAs ForbiddenTAs OPTIONAL,
+ forbiddenLAs ForbiddenLAs OPTIONAL,
+ forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+HandoverType ::= ENUMERATED {
+ intralte,
+ ltetoutran,
+ ltetogeran,
+ utrantolte,
+ gerantolte,
+ ...
+}
+
+HFN ::= INTEGER (0..1048575)
+
+HFNModified ::= INTEGER (0..131071)
+
+HFNforPDCP-SNlength18 ::= INTEGER (0..16383)
+
+-- I
+
+Masked-IMEISV ::= BIT STRING (SIZE (64))
+
+ImmediateMDT ::= SEQUENCE {
+ measurementsToActivate MeasurementsToActivate,
+ m1reportingTrigger M1ReportingTrigger,
+ m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
+-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+ m1periodicReporting M1PeriodicReporting OPTIONAL,
+-- Included in case of periodic or event-triggered periodic reporting
+ iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}|
+ { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}|
+ { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}|
+ { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}|
+ { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}|
+ { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional},
+ ...
+}
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+
+InformationOnRecommendedCellsAndENBsForPaging ::= SEQUENCE {
+ recommendedCellsForPaging RecommendedCellsForPaging,
+ recommendENBsForPaging RecommendedENBsForPaging,
+ iE-Extensions ProtocolExtensionContainer { { InformationOnRecommendedCellsAndENBsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationOnRecommendedCellsAndENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+IntendedNumberOfPagingAttempts ::= INTEGER (1..16, ...)
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+
+
+
+-- J
+-- K
+
+KillAllWarningMessages ::= ENUMERATED {true}
+
+-- L
+
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedCell-Item ::= CHOICE {
+ e-UTRAN-Cell LastVisitedEUTRANCellInformation,
+ uTRAN-Cell LastVisitedUTRANCellInformation,
+ gERAN-Cell LastVisitedGERANCellInformation,
+ ...
+}
+LastVisitedEUTRANCellInformation ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell --
+ { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}|
+ { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional},
+ ...
+}
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+LPPa-PDU ::= OCTET STRING
+
+LHN-ID ::= OCTET STRING(SIZE (32..256))
+
+Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...}
+
+ListeningSubframePattern ::= SEQUENCE {
+ pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...},
+ pattern-offset INTEGER (0..10239, ...),
+ iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+LoggedMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144}
+
+LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120}
+
+LoggedMBSFNMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL,
+ ...
+}
+
+LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- M
+
+M3Configuration ::= SEQUENCE {
+ m3period M3period,
+ iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M3period ::= ENUMERATED {ms100, ms1000, ms10000, ... }
+
+M4Configuration ::= SEQUENCE {
+ m4period M4period,
+ m4-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M5Configuration ::= SEQUENCE {
+ m5period M5period,
+ m5-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M6Configuration ::= SEQUENCE {
+ m6report-Interval M6report-Interval,
+ m6delay-threshold M6delay-threshold OPTIONAL,
+-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” --
+ m6-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... }
+
+M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... }
+
+M7Configuration ::= SEQUENCE {
+ m7period M7period,
+ m7-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M7period ::= INTEGER(1..60, ...)
+
+MDT-Activation ::= ENUMERATED {
+ immediate-MDT-only,
+ immediate-MDT-and-Trace,
+ logged-MDT-only,
+ ...,
+ logged-MBSFN-MDT
+}
+
+MDT-Location-Info ::= BIT STRING (SIZE (8))
+
+MDT-Configuration ::= SEQUENCE {
+ mdt-Activation MDT-Activation,
+ areaScopeOfMDT AreaScopeOfMDT,
+ mDTMode MDTMode,
+ iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional },
+ ...
+}
+
+ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...}
+
+MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo
+
+MBSFN-ResultToLogInfo ::= SEQUENCE {
+ mBSFN-AreaId INTEGER (0..255) OPTIONAL,
+ carrierFreq EARFCN,
+ iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity
+
+PrivacyIndicator ::= ENUMERATED {
+ immediate-MDT,
+ logged-MDT,
+ ...
+}
+
+MDTMode ::= CHOICE {
+ immediateMDT ImmediateMDT,
+ loggedMDT LoggedMDT,
+ ...,
+ mDTMode-Extension MDTMode-Extension
+}
+
+MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }}
+
+MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= {
+ { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory}
+}
+
+MeasurementsToActivate ::= BIT STRING (SIZE (8))
+
+MeasurementThresholdA2 ::= CHOICE {
+ threshold-RSRP Threshold-RSRP,
+ threshold-RSRQ Threshold-RSRQ,
+ ...
+}
+
+MessageIdentifier ::= BIT STRING (SIZE (16))
+
+MobilityInformation ::= BIT STRING (SIZE(32))
+
+MMEname ::= PrintableString (SIZE (1..150,...))
+
+MMEPagingTarget ::= CHOICE {
+ global-ENB-ID Global-ENB-ID,
+ tAI TAI,
+ ...
+}
+
+MMERelaySupportIndicator ::= ENUMERATED {true, ...}
+
+MME-Group-ID ::= OCTET STRING (SIZE (2))
+
+MME-Code ::= OCTET STRING (SIZE (1))
+
+MME-UE-S1AP-ID ::= INTEGER (0..4294967295)
+M-TMSI ::= OCTET STRING (SIZE (4))
+
+MSClassmark2 ::= OCTET STRING
+MSClassmark3 ::= OCTET STRING
+
+MutingAvailabilityIndication ::= ENUMERATED {
+ available,
+ unavailable,
+ ...
+}
+
+
+MutingPatternInformation ::= SEQUENCE {
+ muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...},
+ muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- N
+
+NAS-PDU ::= OCTET STRING
+
+NASSecurityParametersfromE-UTRAN ::= OCTET STRING
+
+NASSecurityParameterstoE-UTRAN ::= OCTET STRING
+
+NB-IoT-DefaultPagingDRX ::= ENUMERATED {
+ v128,
+ v256,
+ v512,
+ v1024,
+ ...
+ }
+
+NB-IoT-Paging-eDRXInformation ::= SEQUENCE {
+ nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle,
+ nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NB-IoT-Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED{hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...}
+
+NB-IoT-PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...}
+
+NB-IoT-UEIdentityIndexValue ::= BIT STRING (SIZE (12))
+
+NextPagingAreaScope ::= ENUMERATED {
+ same,
+ changed,
+ ...
+}
+
+NumberofBroadcastRequest ::= INTEGER (0..65535)
+
+NumberOfBroadcasts ::= INTEGER (0..65535)
+
+-- O
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+OverloadAction ::= ENUMERATED {
+ reject-non-emergency-mo-dt,
+ reject-rrc-cr-signalling,
+ permit-emergency-sessions-and-mobile-terminated-services-only,
+ ...,
+ permit-high-priority-sessions-and-mobile-terminated-services-only,
+ reject-delay-tolerant-access,
+ permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only,
+ not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT
+
+}
+
+OverloadResponse ::= CHOICE {
+ overloadAction OverloadAction,
+ ...
+}
+
+
+-- P
+
+PagingAttemptInformation ::= SEQUENCE {
+ pagingAttemptCount PagingAttemptCount,
+ intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts,
+ nextPagingAreaScope NextPagingAreaScope OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PagingAttemptInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PagingAttemptCount ::= INTEGER (1..16, ...)
+
+Paging-eDRXInformation ::= SEQUENCE {
+ paging-eDRX-Cycle Paging-eDRX-Cycle,
+ pagingTimeWindow PagingTimeWindow OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Paging-eDRX-Cycle ::= ENUMERATED{hfhalf, hf1, hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, ...}
+
+PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...}
+
+PagingDRX ::= ENUMERATED {
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+ }
+
+PagingPriority ::= ENUMERATED {
+ priolevel1,
+ priolevel2,
+ priolevel3,
+ priolevel4,
+ priolevel5,
+ priolevel6,
+ priolevel7,
+ priolevel8,
+ ...
+}
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PDCP-SNExtended ::= INTEGER (0..32767)
+
+PDCP-SNlength18 ::= INTEGER (0..262143)
+
+PendingDataIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+M1PeriodicReporting ::= SEQUENCE {
+ reportInterval ReportIntervalMDT,
+ reportAmount ReportAmountMDT,
+ iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMNidentity ::= TBCD-STRING
+
+Port-Number ::= OCTET STRING (SIZE (2))
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+ProSeAuthorized ::= SEQUENCE {
+ proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL,
+ proSeDirectCommunication ProSeDirectCommunication OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional},
+ ...
+}
+
+ProSeDirectDiscovery ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeUEtoNetworkRelaying ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeDirectCommunication ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+PS-ServiceNotAvailable ::= ENUMERATED {
+ ps-service-not-available,
+ ...
+}
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384))
+
+ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072))
+
+RecommendedCellsForPaging ::= SEQUENCE {
+ recommendedCellList RecommendedCellList,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedCellsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedCellList ::= SEQUENCE (SIZE(1.. maxnoofRecommendedCells)) OF ProtocolIE-SingleContainer { { RecommendedCellItemIEs } }
+
+RecommendedCellItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-RecommendedCellItem CRITICALITY ignore TYPE RecommendedCellItem PRESENCE mandatory },
+ ...
+}
+
+RecommendedCellItem::= SEQUENCE {
+ eUTRAN-CGI EUTRAN-CGI,
+ timeStayedInCell INTEGER (0..4095) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPagingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedCellsForPagingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedENBsForPaging ::= SEQUENCE {
+ recommendedENBList RecommendedENBList,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedENBsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedENBList::= SEQUENCE (SIZE(1.. maxnoofRecommendedENBs)) OF ProtocolIE-SingleContainer { { RecommendedENBItemIEs } }
+
+RecommendedENBItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-RecommendedENBItem CRITICALITY ignore TYPE RecommendedENBItem PRESENCE mandatory },
+ ...
+}
+
+RecommendedENBItem ::= SEQUENCE {
+ mMEPagingTarget MMEPagingTarget,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedENBItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedENBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelativeMMECapacity ::= INTEGER (0..255)
+
+RelayNode-Indicator ::= ENUMERATED {
+ true,
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAT-Type ::= ENUMERATED {
+ nbiot,
+ ...
+}
+
+ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity}
+
+ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60}
+
+M1ReportingTrigger ::= ENUMERATED{
+ periodic,
+ a2eventtriggered,
+ ...,
+ a2eventtriggered-periodic
+}
+
+RequestType ::= SEQUENCE {
+ eventType EventType,
+ reportArea ReportArea,
+ iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMTransfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIMRoutingAddress ::= CHOICE {
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...,
+ targetRNC-ID TargetRNC-ID,
+ eHRPD-Sector-ID OCTET STRING (SIZE(16))
+}
+
+ReportArea ::= ENUMERATED {
+ ecgi,
+ ...
+}
+
+RepetitionPeriod ::= INTEGER (0..4095)
+
+RLFReportInformation ::= SEQUENCE {
+ uE-RLF-Report-Container UE-RLF-Report-Container,
+ uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL,
+ ...
+}
+
+RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNC-ID ::= INTEGER (0..4095)
+
+RRC-Container ::= OCTET STRING
+
+RRC-Establishment-Cause ::= ENUMERATED {
+ emergency,
+ highPriorityAccess,
+ mt-Access,
+ mo-Signalling,
+ mo-Data,
+ ...,
+ delay-TolerantAccess,
+ mo-VoiceCall,
+ mo-ExceptionData
+}
+
+ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI
+
+Routing-ID ::= INTEGER (0..255)
+
+-- S
+
+
+SecurityKey ::= BIT STRING (SIZE(256))
+
+
+
+SecurityContext ::= SEQUENCE {
+ nextHopChainingCount INTEGER (0..7),
+ nextHopParameter SecurityKey,
+ iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SerialNumber ::= BIT STRING (SIZE (16))
+
+SONInformation ::= CHOICE{
+ sONInformationRequest SONInformationRequest,
+ sONInformationReply SONInformationReply,
+ ...
+-- ...,
+-- sONInformation-Extension SONInformation-Extension
+}
+
+SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }}
+
+SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= {
+ { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory}
+}
+
+SONInformationRequest ::= ENUMERATED {
+ x2TNL-Configuration-Info,
+ ...,
+ time-Synchronisation-Info,
+ activate-Muting,
+ deactivate-Muting}
+
+SONInformationReply ::= SEQUENCE {
+ x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 9 to transfer Time synchronisation information --
+ {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional},
+ ...,
+ {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional}
+}
+
+SONInformationReport ::= CHOICE{
+ rLFReportInformation RLFReportInformation,
+ ...
+}
+
+SONConfigurationTransfer ::= SEQUENCE {
+ targeteNB-ID TargeteNB-ID,
+ sourceeNB-ID SourceeNB-ID,
+ sONInformation SONInformation,
+ iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action --
+ {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}|
+-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell --
+ {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --},
+ ...
+}
+
+
+SynchronisationInformation ::= SEQUENCE {
+ sourceStratumLevel StratumLevel OPTIONAL,
+ listeningSubframePattern ListeningSubframePattern OPTIONAL,
+ aggressoreCGI-List ECGI-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+-- This IE includes a transparent container from the source RAN node to the target RAN node.
+-- The octets of the OCTET STRING are encoded according to the specifications of the target system.
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+SourceeNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL
+}
+
+SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCCOperationNotPossible ::= ENUMERATED {
+ notPossible,
+ ...
+}
+
+SRVCCOperationPossible ::= ENUMERATED {
+ possible,
+ ...
+}
+
+SRVCCHOIndication ::= ENUMERATED {
+ pSandCS,
+ cSonly,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ e-RABInformationList E-RABInformationList OPTIONAL,
+ targetCell-ID EUTRAN-CGI,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ uE-HistoryInformation UE-HistoryInformation,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}|
+ {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional},
+ ...
+}
+
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+
+ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem
+
+ServedGUMMEIsItem ::= SEQUENCE {
+ servedPLMNs ServedPLMNs,
+ servedGroupIDs ServedGroupIDs,
+ servedMMECs ServedMMECs,
+ iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID
+ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code
+
+ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item
+
+SupportedTAs-Item ::= SEQUENCE {
+ tAC TAC,
+ broadcastPLMNs BPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ -- Extension for Release 13 to transfer RAT-Type per TAC --
+ {ID id-RAT-Type CRITICALITY reject EXTENSION RAT-Type PRESENCE optional},
+ ...
+}
+
+StratumLevel ::= INTEGER (0..3, ...)
+
+SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... }
+
+TimeSynchronisationInfo ::= SEQUENCE {
+ stratumLevel StratumLevel,
+ synchronisationStatus SynchronisationStatus,
+ iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ -- Extension for Release 12 to transfer Muting Availability Indication --
+ {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional},
+ ...
+}
+
+S-TMSI ::= SEQUENCE {
+ mMEC MME-Code,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAIBasedMDT ::= SEQUENCE {
+ tAIListforMDT TAIListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI
+
+TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item
+
+TAI-Broadcast-Item ::= SEQUENCE {
+ tAI TAI,
+ completedCellinTAI CompletedCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item
+
+TAI-Cancelled-Item ::= SEQUENCE {
+ tAI TAI,
+ cancelledCellinTAI CancelledCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TABasedMDT ::= SEQUENCE {
+ tAListforMDT TAListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
+
+CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item
+
+CompletedCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+TargetID ::= CHOICE {
+ targeteNB-ID TargeteNB-ID,
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+ ...
+}
+
+TargeteNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ extendedRNC-ID ExtendedRNC-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+
+TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+-- This IE includes a transparent container from the target RAN node to the source RAN node.
+-- The octets of the OCTET STRING are coded according to the specifications of the target system.
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+M1ThresholdEventA2 ::= SEQUENCE {
+ measurementThreshold MeasurementThresholdA2,
+ iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Threshold-RSRP ::= INTEGER(0..97)
+
+Threshold-RSRQ ::= INTEGER(0..34)
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950)
+
+TransportInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uL-GTP-TEID GTP-TEID,
+ ...
+}
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TraceActivation ::= SEQUENCE {
+ e-UTRAN-Trace-ID E-UTRAN-Trace-ID,
+ interfacesToTrace InterfacesToTrace,
+ traceDepth TraceDepth,
+ traceCollectionEntityIPAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Rel-10 to support MDT --
+ { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional },
+ ...
+}
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8))
+
+TrafficLoadReductionIndication ::= INTEGER (1..99)
+
+TunnelInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uDP-Port-Number Port-Number OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI
+
+-- U
+
+UEAggregateMaximumBitrate ::= SEQUENCE {
+ uEaggregateMaximumBitRateDL BitRate,
+ uEaggregateMaximumBitRateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-RetentionInformation ::= ENUMERATED {
+ ues-retained,
+ ...}
+
+UE-S1AP-IDs ::= CHOICE{
+ uE-S1AP-ID-pair UE-S1AP-ID-pair,
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ ...
+}
+
+UE-S1AP-ID-pair ::= SEQUENCE{
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL,
+ ...
+}
+UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE {
+ mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEIdentityIndexValue ::= BIT STRING (SIZE (10))
+
+UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
+
+UE-HistoryInformationFromTheUE ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UEPagingID ::= CHOICE {
+ s-TMSI S-TMSI,
+ iMSI IMSI,
+ ...
+ }
+
+UERadioCapability ::= OCTET STRING
+
+UERadioCapabilityForPaging ::= OCTET STRING
+
+UE-RLF-Report-Container ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UESidelinkAggregateMaximumBitrate ::= SEQUENCE {
+ uESidelinkAggregateMaximumBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-Usage-Type ::= INTEGER (0..255)
+
+UL-CP-SecurityInformation ::= SEQUENCE {
+ ul-NAS-MAC UL-NAS-MAC,
+ ul-NAS-Count UL-NAS-Count,
+ iE-Extensions ProtocolExtensionContainer { { UL-CP-SecurityInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-NAS-MAC ::= BIT STRING (SIZE (16))
+
+UL-NAS-Count ::= BIT STRING (SIZE (5))
+
+
+UserLocationInformation ::= SEQUENCE {
+ eutran-cgi EUTRAN-CGI,
+ tai TAI,
+ iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEUserPlaneCIoTSupportIndicator ::= ENUMERATED {
+ supported,
+ ...
+}
+
+-- V
+
+VoiceSupportMatchIndicator ::= ENUMERATED {
+ supported,
+ not-supported,
+ ...
+}
+
+V2XServicesAuthorized ::= SEQUENCE {
+ vehicleUE VehicleUE OPTIONAL,
+ pedestrianUE PedestrianUE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+VehicleUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+PedestrianUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+-- W
+
+WarningAreaList ::= CHOICE {
+ cellIDList ECGIList,
+ trackingAreaListforWarning TAIListforWarning,
+ emergencyAreaIDList EmergencyAreaIDList,
+ ...
+}
+
+
+WarningType ::= OCTET STRING (SIZE (2))
+
+WarningSecurityInfo ::= OCTET STRING (SIZE (50))
+
+
+WarningMessageContents ::= OCTET STRING (SIZE(1..9600))
+
+
+-- X
+
+
+X2TNLConfigurationInfo ::= SEQUENCE {
+ eNBX2TransportLayerAddresses ENBX2TLAs,
+ iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action --
+ {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}|
+-- Extension for Release 12 to transfer the IP addresses of the X2 GW --
+ {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional},
+ ...
+}
+
+ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA
+
+ENBX2ExtTLA ::= SEQUENCE {
+ iPsecTLA TransportLayerAddress OPTIONAL,
+ gTPTLAa ENBX2GTPTLAs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress
+
+ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+-- Y
+-- Z
+
+END
+
+
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+S1AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..65535),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+ProtocolIE-ID ::= INTEGER (0..65535)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
+
+END
+
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+S1AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM S1AP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-HandoverPreparation ProcedureCode ::= 0
+id-HandoverResourceAllocation ProcedureCode ::= 1
+id-HandoverNotification ProcedureCode ::= 2
+id-PathSwitchRequest ProcedureCode ::= 3
+id-HandoverCancel ProcedureCode ::= 4
+id-E-RABSetup ProcedureCode ::= 5
+id-E-RABModify ProcedureCode ::= 6
+id-E-RABRelease ProcedureCode ::= 7
+id-E-RABReleaseIndication ProcedureCode ::= 8
+id-InitialContextSetup ProcedureCode ::= 9
+id-Paging ProcedureCode ::= 10
+id-downlinkNASTransport ProcedureCode ::= 11
+id-initialUEMessage ProcedureCode ::= 12
+id-uplinkNASTransport ProcedureCode ::= 13
+id-Reset ProcedureCode ::= 14
+id-ErrorIndication ProcedureCode ::= 15
+id-NASNonDeliveryIndication ProcedureCode ::= 16
+id-S1Setup ProcedureCode ::= 17
+id-UEContextReleaseRequest ProcedureCode ::= 18
+id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19
+id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20
+id-UEContextModification ProcedureCode ::= 21
+id-UECapabilityInfoIndication ProcedureCode ::= 22
+id-UEContextRelease ProcedureCode ::= 23
+id-eNBStatusTransfer ProcedureCode ::= 24
+id-MMEStatusTransfer ProcedureCode ::= 25
+id-DeactivateTrace ProcedureCode ::= 26
+id-TraceStart ProcedureCode ::= 27
+id-TraceFailureIndication ProcedureCode ::= 28
+id-ENBConfigurationUpdate ProcedureCode ::= 29
+id-MMEConfigurationUpdate ProcedureCode ::= 30
+id-LocationReportingControl ProcedureCode ::= 31
+id-LocationReportingFailureIndication ProcedureCode ::= 32
+id-LocationReport ProcedureCode ::= 33
+id-OverloadStart ProcedureCode ::= 34
+id-OverloadStop ProcedureCode ::= 35
+id-WriteReplaceWarning ProcedureCode ::= 36
+id-eNBDirectInformationTransfer ProcedureCode ::= 37
+id-MMEDirectInformationTransfer ProcedureCode ::= 38
+id-PrivateMessage ProcedureCode ::= 39
+id-eNBConfigurationTransfer ProcedureCode ::= 40
+id-MMEConfigurationTransfer ProcedureCode ::= 41
+id-CellTrafficTrace ProcedureCode ::= 42
+id-Kill ProcedureCode ::= 43
+id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44
+id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45
+id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46
+id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47
+id-UERadioCapabilityMatch ProcedureCode ::= 48
+id-PWSRestartIndication ProcedureCode ::= 49
+id-E-RABModificationIndication ProcedureCode ::= 50
+id-PWSFailureIndication ProcedureCode ::= 51
+id-RerouteNASRequest ProcedureCode ::= 52
+id-UEContextModificationIndication ProcedureCode ::= 53
+id-ConnectionEstablishmentIndication ProcedureCode ::= 54
+id-UEContextSuspend ProcedureCode ::= 55
+id-UEContextResume ProcedureCode ::= 56
+id-NASDeliveryIndication ProcedureCode ::= 57
+id-RetrieveUEInformation ProcedureCode ::= 58
+id-UEInformationTransfer ProcedureCode ::= 59
+id-eNBCPRelocationIndication ProcedureCode ::= 60
+id-MMECPRelocationIndication ProcedureCode ::= 61
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxnoofCSGs INTEGER ::= 256
+maxnoofE-RABs INTEGER ::= 256
+maxnoofTAIs INTEGER ::= 256
+maxnoofTACs INTEGER ::= 256
+maxnoofErrors INTEGER ::= 256
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofPLMNsPerMME INTEGER ::= 32
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256
+maxnoofCells INTEGER ::= 16
+maxnoofCellsineNB INTEGER ::= 256
+maxnoofTAIforWarning INTEGER ::= 65535
+maxnoofCellID INTEGER ::= 65535
+maxnoofDCNs INTEGER ::= 32
+maxnoofEmergencyAreaID INTEGER ::= 65535
+maxnoofCellinTAI INTEGER ::= 65535
+maxnoofCellinEAI INTEGER ::= 65535
+maxnoofeNBX2TLAs INTEGER ::= 2
+maxnoofeNBX2ExtTLAs INTEGER ::= 16
+maxnoofeNBX2GTPTLAs INTEGER ::= 16
+maxnoofRATs INTEGER ::= 8
+maxnoofGroupIDs INTEGER ::= 65535
+maxnoofMMECs INTEGER ::= 256
+maxnoofCellIDforMDT INTEGER ::= 32
+maxnoofTAforMDT INTEGER ::= 8
+maxnoofMDTPLMNs INTEGER ::= 16
+maxnoofCellsforRestart INTEGER ::= 256
+maxnoofRestartTAIs INTEGER ::= 2048
+maxnoofRestartEmergencyAreaIDs INTEGER ::= 256
+maxEARFCN INTEGER ::= 262143
+maxnoofMBSFNAreaMDT INTEGER ::= 8
+maxnoofRecommendedCells INTEGER ::= 16
+maxnoofRecommendedENBs INTEGER ::= 16
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
+id-HandoverType ProtocolIE-ID ::= 1
+id-Cause ProtocolIE-ID ::= 2
+id-SourceID ProtocolIE-ID ::= 3
+id-TargetID ProtocolIE-ID ::= 4
+id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
+id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
+id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
+id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
+id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
+id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
+id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
+id-E-RABAdmittedList ProtocolIE-ID ::= 18
+id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
+id-E-RABAdmittedItem ProtocolIE-ID ::= 20
+id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
+id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
+id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
+id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
+id-TraceActivation ProtocolIE-ID ::= 25
+id-NAS-PDU ProtocolIE-ID ::= 26
+id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
+id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
+id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
+id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
+id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
+id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
+id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
+id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
+id-E-RABItem ProtocolIE-ID ::= 35
+id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
+id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
+id-E-RABReleaseItem ProtocolIE-ID ::= 38
+id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
+id-SecurityContext ProtocolIE-ID ::= 40
+id-HandoverRestrictionList ProtocolIE-ID ::= 41
+id-UEPagingID ProtocolIE-ID ::= 43
+id-pagingDRX ProtocolIE-ID ::= 44
+id-TAIList ProtocolIE-ID ::= 46
+id-TAIItem ProtocolIE-ID ::= 47
+id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
+id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
+id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
+id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
+id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
+id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
+id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
+id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
+id-CriticalityDiagnostics ProtocolIE-ID ::= 58
+id-Global-ENB-ID ProtocolIE-ID ::= 59
+id-eNBname ProtocolIE-ID ::= 60
+id-MMEname ProtocolIE-ID ::= 61
+id-ServedPLMNs ProtocolIE-ID ::= 63
+id-SupportedTAs ProtocolIE-ID ::= 64
+id-TimeToWait ProtocolIE-ID ::= 65
+id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
+id-TAI ProtocolIE-ID ::= 67
+id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
+id-cdma2000PDU ProtocolIE-ID ::= 70
+id-cdma2000RATType ProtocolIE-ID ::= 71
+id-cdma2000SectorID ProtocolIE-ID ::= 72
+id-SecurityKey ProtocolIE-ID ::= 73
+id-UERadioCapability ProtocolIE-ID ::= 74
+id-GUMMEI-ID ProtocolIE-ID ::= 75
+id-E-RABInformationListItem ProtocolIE-ID ::= 78
+id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
+id-UEIdentityIndexValue ProtocolIE-ID ::= 80
+id-cdma2000HOStatus ProtocolIE-ID ::= 83
+id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
+id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
+id-RelativeMMECapacity ProtocolIE-ID ::= 87
+id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
+id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
+id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
+id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
+id-ResetType ProtocolIE-ID ::= 92
+id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
+id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
+id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
+id-S-TMSI ProtocolIE-ID ::= 96
+id-cdma2000OneXRAND ProtocolIE-ID ::= 97
+id-RequestType ProtocolIE-ID ::= 98
+id-UE-S1AP-IDs ProtocolIE-ID ::= 99
+id-EUTRAN-CGI ProtocolIE-ID ::= 100
+id-OverloadResponse ProtocolIE-ID ::= 101
+id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
+id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
+id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
+id-ServedGUMMEIs ProtocolIE-ID ::= 105
+id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
+id-UESecurityCapabilities ProtocolIE-ID ::= 107
+id-CSFallbackIndicator ProtocolIE-ID ::= 108
+id-CNDomain ProtocolIE-ID ::= 109
+id-E-RABReleasedList ProtocolIE-ID ::= 110
+id-MessageIdentifier ProtocolIE-ID ::= 111
+id-SerialNumber ProtocolIE-ID ::= 112
+id-WarningAreaList ProtocolIE-ID ::= 113
+id-RepetitionPeriod ProtocolIE-ID ::= 114
+id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
+id-WarningType ProtocolIE-ID ::= 116
+id-WarningSecurityInfo ProtocolIE-ID ::= 117
+id-DataCodingScheme ProtocolIE-ID ::= 118
+id-WarningMessageContents ProtocolIE-ID ::= 119
+id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
+id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
+id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
+id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
+id-SRVCCOperationPossible ProtocolIE-ID ::= 124
+id-SRVCCHOIndication ProtocolIE-ID ::= 125
+id-NAS-DownlinkCount ProtocolIE-ID ::= 126
+id-CSG-Id ProtocolIE-ID ::= 127
+id-CSG-IdList ProtocolIE-ID ::= 128
+id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
+id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
+id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
+id-MSClassmark2 ProtocolIE-ID ::= 132
+id-MSClassmark3 ProtocolIE-ID ::= 133
+id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
+id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
+id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
+id-DefaultPagingDRX ProtocolIE-ID ::= 137
+id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
+id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
+id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140
+id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141
+id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142
+id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143
+id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144
+id-CellAccessMode ProtocolIE-ID ::= 145
+id-CSGMembershipStatus ProtocolIE-ID ::= 146
+id-LPPa-PDU ProtocolIE-ID ::= 147
+id-Routing-ID ProtocolIE-ID ::= 148
+id-Time-Synchronisation-Info ProtocolIE-ID ::= 149
+id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150
+id-PagingPriority ProtocolIE-ID ::= 151
+id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152
+id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153
+id-GUMMEIList ProtocolIE-ID ::= 154
+id-GW-TransportLayerAddress ProtocolIE-ID ::= 155
+id-Correlation-ID ProtocolIE-ID ::= 156
+id-SourceMME-GUMMEI ProtocolIE-ID ::= 157
+id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158
+id-RegisteredLAI ProtocolIE-ID ::= 159
+id-RelayNode-Indicator ProtocolIE-ID ::= 160
+id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161
+id-MDTConfiguration ProtocolIE-ID ::= 162
+id-MMERelaySupportIndicator ProtocolIE-ID ::= 163
+id-GWContextReleaseIndication ProtocolIE-ID ::= 164
+id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165
+id-PrivacyIndicator ProtocolIE-ID ::= 166
+id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167
+id-HO-Cause ProtocolIE-ID ::= 168
+id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169
+id-GUMMEIType ProtocolIE-ID ::= 170
+id-M3Configuration ProtocolIE-ID ::= 171
+id-M4Configuration ProtocolIE-ID ::= 172
+id-M5Configuration ProtocolIE-ID ::= 173
+id-MDT-Location-Info ProtocolIE-ID ::= 174
+id-MobilityInformation ProtocolIE-ID ::= 175
+id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176
+id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177
+id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178
+id-ULCOUNTValueExtended ProtocolIE-ID ::= 179
+id-DLCOUNTValueExtended ProtocolIE-ID ::= 180
+id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181
+id-ECGIListForRestart ProtocolIE-ID ::= 182
+id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183
+id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184
+id-TransportInformation ProtocolIE-ID ::= 185
+id-LHN-ID ProtocolIE-ID ::= 186
+id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187
+id-TAIListForRestart ProtocolIE-ID ::= 188
+id-UserLocationInformation ProtocolIE-ID ::= 189
+id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190
+id-KillAllWarningMessages ProtocolIE-ID ::= 191
+id-Masked-IMEISV ProtocolIE-ID ::= 192
+id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193
+id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194
+id-ProSeAuthorized ProtocolIE-ID ::= 195
+id-ExpectedUEBehaviour ProtocolIE-ID ::= 196
+id-LoggedMBSFNMDT ProtocolIE-ID ::= 197
+id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198
+id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199
+id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200
+id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201
+id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202
+id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203
+id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204
+id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205
+id-SON-Information-Report ProtocolIE-ID ::= 206
+id-Muting-Availability-Indication ProtocolIE-ID ::= 207
+id-Muting-Pattern-Information ProtocolIE-ID ::= 208
+id-Synchronisation-Information ProtocolIE-ID ::= 209
+id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210
+id-AssistanceDataForPaging ProtocolIE-ID ::= 211
+id-CellIdentifierAndCELevelForCECapableUEs ProtocolIE-ID ::= 212
+id-InformationOnRecommendedCellsAndENBsForPaging ProtocolIE-ID ::= 213
+id-RecommendedCellItem ProtocolIE-ID ::= 214
+id-RecommendedENBItem ProtocolIE-ID ::= 215
+id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216
+id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217
+id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218
+id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219
+id-M6Configuration ProtocolIE-ID ::= 220
+id-M7Configuration ProtocolIE-ID ::= 221
+id-PWSfailedECGIList ProtocolIE-ID ::= 222
+id-MME-Group-ID ProtocolIE-ID ::= 223
+id-Additional-GUTI ProtocolIE-ID ::= 224
+id-S1-Message ProtocolIE-ID ::= 225
+id-CSGMembershipInfo ProtocolIE-ID ::= 226
+id-Paging-eDRXInformation ProtocolIE-ID ::= 227
+id-UE-RetentionInformation ProtocolIE-ID ::= 228
+id-UE-Usage-Type ProtocolIE-ID ::= 230
+id-extended-UEIdentityIndexValue ProtocolIE-ID ::= 231
+id-RAT-Type ProtocolIE-ID ::= 232
+id-BearerType ProtocolIE-ID ::= 233
+id-NB-IoT-DefaultPagingDRX ProtocolIE-ID ::= 234
+id-E-RABFailedToResumeListResumeReq ProtocolIE-ID ::= 235
+id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236
+id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237
+id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238
+id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239
+id-V2XServicesAuthorized ProtocolIE-ID ::= 240
+id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241
+id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242
+id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243
+id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244
+id-RRC-Resume-Cause ProtocolIE-ID ::= 245
+id-DCN-ID ProtocolIE-ID ::= 246
+id-ServedDCNs ProtocolIE-ID ::= 247
+id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 248
+id-DLNASPDUDeliveryAckRequest ProtocolIE-ID ::= 249
+id-Coverage-Level ProtocolIE-ID ::= 250
+id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251
+id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252
+id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253
+id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254
+id-CE-ModeBRestricted ProtocolIE-ID ::= 271
+id-PendingDataIndication ProtocolIE-ID ::= 283
+
+END
+
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+S1AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM S1AP-CommonDataTypes
+
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-IES-PAIR ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &firstCriticality Criticality,
+ &FirstValue,
+ &secondCriticality Criticality,
+ &SecondValue,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ FIRST CRITICALITY &firstCriticality
+ FIRST TYPE &FirstValue
+ SECOND CRITICALITY &secondCriticality
+ SECOND TYPE &SecondValue
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+S1AP-PRIVATE-IES ::= CLASS {
+ &id PrivateIE-ID,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-SingleContainer {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
+
+-- **************************************************************
+--
+-- IE definitions for the SON Transfer application
+-- The IEs in this ASN.1 module shall be defined and encoded
+-- using the same rules as applicable for the S1AP-IEs module.
+--
+-- **************************************************************
+SonTransfer-IEs
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+--
+-- Generic IEs for the SON Transfer application
+--
+
+SONtransferApplicationIdentity ::= ENUMERATED {
+ cell-load-reporting,
+ ...,
+ multi-cell-load-reporting,
+ event-triggered-cell-load-reporting,
+ ho-reporting,
+ eutran-cell-activation,
+ energy-savings-indication,
+ failure-event-reporting
+}
+
+SONtransferRequestContainer ::= CHOICE{
+ cellLoadReporting NULL,
+ ...,
+ multiCellLoadReporting MultiCellLoadReportingRequest,
+ eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest,
+ hOReporting HOReport,
+ eutranCellActivation CellActivationRequest,
+ energySavingsIndication CellStateIndication,
+ failureEventReporting FailureEventReport
+}
+
+SONtransferResponseContainer ::= CHOICE{
+ cellLoadReporting CellLoadReportingResponse,
+ ...,
+ multiCellLoadReporting MultiCellLoadReportingResponse,
+ eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse,
+ hOReporting NULL,
+ eutranCellActivation CellActivationResponse,
+ energySavingsIndication NULL,
+ failureEventReporting NULL
+}
+
+SONtransferCause ::= CHOICE {
+ cellLoadReporting CellLoadReportingCause,
+ ...,
+ multiCellLoadReporting CellLoadReportingCause,
+ eventTriggeredCellLoadReporting CellLoadReportingCause,
+ hOReporting HOReportingCause,
+ eutranCellActivation CellActivationCause,
+ energySavingsIndication CellStateIndicationCause,
+ failureEventReporting FailureEventReportingCause
+}
+
+
+CellLoadReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+HOReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+CellActivationCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+CellStateIndicationCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+FailureEventReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+--
+-- IEs for Cell Load Reporting application
+--
+
+CellLoadReportingResponse::= CHOICE{
+ eUTRAN EUTRANcellLoadReportingResponse,
+ uTRAN OCTET STRING,
+ gERAN OCTET STRING,
+ ...,
+ eHRPD EHRPDSectorLoadReportingResponse
+}
+
+CompositeAvailableCapacityGroup ::= OCTET STRING
+
+EUTRANcellLoadReportingResponse ::= SEQUENCE {
+ compositeAvailableCapacityGroup CompositeAvailableCapacityGroup,
+ ...
+}
+
+--
+-- IEs for Multi-Cell Load Reporting application
+--
+
+EUTRANResponse::= SEQUENCE {
+ cell-ID OCTET STRING,
+ eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse,
+ ...
+}
+
+EHRPD-Sector-ID ::= OCTET STRING (SIZE (16))
+
+IRAT-Cell-ID ::= CHOICE{
+ eUTRAN OCTET STRING,
+ uTRAN OCTET STRING,
+ gERAN OCTET STRING,
+ ...,
+ eHRPD EHRPD-Sector-ID
+}
+
+RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID
+
+MultiCellLoadReportingRequest::= SEQUENCE {
+ requestedCellList RequestedCellList,
+ ...
+}
+
+ReportingCellList-Item ::= SEQUENCE {
+ cell-ID IRAT-Cell-ID,
+ ...
+}
+
+ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item
+
+MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item
+
+MultiCellLoadReportingResponse-Item ::= CHOICE{
+ eUTRANResponse EUTRANResponse,
+ uTRANResponse OCTET STRING,
+ gERANResponse OCTET STRING,
+ ...,
+ eHRPD EHRPDMultiSectorLoadReportingResponseItem
+}
+
+
+--
+-- IEs for Event-triggered Cell Load Reporting application
+--
+
+NumberOfMeasurementReportingLevels ::= ENUMERATED {
+ rl2,
+ rl3,
+ rl4,
+ rl5,
+ rl10,
+ ...
+}
+
+EventTriggeredCellLoadReportingRequest ::= SEQUENCE {
+ numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels,
+ ...
+}
+
+OverloadFlag ::= ENUMERATED {
+ overload,
+ ...
+}
+
+EventTriggeredCellLoadReportingResponse ::= SEQUENCE {
+ cellLoadReportingResponse CellLoadReportingResponse,
+ overloadFlag OverloadFlag OPTIONAL,
+ ...
+}
+
+--
+-- IEs for HO Reporting application
+--
+
+
+
+HOReport::= SEQUENCE {
+ hoType HoType,
+ hoReportType HoReportType,
+ hosourceID IRAT-Cell-ID,
+ hoTargetID IRAT-Cell-ID,
+ candidateCellList CandidateCellList,
+ ...,
+ candidatePCIList CandidatePCIList OPTIONAL
+}
+
+HoType ::= ENUMERATED {
+ ltetoutran,
+ ltetogeran,
+ ...
+}
+
+HoReportType ::= ENUMERATED {
+ unnecessaryhotoanotherrat,
+ ...,
+ earlyirathandover
+}
+
+CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID
+
+CandidatePCIList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF CandidatePCI
+
+CandidatePCI ::= SEQUENCE {
+ pCI INTEGER (0..503),
+ eARFCN OCTET STRING,
+ ...
+}
+
+--
+-- IEs for E-UTRAN Cell Activation application
+--
+
+CellActivationRequest ::= SEQUENCE {
+ cellsToActivateList CellsToActivateList,
+ minimumActivationTime INTEGER (1..60) OPTIONAL,
+...
+}
+
+CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item
+
+CellsToActivateList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ ...
+}
+
+CellActivationResponse ::= SEQUENCE {
+ activatedCellsList ActivatedCellsList,
+ ...
+}
+
+ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item
+
+ActivatedCellsList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ ...
+}
+
+--
+-- IEs for Energy Savings Indication application
+--
+
+CellStateIndication ::= SEQUENCE {
+ notificationCellList NotificationCellList,
+ ...
+}
+
+NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item
+
+NotificationCellList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ notifyFlag NotifyFlag,
+ ...
+}
+
+NotifyFlag ::= ENUMERATED {
+ activated,
+ deactivated,
+ ...
+}
+
+FailureEventReport::= CHOICE {
+ tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN,
+ ...
+}
+
+TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE {
+ uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] --
+ mobilityInformation MobilityInformation OPTIONAL,
+ ...
+}
+
+MobilityInformation ::= BIT STRING (SIZE(32))
+
+
+--
+-- IEs for reporting of eHRPD load
+--
+
+EHRPDCapacityValue ::= INTEGER (0..100)
+
+EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...)
+
+EHRPDSectorLoadReportingResponse ::= SEQUENCE {
+ dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity,
+ uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity,
+ ...
+}
+
+EHRPDCompositeAvailableCapacity ::= SEQUENCE {
+ eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue,
+ eHRPDCapacityValue EHRPDCapacityValue,
+ ...
+}
+
+EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE {
+ eHRPD-Sector-ID EHRPD-Sector-ID,
+ eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Constants
+--
+-- **************************************************************
+
+maxnoofIRATReportingCells INTEGER ::= 128
+maxnoofcandidateCells INTEGER ::= 16
+maxnoofCellineNB INTEGER ::= 256
+
+END
diff --git a/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.3.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.3.0.asn1
new file mode 100644
index 0000000000..102b006962
--- /dev/null
+++ b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.3.0.asn1
@@ -0,0 +1,7530 @@
+-- **************************************************************
+--
+-- Elementary Procedure definitions
+--
+-- **************************************************************
+
+S1AP-PDU-Descriptions {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Descriptions (0)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ ProcedureCode
+FROM S1AP-CommonDataTypes
+
+ CellTrafficTrace,
+ DeactivateTrace,
+ DownlinkUEAssociatedLPPaTransport,
+ DownlinkNASTransport,
+ DownlinkNonUEAssociatedLPPaTransport,
+ DownlinkS1cdma2000tunnelling,
+ ENBDirectInformationTransfer,
+ ENBStatusTransfer,
+ ENBConfigurationUpdate,
+ ENBConfigurationUpdateAcknowledge,
+ ENBConfigurationUpdateFailure,
+ ErrorIndication,
+ HandoverCancel,
+ HandoverCancelAcknowledge,
+ HandoverCommand,
+ HandoverFailure,
+ HandoverNotify,
+ HandoverPreparationFailure,
+ HandoverRequest,
+ HandoverRequestAcknowledge,
+ HandoverRequired,
+ InitialContextSetupFailure,
+ InitialContextSetupRequest,
+ InitialContextSetupResponse,
+ InitialUEMessage,
+ KillRequest,
+ KillResponse,
+ LocationReportingControl,
+ LocationReportingFailureIndication,
+ LocationReport,
+ MMEConfigurationUpdate,
+ MMEConfigurationUpdateAcknowledge,
+ MMEConfigurationUpdateFailure,
+ MMEDirectInformationTransfer,
+ MMEStatusTransfer,
+ NASNonDeliveryIndication,
+ OverloadStart,
+ OverloadStop,
+ Paging,
+ PathSwitchRequest,
+ PathSwitchRequestAcknowledge,
+ PathSwitchRequestFailure,
+ PrivateMessage,
+ Reset,
+ ResetAcknowledge,
+ S1SetupFailure,
+ S1SetupRequest,
+ S1SetupResponse,
+ E-RABModifyRequest,
+ E-RABModifyResponse,
+ E-RABModificationIndication,
+ E-RABModificationConfirm,
+ E-RABReleaseCommand,
+ E-RABReleaseResponse,
+ E-RABReleaseIndication,
+ E-RABSetupRequest,
+ E-RABSetupResponse,
+ TraceFailureIndication,
+ TraceStart,
+ UECapabilityInfoIndication,
+ UEContextModificationFailure,
+ UEContextModificationRequest,
+ UEContextModificationResponse,
+ UEContextReleaseCommand,
+ UEContextReleaseComplete,
+ UEContextReleaseRequest,
+ UERadioCapabilityMatchRequest,
+ UERadioCapabilityMatchResponse,
+ UplinkUEAssociatedLPPaTransport,
+ UplinkNASTransport,
+ UplinkNonUEAssociatedLPPaTransport,
+ UplinkS1cdma2000tunnelling,
+ WriteReplaceWarningRequest,
+ WriteReplaceWarningResponse,
+ ENBConfigurationTransfer,
+ MMEConfigurationTransfer,
+ PWSRestartIndication,
+ UEContextModificationIndication,
+ UEContextModificationConfirm,
+ RerouteNASRequest,
+ PWSFailureIndication,
+ UEContextSuspendRequest,
+ UEContextSuspendResponse,
+ UEContextResumeRequest,
+ UEContextResumeResponse,
+ UEContextResumeFailure,
+ ConnectionEstablishmentIndication,
+ NASDeliveryIndication,
+ RetrieveUEInformation,
+ UEInformationTransfer,
+ ENBCPRelocationIndication,
+ MMECPRelocationIndication,
+ SecondaryRATDataUsageReport
+
+
+FROM S1AP-PDU-Contents
+
+ id-CellTrafficTrace,
+ id-DeactivateTrace,
+ id-downlinkUEAssociatedLPPaTransport,
+ id-downlinkNASTransport,
+ id-downlinkNonUEAssociatedLPPaTransport,
+ id-DownlinkS1cdma2000tunnelling,
+ id-eNBStatusTransfer,
+ id-ErrorIndication,
+ id-HandoverCancel,
+ id-HandoverNotification,
+ id-HandoverPreparation,
+ id-HandoverResourceAllocation,
+ id-InitialContextSetup,
+ id-initialUEMessage,
+ id-ENBConfigurationUpdate,
+ id-Kill,
+ id-LocationReportingControl,
+ id-LocationReportingFailureIndication,
+ id-LocationReport,
+ id-eNBDirectInformationTransfer,
+ id-MMEConfigurationUpdate,
+ id-MMEDirectInformationTransfer,
+ id-MMEStatusTransfer,
+ id-NASNonDeliveryIndication,
+ id-OverloadStart,
+ id-OverloadStop,
+ id-Paging,
+ id-PathSwitchRequest,
+ id-PrivateMessage,
+ id-Reset,
+ id-S1Setup,
+ id-E-RABModify,
+ id-E-RABModificationIndication,
+ id-E-RABRelease,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-TraceFailureIndication,
+ id-TraceStart,
+ id-UECapabilityInfoIndication,
+ id-UEContextModification,
+ id-UEContextRelease,
+ id-UEContextReleaseRequest,
+ id-UERadioCapabilityMatch,
+ id-uplinkUEAssociatedLPPaTransport,
+ id-uplinkNASTransport,
+ id-uplinkNonUEAssociatedLPPaTransport,
+ id-UplinkS1cdma2000tunnelling,
+ id-WriteReplaceWarning,
+ id-eNBConfigurationTransfer,
+ id-MMEConfigurationTransfer,
+ id-PWSRestartIndication,
+ id-UEContextModificationIndication,
+ id-RerouteNASRequest,
+ id-PWSFailureIndication,
+ id-UEContextSuspend,
+ id-UEContextResume,
+ id-ConnectionEstablishmentIndication,
+ id-NASDeliveryIndication,
+ id-RetrieveUEInformation,
+ id-UEInformationTransfer,
+ id-eNBCPRelocationIndication,
+ id-MMECPRelocationIndication,
+ id-SecondaryRATDataUsageReport
+
+
+FROM S1AP-Constants;
+
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure Class
+--
+-- **************************************************************
+
+S1AP-ELEMENTARY-PROCEDURE ::= CLASS {
+ &InitiatingMessage ,
+ &SuccessfulOutcome OPTIONAL,
+ &UnsuccessfulOutcome OPTIONAL,
+ &procedureCode ProcedureCode UNIQUE,
+ &criticality Criticality DEFAULT ignore
+}
+WITH SYNTAX {
+ INITIATING MESSAGE &InitiatingMessage
+ [SUCCESSFUL OUTCOME &SuccessfulOutcome]
+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
+ PROCEDURE CODE &procedureCode
+ [CRITICALITY &criticality]
+}
+
+-- **************************************************************
+--
+-- Interface PDU Definition
+--
+-- **************************************************************
+
+S1AP-PDU ::= CHOICE {
+ initiatingMessage InitiatingMessage,
+ successfulOutcome SuccessfulOutcome,
+ unsuccessfulOutcome UnsuccessfulOutcome,
+ ...
+}
+
+InitiatingMessage ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+SuccessfulOutcome ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+UnsuccessfulOutcome ::= SEQUENCE {
+ procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
+ criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
+ value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedure List
+--
+-- **************************************************************
+
+S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= {
+ S1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
+ S1AP-ELEMENTARY-PROCEDURES-CLASS-2,
+ ...
+}
+
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverPreparation |
+ handoverResourceAllocation |
+ pathSwitchRequest |
+ e-RABSetup |
+ e-RABModify |
+ e-RABRelease |
+ initialContextSetup |
+ handoverCancel |
+ kill |
+ reset |
+ s1Setup |
+ uEContextModification |
+ uEContextRelease |
+ eNBConfigurationUpdate |
+ mMEConfigurationUpdate |
+ writeReplaceWarning ,
+ ...,
+ uERadioCapabilityMatch |
+ e-RABModificationIndication |
+ uEContextModificationIndication |
+ uEContextSuspend |
+ uEContextResume
+}
+
+S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
+ handoverNotification |
+ e-RABReleaseIndication |
+ paging |
+ downlinkNASTransport |
+ initialUEMessage |
+ uplinkNASTransport |
+ errorIndication |
+ nASNonDeliveryIndication |
+ uEContextReleaseRequest |
+ downlinkS1cdma2000tunnelling |
+ uplinkS1cdma2000tunnelling |
+ uECapabilityInfoIndication |
+ eNBStatusTransfer |
+ mMEStatusTransfer |
+ deactivateTrace |
+ traceStart |
+ traceFailureIndication |
+ cellTrafficTrace |
+ locationReportingControl |
+ locationReportingFailureIndication |
+ locationReport |
+ overloadStart |
+ overloadStop |
+ eNBDirectInformationTransfer |
+ mMEDirectInformationTransfer |
+ eNBConfigurationTransfer |
+ mMEConfigurationTransfer |
+ privateMessage ,
+ ...,
+ downlinkUEAssociatedLPPaTransport |
+ uplinkUEAssociatedLPPaTransport |
+ downlinkNonUEAssociatedLPPaTransport |
+ uplinkNonUEAssociatedLPPaTransport |
+ pWSRestartIndication |
+ rerouteNASRequest |
+ pWSFailureIndication |
+ connectionEstablishmentIndication |
+ nASDeliveryIndication |
+ retrieveUEInformation |
+ uEInformationTransfer |
+ eNBCPRelocationIndication |
+ mMECPRelocationIndication |
+ secondaryRATDataUsageReport
+}
+
+-- **************************************************************
+--
+-- Interface Elementary Procedures
+--
+-- **************************************************************
+
+handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequired
+ SUCCESSFUL OUTCOME HandoverCommand
+ UNSUCCESSFUL OUTCOME HandoverPreparationFailure
+ PROCEDURE CODE id-HandoverPreparation
+ CRITICALITY reject
+}
+
+handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverRequest
+ SUCCESSFUL OUTCOME HandoverRequestAcknowledge
+ UNSUCCESSFUL OUTCOME HandoverFailure
+ PROCEDURE CODE id-HandoverResourceAllocation
+ CRITICALITY reject
+}
+
+handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverNotify
+ PROCEDURE CODE id-HandoverNotification
+ CRITICALITY ignore
+}
+
+pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PathSwitchRequest
+ SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
+ UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
+ PROCEDURE CODE id-PathSwitchRequest
+ CRITICALITY reject
+}
+
+e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABSetupRequest
+ SUCCESSFUL OUTCOME E-RABSetupResponse
+ PROCEDURE CODE id-E-RABSetup
+ CRITICALITY reject
+}
+
+e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModifyRequest
+ SUCCESSFUL OUTCOME E-RABModifyResponse
+ PROCEDURE CODE id-E-RABModify
+ CRITICALITY reject
+}
+
+e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseCommand
+ SUCCESSFUL OUTCOME E-RABReleaseResponse
+ PROCEDURE CODE id-E-RABRelease
+ CRITICALITY reject
+}
+
+e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABReleaseIndication
+ PROCEDURE CODE id-E-RABReleaseIndication
+ CRITICALITY ignore
+}
+
+initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialContextSetupRequest
+ SUCCESSFUL OUTCOME InitialContextSetupResponse
+ UNSUCCESSFUL OUTCOME InitialContextSetupFailure
+ PROCEDURE CODE id-InitialContextSetup
+ CRITICALITY reject
+}
+
+uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseRequest
+ PROCEDURE CODE id-UEContextReleaseRequest
+ CRITICALITY ignore
+}
+
+paging S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Paging
+ PROCEDURE CODE id-Paging
+ CRITICALITY ignore
+}
+
+downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkNASTransport
+ PROCEDURE CODE id-downlinkNASTransport
+ CRITICALITY ignore
+}
+
+initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE InitialUEMessage
+ PROCEDURE CODE id-initialUEMessage
+ CRITICALITY ignore
+}
+
+uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkNASTransport
+ PROCEDURE CODE id-uplinkNASTransport
+ CRITICALITY ignore
+}
+nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE NASNonDeliveryIndication
+ PROCEDURE CODE id-NASNonDeliveryIndication
+ CRITICALITY ignore
+}
+
+handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE HandoverCancel
+ SUCCESSFUL OUTCOME HandoverCancelAcknowledge
+ PROCEDURE CODE id-HandoverCancel
+ CRITICALITY reject
+}
+
+reset S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Reset
+ SUCCESSFUL OUTCOME ResetAcknowledge
+ PROCEDURE CODE id-Reset
+ CRITICALITY reject
+}
+
+errorIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ErrorIndication
+ PROCEDURE CODE id-ErrorIndication
+ CRITICALITY ignore
+}
+
+s1Setup S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE S1SetupRequest
+ SUCCESSFUL OUTCOME S1SetupResponse
+ UNSUCCESSFUL OUTCOME S1SetupFailure
+ PROCEDURE CODE id-S1Setup
+ CRITICALITY reject
+}
+
+eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationUpdate
+ SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
+ PROCEDURE CODE id-ENBConfigurationUpdate
+ CRITICALITY reject
+}
+
+mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationUpdate
+ SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
+ UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
+ PROCEDURE CODE id-MMEConfigurationUpdate
+ CRITICALITY reject
+}
+
+downlinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkS1cdma2000tunnelling
+ PROCEDURE CODE id-DownlinkS1cdma2000tunnelling
+ CRITICALITY ignore
+}
+
+uplinkS1cdma2000tunnelling S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkS1cdma2000tunnelling
+ PROCEDURE CODE id-UplinkS1cdma2000tunnelling
+ CRITICALITY ignore
+}
+
+uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationRequest
+ SUCCESSFUL OUTCOME UEContextModificationResponse
+ UNSUCCESSFUL OUTCOME UEContextModificationFailure
+ PROCEDURE CODE id-UEContextModification
+ CRITICALITY reject
+}
+
+uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UECapabilityInfoIndication
+ PROCEDURE CODE id-UECapabilityInfoIndication
+ CRITICALITY ignore
+}
+
+uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextReleaseCommand
+ SUCCESSFUL OUTCOME UEContextReleaseComplete
+ PROCEDURE CODE id-UEContextRelease
+ CRITICALITY reject
+}
+
+eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBStatusTransfer
+ PROCEDURE CODE id-eNBStatusTransfer
+ CRITICALITY ignore
+}
+
+mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEStatusTransfer
+ PROCEDURE CODE id-MMEStatusTransfer
+ CRITICALITY ignore
+}
+
+deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DeactivateTrace
+ PROCEDURE CODE id-DeactivateTrace
+ CRITICALITY ignore
+}
+
+traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceStart
+ PROCEDURE CODE id-TraceStart
+ CRITICALITY ignore
+}
+
+traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE TraceFailureIndication
+ PROCEDURE CODE id-TraceFailureIndication
+ CRITICALITY ignore
+}
+cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
+ INITIATING MESSAGE CellTrafficTrace
+ PROCEDURE CODE id-CellTrafficTrace
+ CRITICALITY ignore
+}
+
+locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingControl
+ PROCEDURE CODE id-LocationReportingControl
+ CRITICALITY ignore
+}
+
+locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReportingFailureIndication
+ PROCEDURE CODE id-LocationReportingFailureIndication
+ CRITICALITY ignore
+}
+
+locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE LocationReport
+ PROCEDURE CODE id-LocationReport
+ CRITICALITY ignore
+}
+
+overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStart
+ PROCEDURE CODE id-OverloadStart
+ CRITICALITY ignore
+}
+
+overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE OverloadStop
+ PROCEDURE CODE id-OverloadStop
+ CRITICALITY reject
+}
+
+writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE WriteReplaceWarningRequest
+ SUCCESSFUL OUTCOME WriteReplaceWarningResponse
+ PROCEDURE CODE id-WriteReplaceWarning
+ CRITICALITY reject
+}
+
+eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBDirectInformationTransfer
+ PROCEDURE CODE id-eNBDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEDirectInformationTransfer
+ PROCEDURE CODE id-MMEDirectInformationTransfer
+ CRITICALITY ignore
+}
+
+eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBConfigurationTransfer
+ PROCEDURE CODE id-eNBConfigurationTransfer
+ CRITICALITY ignore
+}
+
+mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMEConfigurationTransfer
+ PROCEDURE CODE id-MMEConfigurationTransfer
+ CRITICALITY ignore
+}
+
+
+privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PrivateMessage
+ PROCEDURE CODE id-PrivateMessage
+ CRITICALITY ignore
+}
+
+pWSRestartIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWSRestartIndication
+ PROCEDURE CODE id-PWSRestartIndication
+ CRITICALITY ignore
+}
+
+kill S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE KillRequest
+ SUCCESSFUL OUTCOME KillResponse
+ PROCEDURE CODE id-Kill
+ CRITICALITY reject
+}
+
+downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport
+ PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkUEAssociatedLPPaTransport
+ PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport
+ PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport
+ PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport
+ CRITICALITY ignore
+}
+
+uERadioCapabilityMatch S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UERadioCapabilityMatchRequest
+ SUCCESSFUL OUTCOME UERadioCapabilityMatchResponse
+ PROCEDURE CODE id-UERadioCapabilityMatch
+ CRITICALITY reject
+}
+
+e-RABModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE E-RABModificationIndication
+ SUCCESSFUL OUTCOME E-RABModificationConfirm
+ PROCEDURE CODE id-E-RABModificationIndication
+ CRITICALITY reject
+}
+
+uEContextModificationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextModificationIndication
+ SUCCESSFUL OUTCOME UEContextModificationConfirm
+ PROCEDURE CODE id-UEContextModificationIndication
+ CRITICALITY reject
+}
+
+rerouteNASRequest S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RerouteNASRequest
+ PROCEDURE CODE id-RerouteNASRequest
+ CRITICALITY reject
+}
+
+pWSFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWSFailureIndication
+ PROCEDURE CODE id-PWSFailureIndication
+ CRITICALITY ignore
+}
+
+uEContextSuspend S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextSuspendRequest
+ SUCCESSFUL OUTCOME UEContextSuspendResponse
+ PROCEDURE CODE id-UEContextSuspend
+ CRITICALITY reject
+}
+
+uEContextResume S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEContextResumeRequest
+ SUCCESSFUL OUTCOME UEContextResumeResponse
+ UNSUCCESSFUL OUTCOME UEContextResumeFailure
+ PROCEDURE CODE id-UEContextResume
+ CRITICALITY reject
+}
+
+connectionEstablishmentIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ConnectionEstablishmentIndication
+ PROCEDURE CODE id-ConnectionEstablishmentIndication
+ CRITICALITY reject
+}
+
+nASDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE NASDeliveryIndication
+ PROCEDURE CODE id-NASDeliveryIndication
+ CRITICALITY ignore
+}
+
+retrieveUEInformation S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE RetrieveUEInformation
+ PROCEDURE CODE id-RetrieveUEInformation
+ CRITICALITY reject
+}
+
+uEInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE UEInformationTransfer
+ PROCEDURE CODE id-UEInformationTransfer
+ CRITICALITY reject
+}
+
+eNBCPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE ENBCPRelocationIndication
+ PROCEDURE CODE id-eNBCPRelocationIndication
+ CRITICALITY reject
+}
+
+mMECPRelocationIndication S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE MMECPRelocationIndication
+ PROCEDURE CODE id-MMECPRelocationIndication
+ CRITICALITY reject
+}
+
+secondaryRATDataUsageReport S1AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE SecondaryRATDataUsageReport
+ PROCEDURE CODE id-SecondaryRATDataUsageReport
+ CRITICALITY ignore
+}
+
+
+END
+
+
+
+-- **************************************************************
+--
+-- PDU definitions for S1AP.
+--
+-- **************************************************************
+
+S1AP-PDU-Contents {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-PDU-Contents (1) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+
+ UEAggregateMaximumBitrate,
+ BearerType,
+ Cause,
+ CellAccessMode,
+ Cdma2000HORequiredIndication,
+ Cdma2000HOStatus,
+ Cdma2000OneXSRVCCInfo,
+ Cdma2000OneXRAND,
+ Cdma2000PDU,
+ Cdma2000RATType,
+ Cdma2000SectorID,
+ EUTRANRoundTripDelayEstimationInfo,
+ CNDomain,
+ ConcurrentWarningMessageIndicator,
+ CriticalityDiagnostics,
+ CSFallbackIndicator,
+ CSG-Id,
+ CSG-IdList,
+ CSGMembershipStatus,
+ Data-Forwarding-Not-Possible,
+ Direct-Forwarding-Path-Availability,
+ Global-ENB-ID,
+ EUTRAN-CGI,
+ ENBname,
+ ENB-StatusTransfer-TransparentContainer,
+ ENB-UE-S1AP-ID,
+ ExtendedRepetitionPeriod,
+ GTP-TEID,
+ GUMMEI,
+ GUMMEIType,
+ HandoverRestrictionList,
+ HandoverType,
+ Masked-IMEISV,
+ LAI,
+ LPPa-PDU,
+ ManagementBasedMDTAllowed,
+ MDTPLMNList,
+ MMEname,
+ MMERelaySupportIndicator,
+ MME-UE-S1AP-ID,
+ MSClassmark2,
+ MSClassmark3,
+ NAS-PDU,
+ NASSecurityParametersfromE-UTRAN,
+ NASSecurityParameterstoE-UTRAN,
+ OverloadResponse,
+ PagingDRX,
+ PagingPriority,
+ PLMNidentity,
+ ProSeAuthorized,
+ RIMTransfer,
+ RelativeMMECapacity,
+ RequestType,
+ E-RAB-ID,
+ E-RABLevelQoSParameters,
+ E-RABList,
+ RelayNode-Indicator,
+ Routing-ID,
+ SecurityKey,
+ SecurityContext,
+ ServedGUMMEIs,
+ SONConfigurationTransfer,
+ Source-ToTarget-TransparentContainer,
+ SourceBSS-ToTargetBSS-TransparentContainer,
+ SourceeNB-ToTargeteNB-TransparentContainer,
+ SourceRNC-ToTargetRNC-TransparentContainer,
+ SubscriberProfileIDforRFP,
+ SRVCCOperationNotPossible,
+ SRVCCOperationPossible,
+ SRVCCHOIndication,
+ SupportedTAs,
+ TAI,
+ Target-ToSource-TransparentContainer,
+ TargetBSS-ToSourceBSS-TransparentContainer,
+ TargeteNB-ToSourceeNB-TransparentContainer,
+ TargetID,
+ TargetRNC-ToSourceRNC-TransparentContainer,
+ TimeToWait,
+ TraceActivation,
+ TrafficLoadReductionIndication,
+ E-UTRAN-Trace-ID,
+ TransportLayerAddress,
+ UEIdentityIndexValue,
+ UEPagingID,
+ UERadioCapability,
+ UERadioCapabilityForPaging,
+ UE-RetentionInformation,
+ UE-S1AP-IDs,
+ UE-associatedLogicalS1-ConnectionItem,
+ UESecurityCapabilities,
+ S-TMSI,
+ MessageIdentifier,
+ SerialNumber,
+ WarningAreaList,
+ RepetitionPeriod,
+ NumberofBroadcastRequest,
+ WarningType,
+ WarningSecurityInfo,
+ DataCodingScheme,
+ WarningMessageContents,
+ BroadcastCompletedAreaList,
+ RRC-Establishment-Cause,
+ BroadcastCancelledAreaList,
+ PS-ServiceNotAvailable,
+ GUMMEIList,
+ Correlation-ID,
+ GWContextReleaseIndication,
+ PrivacyIndicator,
+ VoiceSupportMatchIndicator,
+ TunnelInformation,
+ KillAllWarningMessages,
+ TransportInformation,
+ LHN-ID,
+ UserLocationInformation,
+ AdditionalCSFallbackIndicator,
+ ECGIListForRestart,
+ TAIListForRestart,
+ EmergencyAreaIDListForRestart,
+ ExpectedUEBehaviour,
+ Paging-eDRXInformation,
+ Extended-UEIdentityIndexValue,
+ MME-Group-ID,
+ Additional-GUTI,
+ PWSfailedECGIList,
+ CellIdentifierAndCELevelForCECapableUEs,
+ AssistanceDataForPaging,
+ InformationOnRecommendedCellsAndENBsForPaging,
+ UE-Usage-Type,
+ UEUserPlaneCIoTSupportIndicator,
+ NB-IoT-DefaultPagingDRX,
+ NB-IoT-Paging-eDRXInformation,
+ CE-mode-B-SupportIndicator,
+ NB-IoT-UEIdentityIndexValue,
+ V2XServicesAuthorized,
+ DCN-ID,
+ ServedDCNs,
+ UESidelinkAggregateMaximumBitrate,
+ DLNASPDUDeliveryAckRequest,
+ Coverage-Level,
+ EnhancedCoverageRestricted,
+ DL-CP-SecurityInformation,
+ UL-CP-SecurityInformation,
+ SecondaryRATDataUsageRequest,
+ SecondaryRATDataUsageReportList,
+ HandoverFlag,
+ NRUESecurityCapabilities,
+ UE-Application-Layer-Measurement-Capability,
+ CE-ModeBRestricted,
+ Packet-LossRate,
+ UECapabilityInfoRequest,
+ SourceNgRanNode-ToTargetNgRanNode-TransparentContainer,
+ TargetNgRanNode-ToSourceNgRanNode-TransparentContainer,
+ EndIndication,
+ EDT-Session,
+ LTE-M-Indication,
+ AerialUEsubscriptionInformation,
+ PendingDataIndication,
+ WarningAreaCoordinates,
+ Subscription-Based-UE-DifferentiationInfo
+
+
+
+
+FROM S1AP-IEs
+
+ PrivateIE-Container{},
+ ProtocolExtensionContainer{},
+ ProtocolIE-Container{},
+ ProtocolIE-ContainerList{},
+ ProtocolIE-ContainerPair{},
+ ProtocolIE-ContainerPairList{},
+ ProtocolIE-SingleContainer{},
+ S1AP-PRIVATE-IES,
+ S1AP-PROTOCOL-EXTENSION,
+ S1AP-PROTOCOL-IES,
+ S1AP-PROTOCOL-IES-PAIR
+FROM S1AP-Containers
+
+
+ id-AssistanceDataForPaging,
+ id-AerialUEsubscriptionInformation,
+ id-uEaggregateMaximumBitrate,
+ id-BearerType,
+ id-Cause,
+ id-CellAccessMode,
+ id-CellIdentifierAndCELevelForCECapableUEs,
+ id-cdma2000HORequiredIndication,
+ id-cdma2000HOStatus,
+ id-cdma2000OneXSRVCCInfo,
+ id-cdma2000OneXRAND,
+ id-cdma2000PDU,
+ id-cdma2000RATType,
+ id-cdma2000SectorID,
+ id-EUTRANRoundTripDelayEstimationInfo,
+ id-CNDomain,
+ id-ConcurrentWarningMessageIndicator,
+ id-CriticalityDiagnostics,
+ id-CSFallbackIndicator,
+ id-CSG-Id,
+ id-CSG-IdList,
+ id-CSGMembershipStatus,
+ id-Data-Forwarding-Not-Possible,
+ id-DefaultPagingDRX,
+ id-Direct-Forwarding-Path-Availability,
+ id-Global-ENB-ID,
+ id-EUTRAN-CGI,
+ id-eNBname,
+ id-eNB-StatusTransfer-TransparentContainer,
+ id-eNB-UE-S1AP-ID,
+ id-GERANtoLTEHOInformationRes,
+ id-GUMMEI-ID,
+ id-GUMMEIType,
+ id-HandoverRestrictionList,
+ id-HandoverType,
+ id-Masked-IMEISV,
+ id-InformationOnRecommendedCellsAndENBsForPaging,
+ id-InitialContextSetup,
+ id-Inter-SystemInformationTransferTypeEDT,
+ id-Inter-SystemInformationTransferTypeMDT,
+ id-LPPa-PDU,
+ id-NAS-DownlinkCount,
+ id-ManagementBasedMDTAllowed,
+ id-ManagementBasedMDTPLMNList,
+ id-MMEname,
+ id-MME-UE-S1AP-ID,
+ id-MSClassmark2,
+ id-MSClassmark3,
+ id-NAS-PDU,
+ id-NASSecurityParametersfromE-UTRAN,
+ id-NASSecurityParameterstoE-UTRAN,
+ id-OverloadResponse,
+ id-pagingDRX,
+ id-PagingPriority,
+ id-RelativeMMECapacity,
+ id-RequestType,
+ id-Routing-ID,
+ id-E-RABAdmittedItem,
+ id-E-RABAdmittedList,
+ id-E-RABDataForwardingItem,
+ id-E-RABFailedToModifyList,
+ id-E-RABFailedToReleaseList,
+ id-E-RABFailedtoSetupItemHOReqAck,
+ id-E-RABFailedToSetupListBearerSURes,
+ id-E-RABFailedToSetupListCtxtSURes,
+ id-E-RABFailedToSetupListHOReqAck,
+ id-E-RABFailedToBeReleasedList,
+ id-E-RABFailedToResumeListResumeReq,
+ id-E-RABFailedToResumeItemResumeReq,
+ id-E-RABFailedToResumeListResumeRes,
+ id-E-RABFailedToResumeItemResumeRes,
+ id-E-RABModify,
+ id-E-RABModifyItemBearerModRes,
+ id-E-RABModifyListBearerModRes,
+ id-E-RABRelease,
+ id-E-RABReleaseItemBearerRelComp,
+ id-E-RABReleaseItemHOCmd,
+ id-E-RABReleaseListBearerRelComp,
+ id-E-RABReleaseIndication,
+ id-E-RABSetup,
+ id-E-RABSetupItemBearerSURes,
+ id-E-RABSetupItemCtxtSURes,
+ id-E-RABSetupListBearerSURes,
+ id-E-RABSetupListCtxtSURes,
+ id-E-RABSubjecttoDataForwardingList,
+ id-E-RABToBeModifiedItemBearerModReq,
+ id-E-RABToBeModifiedListBearerModReq,
+ id-E-RABToBeModifiedListBearerModInd,
+ id-E-RABToBeModifiedItemBearerModInd,
+ id-E-RABNotToBeModifiedListBearerModInd,
+ id-E-RABNotToBeModifiedItemBearerModInd,
+ id-E-RABModifyListBearerModConf,
+ id-E-RABModifyItemBearerModConf,
+ id-E-RABFailedToModifyListBearerModConf,
+ id-E-RABToBeReleasedListBearerModConf,
+ id-E-RABToBeReleasedList,
+ id-E-RABReleasedList,
+ id-E-RABToBeSetupItemBearerSUReq,
+ id-E-RABToBeSetupItemCtxtSUReq,
+ id-E-RABToBeSetupItemHOReq,
+ id-E-RABToBeSetupListBearerSUReq,
+ id-E-RABToBeSetupListCtxtSUReq,
+ id-E-RABToBeSetupListHOReq,
+ id-E-RABToBeSwitchedDLItem,
+ id-E-RABToBeSwitchedDLList,
+ id-E-RABToBeSwitchedULList,
+ id-E-RABToBeSwitchedULItem,
+ id-E-RABtoReleaseListHOCmd,
+ id-ProSeAuthorized,
+ id-SecurityKey,
+ id-SecurityContext,
+ id-ServedGUMMEIs,
+ id-SONConfigurationTransferECT,
+ id-SONConfigurationTransferMCT,
+ id-Source-ToTarget-TransparentContainer,
+ id-Source-ToTarget-TransparentContainer-Secondary,
+ id-SourceMME-UE-S1AP-ID,
+ id-SRVCCOperationNotPossible,
+ id-SRVCCOperationPossible,
+ id-SRVCCHOIndication,
+ id-SubscriberProfileIDforRFP,
+ id-SupportedTAs,
+ id-S-TMSI,
+ id-TAI,
+ id-TAIItem,
+ id-TAIList,
+ id-Target-ToSource-TransparentContainer,
+ id-Target-ToSource-TransparentContainer-Secondary,
+ id-TargetID,
+ id-TimeToWait,
+ id-TraceActivation,
+ id-TrafficLoadReductionIndication,
+ id-E-UTRAN-Trace-ID,
+ id-UEIdentityIndexValue,
+ id-UEPagingID,
+ id-UERadioCapability,
+ id-UERadioCapabilityForPaging,
+ id-UTRANtoLTEHOInformationRes,
+ id-UE-associatedLogicalS1-ConnectionListResAck,
+ id-UE-associatedLogicalS1-ConnectionItem,
+ id-UE-RetentionInformation,
+ id-UESecurityCapabilities,
+ id-UE-S1AP-IDs,
+ id-V2XServicesAuthorized,
+ id-ResetType,
+ id-MessageIdentifier,
+ id-SerialNumber,
+ id-WarningAreaList,
+ id-RepetitionPeriod,
+ id-NumberofBroadcastRequest,
+ id-WarningType,
+ id-WarningSecurityInfo,
+ id-DataCodingScheme,
+ id-WarningMessageContents,
+ id-BroadcastCompletedAreaList,
+ id-BroadcastCancelledAreaList,
+ id-RRC-Establishment-Cause,
+ id-TraceCollectionEntityIPAddress,
+ maxnoofTAIs,
+ maxnoofErrors,
+ maxnoofE-RABs,
+ maxnoofIndividualS1ConnectionsToReset,
+ maxnoofEmergencyAreaID,
+ maxnoofCellID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ id-ExtendedRepetitionPeriod,
+ id-PS-ServiceNotAvailable,
+ id-RegisteredLAI,
+ id-GUMMEIList,
+ id-SourceMME-GUMMEI,
+ id-MME-UE-S1AP-ID-2,
+ id-GW-TransportLayerAddress,
+ id-RelayNode-Indicator,
+ id-Correlation-ID,
+ id-MMERelaySupportIndicator,
+ id-GWContextReleaseIndication,
+ id-PrivacyIndicator,
+ id-VoiceSupportMatchIndicator,
+ id-Tunnel-Information-for-BBF,
+ id-SIPTO-Correlation-ID,
+ id-SIPTO-L-GW-TransportLayerAddress,
+ id-KillAllWarningMessages,
+ id-TransportInformation,
+ id-LHN-ID,
+ id-UserLocationInformation,
+ id-AdditionalCSFallbackIndicator,
+ id-ECGIListForRestart,
+ id-TAIListForRestart,
+ id-EmergencyAreaIDListForRestart,
+ id-ExpectedUEBehaviour,
+ id-Paging-eDRXInformation,
+ id-extended-UEIdentityIndexValue,
+ id-CSGMembershipInfo,
+ id-MME-Group-ID,
+ id-Additional-GUTI,
+ id-S1-Message,
+ id-PWSfailedECGIList,
+ id-PWSFailureIndication,
+ id-UE-Usage-Type,
+ id-UEUserPlaneCIoTSupportIndicator,
+ id-NB-IoT-DefaultPagingDRX,
+ id-NB-IoT-Paging-eDRXInformation,
+ id-CE-mode-B-SupportIndicator,
+ id-NB-IoT-UEIdentityIndexValue,
+ id-RRC-Resume-Cause,
+ id-DCN-ID,
+ id-ServedDCNs,
+ id-UESidelinkAggregateMaximumBitrate,
+ id-DLNASPDUDeliveryAckRequest,
+ id-Coverage-Level,
+ id-EnhancedCoverageRestricted,
+ id-UE-Level-QoS-Parameters,
+ id-DL-CP-SecurityInformation,
+ id-UL-CP-SecurityInformation,
+ id-SecondaryRATDataUsageRequest,
+ id-SecondaryRATDataUsageReportList,
+ id-HandoverFlag,
+ id-NRUESecurityCapabilities,
+ id-UE-Application-Layer-Measurement-Capability,
+ id-CE-ModeBRestricted,
+ id-DownlinkPacketLossRate,
+ id-UplinkPacketLossRate,
+ id-UECapabilityInfoRequest,
+ id-EndIndication,
+ id-EDT-Session,
+ id-LTE-M-Indication,
+ id-PendingDataIndication,
+ id-WarningAreaCoordinates,
+ id-Subscription-Based-UE-DifferentiationInfo
+
+
+
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Common Container Lists
+--
+-- **************************************************************
+
+E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofE-RABs, {IEsSetParam} }
+ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofE-RABs, {IEsSetParam} }
+
+-- **************************************************************
+--
+-- HANDOVER PREPARATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Required
+--
+-- **************************************************************
+
+HandoverRequired ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverRequiredIEs} },
+ ...
+}
+
+HandoverRequiredIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory}|
+ { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional}|
+ { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional}|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}|
+ { ID id-Source-ToTarget-TransparentContainer-Secondary CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional}|
+ { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional}|
+ { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional}|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}|
+ { ID id-PS-ServiceNotAvailable CRITICALITY ignore TYPE PS-ServiceNotAvailable PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Command
+--
+-- **************************************************************
+
+HandoverCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCommandIEs} },
+ ...
+}
+
+HandoverCommandIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional
+ -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" --}|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional}|
+ { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}|
+ { ID id-Target-ToSource-TransparentContainer-Secondary CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} }
+
+E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABDataForwardingItem CRITICALITY ignore TYPE E-RABDataForwardingItem PRESENCE mandatory },
+ ...
+}
+
+E-RABDataForwardingItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABDataForwardingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- Handover Preparation Failure
+--
+-- **************************************************************
+
+HandoverPreparationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverPreparationFailureIEs} },
+ ...
+}
+
+HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER RESOURCE ALLOCATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Request
+--
+-- **************************************************************
+
+HandoverRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestIEs} },
+ ...
+}
+
+HandoverRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}|
+ { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory}|
+ { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional
+ -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}|
+ { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+E-RABToBeSetupListHOReq ::= E-RAB-IE-ContainerList { {E-RABToBeSetupItemHOReqIEs} }
+
+E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemHOReq CRITICALITY reject TYPE E-RABToBeSetupItemHOReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemHOReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ e-RABlevelQosParameters E-RABLevelQoSParameters,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSetupItemHOReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Data-Forwarding-Not-Possible CRITICALITY ignore EXTENSION Data-Forwarding-Not-Possible PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Request Acknowledge
+--
+-- **************************************************************
+
+HandoverRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {HandoverRequestAcknowledgeIEs} },
+ ...
+}
+
+HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory}|
+ { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional}|
+ { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory}|
+ { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}|
+ { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional},
+ ...
+}
+
+E-RABAdmittedList ::= E-RAB-IE-ContainerList { {E-RABAdmittedItemIEs} }
+
+E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABAdmittedItem CRITICALITY ignore TYPE E-RABAdmittedItem PRESENCE mandatory },
+ ...
+}
+
+E-RABAdmittedItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ dL-transportLayerAddress TransportLayerAddress OPTIONAL,
+ dL-gTP-TEID GTP-TEID OPTIONAL,
+ uL-TransportLayerAddress TransportLayerAddress OPTIONAL,
+ uL-GTP-TEID GTP-TEID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABAdmittedItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABFailedtoSetupListHOReqAck ::= E-RAB-IE-ContainerList { {E-RABFailedtoSetupItemHOReqAckIEs} }
+
+E-RABFailedtoSetupItemHOReqAckIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedtoSetupItemHOReqAck CRITICALITY ignore TYPE E-RABFailedToSetupItemHOReqAck PRESENCE mandatory },
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAck ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToSetupItemHOReqAckExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToSetupItemHOReqAckExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Handover Failure
+--
+-- **************************************************************
+
+HandoverFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverFailureIEs} },
+ ...
+}
+
+HandoverFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER NOTIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Notify
+--
+-- **************************************************************
+
+HandoverNotify ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverNotifyIEs} },
+ ...
+}
+
+HandoverNotifyIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- PATH SWITCH REQUEST ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Path Switch Request
+--
+-- **************************************************************
+
+PathSwitchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestIEs} },
+ ...
+}
+
+PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory}|
+ { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-CSG-Id CRITICALITY ignore TYPE CSG-Id PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY ignore TYPE CellAccessMode PRESENCE optional}|
+ { ID id-SourceMME-GUMMEI CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional }|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional},
+ ...
+}
+
+E-RABToBeSwitchedDLList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedDLItemIEs} }
+
+E-RABToBeSwitchedDLItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedDLItem CRITICALITY reject TYPE E-RABToBeSwitchedDLItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedDLItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedDLItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedDLItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- Path Switch Request Acknowledge
+--
+-- **************************************************************
+
+PathSwitchRequestAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestAcknowledgeIEs} },
+ ...
+}
+
+PathSwitchRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-E-RABToBeSwitchedULList CRITICALITY ignore TYPE E-RABToBeSwitchedULList PRESENCE optional}|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+E-RABToBeSwitchedULList ::= E-RAB-IE-ContainerList { {E-RABToBeSwitchedULItemIEs} }
+
+E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSwitchedULItem CRITICALITY ignore TYPE E-RABToBeSwitchedULItem PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSwitchedULItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeSwitchedULItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Path Switch Request Failure
+--
+-- **************************************************************
+
+PathSwitchRequestFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { PathSwitchRequestFailureIEs} },
+ ...
+}
+
+PathSwitchRequestFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- HANDOVER CANCEL ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Handover Cancel
+--
+-- **************************************************************
+
+HandoverCancel ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCancelIEs} },
+ ...
+}
+
+HandoverCancelIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Handover Cancel Request Acknowledge
+--
+-- **************************************************************
+
+HandoverCancelAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { HandoverCancelAcknowledgeIEs} },
+ ...
+}
+
+HandoverCancelAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Setup Request
+--
+-- **************************************************************
+
+E-RABSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupRequestIEs} },
+ ...
+}
+
+E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupListBearerSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemBearerSUReqIEs} }
+
+E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupItemBearerSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemBearerSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemBearerSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Setup Response
+--
+-- **************************************************************
+
+E-RABSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABSetupResponseIEs} },
+ ...
+}
+
+E-RABSetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSetupListBearerSURes CRITICALITY ignore TYPE E-RABSetupListBearerSURes PRESENCE optional }|
+ { ID id-E-RABFailedToSetupListBearerSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListBearerSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemBearerSUResIEs} }
+
+E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemBearerSURes CRITICALITY ignore TYPE E-RABSetupItemBearerSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemBearerSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemBearerSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFY ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modify Request
+--
+-- **************************************************************
+
+E-RABModifyRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyRequestIEs} },
+ ...
+}
+
+E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }|
+ { ID id-SecondaryRATDataUsageRequest CRITICALITY ignore TYPE SecondaryRATDataUsageRequest PRESENCE optional },
+ ...
+}
+
+E-RABToBeModifiedListBearerModReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeModifiedItemBearerModReqIEs} }
+
+E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeModifiedItemBearerModReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABLevelQoSParameters E-RABLevelQoSParameters,
+ nAS-PDU NAS-PDU,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeModifyItemBearerModReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-TransportInformation CRITICALITY reject EXTENSION TransportInformation PRESENCE optional},
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB Modify Response
+--
+-- **************************************************************
+
+E-RABModifyResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModifyResponseIEs} },
+ ...
+}
+
+E-RABModifyResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABModifyListBearerModRes CRITICALITY ignore TYPE E-RABModifyListBearerModRes PRESENCE optional }|
+ { ID id-E-RABFailedToModifyList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+
+E-RABModifyListBearerModRes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModResIEs} }
+
+E-RABModifyItemBearerModResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModRes CRITICALITY ignore TYPE E-RABModifyItemBearerModRes PRESENCE mandatory},
+ ...
+}
+
+E-RABModifyItemBearerModRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Command
+--
+-- **************************************************************
+
+E-RABReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} },
+ ...
+}
+
+E-RABReleaseCommandIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }|
+ { ID id-E-RABToBeReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB Release Response
+--
+-- **************************************************************
+
+E-RABReleaseResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABReleaseResponseIEs } },
+ ...
+}
+
+E-RABReleaseResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABReleaseListBearerRelComp CRITICALITY ignore TYPE E-RABReleaseListBearerRelComp PRESENCE optional }|
+ { ID id-E-RABFailedToReleaseList CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+
+E-RABReleaseListBearerRelComp ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABReleaseItemBearerRelCompIEs} }
+
+E-RABReleaseItemBearerRelCompIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABReleaseItemBearerRelComp CRITICALITY ignore TYPE E-RABReleaseItemBearerRelComp PRESENCE mandatory },
+ ...
+}
+
+E-RABReleaseItemBearerRelComp ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABReleaseItemBearerRelCompExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- **************************************************************
+--
+-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Release Indication
+--
+-- **************************************************************
+
+E-RABReleaseIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABReleaseIndicationIEs} },
+ ...
+}
+
+E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional }|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- INITIAL CONTEXT SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Initial Context Setup Request
+--
+-- **************************************************************
+
+InitialContextSetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupRequestIEs} },
+ ...
+}
+
+InitialContextSetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory}|
+ { ID id-E-RABToBeSetupListCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupListCtxtSUReq PRESENCE mandatory}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory}|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE mandatory}|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY ignore TYPE GUMMEI PRESENCE optional}|
+ { ID id-MME-UE-S1AP-ID-2 CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-ManagementBasedMDTAllowed CRITICALITY ignore TYPE ManagementBasedMDTAllowed PRESENCE optional}|
+ { ID id-ManagementBasedMDTPLMNList CRITICALITY ignore TYPE MDTPLMNList PRESENCE optional}|
+ { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}|
+ { ID id-Masked-IMEISV CRITICALITY ignore TYPE Masked-IMEISV PRESENCE optional}|
+ { ID id-ExpectedUEBehaviour CRITICALITY ignore TYPE ExpectedUEBehaviour PRESENCE optional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-UEUserPlaneCIoTSupportIndicator CRITICALITY ignore TYPE UEUserPlaneCIoTSupportIndicator PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+
+
+
+E-RABToBeSetupListCtxtSUReq ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABToBeSetupItemCtxtSUReqIEs} }
+
+E-RABToBeSetupItemCtxtSUReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeSetupItemCtxtSUReq CRITICALITY reject TYPE E-RABToBeSetupItemCtxtSUReq PRESENCE mandatory },
+ ...
+}
+
+E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ e-RABlevelQoSParameters E-RABLevelQoSParameters,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ nAS-PDU NAS-PDU OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABToBeSetupItemCtxtSUReqExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-SIPTO-Correlation-ID CRITICALITY ignore EXTENSION Correlation-ID PRESENCE optional}|
+ { ID id-BearerType CRITICALITY reject EXTENSION BearerType PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Response
+--
+-- **************************************************************
+
+InitialContextSetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupResponseIEs} },
+ ...
+}
+
+InitialContextSetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSetupListCtxtSURes CRITICALITY ignore TYPE E-RABSetupListCtxtSURes PRESENCE mandatory }|
+ { ID id-E-RABFailedToSetupListCtxtSURes CRITICALITY ignore TYPE E-RABList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+
+E-RABSetupListCtxtSURes ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABSetupItemCtxtSUResIEs} }
+
+E-RABSetupItemCtxtSUResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABSetupItemCtxtSURes CRITICALITY ignore TYPE E-RABSetupItemCtxtSURes PRESENCE mandatory },
+ ...
+}
+
+E-RABSetupItemCtxtSURes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ gTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemCtxtSUResExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABSetupItemCtxtSUResExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Initial Context Setup Failure
+--
+-- **************************************************************
+
+InitialContextSetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {InitialContextSetupFailureIEs} },
+ ...
+}
+
+InitialContextSetupFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PAGING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+
+-- **************************************************************
+--
+-- Paging
+--
+-- **************************************************************
+
+Paging ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{PagingIEs}},
+ ...
+}
+
+PagingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UEIdentityIndexValue CRITICALITY ignore TYPE UEIdentityIndexValue PRESENCE mandatory}|
+ { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory}|
+ { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}|
+ { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory}|
+ { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY ignore TYPE CSG-IdList PRESENCE optional}|
+ { ID id-PagingPriority CRITICALITY ignore TYPE PagingPriority PRESENCE optional}|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}|
+-- Extension for Release 13 to support Paging Optimisation and Coverage Enhancement paging –-
+ { ID id-AssistanceDataForPaging CRITICALITY ignore TYPE AssistanceDataForPaging PRESENCE optional}|
+ { ID id-Paging-eDRXInformation CRITICALITY ignore TYPE Paging-eDRXInformation PRESENCE optional}|
+ { ID id-extended-UEIdentityIndexValue CRITICALITY ignore TYPE Extended-UEIdentityIndexValue PRESENCE optional}|
+ { ID id-NB-IoT-Paging-eDRXInformation CRITICALITY ignore TYPE NB-IoT-Paging-eDRXInformation PRESENCE optional}|
+ { ID id-NB-IoT-UEIdentityIndexValue CRITICALITY ignore TYPE NB-IoT-UEIdentityIndexValue PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional},
+ ...
+}
+
+TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}}
+
+TAIItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory },
+ ...
+}
+
+TAIItem ::= SEQUENCE {
+ tAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TAIItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+TAIItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RELEASE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Release Request
+--
+-- **************************************************************
+
+UEContextReleaseRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseRequest-IEs}},
+ ...
+}
+
+UEContextReleaseRequest-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-GWContextReleaseIndication CRITICALITY reject TYPE GWContextReleaseIndication PRESENCE optional }|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Command
+--
+-- **************************************************************
+
+UEContextReleaseCommand ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseCommand-IEs}},
+ ...
+}
+
+UEContextReleaseCommand-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-S1AP-IDs CRITICALITY reject TYPE UE-S1AP-IDs PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Release Complete
+--
+-- **************************************************************
+
+UEContextReleaseComplete ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UEContextReleaseComplete-IEs}},
+ ...
+}
+
+UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+-- Extension for Release 12 to support User Location Information --
+ { ID id-UserLocationInformation CRITICALITY ignore TYPE UserLocationInformation PRESENCE optional}|
+-- Extension for Release 13 to support Paging Optimisation
+ { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
+-- Extension for Release 13 to support coverage enhancement paging –
+ { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Request
+--
+-- **************************************************************
+
+UEContextModificationRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationRequestIEs} },
+ ...
+}
+
+UEContextModificationRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-SecurityKey CRITICALITY reject TYPE SecurityKey PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-uEaggregateMaximumBitrate CRITICALITY ignore TYPE UEAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-CSFallbackIndicator CRITICALITY reject TYPE CSFallbackIndicator PRESENCE optional}|
+ { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-RegisteredLAI CRITICALITY ignore TYPE LAI PRESENCE optional}|
+ { ID id-AdditionalCSFallbackIndicator CRITICALITY ignore TYPE AdditionalCSFallbackIndicator PRESENCE conditional}|
+ { ID id-ProSeAuthorized CRITICALITY ignore TYPE ProSeAuthorized PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-SRVCCOperationNotPossible CRITICALITY ignore TYPE SRVCCOperationNotPossible PRESENCE optional}|
+ { ID id-V2XServicesAuthorized CRITICALITY ignore TYPE V2XServicesAuthorized PRESENCE optional}|
+ { ID id-UESidelinkAggregateMaximumBitrate CRITICALITY ignore TYPE UESidelinkAggregateMaximumBitrate PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-AerialUEsubscriptionInformation CRITICALITY ignore TYPE AerialUEsubscriptionInformation PRESENCE optional},
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Response
+--
+-- **************************************************************
+
+UEContextModificationResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationResponseIEs} },
+ ...
+}
+
+UEContextModificationResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- UE Context Modification Failure
+--
+-- **************************************************************
+
+UEContextModificationFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationFailureIEs} },
+ ...
+}
+
+UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE RADIO CAPABILITY MATCH ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Radio Capability Match Request
+--
+-- **************************************************************
+
+UERadioCapabilityMatchRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchRequestIEs} },
+ ...
+}
+
+UERadioCapabilityMatchRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Radio Capability Match Response
+--
+-- **************************************************************
+
+UERadioCapabilityMatchResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UERadioCapabilityMatchResponseIEs} },
+ ...
+}
+
+UERadioCapabilityMatchResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-VoiceSupportMatchIndicator CRITICALITY reject TYPE VoiceSupportMatchIndicator PRESENCE mandatory }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- NAS TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DOWNLINK NAS TRANSPORT
+--
+-- **************************************************************
+
+DownlinkNASTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkNASTransport-IEs}},
+ ...
+}
+
+DownlinkNASTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional}|
+ { ID id-SubscriberProfileIDforRFP CRITICALITY ignore TYPE SubscriberProfileIDforRFP PRESENCE optional}|
+ { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}|
+ { ID id-DLNASPDUDeliveryAckRequest CRITICALITY ignore TYPE DLNASPDUDeliveryAckRequest PRESENCE optional}|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional}|
+ { ID id-NRUESecurityCapabilities CRITICALITY ignore TYPE NRUESecurityCapabilities PRESENCE optional}|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-UECapabilityInfoRequest CRITICALITY ignore TYPE UECapabilityInfoRequest PRESENCE optional}|
+ { ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- INITIAL UE MESSAGE
+--
+-- **************************************************************
+
+InitialUEMessage ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{InitialUEMessage-IEs}},
+ ...
+}
+
+InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory}|
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}|
+ { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}|
+ { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE optional}|
+ { ID id-CellAccessMode CRITICALITY reject TYPE CellAccessMode PRESENCE optional}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-RelayNode-Indicator CRITICALITY reject TYPE RelayNode-Indicator PRESENCE optional}|
+ { ID id-GUMMEIType CRITICALITY ignore TYPE GUMMEIType PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional}|
+ { ID id-MME-Group-ID CRITICALITY ignore TYPE MME-Group-ID PRESENCE optional}|
+ { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional}|
+ { ID id-CE-mode-B-SupportIndicator CRITICALITY ignore TYPE CE-mode-B-SupportIndicator PRESENCE optional}|
+ { ID id-DCN-ID CRITICALITY ignore TYPE DCN-ID PRESENCE optional}|
+ { ID id-Coverage-Level CRITICALITY ignore TYPE Coverage-Level PRESENCE optional}|
+ { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}|
+ { ID id-EDT-Session CRITICALITY ignore TYPE EDT-Session PRESENCE optional},
+
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UPLINK NAS TRANSPORT
+--
+-- **************************************************************
+
+UplinkNASTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkNASTransport-IEs}},
+ ...
+}
+
+UplinkNASTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-SIPTO-L-GW-TransportLayerAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE optional}|
+ { ID id-LHN-ID CRITICALITY ignore TYPE LHN-ID PRESENCE optional},
+ ...
+}
+-- **************************************************************
+--
+-- NAS NON DELIVERY INDICATION
+--
+-- **************************************************************
+
+NASNonDeliveryIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{NASNonDeliveryIndication-IEs}},
+ ...
+}
+
+NASNonDeliveryIndication-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-NAS-PDU CRITICALITY ignore TYPE NAS-PDU PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- REROUTE NAS REQUEST
+--
+-- **************************************************************
+
+RerouteNASRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{RerouteNASRequest-IEs}},
+ ...
+}
+
+RerouteNASRequest-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional}|
+ { ID id-S1-Message CRITICALITY reject TYPE OCTET STRING PRESENCE mandatory}|
+ { ID id-MME-Group-ID CRITICALITY reject TYPE MME-Group-ID PRESENCE mandatory}|
+ { ID id-Additional-GUTI CRITICALITY ignore TYPE Additional-GUTI PRESENCE optional}|
+ { ID id-UE-Usage-Type CRITICALITY ignore TYPE UE-Usage-Type PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- NAS DELIVERY INDICATION
+--
+-- **************************************************************
+
+NASDeliveryIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { NASDeliveryIndicationIEs} },
+ ...
+}
+
+NASDeliveryIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- RESET ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Reset
+--
+-- **************************************************************
+
+Reset ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetIEs} },
+ ...
+}
+
+ResetIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-ResetType CRITICALITY reject TYPE ResetType PRESENCE mandatory },
+ ...
+}
+
+ResetType ::= CHOICE {
+ s1-Interface ResetAll,
+ partOfS1-Interface UE-associatedLogicalS1-ConnectionListRes,
+ ...
+}
+
+
+
+ResetAll ::= ENUMERATED {
+ reset-all,
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListRes ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemRes } }
+
+UE-associatedLogicalS1-ConnectionItemRes S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY reject TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Reset Acknowledge
+--
+-- **************************************************************
+
+ResetAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ResetAcknowledgeIEs} },
+ ...
+}
+
+ResetAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionListResAck CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionListResAck PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+UE-associatedLogicalS1-ConnectionListResAck ::= SEQUENCE (SIZE(1.. maxnoofIndividualS1ConnectionsToReset)) OF ProtocolIE-SingleContainer { { UE-associatedLogicalS1-ConnectionItemResAck } }
+
+UE-associatedLogicalS1-ConnectionItemResAck S1AP-PROTOCOL-IES ::= {
+ { ID id-UE-associatedLogicalS1-ConnectionItem CRITICALITY ignore TYPE UE-associatedLogicalS1-ConnectionItem PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+ErrorIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}},
+ ...
+}
+
+ErrorIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE optional }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE optional }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 SETUP ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- S1 Setup Request
+--
+-- **************************************************************
+
+S1SetupRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupRequestIEs} },
+ ...
+}
+
+S1SetupRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}|
+ { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Response
+--
+-- **************************************************************
+
+S1SetupResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupResponseIEs} },
+ ...
+}
+
+
+S1SetupResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional}|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory}|
+ { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory}|
+ { ID id-MMERelaySupportIndicator CRITICALITY ignore TYPE MMERelaySupportIndicator PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-UE-RetentionInformation CRITICALITY ignore TYPE UE-RetentionInformation PRESENCE optional}|
+ { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- S1 Setup Failure
+--
+-- **************************************************************
+
+S1SetupFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {S1SetupFailureIEs} },
+ ...
+}
+
+S1SetupFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ENB CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Update
+--
+-- **************************************************************
+
+ENBConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateIEs} },
+ ...
+}
+
+ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}|
+ { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional}|
+ { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}|
+ { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional}|
+ { ID id-NB-IoT-DefaultPagingDRX CRITICALITY ignore TYPE NB-IoT-DefaultPagingDRX PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Acknowledge
+--
+-- **************************************************************
+
+ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+ENBConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB Configuration Update Failure
+--
+-- **************************************************************
+
+ENBConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBConfigurationUpdateFailureIEs} },
+ ...
+}
+
+ENBConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+...
+}
+
+
+-- **************************************************************
+--
+-- MME CONFIGURATION UPDATE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Update
+--
+-- **************************************************************
+
+MMEConfigurationUpdate ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateIEs} },
+ ...
+}
+
+MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }|
+ { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }|
+ { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional }|
+ { ID id-ServedDCNs CRITICALITY ignore TYPE ServedDCNs PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Acknowledge
+--
+-- **************************************************************
+
+MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateAcknowledgeIEs} },
+ ...
+}
+
+
+MMEConfigurationUpdateAcknowledgeIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME Configuration Update Failure
+--
+-- **************************************************************
+
+MMEConfigurationUpdateFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEConfigurationUpdateFailureIEs} },
+ ...
+}
+
+MMEConfigurationUpdateFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
+ { ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Downlink S1 CDMA2000 Tunnelling
+--
+-- **************************************************************
+
+DownlinkS1cdma2000tunnelling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {DownlinkS1cdma2000tunnellingIEs} },
+ ...
+}
+
+DownlinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional }|
+ { ID id-cdma2000HOStatus CRITICALITY ignore TYPE Cdma2000HOStatus PRESENCE optional }|
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }|
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK S1 CDMA2000 TUNNELLING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Uplink S1 CDMA2000 Tunnelling
+--
+-- **************************************************************
+
+UplinkS1cdma2000tunnelling ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UplinkS1cdma2000tunnellingIEs} },
+ ...
+}
+
+UplinkS1cdma2000tunnellingIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory }|
+ { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory }|
+ { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional }|
+ { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional }|
+ { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional }|
+ { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }|
+ { ID id-EUTRANRoundTripDelayEstimationInfo CRITICALITY ignore TYPE EUTRANRoundTripDelayEstimationInfo PRESENCE optional },
+ -- Extension for Release 9 to assist target HRPD access with the acquisition of the UE --
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CAPABILITY INFO INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Capability Info Indication
+--
+-- **************************************************************
+
+UECapabilityInfoIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UECapabilityInfoIndicationIEs} },
+ ...
+}
+
+UECapabilityInfoIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE mandatory}|
+ { ID id-UERadioCapabilityForPaging CRITICALITY ignore TYPE UERadioCapabilityForPaging PRESENCE optional}|
+ { ID id-UE-Application-Layer-Measurement-Capability CRITICALITY ignore TYPE UE-Application-Layer-Measurement-Capability PRESENCE optional}|
+ { ID id-LTE-M-Indication CRITICALITY ignore TYPE LTE-M-Indication PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Status Transfer
+--
+-- **************************************************************
+
+ENBStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ENBStatusTransferIEs} },
+ ...
+}
+
+ENBStatusTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME STATUS TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Status Transfer
+--
+-- **************************************************************
+
+MMEStatusTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {MMEStatusTransferIEs} },
+ ...
+}
+
+MMEStatusTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-StatusTransfer-TransparentContainer CRITICALITY reject TYPE ENB-StatusTransfer-TransparentContainer PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- TRACE ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+-- **************************************************************
+--
+-- Trace Start
+--
+-- **************************************************************
+
+TraceStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceStartIEs} },
+ ...
+}
+
+TraceStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Trace Failure Indication
+--
+-- **************************************************************
+
+TraceFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {TraceFailureIndicationIEs} },
+ ...
+}
+
+TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DEACTIVATE TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Deactivate Trace
+--
+-- **************************************************************
+
+DeactivateTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { DeactivateTraceIEs} },
+ ...
+}
+
+DeactivateTraceIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- CELL TRAFFIC TRACE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Cell Traffic Trace
+--
+-- **************************************************************
+
+CellTrafficTrace ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } },
+ ...
+}
+
+CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= {
+ {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }|
+ {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }|
+ {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }|
+ {ID id-PrivacyIndicator CRITICALITY ignore TYPE PrivacyIndicator PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- LOCATION ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Location Reporting Control
+--
+-- **************************************************************
+
+LocationReportingControl ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingControlIEs} },
+ ...
+}
+
+LocationReportingControlIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report Failure Indication
+--
+-- **************************************************************
+
+LocationReportingFailureIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportingFailureIndicationIEs} },
+ ...
+}
+
+LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- Location Report
+--
+-- **************************************************************
+
+LocationReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { LocationReportIEs} },
+ ...
+}
+
+LocationReportIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory }|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory }|
+ { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- OVERLOAD ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Overload Start
+--
+-- **************************************************************
+
+OverloadStart ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStartIEs} },
+ ...
+}
+
+OverloadStartIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-OverloadResponse CRITICALITY reject TYPE OverloadResponse PRESENCE mandatory }|
+ { ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional }|
+ { ID id-TrafficLoadReductionIndication CRITICALITY ignore TYPE TrafficLoadReductionIndication PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Overload Stop
+--
+-- **************************************************************
+
+OverloadStop ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {OverloadStopIEs} },
+ ...
+}
+
+OverloadStopIEs S1AP-PROTOCOL-IES ::= {
+{ ID id-GUMMEIList CRITICALITY ignore TYPE GUMMEIList PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Write-Replace Warning Request
+--
+-- **************************************************************
+
+
+WriteReplaceWarningRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningRequestIEs} },
+ ...
+}
+
+WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional }|
+ { ID id-RepetitionPeriod CRITICALITY reject TYPE RepetitionPeriod PRESENCE mandatory }|
+ { ID id-ExtendedRepetitionPeriod CRITICALITY reject TYPE ExtendedRepetitionPeriod PRESENCE optional }|
+ { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }|
+ { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }|
+ { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }|
+ { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }|
+ { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }|
+ { ID id-ConcurrentWarningMessageIndicator CRITICALITY reject TYPE ConcurrentWarningMessageIndicator PRESENCE optional }|
+ { ID id-WarningAreaCoordinates CRITICALITY ignore TYPE WarningAreaCoordinates PRESENCE optional },
+ ...
+}
+-- **************************************************************
+--
+-- Write-Replace Warning Response
+--
+-- **************************************************************
+
+WriteReplaceWarningResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {WriteReplaceWarningResponseIEs} },
+ ...
+}
+
+WriteReplaceWarningResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCompletedAreaList CRITICALITY ignore TYPE BroadcastCompletedAreaList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- eNB DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Direct Information Transfer
+--
+-- **************************************************************
+
+ENBDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBDirectInformationTransferIEs}},
+ ...
+}
+
+ENBDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeEDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory },
+ ...
+}
+
+Inter-SystemInformationTransferType ::= CHOICE {
+ rIMTransfer RIMTransfer,
+ ...
+}
+
+-- **************************************************************
+--
+-- MME DIRECT INFORMATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Direct Information Transfer
+--
+-- **************************************************************
+
+MMEDirectInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEDirectInformationTransferIEs}},
+ ...
+}
+
+MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory },
+ ...
+}
+-- **************************************************************
+--
+-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- eNB Configuration Transfer
+--
+-- **************************************************************
+
+ENBConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}},
+ ...
+}
+
+ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- MME Configuration Transfer
+--
+-- **************************************************************
+
+MMEConfigurationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}},
+ ...
+}
+
+MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PRIVATE MESSAGE ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Private Message
+--
+-- **************************************************************
+
+PrivateMessage ::= SEQUENCE {
+ privateIEs PrivateIE-Container {{PrivateMessageIEs}},
+ ...
+}
+
+PrivateMessageIEs S1AP-PRIVATE-IES ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- KILL PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Kill Request
+--
+-- **************************************************************
+
+
+KillRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {KillRequestIEs} },
+ ...
+}
+
+KillRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory}|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory}|
+ { ID id-WarningAreaList CRITICALITY ignore TYPE WarningAreaList PRESENCE optional}|
+ { ID id-KillAllWarningMessages CRITICALITY reject TYPE KillAllWarningMessages PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Kill Response
+--
+-- **************************************************************
+
+KillResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {KillResponseIEs} },
+ ...
+}
+
+KillResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MessageIdentifier CRITICALITY reject TYPE MessageIdentifier PRESENCE mandatory }|
+ { ID id-SerialNumber CRITICALITY reject TYPE SerialNumber PRESENCE mandatory }|
+ { ID id-BroadcastCancelledAreaList CRITICALITY ignore TYPE BroadcastCancelledAreaList PRESENCE optional }|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS RESTART INDICATION PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- PWS Restart Indication
+--
+-- **************************************************************
+
+PWSRestartIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ PWSRestartIndicationIEs}},
+ ...
+}
+
+PWSRestartIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-ECGIListForRestart CRITICALITY reject TYPE ECGIListForRestart PRESENCE mandatory}|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}|
+ { ID id-TAIListForRestart CRITICALITY reject TYPE TAIListForRestart PRESENCE mandatory}|
+ { ID id-EmergencyAreaIDListForRestart CRITICALITY reject TYPE EmergencyAreaIDListForRestart PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS Failure Indication
+--
+-- **************************************************************
+
+PWSFailureIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ PWSFailureIndicationIEs}},
+ ...
+}
+
+PWSFailureIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-PWSfailedECGIList CRITICALITY reject TYPE PWSfailedECGIList PRESENCE mandatory}|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory},
+ ...
+}
+
+-- **************************************************************
+--
+-- LPPA TRANSPORT ELEMENTARY PROCEDURES
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- DOWNLINK UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+DownlinkUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+DownlinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+UplinkUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+UplinkUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }|
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- DOWNLINK NON UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{DownlinkNonUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+DownlinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+-- **************************************************************
+--
+-- UPLINK NON UE ASSOCIATED LPPA TRANSPORT
+--
+-- **************************************************************
+
+UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{UplinkNonUEAssociatedLPPaTransport-IEs}},
+ ...
+}
+
+UplinkNonUEAssociatedLPPaTransport-IEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Routing-ID CRITICALITY reject TYPE Routing-ID PRESENCE mandatory }|
+ { ID id-LPPa-PDU CRITICALITY reject TYPE LPPa-PDU PRESENCE mandatory },
+ ...
+}
+
+
+-- **************************************************************
+--
+-- E-RAB MODIFICATION INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- E-RAB Modification Indication
+--
+-- **************************************************************
+
+E-RABModificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { E-RABModificationIndicationIEs} },
+ ...
+}
+
+E-RABModificationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedListBearerModInd PRESENCE mandatory}|
+ { ID id-E-RABNotToBeModifiedListBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedListBearerModInd PRESENCE optional}|
+ { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional}|
+-- Extension for Release 11 to support BBAI --
+ { ID id-Tunnel-Information-for-BBF CRITICALITY ignore TYPE TunnelInformation PRESENCE optional}|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+E-RABToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABToBeModifiedItemBearerModIndIEs} }
+
+E-RABToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABToBeModifiedItemBearerModInd PRESENCE mandatory},
+ ...
+}
+
+E-RABToBeModifiedItemBearerModInd ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ dL-GTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABNotToBeModifiedListBearerModInd ::= E-RAB-IE-ContainerList { {E-RABNotToBeModifiedItemBearerModIndIEs} }
+
+E-RABNotToBeModifiedItemBearerModIndIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABNotToBeModifiedItemBearerModInd CRITICALITY reject TYPE E-RABNotToBeModifiedItemBearerModInd PRESENCE mandatory},
+ ...
+}
+
+E-RABNotToBeModifiedItemBearerModInd ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ transportLayerAddress TransportLayerAddress,
+ dL-GTP-TEID GTP-TEID,
+ iE-Extensions ProtocolExtensionContainer { { E-RABNotToBeModifiedItemBearerModInd-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABNotToBeModifiedItemBearerModInd-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSGMembershipInfo ::= SEQUENCE {
+ cSGMembershipStatus CSGMembershipStatus,
+ cSG-Id CSG-Id,
+ cellAccessMode CellAccessMode OPTIONAL,
+ pLMNidentity PLMNidentity OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { CSGMembershipInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSGMembershipInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- E-RAB Modification Confirm
+--
+-- **************************************************************
+
+E-RABModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {E-RABModificationConfirmIEs} },
+ ...
+}
+
+E-RABModificationConfirmIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABModifyListBearerModConf CRITICALITY ignore TYPE E-RABModifyListBearerModConf PRESENCE optional}|
+ { ID id-E-RABFailedToModifyListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-E-RABToBeReleasedListBearerModConf CRITICALITY ignore TYPE E-RABList PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional},
+ ...
+}
+
+E-RABModifyListBearerModConf ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABModifyItemBearerModConfIEs} }
+
+E-RABModifyItemBearerModConfIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABModifyItemBearerModConf CRITICALITY ignore TYPE E-RABModifyItemBearerModConf PRESENCE mandatory},
+ ...
+}
+
+E-RABModifyItemBearerModConf ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ iE-Extensions ProtocolExtensionContainer { {E-RABModifyItemBearerModConfExtIEs} } OPTIONAL,
+ ...
+}
+
+
+E-RABModifyItemBearerModConfExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE CONTEXT MODIFICATION INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Modification Indication
+--
+-- **************************************************************
+
+UEContextModificationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextModificationIndicationIEs} },
+ ...
+}
+
+UEContextModificationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CSGMembershipInfo CRITICALITY reject TYPE CSGMembershipInfo PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- UE Context Modification Confirm
+--
+-- **************************************************************
+
+UEContextModificationConfirm ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UEContextModificationConfirmIEs} },
+ ...
+}
+
+UEContextModificationConfirmIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CSGMembershipStatus CRITICALITY ignore TYPE CSGMembershipStatus PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT SUSPEND ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Suspend Request
+--
+-- **************************************************************
+
+UEContextSuspendRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextSuspendRequestIEs} },
+ ...
+}
+
+UEContextSuspendRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-InformationOnRecommendedCellsAndENBsForPaging CRITICALITY ignore TYPE InformationOnRecommendedCellsAndENBsForPaging PRESENCE optional}|
+ { ID id-CellIdentifierAndCELevelForCECapableUEs CRITICALITY ignore TYPE CellIdentifierAndCELevelForCECapableUEs PRESENCE optional}|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Suspend Response
+--
+-- **************************************************************
+
+UEContextSuspendResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {UEContextSuspendResponseIEs} },
+ ...
+}
+
+UEContextSuspendResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- UE CONTEXT RESUME ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- UE Context Resume Request
+--
+-- **************************************************************
+
+UEContextResumeRequest ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeRequestIEs} },
+ ...
+}
+
+UEContextResumeRequestIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABFailedToResumeListResumeReq CRITICALITY reject TYPE E-RABFailedToResumeListResumeReq PRESENCE optional}|
+ { ID id-RRC-Resume-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE optional},
+ ...
+}
+
+E-RABFailedToResumeListResumeReq ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeReqIEs} }
+
+E-RABFailedToResumeItemResumeReqIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedToResumeItemResumeReq CRITICALITY reject TYPE E-RABFailedToResumeItemResumeReq PRESENCE mandatory},
+ ...
+}
+
+E-RABFailedToResumeItemResumeReq ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeReq-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToResumeItemResumeReq-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Resume Response
+--
+-- **************************************************************
+
+UEContextResumeResponse ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeResponseIEs} },
+ ...
+}
+
+UEContextResumeResponseIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-E-RABFailedToResumeListResumeRes CRITICALITY reject TYPE E-RABFailedToResumeListResumeRes PRESENCE optional}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}|
+ { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE optional}|
+ { ID id-PendingDataIndication CRITICALITY ignore TYPE PendingDataIndication PRESENCE optional},
+ ...
+}
+
+E-RABFailedToResumeListResumeRes ::= E-RAB-IE-ContainerList { {E-RABFailedToResumeItemResumeResIEs} }
+
+E-RABFailedToResumeItemResumeResIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABFailedToResumeItemResumeRes CRITICALITY reject TYPE E-RABFailedToResumeItemResumeRes PRESENCE mandatory},
+ ...
+}
+
+E-RABFailedToResumeItemResumeRes ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { { E-RABFailedToResumeItemResumeRes-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABFailedToResumeItemResumeRes-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- **************************************************************
+--
+-- UE Context Resume Failure
+--
+-- **************************************************************
+
+UEContextResumeFailure ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEContextResumeFailureIEs} },
+ ...
+}
+
+UEContextResumeFailureIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}|
+ { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Connection Establishment Indication
+--
+-- **************************************************************
+
+ConnectionEstablishmentIndication::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {ConnectionEstablishmentIndicationIEs} },
+ ...
+}
+
+ConnectionEstablishmentIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional }|
+ { ID id-EnhancedCoverageRestricted CRITICALITY ignore TYPE EnhancedCoverageRestricted PRESENCE optional }|
+ { ID id-DL-CP-SecurityInformation CRITICALITY ignore TYPE DL-CP-SecurityInformation PRESENCE optional }|
+ { ID id-CE-ModeBRestricted CRITICALITY ignore TYPE CE-ModeBRestricted PRESENCE optional}|
+ { ID id-EndIndication CRITICALITY ignore TYPE EndIndication PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+-- **************************************************************
+--
+-- Retrieve UE Information
+--
+-- **************************************************************
+
+RetrieveUEInformation ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { RetrieveUEInformationIEs} },
+ ...
+}
+
+RetrieveUEInformationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory},
+...
+
+}
+
+
+-- **************************************************************
+
+-- UE Information Transfer
+--
+-- **************************************************************
+UEInformationTransfer ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { UEInformationTransferIEs} },
+ ...
+}
+
+UEInformationTransferIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}|
+ { ID id-UE-Level-QoS-Parameters CRITICALITY ignore TYPE E-RABLevelQoSParameters PRESENCE optional}|
+ { ID id-UERadioCapability CRITICALITY ignore TYPE UERadioCapability PRESENCE optional}|
+ { ID id-Subscription-Based-UE-DifferentiationInfo CRITICALITY ignore TYPE Subscription-Based-UE-DifferentiationInfo PRESENCE optional},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- eNB CP Relocation Indication
+--
+-- **************************************************************
+
+ENBCPRelocationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { ENBCPRelocationIndicationIEs} },
+ ...
+}
+
+ENBCPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE mandatory}|
+ { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}|
+ { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}|
+ { ID id-UL-CP-SecurityInformation CRITICALITY reject TYPE UL-CP-SecurityInformation PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- MME CP Relocation Indication
+--
+-- **************************************************************
+
+MMECPRelocationIndication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { MMECPRelocationIndicationIEs} },
+ ...
+}
+
+MMECPRelocationIndicationIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory},
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Secondary RAT Data Usage Report
+--
+-- **************************************************************
+
+SecondaryRATDataUsageReport ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { { SecondaryRATDataUsageReportIEs} },
+ ...
+}
+
+SecondaryRATDataUsageReportIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory}|
+ { ID id-SecondaryRATDataUsageReportList CRITICALITY ignore TYPE SecondaryRATDataUsageReportList PRESENCE mandatory}|
+ { ID id-HandoverFlag CRITICALITY ignore TYPE HandoverFlag PRESENCE optional},
+ ...
+}
+
+END
+
+
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+S1AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-IEs (2) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+IMPORTS
+ id-E-RABInformationListItem,
+ id-E-RABItem,
+ id-Bearers-SubjectToStatusTransfer-Item,
+ id-Time-Synchronisation-Info,
+ id-x2TNLConfigurationInfo,
+ id-eNBX2ExtendedTransportLayerAddresses,
+ id-MDTConfiguration,
+ id-Time-UE-StayedInCell-EnhancedGranularity,
+ id-HO-Cause,
+ id-M3Configuration,
+ id-M4Configuration,
+ id-M5Configuration,
+ id-MDT-Location-Info,
+ id-SignallingBasedMDTPLMNList,
+ id-MobilityInformation,
+ id-ULCOUNTValueExtended,
+ id-DLCOUNTValueExtended,
+ id-ReceiveStatusOfULPDCPSDUsExtended,
+ id-eNBIndirectX2TransportLayerAddresses,
+ id-Muting-Availability-Indication,
+ id-Muting-Pattern-Information,
+ id-NRrestrictioninEPSasSecondaryRAT,
+ id-NRrestrictionin5GS,
+ id-Synchronisation-Information,
+ id-uE-HistoryInformationFromTheUE,
+ id-LoggedMBSFNMDT,
+ id-SON-Information-Report,
+ id-RecommendedCellItem,
+ id-RecommendedENBItem,
+ id-ProSeUEtoNetworkRelaying,
+ id-ULCOUNTValuePDCP-SNlength18,
+ id-DLCOUNTValuePDCP-SNlength18,
+ id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18,
+ id-M6Configuration,
+ id-M7Configuration,
+ id-RAT-Type,
+ id-extended-e-RAB-MaximumBitrateDL,
+ id-extended-e-RAB-MaximumBitrateUL,
+ id-extended-e-RAB-GuaranteedBitrateDL,
+ id-extended-e-RAB-GuaranteedBitrateUL,
+ id-extended-uEaggregateMaximumBitRateDL,
+ id-extended-uEaggregateMaximumBitRateUL,
+ id-SecondaryRATDataUsageReportItem,
+ id-E-RABUsageReportItem,
+ id-UEAppLayerMeasConfig,
+ id-serviceType,
+ id-UnlicensedSpectrumRestriction,
+ id-CNTypeRestrictions, id-DownlinkPacketLossRate,
+ id-UplinkPacketLossRate,
+ id-BluetoothMeasurementConfiguration,
+ id-WLANMeasurementConfiguration,
+ maxnoofCSGs,
+ maxnoofE-RABs,
+ maxnoofErrors,
+ maxnoofBPLMNs,
+ maxnoofPLMNsPerMME,
+ maxnoofTACs,
+ maxnoofEPLMNs,
+ maxnoofEPLMNsPlusOne,
+ maxnoofForbLACs,
+ maxnoofForbTACs,
+ maxnoofCellsinUEHistoryInfo,
+ maxnoofCellID,
+ maxnoofDCNs,
+ maxnoofEmergencyAreaID,
+ maxnoofTAIforWarning,
+ maxnoofCellinTAI,
+ maxnoofCellinEAI,
+ maxnoofeNBX2TLAs,
+ maxnoofeNBX2ExtTLAs,
+ maxnoofeNBX2GTPTLAs,
+ maxnoofRATs,
+ maxnoofGroupIDs,
+ maxnoofMMECs,
+ maxnoofTAforMDT,
+ maxnoofCellIDforMDT,
+ maxnoofMDTPLMNs,
+ maxnoofCellsforRestart,
+ maxnoofRestartTAIs,
+ maxnoofRestartEmergencyAreaIDs,
+ maxnoofMBSFNAreaMDT,
+ maxEARFCN,
+ maxnoofCellsineNB,
+ maxnoofRecommendedCells,
+ maxnoofRecommendedENBs,
+ maxnooftimeperiods,
+ maxnoofCellIDforQMC,
+ maxnoofTAforQMC,
+ maxnoofPLMNforQMC,
+ maxnoofBluetoothName,
+ maxnoofWLANName
+
+
+
+
+FROM S1AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ ProtocolIE-ID,
+ TriggeringMessage
+FROM S1AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+ S1AP-PROTOCOL-EXTENSION,
+ ProtocolIE-SingleContainer{},
+ S1AP-PROTOCOL-IES
+
+FROM S1AP-Containers;
+
+-- A
+
+Additional-GUTI::= SEQUENCE {
+ gUMMEI GUMMEI,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {Additional-GUTI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Additional-GUTI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AerialUEsubscriptionInformation ::= ENUMERATED {
+ allowed,
+ not-allowed,
+ ...
+}
+
+AreaScopeOfMDT ::= CHOICE {
+ cellBased CellBasedMDT,
+ tABased TABasedMDT,
+ pLMNWide NULL,
+ ...,
+ tAIBased TAIBasedMDT
+}
+
+
+AreaScopeOfQMC ::= CHOICE {
+ cellBased CellBasedQMC,
+ tABased TABasedQMC,
+ tAIBased TAIBasedQMC,
+ pLMNAreaBased PLMNAreaBasedQMC,
+ ...
+}
+
+AllocationAndRetentionPriority ::= SEQUENCE {
+ priorityLevel PriorityLevel,
+ pre-emptionCapability Pre-emptionCapability,
+ pre-emptionVulnerability Pre-emptionVulnerability,
+ iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AllocationAndRetentionPriority-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForCECapableUEs ::= SEQUENCE {
+ cellIdentifierAndCELevelForCECapableUEs CellIdentifierAndCELevelForCECapableUEs,
+ iE-Extensions ProtocolExtensionContainer { { InformationForCECapableUEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForPaging ::= SEQUENCE {
+ assistanceDataForRecommendedCells AssistanceDataForRecommendedCells OPTIONAL,
+ assistanceDataForCECapableUEs AssistanceDataForCECapableUEs OPTIONAL,
+ pagingAttemptInformation PagingAttemptInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { AssistanceDataForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AssistanceDataForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+AssistanceDataForRecommendedCells ::= SEQUENCE {
+ recommendedCellsForPaging RecommendedCellsForPaging,
+ iE-Extensions ProtocolExtensionContainer { { AssistanceDataForRecommendedCells-ExtIEs} } OPTIONAL,
+ ...
+}
+
+AssistanceDataForRecommendedCells-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- B
+
+Bearers-SubjectToStatusTransferList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { Bearers-SubjectToStatusTransfer-ItemIEs } }
+
+Bearers-SubjectToStatusTransfer-ItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory },
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ uL-COUNTvalue COUNTvalue,
+ dL-COUNTvalue COUNTvalue,
+ receiveStatusofULPDCPSDUs ReceiveStatusofULPDCPSDUs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
+ ...
+}
+
+Bearers-SubjectToStatusTransfer-ItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ULCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-DLCOUNTValueExtended CRITICALITY ignore EXTENSION COUNTValueExtended PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsExtended CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsExtended PRESENCE optional}|
+ { ID id-ULCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-DLCOUNTValuePDCP-SNlength18 CRITICALITY ignore EXTENSION COUNTvaluePDCP-SNlength18 PRESENCE optional}|
+ { ID id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 CRITICALITY ignore EXTENSION ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 PRESENCE optional},
+ ...
+}
+
+BearerType ::= ENUMERATED {
+ non-IP,
+ ...
+}
+
+BitRate ::= INTEGER (0..10000000000)
+
+BluetoothMeasurementConfiguration ::= SEQUENCE {
+ bluetoothMeasConfig BluetoothMeasConfig,
+ bluetoothMeasConfigNameList BluetoothMeasConfigNameList OPTIONAL,
+ bt-rssi ENUMERATED {true, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { BluetoothMeasurementConfiguration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+BluetoothMeasurementConfiguration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+BluetoothMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofBluetoothName)) OF BluetoothName
+
+BluetoothMeasConfig::= ENUMERATED {setup,...}
+
+BluetoothName ::= OCTET STRING (SIZE (1..248))
+
+BPLMNs ::= SEQUENCE (SIZE(1.. maxnoofBPLMNs)) OF PLMNidentity
+
+BroadcastCancelledAreaList ::= CHOICE {
+ cellID-Cancelled CellID-Cancelled,
+ tAI-Cancelled TAI-Cancelled,
+ emergencyAreaID-Cancelled EmergencyAreaID-Cancelled,
+ ...
+}
+
+BroadcastCompletedAreaList ::= CHOICE {
+ cellID-Broadcast CellID-Broadcast,
+ tAI-Broadcast TAI-Broadcast,
+ emergencyAreaID-Broadcast EmergencyAreaID-Broadcast,
+ ...
+}
+
+
+-- C
+
+CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item
+
+CancelledCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item
+
+CancelledCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cause ::= CHOICE {
+ radioNetwork CauseRadioNetwork,
+ transport CauseTransport,
+ nas CauseNas,
+ protocol CauseProtocol,
+ misc CauseMisc,
+ ...
+}
+
+CauseMisc ::= ENUMERATED {
+ control-processing-overload,
+ not-enough-user-plane-processing-resources,
+ hardware-failure,
+ om-intervention,
+ unspecified,
+ unknown-PLMN,
+...
+}
+
+CauseProtocol ::= ENUMERATED {
+ transfer-syntax-error,
+ abstract-syntax-error-reject,
+ abstract-syntax-error-ignore-and-notify,
+ message-not-compatible-with-receiver-state,
+ semantic-error,
+ abstract-syntax-error-falsely-constructed-message,
+ unspecified,
+ ...
+}
+
+CauseRadioNetwork ::= ENUMERATED {
+ unspecified,
+ tx2relocoverall-expiry,
+ successful-handover,
+ release-due-to-eutran-generated-reason,
+ handover-cancelled,
+ partial-handover,
+ ho-failure-in-target-EPC-eNB-or-target-system,
+ ho-target-not-allowed,
+ tS1relocoverall-expiry,
+ tS1relocprep-expiry,
+ cell-not-available,
+ unknown-targetID,
+ no-radio-resources-available-in-target-cell,
+ unknown-mme-ue-s1ap-id,
+ unknown-enb-ue-s1ap-id,
+ unknown-pair-ue-s1ap-id,
+ handover-desirable-for-radio-reason,
+ time-critical-handover,
+ resource-optimisation-handover,
+ reduce-load-in-serving-cell,
+ user-inactivity,
+ radio-connection-with-ue-lost,
+ load-balancing-tau-required,
+ cs-fallback-triggered,
+ ue-not-available-for-ps-service,
+ radio-resources-not-available,
+ failure-in-radio-interface-procedure,
+ invalid-qos-combination,
+ interrat-redirection,
+ interaction-with-other-procedure,
+ unknown-E-RAB-ID,
+ multiple-E-RAB-ID-instances,
+ encryption-and-or-integrity-protection-algorithms-not-supported,
+ s1-intra-system-handover-triggered,
+ s1-inter-system-handover-triggered,
+ x2-handover-triggered,
+ ...,
+ redirection-towards-1xRTT,
+ not-supported-QCI-value,
+ invalid-CSG-Id,
+ release-due-to-pre-emption
+
+}
+
+CauseTransport ::= ENUMERATED {
+ transport-resource-unavailable,
+ unspecified,
+ ...
+}
+
+CauseNas ::= ENUMERATED {
+ normal-release,
+ authentication-failure,
+ detach,
+ unspecified,
+ ...,
+ csg-subscription-expiry
+}
+
+CellAccessMode ::= ENUMERATED {
+ hybrid,
+ ...
+}
+
+CellIdentifierAndCELevelForCECapableUEs ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cELevel CELevel,
+ iE-Extensions ProtocolExtensionContainer { { CellIdentifierAndCELevelForCECapableUEs-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellIdentifierAndCELevelForCECapableUEs-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- Coverage Enhancement level encoded according to TS 36.331 [16] --
+CELevel ::= OCTET STRING
+
+CE-mode-B-SupportIndicator ::= ENUMERATED {
+ supported,
+ ...
+}
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item
+
+CellID-Broadcast-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellID-Cancelled::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item
+
+CellID-Cancelled-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellBasedMDT::= SEQUENCE {
+ cellIdListforMDT CellIdListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF EUTRAN-CGI
+
+CellBasedQMC::= SEQUENCE {
+ cellIdListforQMC CellIdListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {CellBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellIdListforQMC ::= SEQUENCE (SIZE(1..maxnoofCellIDforQMC)) OF EUTRAN-CGI
+
+Cdma2000PDU ::= OCTET STRING
+
+Cdma2000RATType ::= ENUMERATED {
+ hRPD,
+ onexRTT,
+ ...
+}
+
+Cdma2000SectorID ::= OCTET STRING
+
+Cdma2000HOStatus ::= ENUMERATED {
+ hOSuccess,
+ hOFailure,
+ ...
+}
+
+Cdma2000HORequiredIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo ::= SEQUENCE {
+ cdma2000OneXMEID Cdma2000OneXMEID,
+ cdma2000OneXMSI Cdma2000OneXMSI,
+ cdma2000OneXPilot Cdma2000OneXPilot,
+ iE-Extensions ProtocolExtensionContainer { {Cdma2000OneXSRVCCInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Cdma2000OneXSRVCCInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Cdma2000OneXMEID ::= OCTET STRING
+
+Cdma2000OneXMSI ::= OCTET STRING
+
+Cdma2000OneXPilot ::= OCTET STRING
+
+Cdma2000OneXRAND ::= OCTET STRING
+
+
+Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...}
+
+CellType ::= SEQUENCE {
+ cell-Size Cell-Size,
+ iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ cI CI,
+ rAC RAC OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CI ::= OCTET STRING (SIZE (2))
+
+CNDomain ::= ENUMERATED {
+ ps,
+ cs
+}
+
+CNTypeRestrictions::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF CNTypeRestrictions-Item
+
+CNTypeRestrictions-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ cNType CNType,
+ iE-Extensions ProtocolExtensionContainer { { CNTypeRestrictions-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CNTypeRestrictions-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CNType ::= ENUMERATED {
+ fiveGCForbiddden,
+ ...
+}
+
+ConcurrentWarningMessageIndicator ::= ENUMERATED {
+ true
+}
+
+Correlation-ID ::= OCTET STRING (SIZE (4))
+
+CSFallbackIndicator ::= ENUMERATED {
+ cs-fallback-required,
+ ...,
+ cs-fallback-high-priority
+}
+
+AdditionalCSFallbackIndicator ::= ENUMERATED {
+ no-restriction,
+ restriction,
+ ...
+}
+
+CSG-Id ::= BIT STRING (SIZE (27))
+
+
+CSG-IdList ::= SEQUENCE (SIZE (1.. maxnoofCSGs)) OF CSG-IdList-Item
+
+CSG-IdList-Item ::= SEQUENCE {
+ cSG-Id CSG-Id,
+ iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CSGMembershipStatus ::= ENUMERATED {
+ member,
+ not-member
+}
+
+
+COUNTvalue ::= SEQUENCE {
+ pDCP-SN PDCP-SN,
+ hFN HFN,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL,
+ ...
+}
+COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTValueExtended ::= SEQUENCE {
+ pDCP-SNExtended PDCP-SNExtended,
+ hFNModified HFNModified,
+ iE-Extensions ProtocolExtensionContainer { {COUNTValueExtended-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTValueExtended-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+COUNTvaluePDCP-SNlength18 ::= SEQUENCE {
+ pDCP-SNlength18 PDCP-SNlength18,
+ hFNforPDCP-SNlength18 HFNforPDCP-SNlength18,
+ iE-Extensions ProtocolExtensionContainer { {COUNTvaluePDCP-SNlength18-ExtIEs} } OPTIONAL,
+ ...
+}
+
+COUNTvaluePDCP-SNlength18-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Coverage-Level ::= ENUMERATED {
+ extendedcoverage,
+ ...
+}
+
+CriticalityDiagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1.. maxnoofErrors)) OF CriticalityDiagnostics-IE-Item
+
+CriticalityDiagnostics-IE-Item ::= SEQUENCE {
+ iECriticality Criticality,
+ iE-ID ProtocolIE-ID,
+ typeOfError TypeOfError,
+ iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+ ...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- D
+
+DataCodingScheme ::= BIT STRING (SIZE (8))
+
+DCN-ID ::= INTEGER (0..65535)
+
+ServedDCNs ::= SEQUENCE (SIZE(0..maxnoofDCNs)) OF ServedDCNsItem
+
+ServedDCNsItem ::= SEQUENCE {
+ dCN-ID DCN-ID,
+ relativeDCNCapacity RelativeMMECapacity,
+ iE-Extensions ProtocolExtensionContainer { {ServedDCNsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedDCNsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-CP-SecurityInformation ::= SEQUENCE {
+ dl-NAS-MAC DL-NAS-MAC,
+ iE-Extensions ProtocolExtensionContainer { { DL-CP-SecurityInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+DL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+DL-Forwarding ::= ENUMERATED {
+ dL-Forwarding-proposed,
+ ...
+}
+
+DL-NAS-MAC ::= BIT STRING (SIZE (16))
+
+Direct-Forwarding-Path-Availability ::= ENUMERATED {
+ directPathAvailable,
+ ...
+}
+
+Data-Forwarding-Not-Possible ::= ENUMERATED {
+ data-Forwarding-not-Possible,
+ ...
+}
+
+DLNASPDUDeliveryAckRequest ::= ENUMERATED {
+ requested,
+ ...
+}
+
+-- E
+
+EARFCN ::= INTEGER(0..maxEARFCN, ...)
+
+ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+PWSfailedECGIList ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI
+
+EDT-Session ::= ENUMERATED {
+ true,
+ ...
+}
+
+EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID
+
+EmergencyAreaID ::= OCTET STRING (SIZE (3))
+
+EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item
+
+EmergencyAreaID-Broadcast-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ completedCellinEAI CompletedCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EmergencyAreaID-Cancelled ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item
+
+EmergencyAreaID-Cancelled-Item ::= SEQUENCE {
+ emergencyAreaID EmergencyAreaID,
+ cancelledCellinEAI CancelledCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item
+
+CompletedCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ECGI-List ::= SEQUENCE (SIZE(1..maxnoofCellsineNB)) OF EUTRAN-CGI
+
+EmergencyAreaIDListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartEmergencyAreaIDs)) OF EmergencyAreaID
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ... ,
+ short-macroENB-ID BIT STRING (SIZE(18)),
+ long-macroENB-ID BIT STRING (SIZE(21))
+}
+
+GERAN-Cell-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC,
+ cI CI,
+ iE-Extensions ProtocolExtensionContainer { { GERAN-Cell-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GERAN-Cell-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GUMMEIList::= SEQUENCE (SIZE (1.. maxnoofMMECs)) OF GUMMEI
+
+ENB-StatusTransfer-TransparentContainer ::= SEQUENCE {
+ bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList,
+ iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENB-UE-S1AP-ID ::= INTEGER (0..16777215)
+
+ENBname ::= PrintableString (SIZE (1..150,...))
+
+ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+EncryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+EndIndication ::= ENUMERATED {
+ no-further-data,
+ further-data-exists,
+ ...
+}
+
+EnhancedCoverageRestricted ::= ENUMERATED {
+ restricted,
+ ...
+}
+
+CE-ModeBRestricted ::= ENUMERATED {
+ restricted,
+ not-restricted,
+ ...
+}
+
+EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMNidentity
+EventType ::= ENUMERATED {
+ direct,
+ change-of-serve-cell,
+ stop-change-of-serve-cell,
+ ...
+}
+
+E-RAB-ID ::= INTEGER (0..15, ...)
+
+E-RABInformationList ::= SEQUENCE (SIZE (1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { { E-RABInformationListIEs } }
+
+E-RABInformationListIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABInformationListItem CRITICALITY ignore TYPE E-RABInformationListItem PRESENCE mandatory },
+ ...
+}
+
+E-RABInformationListItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ dL-Forwarding DL-Forwarding OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABInformationListItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABInformationListItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {E-RABItemIEs} }
+
+E-RABItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABItem CRITICALITY ignore TYPE E-RABItem PRESENCE mandatory },
+ ...
+}
+
+E-RABItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ cause Cause,
+ iE-Extensions ProtocolExtensionContainer { {E-RABItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+E-RABLevelQoSParameters ::= SEQUENCE {
+ qCI QCI,
+ allocationRetentionPriority AllocationAndRetentionPriority,
+ gbrQosInformation GBR-QosInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {E-RABQoSParameters-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABUsageReportList ::= SEQUENCE (SIZE(1..maxnooftimeperiods)) OF ProtocolIE-SingleContainer { {E-RABUsageReportItemIEs} }
+
+E-RABUsageReportItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-E-RABUsageReportItem CRITICALITY ignore TYPE E-RABUsageReportItem PRESENCE mandatory },
+ ...
+}
+
+E-RABUsageReportItem ::= SEQUENCE {
+ startTimestamp OCTET STRING (SIZE(4)),
+ endTimestamp OCTET STRING (SIZE(4)),
+ usageCountUL INTEGER (0..18446744073709551615),
+ usageCountDL INTEGER (0..18446744073709551615),
+ iE-Extensions ProtocolExtensionContainer { { E-RABUsageReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+E-RABUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+E-RABQoSParameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extended for introduction of downlink and uplink packet loss rate for enhanced Voice performance –-
+ { ID id-DownlinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional}|
+ { ID id-UplinkPacketLossRate CRITICALITY ignore EXTENSION Packet-LossRate PRESENCE optional},
+ ...
+}
+
+
+EUTRAN-CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ cell-ID CellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EUTRAN-CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EUTRANRoundTripDelayEstimationInfo ::= INTEGER (0..2047)
+
+ExpectedUEBehaviour ::= SEQUENCE {
+ expectedActivity ExpectedUEActivityBehaviour OPTIONAL,
+ expectedHOInterval ExpectedHOInterval OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ExpectedUEBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedUEActivityBehaviour ::= SEQUENCE {
+ expectedActivityPeriod ExpectedActivityPeriod OPTIONAL,
+ expectedIdlePeriod ExpectedIdlePeriod OPTIONAL,
+ sourceofUEActivityBehaviourInformation SourceOfUEActivityBehaviourInformation OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ExpectedUEActivityBehaviour-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ExpectedUEActivityBehaviour-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ExpectedActivityPeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+ExpectedIdlePeriod ::= INTEGER (1..30|40|50|60|80|100|120|150|180|181,...)
+
+SourceOfUEActivityBehaviourInformation ::= ENUMERATED {
+ subscription-information,
+ statistics,
+ ...
+}
+
+ExpectedHOInterval ::= ENUMERATED {
+ sec15, sec30, sec60, sec90, sec120, sec180, long-time,
+ ...
+}
+
+ExtendedBitRate ::= INTEGER (10000000001..4000000000000, ...)
+
+ExtendedRNC-ID ::= INTEGER (4096..65535)
+
+ExtendedRepetitionPeriod ::= INTEGER (4096..131071)
+
+Extended-UEIdentityIndexValue ::= BIT STRING (SIZE (14))
+
+-- F
+
+FiveGSTAC ::= OCTET STRING (SIZE (3))
+
+FiveGSTAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ fiveGSTAC FiveGSTAC,
+ iE-Extensions ProtocolExtensionContainer { {FiveGSTAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+FiveGSTAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenInterRATs ::= ENUMERATED {
+ all,
+ geran,
+ utran,
+ cdma2000,
+ ...,
+ geranandutran,
+ cdma2000andutran
+
+}
+
+ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
+
+ForbiddenTAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenTACs ForbiddenTACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC
+
+ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
+
+ForbiddenLAs-Item ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ forbiddenLACs ForbiddenLACs,
+ iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
+
+-- G
+
+GBR-QosInformation ::= SEQUENCE {
+ e-RAB-MaximumBitrateDL BitRate,
+ e-RAB-MaximumBitrateUL BitRate,
+ e-RAB-GuaranteedBitrateDL BitRate,
+ e-RAB-GuaranteedBitrateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { { GBR-QosInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GBR-QosInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for maximum bitrate > 10G bps --
+ { ID id-extended-e-RAB-MaximumBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-MaximumBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-GuaranteedBitrateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-e-RAB-GuaranteedBitrateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional},
+ ...}
+
+
+GTP-TEID ::= OCTET STRING (SIZE (4))
+
+GUMMEI ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ mME-Group-ID MME-Group-ID,
+ mME-Code MME-Code,
+ iE-Extensions ProtocolExtensionContainer { {GUMMEI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GUMMEI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GUMMEIType ::= ENUMERATED {
+ native,
+ mapped,
+ ...
+}
+
+GWContextReleaseIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+-- H
+
+HandoverFlag ::= ENUMERATED {
+ handoverPreparation,
+ ...
+}
+
+
+HandoverRestrictionList ::= SEQUENCE {
+ servingPLMN PLMNidentity,
+ equivalentPLMNs EPLMNs OPTIONAL,
+ forbiddenTAs ForbiddenTAs OPTIONAL,
+ forbiddenLAs ForbiddenLAs OPTIONAL,
+ forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
+ ...
+}
+
+HandoverRestrictionList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-NRrestrictioninEPSasSecondaryRAT CRITICALITY ignore EXTENSION NRrestrictioninEPSasSecondaryRAT PRESENCE optional}|
+ { ID id-UnlicensedSpectrumRestriction CRITICALITY ignore EXTENSION UnlicensedSpectrumRestriction PRESENCE optional}|
+ { ID id-CNTypeRestrictions CRITICALITY ignore EXTENSION CNTypeRestrictions PRESENCE optional}|
+ { ID id-NRrestrictionin5GS CRITICALITY ignore EXTENSION NRrestrictionin5GS PRESENCE optional},
+ ...
+}
+
+HandoverType ::= ENUMERATED {
+ intralte,
+ ltetoutran,
+ ltetogeran,
+ utrantolte,
+ gerantolte, ...,
+ ltetonr,
+ nrtolte
+}
+
+HFN ::= INTEGER (0..1048575)
+
+HFNModified ::= INTEGER (0..131071)
+
+HFNforPDCP-SNlength18 ::= INTEGER (0..16383)
+
+-- I
+
+Masked-IMEISV ::= BIT STRING (SIZE (64))
+
+ImmediateMDT ::= SEQUENCE {
+ measurementsToActivate MeasurementsToActivate,
+ m1reportingTrigger M1ReportingTrigger,
+ m1thresholdeventA2 M1ThresholdEventA2 OPTIONAL,
+-- Included in case of event-triggered, or event-triggered periodic reporting for measurement M1
+ m1periodicReporting M1PeriodicReporting OPTIONAL,
+-- Included in case of periodic or event-triggered periodic reporting
+ iE-Extensions ProtocolExtensionContainer { { ImmediateMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ImmediateMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-M3Configuration CRITICALITY ignore EXTENSION M3Configuration PRESENCE conditional}|
+ { ID id-M4Configuration CRITICALITY ignore EXTENSION M4Configuration PRESENCE conditional}|
+ { ID id-M5Configuration CRITICALITY ignore EXTENSION M5Configuration PRESENCE conditional}|
+ { ID id-MDT-Location-Info CRITICALITY ignore EXTENSION MDT-Location-Info PRESENCE optional}|
+ { ID id-M6Configuration CRITICALITY ignore EXTENSION M6Configuration PRESENCE conditional}|
+ { ID id-M7Configuration CRITICALITY ignore EXTENSION M7Configuration PRESENCE conditional}|
+ { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}|
+ { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional},
+ ...
+}
+
+IMSI ::= OCTET STRING (SIZE (3..8))
+
+InformationOnRecommendedCellsAndENBsForPaging ::= SEQUENCE {
+ recommendedCellsForPaging RecommendedCellsForPaging,
+ recommendENBsForPaging RecommendedENBsForPaging,
+ iE-Extensions ProtocolExtensionContainer { { InformationOnRecommendedCellsAndENBsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+InformationOnRecommendedCellsAndENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+IntendedNumberOfPagingAttempts ::= INTEGER (1..16, ...)
+
+InterfacesToTrace ::= BIT STRING (SIZE (8))
+
+
+
+-- J
+-- K
+
+KillAllWarningMessages ::= ENUMERATED {true}
+
+-- L
+
+
+LAC ::= OCTET STRING (SIZE (2))
+
+LAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ lAC LAC,
+ iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LastVisitedCell-Item ::= CHOICE {
+ e-UTRAN-Cell LastVisitedEUTRANCellInformation,
+ uTRAN-Cell LastVisitedUTRANCellInformation,
+ gERAN-Cell LastVisitedGERANCellInformation,
+ ...,
+ nG-RAN-Cell LastVisitedNGRANCellInformation
+}
+LastVisitedEUTRANCellInformation ::= SEQUENCE {
+ global-Cell-ID EUTRAN-CGI,
+ cellType CellType,
+ time-UE-StayedInCell Time-UE-StayedInCell,
+ iE-Extensions ProtocolExtensionContainer { { LastVisitedEUTRANCellInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Rel-11 to support enhanced granularity for time UE stayed in cell --
+ { ID id-Time-UE-StayedInCell-EnhancedGranularity CRITICALITY ignore EXTENSION Time-UE-StayedInCell-EnhancedGranularity PRESENCE optional}|
+ { ID id-HO-Cause CRITICALITY ignore EXTENSION Cause PRESENCE optional},
+ ...
+}
+
+LastVisitedNGRANCellInformation ::= OCTET STRING
+
+LastVisitedUTRANCellInformation ::= OCTET STRING
+
+LastVisitedGERANCellInformation ::= CHOICE {
+ undefined NULL,
+ ...
+}
+
+L3-Information ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+LPPa-PDU ::= OCTET STRING
+
+LHN-ID ::= OCTET STRING(SIZE (32..256))
+
+Links-to-log ::= ENUMERATED {uplink, downlink, both-uplink-and-downlink, ...}
+
+ListeningSubframePattern ::= SEQUENCE {
+ pattern-period ENUMERATED {ms1280, ms2560, ms5120, ms10240, ...},
+ pattern-offset INTEGER (0..10239, ...),
+ iE-Extensions ProtocolExtensionContainer { { ListeningSubframePattern-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ListeningSubframePattern-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+...
+}
+
+LoggedMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ iE-Extensions ProtocolExtensionContainer { {LoggedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+LoggedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-BluetoothMeasurementConfiguration CRITICALITY ignore EXTENSION BluetoothMeasurementConfiguration PRESENCE optional}|
+ { ID id-WLANMeasurementConfiguration CRITICALITY ignore EXTENSION WLANMeasurementConfiguration PRESENCE optional},
+...
+}
+
+LoggingInterval ::= ENUMERATED {ms128, ms256, ms512, ms1024, ms2048, ms3072, ms4096, ms6144}
+
+LoggingDuration ::= ENUMERATED {m10, m20, m40, m60, m90, m120}
+
+LoggedMBSFNMDT ::= SEQUENCE {
+ loggingInterval LoggingInterval,
+ loggingDuration LoggingDuration,
+ mBSFN-ResultToLog MBSFN-ResultToLog OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { LoggedMBSFNMDT-ExtIEs } } OPTIONAL,
+ ...
+}
+
+LoggedMBSFNMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+LTE-M-Indication ::= ENUMERATED {lte-m, ... }
+
+-- M
+
+M3Configuration ::= SEQUENCE {
+ m3period M3period,
+ iE-Extensions ProtocolExtensionContainer { { M3Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M3Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M3period ::= ENUMERATED {ms100, ms1000, ms10000, ...,ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, min1 }
+
+M4Configuration ::= SEQUENCE {
+ m4period M4period,
+ m4-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M4Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M4Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M4period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M5Configuration ::= SEQUENCE {
+ m5period M5period,
+ m5-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M5Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M5Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M5period ::= ENUMERATED {ms1024, ms2048, ms5120, ms10240, min1, ... }
+
+M6Configuration ::= SEQUENCE {
+ m6report-Interval M6report-Interval,
+ m6delay-threshold M6delay-threshold OPTIONAL,
+-- This IE shall be present if the M6 Links to log IE is set to “uplink” or to “both-uplink-and-downlink” --
+ m6-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M6Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M6Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M6report-Interval ::= ENUMERATED { ms1024, ms2048, ms5120, ms10240, ... }
+
+M6delay-threshold ::= ENUMERATED { ms30, ms40, ms50, ms60, ms70, ms80, ms90, ms100, ms150, ms300, ms500, ms750, ... }
+
+M7Configuration ::= SEQUENCE {
+ m7period M7period,
+ m7-links-to-log Links-to-log,
+ iE-Extensions ProtocolExtensionContainer { { M7Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M7Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+M7period ::= INTEGER(1..60, ...)
+
+MDT-Activation ::= ENUMERATED {
+ immediate-MDT-only,
+ immediate-MDT-and-Trace,
+ logged-MDT-only,
+ ...,
+ logged-MBSFN-MDT
+}
+
+MDT-Location-Info ::= BIT STRING (SIZE (8))
+
+MDT-Configuration ::= SEQUENCE {
+ mdt-Activation MDT-Activation,
+ areaScopeOfMDT AreaScopeOfMDT,
+ mDTMode MDTMode,
+ iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL,
+ ...
+}
+MDT-Configuration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-SignallingBasedMDTPLMNList CRITICALITY ignore EXTENSION MDTPLMNList PRESENCE optional },
+ ...
+}
+
+ManagementBasedMDTAllowed ::= ENUMERATED {allowed, ...}
+
+MBSFN-ResultToLog ::= SEQUENCE (SIZE(1..maxnoofMBSFNAreaMDT)) OF MBSFN-ResultToLogInfo
+
+MBSFN-ResultToLogInfo ::= SEQUENCE {
+ mBSFN-AreaId INTEGER (0..255) OPTIONAL,
+ carrierFreq EARFCN,
+ iE-Extensions ProtocolExtensionContainer { { MBSFN-ResultToLogInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MBSFN-ResultToLogInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMNidentity
+
+PrivacyIndicator ::= ENUMERATED {
+ immediate-MDT,
+ logged-MDT,
+ ...
+}
+
+MDTMode ::= CHOICE {
+ immediateMDT ImmediateMDT,
+ loggedMDT LoggedMDT,
+ ...,
+ mDTMode-Extension MDTMode-Extension
+}
+
+MDTMode-Extension ::= ProtocolIE-SingleContainer {{ MDTMode-ExtensionIE }}
+
+MDTMode-ExtensionIE S1AP-PROTOCOL-IES ::= {
+ { ID id-LoggedMBSFNMDT CRITICALITY ignore TYPE LoggedMBSFNMDT PRESENCE mandatory}
+}
+
+MeasurementsToActivate ::= BIT STRING (SIZE (8))
+
+MeasurementThresholdA2 ::= CHOICE {
+ threshold-RSRP Threshold-RSRP,
+ threshold-RSRQ Threshold-RSRQ,
+ ...
+}
+
+MessageIdentifier ::= BIT STRING (SIZE (16))
+
+MobilityInformation ::= BIT STRING (SIZE(32))
+
+MMEname ::= PrintableString (SIZE (1..150,...))
+
+MMEPagingTarget ::= CHOICE {
+ global-ENB-ID Global-ENB-ID,
+ tAI TAI,
+ ...
+}
+
+MMERelaySupportIndicator ::= ENUMERATED {true, ...}
+
+MME-Group-ID ::= OCTET STRING (SIZE (2))
+
+MME-Code ::= OCTET STRING (SIZE (1))
+
+MME-UE-S1AP-ID ::= INTEGER (0..4294967295)
+M-TMSI ::= OCTET STRING (SIZE (4))
+
+MSClassmark2 ::= OCTET STRING
+MSClassmark3 ::= OCTET STRING
+
+MutingAvailabilityIndication ::= ENUMERATED {
+ available,
+ unavailable,
+ ...
+}
+
+
+MutingPatternInformation ::= SEQUENCE {
+ muting-pattern-period ENUMERATED {ms0, ms1280, ms2560, ms5120, ms10240, ...},
+ muting-pattern-offset INTEGER (0..10239, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {MutingPatternInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+MutingPatternInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- N
+
+NAS-PDU ::= OCTET STRING
+
+NASSecurityParametersfromE-UTRAN ::= OCTET STRING
+
+NASSecurityParameterstoE-UTRAN ::= OCTET STRING
+
+NB-IoT-DefaultPagingDRX ::= ENUMERATED {
+ v128,
+ v256,
+ v512,
+ v1024,
+ ...
+ }
+
+NB-IoT-Paging-eDRXInformation ::= SEQUENCE {
+ nB-IoT-paging-eDRX-Cycle NB-IoT-Paging-eDRX-Cycle,
+ nB-IoT-pagingTimeWindow NB-IoT-PagingTimeWindow OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { NB-IoT-Paging-eDRXInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NB-IoT-Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NB-IoT-Paging-eDRX-Cycle ::= ENUMERATED{hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, hf512, hf1024, ...}
+
+NB-IoT-PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...}
+
+NB-IoT-UEIdentityIndexValue ::= BIT STRING (SIZE (12))
+
+NextPagingAreaScope ::= ENUMERATED {
+ same,
+ changed,
+ ...
+}
+
+NRencryptionAlgorithms ::= BIT STRING (SIZE (16,...))
+NRintegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...))
+
+NRrestrictioninEPSasSecondaryRAT ::= ENUMERATED {
+ nRrestrictedinEPSasSecondaryRAT,
+ ...
+}
+
+NRrestrictionin5GS ::= ENUMERATED {
+ nRrestrictedin5GS,
+ ...
+}
+
+NRUESecurityCapabilities ::= SEQUENCE {
+ nRencryptionAlgorithms NRencryptionAlgorithms,
+ nRintegrityProtectionAlgorithms NRintegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { NRUESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+NRUESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NumberofBroadcastRequest ::= INTEGER (0..65535)
+
+NumberOfBroadcasts ::= INTEGER (0..65535)
+
+-- O
+OldBSS-ToNewBSS-Information ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+OverloadAction ::= ENUMERATED {
+ reject-non-emergency-mo-dt,
+ reject-rrc-cr-signalling,
+ permit-emergency-sessions-and-mobile-terminated-services-only,
+ ...,
+ permit-high-priority-sessions-and-mobile-terminated-services-only,
+ reject-delay-tolerant-access,
+ permit-high-priority-sessions-and-exception-reporting-and-mobile-terminated-services-only,
+ not-accept-mo-data-or-delay-tolerant-access-from-CP-CIoT
+
+}
+
+OverloadResponse ::= CHOICE {
+ overloadAction OverloadAction,
+ ...
+}
+
+
+-- P
+
+Packet-LossRate ::= INTEGER(0..1000)
+
+PagingAttemptInformation ::= SEQUENCE {
+ pagingAttemptCount PagingAttemptCount,
+ intendedNumberOfPagingAttempts IntendedNumberOfPagingAttempts,
+ nextPagingAreaScope NextPagingAreaScope OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { PagingAttemptInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PagingAttemptInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PagingAttemptCount ::= INTEGER (1..16, ...)
+
+Paging-eDRXInformation ::= SEQUENCE {
+ paging-eDRX-Cycle Paging-eDRX-Cycle,
+ pagingTimeWindow PagingTimeWindow OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Paging-eDRXInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Paging-eDRXInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Paging-eDRX-Cycle ::= ENUMERATED{hfhalf, hf1, hf2, hf4, hf6, hf8, hf10, hf12, hf14, hf16, hf32, hf64, hf128, hf256, ...}
+
+PagingTimeWindow ::= ENUMERATED{s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16, ...}
+
+PagingDRX ::= ENUMERATED {
+ v32,
+ v64,
+ v128,
+ v256,
+ ...
+ }
+
+PagingPriority ::= ENUMERATED {
+ priolevel1,
+ priolevel2,
+ priolevel3,
+ priolevel4,
+ priolevel5,
+ priolevel6,
+ priolevel7,
+ priolevel8,
+ ...
+}
+
+PDCP-SN ::= INTEGER (0..4095)
+
+PDCP-SNExtended ::= INTEGER (0..32767)
+
+PDCP-SNlength18 ::= INTEGER (0..262143)
+
+PendingDataIndication ::= ENUMERATED {
+ true,
+ ...
+}
+
+M1PeriodicReporting ::= SEQUENCE {
+ reportInterval ReportIntervalMDT,
+ reportAmount ReportAmountMDT,
+ iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1PeriodicReporting-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMNidentity ::= TBCD-STRING
+
+PLMNAreaBasedQMC ::= SEQUENCE {
+ plmnListforQMC PLMNListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {PLMNAreaBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+PLMNAreaBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+PLMNListforQMC ::= SEQUENCE (SIZE(1..maxnoofPLMNforQMC)) OF PLMNidentity
+
+Port-Number ::= OCTET STRING (SIZE (2))
+
+Pre-emptionCapability ::= ENUMERATED {
+ shall-not-trigger-pre-emption,
+ may-trigger-pre-emption
+}
+
+Pre-emptionVulnerability ::= ENUMERATED {
+ not-pre-emptable,
+ pre-emptable
+}
+
+PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority (15) } (0..15)
+
+ProSeAuthorized ::= SEQUENCE {
+ proSeDirectDiscovery ProSeDirectDiscovery OPTIONAL,
+ proSeDirectCommunication ProSeDirectCommunication OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {ProSeAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ProSeAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ { ID id-ProSeUEtoNetworkRelaying CRITICALITY ignore EXTENSION ProSeUEtoNetworkRelaying PRESENCE optional},
+ ...
+}
+
+ProSeDirectDiscovery ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeUEtoNetworkRelaying ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+ProSeDirectCommunication ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+PS-ServiceNotAvailable ::= ENUMERATED {
+ ps-service-not-available,
+ ...
+}
+
+-- Q
+
+QCI ::= INTEGER (0..255)
+
+-- R
+
+ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
+
+ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384))
+
+ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ::= BIT STRING (SIZE(1..131072))
+
+RecommendedCellsForPaging ::= SEQUENCE {
+ recommendedCellList RecommendedCellList,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedCellsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedCellList ::= SEQUENCE (SIZE(1.. maxnoofRecommendedCells)) OF ProtocolIE-SingleContainer { { RecommendedCellItemIEs } }
+
+RecommendedCellItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-RecommendedCellItem CRITICALITY ignore TYPE RecommendedCellItem PRESENCE mandatory },
+ ...
+}
+
+RecommendedCellItem::= SEQUENCE {
+ eUTRAN-CGI EUTRAN-CGI,
+ timeStayedInCell INTEGER (0..4095) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedCellsForPagingItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedCellsForPagingItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedENBsForPaging ::= SEQUENCE {
+ recommendedENBList RecommendedENBList,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedENBsForPaging-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedENBsForPaging-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RecommendedENBList::= SEQUENCE (SIZE(1.. maxnoofRecommendedENBs)) OF ProtocolIE-SingleContainer { { RecommendedENBItemIEs } }
+
+RecommendedENBItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-RecommendedENBItem CRITICALITY ignore TYPE RecommendedENBItem PRESENCE mandatory },
+ ...
+}
+
+RecommendedENBItem ::= SEQUENCE {
+ mMEPagingTarget MMEPagingTarget,
+ iE-Extensions ProtocolExtensionContainer { { RecommendedENBItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RecommendedENBItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RelativeMMECapacity ::= INTEGER (0..255)
+
+RelayNode-Indicator ::= ENUMERATED {
+ true,
+ ...
+}
+
+RAC ::= OCTET STRING (SIZE (1))
+
+RAT-Type ::= ENUMERATED {
+ nbiot,
+ ...
+}
+
+ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity}
+
+ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60}
+
+M1ReportingTrigger ::= ENUMERATED{
+ periodic,
+ a2eventtriggered,
+ ...,
+ a2eventtriggered-periodic
+}
+
+RequestType ::= SEQUENCE {
+ eventType EventType,
+ reportArea ReportArea,
+ iE-Extensions ProtocolExtensionContainer { { RequestType-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+RequestType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMTransfer ::= SEQUENCE {
+ rIMInformation RIMInformation,
+ rIMRoutingAddress RIMRoutingAddress OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { RIMTransfer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+RIMTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RIMInformation ::= OCTET STRING
+
+RIMRoutingAddress ::= CHOICE {
+ gERAN-Cell-ID GERAN-Cell-ID,
+ ...,
+ targetRNC-ID TargetRNC-ID,
+ eHRPD-Sector-ID OCTET STRING (SIZE(16))
+}
+
+ReportArea ::= ENUMERATED {
+ ecgi,
+ ...
+}
+
+RepetitionPeriod ::= INTEGER (0..4095)
+
+RLFReportInformation ::= SEQUENCE {
+ uE-RLF-Report-Container UE-RLF-Report-Container,
+ uE-RLF-Report-Container-for-extended-bands UE-RLF-Report-Container-for-extended-bands OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{ RLFReportInformation-ExtIEs}} OPTIONAL,
+ ...
+}
+
+RLFReportInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+RNC-ID ::= INTEGER (0..4095)
+
+RRC-Container ::= OCTET STRING
+
+RRC-Establishment-Cause ::= ENUMERATED {
+ emergency,
+ highPriorityAccess,
+ mt-Access,
+ mo-Signalling,
+ mo-Data,
+ ...,
+ delay-TolerantAccess,
+ mo-VoiceCall,
+ mo-ExceptionData
+}
+
+ECGIListForRestart ::= SEQUENCE (SIZE(1..maxnoofCellsforRestart)) OF EUTRAN-CGI
+
+Routing-ID ::= INTEGER (0..255)
+
+-- S
+
+
+SecurityKey ::= BIT STRING (SIZE(256))
+
+
+
+SecurityContext ::= SEQUENCE {
+ nextHopChainingCount INTEGER (0..7),
+ nextHopParameter SecurityKey,
+ iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL,
+ ...
+}
+
+
+SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SecondaryRATType ::= ENUMERATED {
+ nR,
+ ...,
+ unlicensed
+}
+
+
+SecondaryRATDataUsageRequest ::= ENUMERATED {
+ requested,
+ ...
+}
+
+SecondaryRATDataUsageReportList ::= SEQUENCE (SIZE(1.. maxnoofE-RABs)) OF ProtocolIE-SingleContainer { {SecondaryRATDataUsageReportItemIEs} }
+
+SecondaryRATDataUsageReportItemIEs S1AP-PROTOCOL-IES ::= {
+ { ID id-SecondaryRATDataUsageReportItem CRITICALITY ignore TYPE SecondaryRATDataUsageReportItem PRESENCE mandatory },
+ ...
+}
+
+SecondaryRATDataUsageReportItem ::= SEQUENCE {
+ e-RAB-ID E-RAB-ID,
+ secondaryRATType SecondaryRATType,
+ e-RABUsageReportList E-RABUsageReportList,
+ iE-Extensions ProtocolExtensionContainer { { SecondaryRATDataUsageReportItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SecondaryRATDataUsageReportItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SerialNumber ::= BIT STRING (SIZE (16))
+
+ServiceType ::= ENUMERATED{
+ qMC-for-streaming-service,
+ qMC-for-MTSI-service,
+ ...
+}
+
+SONInformation ::= CHOICE{
+ sONInformationRequest SONInformationRequest,
+ sONInformationReply SONInformationReply,
+ ...
+-- ...,
+-- sONInformation-Extension SONInformation-Extension
+}
+
+SONInformation-Extension ::= ProtocolIE-SingleContainer {{ SONInformation-ExtensionIE }}
+
+SONInformation-ExtensionIE S1AP-PROTOCOL-IES ::= {
+ { ID id-SON-Information-Report CRITICALITY ignore TYPE SONInformationReport PRESENCE mandatory}
+}
+
+SONInformationRequest ::= ENUMERATED {
+ x2TNL-Configuration-Info,
+ ...,
+ time-Synchronisation-Info,
+ activate-Muting,
+ deactivate-Muting}
+
+SONInformationReply ::= SEQUENCE {
+ x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL,
+ ...
+}
+
+SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 9 to transfer Time synchronisation information --
+ {ID id-Time-Synchronisation-Info CRITICALITY ignore EXTENSION TimeSynchronisationInfo PRESENCE optional},
+ ...,
+ {ID id-Muting-Pattern-Information CRITICALITY ignore EXTENSION MutingPatternInformation PRESENCE optional}
+}
+
+SONInformationReport ::= CHOICE{
+ rLFReportInformation RLFReportInformation,
+ ...
+}
+
+SONConfigurationTransfer ::= SEQUENCE {
+ targeteNB-ID TargeteNB-ID,
+ sourceeNB-ID SourceeNB-ID,
+ sONInformation SONInformation,
+ iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL,
+...
+}
+
+SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 10 to transfer the IP addresses of the eNB initiating the ANR action --
+ {ID id-x2TNLConfigurationInfo CRITICALITY ignore EXTENSION X2TNLConfigurationInfo PRESENCE conditional
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE and the SON Information Request IE is set to “X2TNL Configuration Info” --}|
+-- Extension for Release 12 to transfer information concerning the source cell of synchronisation and the aggressor cell --
+ {ID id-Synchronisation-Information CRITICALITY ignore EXTENSION SynchronisationInformation PRESENCE conditional
+ -- This IE shall be present if the SON Information IE contains the SON Information Request IE set to “ Activate Muting ” --},
+ ...
+}
+
+
+SynchronisationInformation ::= SEQUENCE {
+ sourceStratumLevel StratumLevel OPTIONAL,
+ listeningSubframePattern ListeningSubframePattern OPTIONAL,
+ aggressoreCGI-List ECGI-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {SynchronisationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SynchronisationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Source-ToTarget-TransparentContainer ::= OCTET STRING
+-- This IE includes a transparent container from the source RAN node to the target RAN node.
+-- The octets of the OCTET STRING are encoded according to the specifications of the target system.
+
+SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+SourceeNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL
+}
+
+SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SRVCCOperationNotPossible ::= ENUMERATED {
+ notPossible,
+ ...
+}
+
+SRVCCOperationPossible ::= ENUMERATED {
+ possible,
+ ...
+}
+
+SRVCCHOIndication ::= ENUMERATED {
+ pSandCS,
+ cSonly,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ e-RABInformationList E-RABInformationList OPTIONAL,
+ targetCell-ID EUTRAN-CGI,
+ subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL,
+ uE-HistoryInformation UE-HistoryInformation,
+ iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-MobilityInformation CRITICALITY ignore EXTENSION MobilityInformation PRESENCE optional}|
+ {ID id-uE-HistoryInformationFromTheUE CRITICALITY ignore EXTENSION UE-HistoryInformationFromTheUE PRESENCE optional},
+ ...
+}
+
+
+SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+SourceNgRanNode-ToTargetNgRanNode-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem
+
+ServedGUMMEIsItem ::= SEQUENCE {
+ servedPLMNs ServedPLMNs,
+ servedGroupIDs ServedGroupIDs,
+ servedMMECs ServedMMECs,
+ iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID
+ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code
+
+ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity
+
+SubscriberProfileIDforRFP ::= INTEGER (1..256)
+
+Subscription-Based-UE-DifferentiationInfo ::= SEQUENCE {
+ periodicCommunicationIndicator ENUMERATED {periodically, ondemand, ...} OPTIONAL,
+ periodicTime INTEGER (1..3600, ...) OPTIONAL,
+ scheduledCommunicationTime ScheduledCommunicationTime OPTIONAL,
+ stationaryIndication ENUMERATED {stationary, mobile, ...} OPTIONAL,
+ trafficProfile ENUMERATED {single-packet, dual-packets, multiple-packets, ...} OPTIONAL,
+ batteryIndication ENUMERATED {battery-powered, battery-powered-not-rechargeable-or-replaceable, not-battery-powered, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { Subscription-Based-UE-DifferentiationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Subscription-Based-UE-DifferentiationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ScheduledCommunicationTime ::= SEQUENCE {
+ dayofWeek BIT STRING (SIZE(7)) OPTIONAL,
+ timeofDayStart INTEGER (0..86399, ...) OPTIONAL,
+ timeofDayEnd INTEGER (0..86399, ...) OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ScheduledCommunicationTime-ExtIEs}} OPTIONAL,
+ ...
+}
+
+ScheduledCommunicationTime-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item
+
+SupportedTAs-Item ::= SEQUENCE {
+ tAC TAC,
+ broadcastPLMNs BPLMNs,
+ iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ -- Extension for Release 13 to transfer RAT-Type per TAC --
+ {ID id-RAT-Type CRITICALITY reject EXTENSION RAT-Type PRESENCE optional},
+ ...
+}
+
+StratumLevel ::= INTEGER (0..3, ...)
+
+SynchronisationStatus ::= ENUMERATED { synchronous, asynchronous, ... }
+
+TimeSynchronisationInfo ::= SEQUENCE {
+ stratumLevel StratumLevel,
+ synchronisationStatus SynchronisationStatus,
+ iE-Extensions ProtocolExtensionContainer { { TimeSynchronisationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TimeSynchronisationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ -- Extension for Release 12 to transfer Muting Availability Indication --
+ {ID id-Muting-Availability-Indication CRITICALITY ignore EXTENSION MutingAvailabilityIndication PRESENCE optional},
+ ...
+}
+
+S-TMSI ::= SEQUENCE {
+ mMEC MME-Code,
+ m-TMSI M-TMSI,
+ iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAIBasedMDT ::= SEQUENCE {
+ tAIListforMDT TAIListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAI
+
+TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI
+
+TAI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC TAC,
+ iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item
+
+TAI-Broadcast-Item ::= SEQUENCE {
+ tAI TAI,
+ completedCellinTAI CompletedCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Cancelled ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-Item
+
+TAI-Cancelled-Item ::= SEQUENCE {
+ tAI TAI,
+ cancelledCellinTAI CancelledCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Cancelled-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TABasedMDT ::= SEQUENCE {
+ tAListforMDT TAListforMDT,
+ iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedMDT-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
+
+TABasedQMC ::= SEQUENCE {
+ tAListforQMC TAListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {TABasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TABasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAC
+
+TAIBasedQMC ::= SEQUENCE {
+ tAIListforQMC TAIListforQMC,
+ iE-Extensions ProtocolExtensionContainer { {TAIBasedQMC-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAIBasedQMC-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAIListforQMC ::= SEQUENCE (SIZE(1..maxnoofTAforQMC)) OF TAI
+
+CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item
+
+CompletedCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+TargetID ::= CHOICE {
+ targeteNB-ID TargeteNB-ID,
+ targetRNC-ID TargetRNC-ID,
+ cGI CGI,
+ ...,
+ targetgNgRanNode-ID TargetNgRanNode-ID
+}
+
+TargeteNB-ID ::= SEQUENCE {
+ global-ENB-ID Global-ENB-ID,
+ selected-TAI TAI,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetRNC-ID ::= SEQUENCE {
+ lAI LAI,
+ rAC RAC OPTIONAL,
+ rNC-ID RNC-ID,
+ extendedRNC-ID ExtendedRNC-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL,
+ ...
+ }
+
+
+TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TargetNgRanNode-ID ::= SEQUENCE {
+ global-RAN-NODE-ID Global-RAN-NODE-ID,
+ selected-TAI FiveGSTAI,
+ iE-Extensions ProtocolExtensionContainer { { TargetNgRanNode-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargetNgRanNode-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-RAN-NODE-ID::= CHOICE {
+ gNB GNB,
+ ng-eNB NG-eNB,
+ ...
+}
+
+GNB ::= SEQUENCE {
+ global-gNB-ID Global-GNB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GNB-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GNB-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-GNB-ID ::= SEQUENCE {
+ pLMN-Identity PLMNidentity,
+ gNB-ID GNB-Identity,
+ iE-Extensions ProtocolExtensionContainer { { Global-GNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Global-GNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GNB-Identity ::= CHOICE {
+ gNB-ID GNB-ID,
+ ...
+}
+
+NG-eNB ::= SEQUENCE {
+ global-ng-eNB-ID Global-ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { { NG-eNB-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NG-eNB-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GNB-ID ::= BIT STRING (SIZE(22..32))
+
+TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE {
+ rRC-Container RRC-Container,
+ iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Target-ToSource-TransparentContainer ::= OCTET STRING
+-- This IE includes a transparent container from the target RAN node to the source RAN node.
+-- The octets of the OCTET STRING are coded according to the specifications of the target system.
+
+TargetRNC-ToSourceRNC-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+TargetBSS-ToSourceBSS-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+TargetNgRanNode-ToSourceNgRanNode-TransparentContainer ::= OCTET STRING
+-- This is a dummy IE used only as a reference to the actual definition in relevant specification.
+
+M1ThresholdEventA2 ::= SEQUENCE {
+ measurementThreshold MeasurementThresholdA2,
+ iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL,
+ ...
+}
+
+M1ThresholdEventA2-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Threshold-RSRP ::= INTEGER(0..97)
+
+Threshold-RSRQ ::= INTEGER(0..34)
+
+TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
+
+Time-UE-StayedInCell ::= INTEGER (0..4095)
+
+Time-UE-StayedInCell-EnhancedGranularity ::= INTEGER (0..40950)
+
+TransportInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uL-GTP-TEID GTP-TEID,
+ ...
+}
+
+TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
+
+TraceActivation ::= SEQUENCE {
+ e-UTRAN-Trace-ID E-UTRAN-Trace-ID,
+ interfacesToTrace InterfacesToTrace,
+ traceDepth TraceDepth,
+ traceCollectionEntityIPAddress TransportLayerAddress,
+ iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Rel-10 to support MDT --
+ { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional }|
+-- Extension for Rel-15 to support QMC –
+ { ID id-UEAppLayerMeasConfig CRITICALITY ignore EXTENSION UEAppLayerMeasConfig PRESENCE optional },
+ ...
+}
+
+TraceDepth ::= ENUMERATED {
+ minimum,
+ medium,
+ maximum,
+ minimumWithoutVendorSpecificExtension,
+ mediumWithoutVendorSpecificExtension,
+ maximumWithoutVendorSpecificExtension,
+ ...
+}
+
+E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8))
+
+TrafficLoadReductionIndication ::= INTEGER (1..99)
+
+TunnelInformation ::= SEQUENCE {
+ transportLayerAddress TransportLayerAddress,
+ uDP-Port-Number Port-Number OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {Tunnel-Information-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Tunnel-Information-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TypeOfError ::= ENUMERATED {
+ not-understood,
+ missing,
+ ...
+}
+
+TAIListForRestart ::= SEQUENCE (SIZE(1..maxnoofRestartTAIs)) OF TAI
+
+-- U
+
+UEAggregateMaximumBitrate ::= SEQUENCE {
+ uEaggregateMaximumBitRateDL BitRate,
+ uEaggregateMaximumBitRateUL BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for maximum bitrate > 10G bps --
+ { ID id-extended-uEaggregateMaximumBitRateDL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional}|
+ { ID id-extended-uEaggregateMaximumBitRateUL CRITICALITY ignore EXTENSION ExtendedBitRate PRESENCE optional},
+ ...
+}
+
+UEAppLayerMeasConfig ::= SEQUENCE {
+ containerForAppLayerMeasConfig OCTET STRING (SIZE(1..1000)),
+ areaScopeOfQMC AreaScopeOfQMC,
+ iE-Extensions ProtocolExtensionContainer { {UEAppLayerMeasConfig-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UEAppLayerMeasConfig-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ {ID id-serviceType CRITICALITY ignore EXTENSION ServiceType PRESENCE optional},
+ ...
+}
+
+UECapabilityInfoRequest ::= ENUMERATED {
+ requested,
+ ...
+}
+
+UE-RetentionInformation ::= ENUMERATED {
+ ues-retained,
+ ...}
+
+UE-S1AP-IDs ::= CHOICE{
+ uE-S1AP-ID-pair UE-S1AP-ID-pair,
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ ...
+}
+
+UE-S1AP-ID-pair ::= SEQUENCE{
+ mME-UE-S1AP-ID MME-UE-S1AP-ID,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID,
+ iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL,
+ ...
+}
+UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE {
+ mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL,
+ eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { UE-associatedLogicalS1-ConnectionItemExtIEs} } OPTIONAL,
+ ...
+}
+
+
+UE-associatedLogicalS1-ConnectionItemExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEIdentityIndexValue ::= BIT STRING (SIZE (10))
+
+UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCellsinUEHistoryInfo)) OF LastVisitedCell-Item
+
+UE-HistoryInformationFromTheUE ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the VisitedCellInfoList field contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UEPagingID ::= CHOICE {
+ s-TMSI S-TMSI,
+ iMSI IMSI,
+ ...
+ }
+
+UERadioCapability ::= OCTET STRING
+
+UERadioCapabilityForPaging ::= OCTET STRING
+
+UE-RLF-Report-Container ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlf-Report-r9 field contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UE-RLF-Report-Container-for-extended-bands ::= OCTET STRING
+-- This IE is a transparent container and shall be encoded as the rlf-Report-v9e0 contained in the UEInformationResponse message as defined in TS 36.331 [16]
+
+UESecurityCapabilities ::= SEQUENCE {
+ encryptionAlgorithms EncryptionAlgorithms,
+ integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
+ iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
+...
+}
+
+UESecurityCapabilities-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UESidelinkAggregateMaximumBitrate ::= SEQUENCE {
+ uESidelinkAggregateMaximumBitRate BitRate,
+ iE-Extensions ProtocolExtensionContainer { {UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UE-Sidelink-Aggregate-MaximumBitrates-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UE-Usage-Type ::= INTEGER (0..255)
+
+UL-CP-SecurityInformation ::= SEQUENCE {
+ ul-NAS-MAC UL-NAS-MAC,
+ ul-NAS-Count UL-NAS-Count,
+ iE-Extensions ProtocolExtensionContainer { { UL-CP-SecurityInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UL-CP-SecurityInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UL-NAS-MAC ::= BIT STRING (SIZE (16))
+
+UL-NAS-Count ::= BIT STRING (SIZE (5))
+
+UnlicensedSpectrumRestriction ::= ENUMERATED {
+ unlicensed-restricted,
+ ...
+}
+
+
+UserLocationInformation ::= SEQUENCE {
+ eutran-cgi EUTRAN-CGI,
+ tai TAI,
+ iE-Extensions ProtocolExtensionContainer { { UserLocationInformation-ExtIEs} } OPTIONAL,
+ ...
+}
+
+UserLocationInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+UEUserPlaneCIoTSupportIndicator ::= ENUMERATED {
+ supported,
+ ...
+}
+
+UE-Application-Layer-Measurement-Capability ::= BIT STRING (SIZE (8))
+
+-- First bit: QoE Measurement for streaming service
+-- Second bit: QoE Measurement for MTSI service
+
+-- Note that undefined bits are considered as a spare bit and spare bits shall be set to 0 by the transmitter and shall be ignored by the receiver.
+
+-- V
+
+VoiceSupportMatchIndicator ::= ENUMERATED {
+ supported,
+ not-supported,
+ ...
+}
+
+V2XServicesAuthorized ::= SEQUENCE {
+ vehicleUE VehicleUE OPTIONAL,
+ pedestrianUE PedestrianUE OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { {V2XServicesAuthorized-ExtIEs} } OPTIONAL,
+ ...
+}
+
+V2XServicesAuthorized-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+VehicleUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+PedestrianUE ::= ENUMERATED {
+ authorized,
+ not-authorized,
+ ...
+}
+
+-- W
+
+WarningAreaCoordinates ::= OCTET STRING (SIZE(1..1024))
+
+WarningAreaList ::= CHOICE {
+ cellIDList ECGIList,
+ trackingAreaListforWarning TAIListforWarning,
+ emergencyAreaIDList EmergencyAreaIDList,
+ ...
+}
+
+
+WarningType ::= OCTET STRING (SIZE (2))
+
+WarningSecurityInfo ::= OCTET STRING (SIZE (50))
+
+
+WarningMessageContents ::= OCTET STRING (SIZE(1..9600))
+
+WLANMeasurementConfiguration ::= SEQUENCE {
+ wlanMeasConfig WLANMeasConfig,
+ wlanMeasConfigNameList WLANMeasConfigNameList OPTIONAL,
+ wlan-rssi ENUMERATED {true, ...} OPTIONAL,
+ wlan-rtt ENUMERATED {true, ...} OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { WLANMeasurementConfiguration-ExtIEs } } OPTIONAL,
+ ...
+}
+
+WLANMeasurementConfiguration-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+WLANMeasConfigNameList ::= SEQUENCE (SIZE(1..maxnoofWLANName)) OF WLANName
+
+WLANMeasConfig::= ENUMERATED {setup,...}
+
+WLANName ::= OCTET STRING (SIZE (1..32))
+
+-- X
+
+
+X2TNLConfigurationInfo ::= SEQUENCE {
+ eNBX2TransportLayerAddresses ENBX2TLAs,
+ iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL,
+ ...
+}
+
+X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+-- Extension for Release 10 to transfer the IPsec and U-plane addresses during ANR action --
+ {ID id-eNBX2ExtendedTransportLayerAddresses CRITICALITY ignore EXTENSION ENBX2ExtTLAs PRESENCE optional}|
+-- Extension for Release 12 to transfer the IP addresses of the X2 GW --
+ {ID id-eNBIndirectX2TransportLayerAddresses CRITICALITY ignore EXTENSION ENBIndirectX2TransportLayerAddresses PRESENCE optional},
+ ...
+}
+
+ENBX2ExtTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2ExtTLAs)) OF ENBX2ExtTLA
+
+ENBX2ExtTLA ::= SEQUENCE {
+ iPsecTLA TransportLayerAddress OPTIONAL,
+ gTPTLAa ENBX2GTPTLAs OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer { { ENBX2ExtTLA-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ENBX2ExtTLA-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ENBX2GTPTLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2GTPTLAs)) OF TransportLayerAddress
+
+ENBIndirectX2TransportLayerAddresses ::= SEQUENCE (SIZE(1..maxnoofeNBX2TLAs)) OF TransportLayerAddress
+
+-- Y
+-- Z
+
+END
+
+
+
+-- **************************************************************
+--
+-- Common definitions
+--
+-- **************************************************************
+
+S1AP-CommonDataTypes {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+Criticality ::= ENUMERATED { reject, ignore, notify }
+
+Presence ::= ENUMERATED { optional, conditional, mandatory }
+
+PrivateIE-ID ::= CHOICE {
+ local INTEGER (0..65535),
+ global OBJECT IDENTIFIER
+}
+
+ProcedureCode ::= INTEGER (0..255)
+
+ProtocolExtensionID ::= INTEGER (0..65535)
+
+ProtocolIE-ID ::= INTEGER (0..65535)
+
+TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
+
+END
+
+
+-- **************************************************************
+--
+-- Constant definitions
+--
+-- **************************************************************
+
+S1AP-Constants {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Constants (4) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ ProcedureCode,
+ ProtocolIE-ID
+
+FROM S1AP-CommonDataTypes;
+
+
+-- **************************************************************
+--
+-- Elementary Procedures
+--
+-- **************************************************************
+
+id-HandoverPreparation ProcedureCode ::= 0
+id-HandoverResourceAllocation ProcedureCode ::= 1
+id-HandoverNotification ProcedureCode ::= 2
+id-PathSwitchRequest ProcedureCode ::= 3
+id-HandoverCancel ProcedureCode ::= 4
+id-E-RABSetup ProcedureCode ::= 5
+id-E-RABModify ProcedureCode ::= 6
+id-E-RABRelease ProcedureCode ::= 7
+id-E-RABReleaseIndication ProcedureCode ::= 8
+id-InitialContextSetup ProcedureCode ::= 9
+id-Paging ProcedureCode ::= 10
+id-downlinkNASTransport ProcedureCode ::= 11
+id-initialUEMessage ProcedureCode ::= 12
+id-uplinkNASTransport ProcedureCode ::= 13
+id-Reset ProcedureCode ::= 14
+id-ErrorIndication ProcedureCode ::= 15
+id-NASNonDeliveryIndication ProcedureCode ::= 16
+id-S1Setup ProcedureCode ::= 17
+id-UEContextReleaseRequest ProcedureCode ::= 18
+id-DownlinkS1cdma2000tunnelling ProcedureCode ::= 19
+id-UplinkS1cdma2000tunnelling ProcedureCode ::= 20
+id-UEContextModification ProcedureCode ::= 21
+id-UECapabilityInfoIndication ProcedureCode ::= 22
+id-UEContextRelease ProcedureCode ::= 23
+id-eNBStatusTransfer ProcedureCode ::= 24
+id-MMEStatusTransfer ProcedureCode ::= 25
+id-DeactivateTrace ProcedureCode ::= 26
+id-TraceStart ProcedureCode ::= 27
+id-TraceFailureIndication ProcedureCode ::= 28
+id-ENBConfigurationUpdate ProcedureCode ::= 29
+id-MMEConfigurationUpdate ProcedureCode ::= 30
+id-LocationReportingControl ProcedureCode ::= 31
+id-LocationReportingFailureIndication ProcedureCode ::= 32
+id-LocationReport ProcedureCode ::= 33
+id-OverloadStart ProcedureCode ::= 34
+id-OverloadStop ProcedureCode ::= 35
+id-WriteReplaceWarning ProcedureCode ::= 36
+id-eNBDirectInformationTransfer ProcedureCode ::= 37
+id-MMEDirectInformationTransfer ProcedureCode ::= 38
+id-PrivateMessage ProcedureCode ::= 39
+id-eNBConfigurationTransfer ProcedureCode ::= 40
+id-MMEConfigurationTransfer ProcedureCode ::= 41
+id-CellTrafficTrace ProcedureCode ::= 42
+id-Kill ProcedureCode ::= 43
+id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44
+id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45
+id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46
+id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47
+id-UERadioCapabilityMatch ProcedureCode ::= 48
+id-PWSRestartIndication ProcedureCode ::= 49
+id-E-RABModificationIndication ProcedureCode ::= 50
+id-PWSFailureIndication ProcedureCode ::= 51
+id-RerouteNASRequest ProcedureCode ::= 52
+id-UEContextModificationIndication ProcedureCode ::= 53
+id-ConnectionEstablishmentIndication ProcedureCode ::= 54
+id-UEContextSuspend ProcedureCode ::= 55
+id-UEContextResume ProcedureCode ::= 56
+id-NASDeliveryIndication ProcedureCode ::= 57
+id-RetrieveUEInformation ProcedureCode ::= 58
+id-UEInformationTransfer ProcedureCode ::= 59
+id-eNBCPRelocationIndication ProcedureCode ::= 60
+id-MMECPRelocationIndication ProcedureCode ::= 61
+id-SecondaryRATDataUsageReport ProcedureCode ::= 62
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+maxPrivateIEs INTEGER ::= 65535
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxnoofCSGs INTEGER ::= 256
+maxnoofE-RABs INTEGER ::= 256
+maxnoofTAIs INTEGER ::= 256
+maxnoofTACs INTEGER ::= 256
+maxnoofErrors INTEGER ::= 256
+maxnoofBPLMNs INTEGER ::= 6
+maxnoofPLMNsPerMME INTEGER ::= 32
+maxnoofEPLMNs INTEGER ::= 15
+maxnoofEPLMNsPlusOne INTEGER ::= 16
+maxnoofForbLACs INTEGER ::= 4096
+maxnoofForbTACs INTEGER ::= 4096
+maxnoofIndividualS1ConnectionsToReset INTEGER ::= 256
+maxnoofCellsinUEHistoryInfo INTEGER ::= 16
+maxnoofCellsineNB INTEGER ::= 256
+maxnoofTAIforWarning INTEGER ::= 65535
+maxnoofCellID INTEGER ::= 65535
+maxnoofDCNs INTEGER ::= 32
+maxnoofEmergencyAreaID INTEGER ::= 65535
+maxnoofCellinTAI INTEGER ::= 65535
+maxnoofCellinEAI INTEGER ::= 65535
+maxnoofeNBX2TLAs INTEGER ::= 2
+maxnoofeNBX2ExtTLAs INTEGER ::= 16
+maxnoofeNBX2GTPTLAs INTEGER ::= 16
+maxnoofRATs INTEGER ::= 8
+maxnoofGroupIDs INTEGER ::= 65535
+maxnoofMMECs INTEGER ::= 256
+maxnoofCellIDforMDT INTEGER ::= 32
+maxnoofTAforMDT INTEGER ::= 8
+maxnoofMDTPLMNs INTEGER ::= 16
+maxnoofCellsforRestart INTEGER ::= 256
+maxnoofRestartTAIs INTEGER ::= 2048
+maxnoofRestartEmergencyAreaIDs INTEGER ::= 256
+maxEARFCN INTEGER ::= 262143
+maxnoofMBSFNAreaMDT INTEGER ::= 8
+maxnoofRecommendedCells INTEGER ::= 16
+maxnoofRecommendedENBs INTEGER ::= 16
+maxnooftimeperiods INTEGER ::= 2
+maxnoofCellIDforQMC INTEGER ::= 32
+maxnoofTAforQMC INTEGER ::= 8
+maxnoofPLMNforQMC INTEGER ::= 16
+maxnoofBluetoothName INTEGER ::= 4
+maxnoofWLANName INTEGER ::= 4
+
+
+
+-- **************************************************************
+--
+-- IEs
+--
+-- **************************************************************
+
+id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
+id-HandoverType ProtocolIE-ID ::= 1
+id-Cause ProtocolIE-ID ::= 2
+id-SourceID ProtocolIE-ID ::= 3
+id-TargetID ProtocolIE-ID ::= 4
+id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
+id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
+id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
+id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
+id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
+id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
+id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
+id-E-RABAdmittedList ProtocolIE-ID ::= 18
+id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
+id-E-RABAdmittedItem ProtocolIE-ID ::= 20
+id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
+id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
+id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
+id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
+id-TraceActivation ProtocolIE-ID ::= 25
+id-NAS-PDU ProtocolIE-ID ::= 26
+id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
+id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
+id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
+id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
+id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
+id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
+id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
+id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
+id-E-RABItem ProtocolIE-ID ::= 35
+id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
+id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
+id-E-RABReleaseItem ProtocolIE-ID ::= 38
+id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
+id-SecurityContext ProtocolIE-ID ::= 40
+id-HandoverRestrictionList ProtocolIE-ID ::= 41
+id-UEPagingID ProtocolIE-ID ::= 43
+id-pagingDRX ProtocolIE-ID ::= 44
+id-TAIList ProtocolIE-ID ::= 46
+id-TAIItem ProtocolIE-ID ::= 47
+id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
+id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
+id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
+id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
+id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
+id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
+id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
+id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
+id-CriticalityDiagnostics ProtocolIE-ID ::= 58
+id-Global-ENB-ID ProtocolIE-ID ::= 59
+id-eNBname ProtocolIE-ID ::= 60
+id-MMEname ProtocolIE-ID ::= 61
+id-ServedPLMNs ProtocolIE-ID ::= 63
+id-SupportedTAs ProtocolIE-ID ::= 64
+id-TimeToWait ProtocolIE-ID ::= 65
+id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
+id-TAI ProtocolIE-ID ::= 67
+id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
+id-cdma2000PDU ProtocolIE-ID ::= 70
+id-cdma2000RATType ProtocolIE-ID ::= 71
+id-cdma2000SectorID ProtocolIE-ID ::= 72
+id-SecurityKey ProtocolIE-ID ::= 73
+id-UERadioCapability ProtocolIE-ID ::= 74
+id-GUMMEI-ID ProtocolIE-ID ::= 75
+id-E-RABInformationListItem ProtocolIE-ID ::= 78
+id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
+id-UEIdentityIndexValue ProtocolIE-ID ::= 80
+id-cdma2000HOStatus ProtocolIE-ID ::= 83
+id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
+id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
+id-RelativeMMECapacity ProtocolIE-ID ::= 87
+id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
+id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
+id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
+id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
+id-ResetType ProtocolIE-ID ::= 92
+id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
+id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
+id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
+id-S-TMSI ProtocolIE-ID ::= 96
+id-cdma2000OneXRAND ProtocolIE-ID ::= 97
+id-RequestType ProtocolIE-ID ::= 98
+id-UE-S1AP-IDs ProtocolIE-ID ::= 99
+id-EUTRAN-CGI ProtocolIE-ID ::= 100
+id-OverloadResponse ProtocolIE-ID ::= 101
+id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
+id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
+id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
+id-ServedGUMMEIs ProtocolIE-ID ::= 105
+id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
+id-UESecurityCapabilities ProtocolIE-ID ::= 107
+id-CSFallbackIndicator ProtocolIE-ID ::= 108
+id-CNDomain ProtocolIE-ID ::= 109
+id-E-RABReleasedList ProtocolIE-ID ::= 110
+id-MessageIdentifier ProtocolIE-ID ::= 111
+id-SerialNumber ProtocolIE-ID ::= 112
+id-WarningAreaList ProtocolIE-ID ::= 113
+id-RepetitionPeriod ProtocolIE-ID ::= 114
+id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
+id-WarningType ProtocolIE-ID ::= 116
+id-WarningSecurityInfo ProtocolIE-ID ::= 117
+id-DataCodingScheme ProtocolIE-ID ::= 118
+id-WarningMessageContents ProtocolIE-ID ::= 119
+id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
+id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
+id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
+id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
+id-SRVCCOperationPossible ProtocolIE-ID ::= 124
+id-SRVCCHOIndication ProtocolIE-ID ::= 125
+id-NAS-DownlinkCount ProtocolIE-ID ::= 126
+id-CSG-Id ProtocolIE-ID ::= 127
+id-CSG-IdList ProtocolIE-ID ::= 128
+id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
+id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
+id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
+id-MSClassmark2 ProtocolIE-ID ::= 132
+id-MSClassmark3 ProtocolIE-ID ::= 133
+id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
+id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
+id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
+id-DefaultPagingDRX ProtocolIE-ID ::= 137
+id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
+id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
+id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140
+id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141
+id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142
+id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143
+id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144
+id-CellAccessMode ProtocolIE-ID ::= 145
+id-CSGMembershipStatus ProtocolIE-ID ::= 146
+id-LPPa-PDU ProtocolIE-ID ::= 147
+id-Routing-ID ProtocolIE-ID ::= 148
+id-Time-Synchronisation-Info ProtocolIE-ID ::= 149
+id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150
+id-PagingPriority ProtocolIE-ID ::= 151
+id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152
+id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153
+id-GUMMEIList ProtocolIE-ID ::= 154
+id-GW-TransportLayerAddress ProtocolIE-ID ::= 155
+id-Correlation-ID ProtocolIE-ID ::= 156
+id-SourceMME-GUMMEI ProtocolIE-ID ::= 157
+id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158
+id-RegisteredLAI ProtocolIE-ID ::= 159
+id-RelayNode-Indicator ProtocolIE-ID ::= 160
+id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161
+id-MDTConfiguration ProtocolIE-ID ::= 162
+id-MMERelaySupportIndicator ProtocolIE-ID ::= 163
+id-GWContextReleaseIndication ProtocolIE-ID ::= 164
+id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165
+id-PrivacyIndicator ProtocolIE-ID ::= 166
+id-Time-UE-StayedInCell-EnhancedGranularity ProtocolIE-ID ::= 167
+id-HO-Cause ProtocolIE-ID ::= 168
+id-VoiceSupportMatchIndicator ProtocolIE-ID ::= 169
+id-GUMMEIType ProtocolIE-ID ::= 170
+id-M3Configuration ProtocolIE-ID ::= 171
+id-M4Configuration ProtocolIE-ID ::= 172
+id-M5Configuration ProtocolIE-ID ::= 173
+id-MDT-Location-Info ProtocolIE-ID ::= 174
+id-MobilityInformation ProtocolIE-ID ::= 175
+id-Tunnel-Information-for-BBF ProtocolIE-ID ::= 176
+id-ManagementBasedMDTPLMNList ProtocolIE-ID ::= 177
+id-SignallingBasedMDTPLMNList ProtocolIE-ID ::= 178
+id-ULCOUNTValueExtended ProtocolIE-ID ::= 179
+id-DLCOUNTValueExtended ProtocolIE-ID ::= 180
+id-ReceiveStatusOfULPDCPSDUsExtended ProtocolIE-ID ::= 181
+id-ECGIListForRestart ProtocolIE-ID ::= 182
+id-SIPTO-Correlation-ID ProtocolIE-ID ::= 183
+id-SIPTO-L-GW-TransportLayerAddress ProtocolIE-ID ::= 184
+id-TransportInformation ProtocolIE-ID ::= 185
+id-LHN-ID ProtocolIE-ID ::= 186
+id-AdditionalCSFallbackIndicator ProtocolIE-ID ::= 187
+id-TAIListForRestart ProtocolIE-ID ::= 188
+id-UserLocationInformation ProtocolIE-ID ::= 189
+id-EmergencyAreaIDListForRestart ProtocolIE-ID ::= 190
+id-KillAllWarningMessages ProtocolIE-ID ::= 191
+id-Masked-IMEISV ProtocolIE-ID ::= 192
+id-eNBIndirectX2TransportLayerAddresses ProtocolIE-ID ::= 193
+id-uE-HistoryInformationFromTheUE ProtocolIE-ID ::= 194
+id-ProSeAuthorized ProtocolIE-ID ::= 195
+id-ExpectedUEBehaviour ProtocolIE-ID ::= 196
+id-LoggedMBSFNMDT ProtocolIE-ID ::= 197
+id-UERadioCapabilityForPaging ProtocolIE-ID ::= 198
+id-E-RABToBeModifiedListBearerModInd ProtocolIE-ID ::= 199
+id-E-RABToBeModifiedItemBearerModInd ProtocolIE-ID ::= 200
+id-E-RABNotToBeModifiedListBearerModInd ProtocolIE-ID ::= 201
+id-E-RABNotToBeModifiedItemBearerModInd ProtocolIE-ID ::= 202
+id-E-RABModifyListBearerModConf ProtocolIE-ID ::= 203
+id-E-RABModifyItemBearerModConf ProtocolIE-ID ::= 204
+id-E-RABFailedToModifyListBearerModConf ProtocolIE-ID ::= 205
+id-SON-Information-Report ProtocolIE-ID ::= 206
+id-Muting-Availability-Indication ProtocolIE-ID ::= 207
+id-Muting-Pattern-Information ProtocolIE-ID ::= 208
+id-Synchronisation-Information ProtocolIE-ID ::= 209
+id-E-RABToBeReleasedListBearerModConf ProtocolIE-ID ::= 210
+id-AssistanceDataForPaging ProtocolIE-ID ::= 211
+id-CellIdentifierAndCELevelForCECapableUEs ProtocolIE-ID ::= 212
+id-InformationOnRecommendedCellsAndENBsForPaging ProtocolIE-ID ::= 213
+id-RecommendedCellItem ProtocolIE-ID ::= 214
+id-RecommendedENBItem ProtocolIE-ID ::= 215
+id-ProSeUEtoNetworkRelaying ProtocolIE-ID ::= 216
+id-ULCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 217
+id-DLCOUNTValuePDCP-SNlength18 ProtocolIE-ID ::= 218
+id-ReceiveStatusOfULPDCPSDUsPDCP-SNlength18 ProtocolIE-ID ::= 219
+id-M6Configuration ProtocolIE-ID ::= 220
+id-M7Configuration ProtocolIE-ID ::= 221
+id-PWSfailedECGIList ProtocolIE-ID ::= 222
+id-MME-Group-ID ProtocolIE-ID ::= 223
+id-Additional-GUTI ProtocolIE-ID ::= 224
+id-S1-Message ProtocolIE-ID ::= 225
+id-CSGMembershipInfo ProtocolIE-ID ::= 226
+id-Paging-eDRXInformation ProtocolIE-ID ::= 227
+id-UE-RetentionInformation ProtocolIE-ID ::= 228
+id-UE-Usage-Type ProtocolIE-ID ::= 230
+id-extended-UEIdentityIndexValue ProtocolIE-ID ::= 231
+id-RAT-Type ProtocolIE-ID ::= 232
+id-BearerType ProtocolIE-ID ::= 233
+id-NB-IoT-DefaultPagingDRX ProtocolIE-ID ::= 234
+id-E-RABFailedToResumeListResumeReq ProtocolIE-ID ::= 235
+id-E-RABFailedToResumeItemResumeReq ProtocolIE-ID ::= 236
+id-E-RABFailedToResumeListResumeRes ProtocolIE-ID ::= 237
+id-E-RABFailedToResumeItemResumeRes ProtocolIE-ID ::= 238
+id-NB-IoT-Paging-eDRXInformation ProtocolIE-ID ::= 239
+id-V2XServicesAuthorized ProtocolIE-ID ::= 240
+id-UEUserPlaneCIoTSupportIndicator ProtocolIE-ID ::= 241
+id-CE-mode-B-SupportIndicator ProtocolIE-ID ::= 242
+id-SRVCCOperationNotPossible ProtocolIE-ID ::= 243
+id-NB-IoT-UEIdentityIndexValue ProtocolIE-ID ::= 244
+id-RRC-Resume-Cause ProtocolIE-ID ::= 245
+id-DCN-ID ProtocolIE-ID ::= 246
+id-ServedDCNs ProtocolIE-ID ::= 247
+id-UESidelinkAggregateMaximumBitrate ProtocolIE-ID ::= 248
+id-DLNASPDUDeliveryAckRequest ProtocolIE-ID ::= 249
+id-Coverage-Level ProtocolIE-ID ::= 250
+id-EnhancedCoverageRestricted ProtocolIE-ID ::= 251
+id-UE-Level-QoS-Parameters ProtocolIE-ID ::= 252
+id-DL-CP-SecurityInformation ProtocolIE-ID ::= 253
+id-UL-CP-SecurityInformation ProtocolIE-ID ::= 254
+id-extended-e-RAB-MaximumBitrateDL ProtocolIE-ID ::= 255
+id-extended-e-RAB-MaximumBitrateUL ProtocolIE-ID ::= 256
+id-extended-e-RAB-GuaranteedBitrateDL ProtocolIE-ID ::= 257
+id-extended-e-RAB-GuaranteedBitrateUL ProtocolIE-ID ::= 258
+id-extended-uEaggregateMaximumBitRateDL ProtocolIE-ID ::= 259
+id-extended-uEaggregateMaximumBitRateUL ProtocolIE-ID ::= 260
+id-NRrestrictioninEPSasSecondaryRAT ProtocolIE-ID ::= 261
+id-UEAppLayerMeasConfig ProtocolIE-ID ::= 262
+id-UE-Application-Layer-Measurement-Capability ProtocolIE-ID ::= 263
+id-SecondaryRATDataUsageReportList ProtocolIE-ID ::= 264
+id-SecondaryRATDataUsageReportItem ProtocolIE-ID ::= 265
+id-HandoverFlag ProtocolIE-ID ::= 266
+id-E-RABUsageReportItem ProtocolIE-ID ::= 267
+id-SecondaryRATDataUsageRequest ProtocolIE-ID ::= 268
+id-NRUESecurityCapabilities ProtocolIE-ID ::= 269
+id-UnlicensedSpectrumRestriction ProtocolIE-ID ::= 270
+id-CE-ModeBRestricted ProtocolIE-ID ::= 271
+id-LTE-M-Indication ProtocolIE-ID ::= 272
+id-DownlinkPacketLossRate ProtocolIE-ID ::= 273
+id-UplinkPacketLossRate ProtocolIE-ID ::= 274
+id-UECapabilityInfoRequest ProtocolIE-ID ::= 275
+id-serviceType ProtocolIE-ID ::= 276
+id-AerialUEsubscriptionInformation ProtocolIE-ID ::= 277
+id-Subscription-Based-UE-DifferentiationInfo ProtocolIE-ID ::= 278
+id-EndIndication ProtocolIE-ID ::= 280
+id-EDT-Session ProtocolIE-ID ::= 281
+id-CNTypeRestrictions ProtocolIE-ID ::= 282
+id-PendingDataIndication ProtocolIE-ID ::= 283
+id-BluetoothMeasurementConfiguration ProtocolIE-ID ::= 284
+id-WLANMeasurementConfiguration ProtocolIE-ID ::= 285
+id-WarningAreaCoordinates ProtocolIE-ID ::= 286
+id-NRrestrictionin5GS ProtocolIE-ID ::= 287
+
+END
+
+
+-- **************************************************************
+--
+-- Container definitions
+--
+-- **************************************************************
+
+S1AP-Containers {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
+eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-Containers (5) }
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+--
+-- IE parameter types from other modules.
+--
+-- **************************************************************
+
+IMPORTS
+ Criticality,
+ Presence,
+ PrivateIE-ID,
+ ProtocolExtensionID,
+ ProtocolIE-ID
+FROM S1AP-CommonDataTypes
+
+ maxPrivateIEs,
+ maxProtocolExtensions,
+ maxProtocolIEs
+FROM S1AP-Constants;
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-IES ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol IEs
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-IES-PAIR ::= CLASS {
+ &id ProtocolIE-ID UNIQUE,
+ &firstCriticality Criticality,
+ &FirstValue,
+ &secondCriticality Criticality,
+ &SecondValue,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ FIRST CRITICALITY &firstCriticality
+ FIRST TYPE &FirstValue
+ SECOND CRITICALITY &secondCriticality
+ SECOND TYPE &SecondValue
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Protocol Extensions
+--
+-- **************************************************************
+
+S1AP-PROTOCOL-EXTENSION ::= CLASS {
+ &id ProtocolExtensionID UNIQUE,
+ &criticality Criticality,
+ &Extension,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ EXTENSION &Extension
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Class Definition for Private IEs
+--
+-- **************************************************************
+
+S1AP-PRIVATE-IES ::= CLASS {
+ &id PrivateIE-ID,
+ &criticality Criticality,
+ &Value,
+ &presence Presence
+}
+WITH SYNTAX {
+ ID &id
+ CRITICALITY &criticality
+ TYPE &Value
+ PRESENCE &presence
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IEs
+--
+-- **************************************************************
+
+ProtocolIE-Container {S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-SingleContainer {S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ ProtocolIE-Field {{IEsSetParam}}
+
+ProtocolIE-Field {S1AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-IES.&id ({IEsSetParam}),
+ criticality S1AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
+ value S1AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Protocol IE Pairs
+--
+-- **************************************************************
+
+ProtocolIE-ContainerPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF
+ ProtocolIE-FieldPair {{IEsSetParam}}
+
+ProtocolIE-FieldPair {S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
+ firstCriticality S1AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
+ firstValue S1AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
+ secondCriticality S1AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
+ secondValue S1AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container Lists for Protocol IE Containers
+--
+-- **************************************************************
+
+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-SingleContainer {{IEsSetParam}}
+
+ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, S1AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
+ SEQUENCE (SIZE (lowerBound..upperBound)) OF
+ ProtocolIE-ContainerPair {{IEsSetParam}}
+
+-- **************************************************************
+--
+-- Container for Protocol Extensions
+--
+-- **************************************************************
+
+ProtocolExtensionContainer {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
+ ProtocolExtensionField {{ExtensionSetParam}}
+
+ProtocolExtensionField {S1AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
+ id S1AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
+ criticality S1AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
+ extensionValue S1AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
+}
+
+-- **************************************************************
+--
+-- Container for Private IEs
+--
+-- **************************************************************
+
+PrivateIE-Container {S1AP-PRIVATE-IES : IEsSetParam } ::=
+ SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
+ PrivateIE-Field {{IEsSetParam}}
+
+PrivateIE-Field {S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
+ id S1AP-PRIVATE-IES.&id ({IEsSetParam}),
+ criticality S1AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
+ value S1AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
+}
+
+END
+
+-- **************************************************************
+--
+-- IE definitions for the SON Transfer application
+-- The IEs in this ASN.1 module shall be defined and encoded
+-- using the same rules as applicable for the S1AP-IEs module.
+--
+-- **************************************************************
+SonTransfer-IEs
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+--
+-- Generic IEs for the SON Transfer application
+--
+
+SONtransferApplicationIdentity ::= ENUMERATED {
+ cell-load-reporting,
+ ...,
+ multi-cell-load-reporting,
+ event-triggered-cell-load-reporting,
+ ho-reporting,
+ eutran-cell-activation,
+ energy-savings-indication,
+ failure-event-reporting
+}
+
+SONtransferRequestContainer ::= CHOICE{
+ cellLoadReporting NULL,
+ ...,
+ multiCellLoadReporting MultiCellLoadReportingRequest,
+ eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingRequest,
+ hOReporting HOReport,
+ eutranCellActivation CellActivationRequest,
+ energySavingsIndication CellStateIndication,
+ failureEventReporting FailureEventReport
+}
+
+SONtransferResponseContainer ::= CHOICE{
+ cellLoadReporting CellLoadReportingResponse,
+ ...,
+ multiCellLoadReporting MultiCellLoadReportingResponse,
+ eventTriggeredCellLoadReporting EventTriggeredCellLoadReportingResponse,
+ hOReporting NULL,
+ eutranCellActivation CellActivationResponse,
+ energySavingsIndication NULL,
+ failureEventReporting NULL
+}
+
+SONtransferCause ::= CHOICE {
+ cellLoadReporting CellLoadReportingCause,
+ ...,
+ multiCellLoadReporting CellLoadReportingCause,
+ eventTriggeredCellLoadReporting CellLoadReportingCause,
+ hOReporting HOReportingCause,
+ eutranCellActivation CellActivationCause,
+ energySavingsIndication CellStateIndicationCause,
+ failureEventReporting FailureEventReportingCause
+}
+
+
+CellLoadReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+HOReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+CellActivationCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+CellStateIndicationCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+FailureEventReportingCause ::= ENUMERATED {
+ application-container-syntax-error,
+ inconsistent-reporting-cell-identifier,
+ unspecified,
+ ...
+}
+
+--
+-- IEs for Cell Load Reporting application
+--
+
+CellLoadReportingResponse::= CHOICE{
+ eUTRAN EUTRANcellLoadReportingResponse,
+ uTRAN OCTET STRING,
+ gERAN OCTET STRING,
+ ...,
+ eHRPD EHRPDSectorLoadReportingResponse
+}
+
+CompositeAvailableCapacityGroup ::= OCTET STRING
+
+EUTRANcellLoadReportingResponse ::= SEQUENCE {
+ compositeAvailableCapacityGroup CompositeAvailableCapacityGroup,
+ ...
+}
+
+--
+-- IEs for Multi-Cell Load Reporting application
+--
+
+EUTRANResponse::= SEQUENCE {
+ cell-ID OCTET STRING,
+ eUTRANcellLoadReportingResponse EUTRANcellLoadReportingResponse,
+ ...
+}
+
+EHRPD-Sector-ID ::= OCTET STRING (SIZE (16))
+
+IRAT-Cell-ID ::= CHOICE{
+ eUTRAN OCTET STRING,
+ uTRAN OCTET STRING,
+ gERAN OCTET STRING,
+ ...,
+ eHRPD EHRPD-Sector-ID
+}
+
+RequestedCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF IRAT-Cell-ID
+
+MultiCellLoadReportingRequest::= SEQUENCE {
+ requestedCellList RequestedCellList,
+ ...
+}
+
+ReportingCellList-Item ::= SEQUENCE {
+ cell-ID IRAT-Cell-ID,
+ ...
+}
+
+ReportingCellList ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF ReportingCellList-Item
+
+MultiCellLoadReportingResponse ::= SEQUENCE (SIZE(1.. maxnoofIRATReportingCells)) OF MultiCellLoadReportingResponse-Item
+
+MultiCellLoadReportingResponse-Item ::= CHOICE{
+ eUTRANResponse EUTRANResponse,
+ uTRANResponse OCTET STRING,
+ gERANResponse OCTET STRING,
+ ...,
+ eHRPD EHRPDMultiSectorLoadReportingResponseItem
+}
+
+
+--
+-- IEs for Event-triggered Cell Load Reporting application
+--
+
+NumberOfMeasurementReportingLevels ::= ENUMERATED {
+ rl2,
+ rl3,
+ rl4,
+ rl5,
+ rl10,
+ ...
+}
+
+EventTriggeredCellLoadReportingRequest ::= SEQUENCE {
+ numberOfMeasurementReportingLevels NumberOfMeasurementReportingLevels,
+ ...
+}
+
+OverloadFlag ::= ENUMERATED {
+ overload,
+ ...
+}
+
+EventTriggeredCellLoadReportingResponse ::= SEQUENCE {
+ cellLoadReportingResponse CellLoadReportingResponse,
+ overloadFlag OverloadFlag OPTIONAL,
+ ...
+}
+
+--
+-- IEs for HO Reporting application
+--
+
+
+
+HOReport::= SEQUENCE {
+ hoType HoType,
+ hoReportType HoReportType,
+ hosourceID IRAT-Cell-ID,
+ hoTargetID IRAT-Cell-ID,
+ candidateCellList CandidateCellList,
+ ...,
+ candidatePCIList CandidatePCIList OPTIONAL
+}
+
+HoType ::= ENUMERATED {
+ ltetoutran,
+ ltetogeran,
+ ...
+}
+
+HoReportType ::= ENUMERATED {
+ unnecessaryhotoanotherrat,
+ ...,
+ earlyirathandover
+}
+
+CandidateCellList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF IRAT-Cell-ID
+
+CandidatePCIList ::= SEQUENCE (SIZE(1..maxnoofcandidateCells)) OF CandidatePCI
+
+CandidatePCI ::= SEQUENCE {
+ pCI INTEGER (0..503),
+ eARFCN OCTET STRING,
+ ...
+}
+
+--
+-- IEs for E-UTRAN Cell Activation application
+--
+
+CellActivationRequest ::= SEQUENCE {
+ cellsToActivateList CellsToActivateList,
+ minimumActivationTime INTEGER (1..60) OPTIONAL,
+...
+}
+
+CellsToActivateList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF CellsToActivateList-Item
+
+CellsToActivateList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ ...
+}
+
+CellActivationResponse ::= SEQUENCE {
+ activatedCellsList ActivatedCellsList,
+ ...
+}
+
+ActivatedCellsList ::= SEQUENCE (SIZE(0.. maxnoofCellineNB)) OF ActivatedCellsList-Item
+
+ActivatedCellsList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ ...
+}
+
+--
+-- IEs for Energy Savings Indication application
+--
+
+CellStateIndication ::= SEQUENCE {
+ notificationCellList NotificationCellList,
+ ...
+}
+
+NotificationCellList ::= SEQUENCE (SIZE(1.. maxnoofCellineNB)) OF NotificationCellList-Item
+
+NotificationCellList-Item ::= SEQUENCE {
+ cell-ID OCTET STRING,
+ notifyFlag NotifyFlag,
+ ...
+}
+
+NotifyFlag ::= ENUMERATED {
+ activated,
+ deactivated,
+ ...
+}
+
+FailureEventReport::= CHOICE {
+ tooEarlyInterRATHOReportFromEUTRAN TooEarlyInterRATHOReportReportFromEUTRAN,
+ ...
+}
+
+TooEarlyInterRATHOReportReportFromEUTRAN ::= SEQUENCE {
+ uERLFReportContainer OCTET STRING, -- as defined in TS 36.331 [16] --
+ mobilityInformation MobilityInformation OPTIONAL,
+ ...
+}
+
+MobilityInformation ::= BIT STRING (SIZE(32))
+
+
+--
+-- IEs for reporting of eHRPD load
+--
+
+EHRPDCapacityValue ::= INTEGER (0..100)
+
+EHRPDSectorCapacityClassValue ::= INTEGER (1..100, ...)
+
+EHRPDSectorLoadReportingResponse ::= SEQUENCE {
+ dL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity,
+ uL-EHRPD-CompositeAvailableCapacity EHRPDCompositeAvailableCapacity,
+ ...
+}
+
+EHRPDCompositeAvailableCapacity ::= SEQUENCE {
+ eHRPDSectorCapacityClassValue EHRPDSectorCapacityClassValue,
+ eHRPDCapacityValue EHRPDCapacityValue,
+ ...
+}
+
+EHRPDMultiSectorLoadReportingResponseItem ::= SEQUENCE {
+ eHRPD-Sector-ID EHRPD-Sector-ID,
+ eHRPDSectorLoadReportingResponse EHRPDSectorLoadReportingResponse,
+ ...
+}
+
+
+-- **************************************************************
+--
+-- Constants
+--
+-- **************************************************************
+
+maxnoofIRATReportingCells INTEGER ::= 128
+maxnoofcandidateCells INTEGER ::= 16
+maxnoofCellineNB INTEGER ::= 256
+
+END
diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index 3b567b257b..a299d3d1c5 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -207,7 +207,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
// ****************************************
// Common RX procedures subframe n
- T(T_GNB_PHY_DL_TICK, T_INT(eNB->Mod_id), T_INT(proc->frame_tx), T_INT(proc->subframe_tx));
+ T(T_ENB_PHY_DL_TICK, T_INT(eNB->Mod_id), T_INT(proc->frame_tx), T_INT(proc->subframe_tx));
// if this is IF5 or 3GPP_eNB
if (eNB && eNB->RU_list && eNB->RU_list[0] && eNB->RU_list[0]->function < NGFI_RAU_IF4p5) {
diff --git a/targets/RT/USER/nr-softmodem.c b/targets/RT/USER/nr-softmodem.c
index fffdecce9c..58b41d1a12 100644
--- a/targets/RT/USER/nr-softmodem.c
+++ b/targets/RT/USER/nr-softmodem.c
@@ -886,7 +886,6 @@ static void wait_nfapi_init(char *thread_name) {
int main( int argc, char **argv )
{
- crcTableInit();
int i;
#if defined (XFORMS)
//void *status;