Commit d45fcd6f authored by Wang Tsu-Han's avatar Wang Tsu-Han

Merge branch 'develop' into parallel-phy-test-EMUFH

Conflicts:
	openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c
	openair1/PHY/LTE_UE_TRANSPORT/get_pmi.c
	openair2/LAYER2/MAC/eNB_scheduler_phytest.c
	openair3/S1AP/MESSAGES/ASN1/R8/s1ap-8.10.0.asn1
	targets/RT/USER/lte-enb.c
	targets/RT/USER/lte-ru.c
	targets/RT/USER/rfsim.h
parents aa00a473 e83a7fca
#!/bin/bash
function usage {
echo "OAI Local Build Check script"
echo " Original Author: Raphael Defosseux"
echo ""
echo "Usage:"
echo "------"
echo " buildLocally.sh [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
echo " --workspace #### OR -ws ####"
echo " Specify the workspace"
echo ""
echo " --help OR -h"
echo " Print this help message."
echo ""
}
if [ $# -ne 2 ] && [ $# -ne 1 ]
then
echo "Syntax Error: not the correct number of arguments"
echo ""
usage
exit 1
fi
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift
usage
exit 0
;;
-ws|--workspace)
JENKINS_WKSP="$2"
shift
shift
;;
*)
echo "Syntax Error: unknown option: $key"
echo ""
usage
exit 1
esac
done
cd $JENKINS_WKSP
STATUS=0
############################################################
# Creating a tmp folder to store results and artifacts
############################################################
if [ ! -d $JENKINS_WKSP/archives ]
then
mkdir $JENKINS_WKSP/archives
fi
source oaienv
cd $JENKINS_WKSP/cmake_targets
############################################################
# Building eNb with USRP option
############################################################
ARCHIVES_LOC=$JENKINS_WKSP/archives/enb_usrp
if [ ! -d $ARCHIVES_LOC ]
then
mkdir $ARCHIVES_LOC
fi
./build_oai --eNB -w USRP -c
# Generated log files:
if [ -f $JENKINS_WKSP/cmake_targets/log/lte-softmodem.Rel14.txt ]
then
LOCAL_STAT=`egrep -c "Built target lte-softmodem" $JENKINS_WKSP/cmake_targets/log/lte-softmodem.Rel14.txt`
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
cp $JENKINS_WKSP/cmake_targets/log/lte-softmodem.Rel14.txt $ARCHIVES_LOC
else
STATUS=-1
fi
if [ -f $JENKINS_WKSP/cmake_targets/log/params_libconfig.Rel14.txt ]
then
LOCAL_STAT=`egrep -c "Built target params_libconfig" $JENKINS_WKSP/cmake_targets/log/params_libconfig.Rel14.txt`
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
cp $JENKINS_WKSP/cmake_targets/log/params_libconfig.Rel14.txt $ARCHIVES_LOC
else
STATUS=-1
fi
if [ -f $JENKINS_WKSP/cmake_targets/log/coding.Rel14.txt ]
then
LOCAL_STAT=`egrep -c "Built target coding" $JENKINS_WKSP/cmake_targets/log/coding.Rel14.txt`
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
cp $JENKINS_WKSP/cmake_targets/log/coding.Rel14.txt $ARCHIVES_LOC
else
STATUS=-1
fi
if [ -f $JENKINS_WKSP/cmake_targets/log/oai_usrpdevif.Rel14.txt ]
then
LOCAL_STAT=`egrep -c "Built target oai_usrpdevif" $JENKINS_WKSP/cmake_targets/log/oai_usrpdevif.Rel14.txt`
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
cp $JENKINS_WKSP/cmake_targets/log/oai_usrpdevif.Rel14.txt $ARCHIVES_LOC
else
STATUS=-1
fi
############################################################
# Building basic simulator
############################################################
ARCHIVES_LOC=$JENKINS_WKSP/archives/basic_sim
if [ ! -d $ARCHIVES_LOC ]
then
mkdir $ARCHIVES_LOC
fi
cd $JENKINS_WKSP/cmake_targets
./build_oai --basic-simulator -c
# Generated log files:
if [ -f $JENKINS_WKSP/cmake_targets/log/basic_simulator_enb.txt ]
then
LOCAL_STAT=`egrep -c "Built target lte-softmodem" $JENKINS_WKSP/cmake_targets/log/basic_simulator_enb.txt`
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
cp $JENKINS_WKSP/cmake_targets/log/basic_simulator_enb.txt $ARCHIVES_LOC
else
STATUS=-1
fi
if [ -f $JENKINS_WKSP/cmake_targets/log/basic_simulator_ue.txt ]
then
LOCAL_STAT=`egrep -c "Built target lte-uesoftmodem" $JENKINS_WKSP/cmake_targets/log/basic_simulator_ue.txt`
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
cp $JENKINS_WKSP/cmake_targets/log/basic_simulator_ue.txt $ARCHIVES_LOC
else
STATUS=-1
fi
if [ -f $JENKINS_WKSP/cmake_targets/log/conf2uedata.Rel14.txt ]
then
LOCAL_STAT=`egrep -c "Built target conf2uedata" $JENKINS_WKSP/cmake_targets/log/conf2uedata.Rel14.txt`
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
cp $JENKINS_WKSP/cmake_targets/log/conf2uedata.Rel14.txt $ARCHIVES_LOC
else
STATUS=-1
fi
############################################################
# Creating a zip for Jenkins archiving
############################################################
cd $JENKINS_WKSP/archives/
zip -r local_build_logs.zip basic_sim enb_usrp
exit $STATUS
#!/bin/bash
function usage {
echo "OAI VM Build Check script"
echo " Original Author: Raphael Defosseux"
echo " Requirements:"
echo " -- uvtool uvtool-libvirt apt-cacher"
echo " -- xenial image already synced"
echo " Default:"
echo " -- eNB with USRP"
echo ""
echo "Usage:"
echo "------"
echo " buildOnVM.sh [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
echo ""
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
echo " --workspace #### OR -ws ####"
echo " Specify the workspace."
echo ""
echo " --variant enb-usrp OR -v1"
echo " --variant basic-sim OR -v2"
echo " --variant phy-sim OR -v3"
echo " --variant cppcheck OR -v4"
echo " --variant enb-ethernet OR -v7"
echo " --variant ue-ethernet OR -v8"
echo " Specify the variant to build."
echo ""
echo " --keep-vm-alive OR -k"
echo " Keep the VM alive after the build."
echo ""
echo " --help OR -h"
echo " Print this help message."
echo ""
}
function variant_usage {
echo "OAI VM Build Check script"
echo " Original Author: Raphael Defosseux"
echo ""
echo " --variant enb-usrp OR -v1"
echo " --variant basic-sim OR -v2"
echo " --variant phy-sim OR -v3"
echo " --variant cppcheck OR -v4"
echo " --variant enb-ethernet OR -v7"
echo " --variant ue-ethernet OR -v8"
echo ""
}
if [ $# -lt 1 ] || [ $# -gt 9 ]
then
echo "Syntax Error: not the correct number of arguments"
echo ""
usage
exit 1
fi
VM_TEMPLATE=ci-
JOB_NAME=XX
BUILD_ID=XX
VM_NAME=ci-enb-usrp
ARCHIVES_LOC=enb_usrp
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=4
BUILD_OPTIONS="--eNB -w USRP"
KEEP_VM_ALIVE=0
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift
usage
exit 0
;;
-jn|--job-name)
JOB_NAME="$2"
shift
shift
;;
-id|--build-id)
BUILD_ID="$2"
shift
shift
;;
-ws|--workspace)
JENKINS_WKSP="$2"
shift
shift
;;
-k|--keep-vm-alive)
KEEP_VM_ALIVE=1
shift
;;
-v1)
VM_NAME=ci-enb-usrp
ARCHIVES_LOC=enb_usrp
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=4
BUILD_OPTIONS="--eNB -w USRP"
shift
;;
-v2)
VM_NAME=ci-basic-sim
ARCHIVES_LOC=basic_sim
LOG_PATTERN=basic_simulator
NB_PATTERN_FILES=2
BUILD_OPTIONS="--basic-simulator"
shift
;;
-v3)
VM_NAME=ci-phy-sim
ARCHIVES_LOC=phy_sim
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=3
BUILD_OPTIONS="--phy_simulators"
shift
;;
-v4)
VM_NAME=ci-cppcheck
ARCHIVES_LOC=cppcheck
LOG_PATTERN=cppcheck.xml
NB_PATTERN_FILES=1
BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2"
shift
;;
-v7)
VM_NAME=ci-enb-ethernet
ARCHIVES_LOC=enb_eth
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=6
BUILD_OPTIONS="--eNB -t ETHERNET --noS1"
shift
;;
-v8)
VM_NAME=ci-ue-ethernet
ARCHIVES_LOC=ue_eth
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=6
BUILD_OPTIONS="--UE -t ETHERNET --noS1"
shift
;;
--variant)
variant="$2"
case $variant in
enb-usrp)
VM_NAME=ci-enb-usrp
ARCHIVES_LOC=enb_usrp
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=4
BUILD_OPTIONS="--eNB -w USRP"
;;
basic-sim)
VM_NAME=ci-basic-sim
ARCHIVES_LOC=basic_sim
LOG_PATTERN=basic_simulator
NB_PATTERN_FILES=2
BUILD_OPTIONS="--basic-simulator"
;;
phy-sim)
VM_NAME=ci-phy-sim
ARCHIVES_LOC=phy_sim
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=3
BUILD_OPTIONS="--phy_simulators"
;;
cppcheck)
VM_NAME=ci-cppcheck
ARCHIVES_LOC=cppcheck
LOG_PATTERN=cppcheck.xml
NB_PATTERN_FILES=1
BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2"
;;
enb-ethernet)
VM_NAME=ci-enb-ethernet
ARCHIVES_LOC=enb_eth
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=6
BUILD_OPTIONS="--eNB -t ETHERNET --noS1"
;;
ue-ethernet)
VM_NAME=ci-ue-ethernet
ARCHIVES_LOC=ue_eth
LOG_PATTERN=.Rel14.txt
NB_PATTERN_FILES=6
BUILD_OPTIONS="--UE -t ETHERNET --noS1"
;;
*)
echo ""
echo "Syntax Error: Invalid Variant option -> $variant"
echo ""
variant_usage
exit 1
esac
shift
shift
;;
*)
echo "Syntax Error: unknown option: $key"
echo ""
usage
exit 1
esac
done
if [ ! -f $JENKINS_WKSP/localZip.zip ]
then
echo "Missing localZip.zip file!"
exit 1
fi
if [ ! -f /etc/apt/apt.conf.d/01proxy ]
then
echo "Missing /etc/apt/apt.conf.d/01proxy file!"
echo "Is apt-cacher installed and configured?"
exit 1
fi
if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
then
VM_TEMPLATE=ci-
else
VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
fi
VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"`
VM_CMDS=${VM_NAME}_cmds.txt
ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC}
echo "VM_NAME = $VM_NAME"
echo "VM_CMD_FILE = $VM_CMDS"
echo "JENKINS_WKSP = $JENKINS_WKSP"
echo "ARCHIVES_LOC = $ARCHIVES_LOC"
echo "BUILD_OPTIONS = $BUILD_OPTIONS"
IS_VM_ALIVE=`uvt-kvm list | grep -c $VM_NAME`
if [ $IS_VM_ALIVE -eq 0 ]
then
echo "############################################################"
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
echo "############################################################"
uvt-kvm create $VM_NAME release=xenial --memory 2048 --cpu 4 --unsafe-caching --template ci-scripts/template-host.xml
fi
echo "Waiting for VM to be started"
uvt-kvm wait $VM_NAME --insecure
VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
echo "############################################################"
echo "Copying GIT repo into VM ($VM_NAME)"
echo "############################################################"
scp -o StrictHostKeyChecking=no localZip.zip ubuntu@$VM_IP_ADDR:/home/ubuntu
scp -o StrictHostKeyChecking=no /etc/apt/apt.conf.d/01proxy ubuntu@$VM_IP_ADDR:/home/ubuntu
echo "############################################################"
echo "Running install and build script on VM ($VM_NAME)"
echo "############################################################"
echo "sudo cp 01proxy /etc/apt/apt.conf.d/" > $VM_CMDS
if [[ "$VM_NAME" == *"-cppcheck"* ]]
then
echo "echo \"sudo apt-get --yes --quiet install zip cppcheck \"" >> $VM_CMDS
echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
echo "sudo apt-get --yes install zip cppcheck >> zip-install.txt 2>&1" >> $VM_CMDS
else
echo "echo \"sudo apt-get --yes --quiet install zip subversion libboost-dev \"" >> $VM_CMDS
echo "sudo apt-get update > zip-install.txt 2>&1" >> $VM_CMDS
echo "sudo apt-get --yes install zip subversion libboost-dev >> zip-install.txt 2>&1" >> $VM_CMDS
fi
echo "mkdir tmp" >> $VM_CMDS
echo "cd tmp" >> $VM_CMDS
echo "echo \"unzip -qq -DD ../localZip.zip\"" >> $VM_CMDS
echo "unzip -qq -DD ../localZip.zip" >> $VM_CMDS
if [[ "$VM_NAME" == *"-cppcheck"* ]]
then
echo "mkdir cmake_targets/log" >> $VM_CMDS
echo "cp /home/ubuntu/zip-install.txt cmake_targets/log" >> $VM_CMDS
echo "echo \"cppcheck $BUILD_OPTIONS . \"" >> $VM_CMDS
echo "cppcheck $BUILD_OPTIONS . 2> cmake_targets/log/cppcheck.xml 1> cmake_targets/log/cppcheck_build.txt" >> $VM_CMDS
else
echo "echo \"source oaienv\"" >> $VM_CMDS
echo "source oaienv" >> $VM_CMDS
echo "cd cmake_targets/" >> $VM_CMDS
echo "mkdir log" >> $VM_CMDS
echo "cp /home/ubuntu/zip-install.txt log" >> $VM_CMDS
echo "echo \"./build_oai -I $BUILD_OPTIONS \"" >> $VM_CMDS
echo "./build_oai -I $BUILD_OPTIONS > log/install-build.txt 2>&1" >> $VM_CMDS
fi
ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
echo "############################################################"
echo "Creating a tmp folder to store results and artifacts"
echo "############################################################"
if [ ! -d $JENKINS_WKSP/archives ]
then
mkdir $JENKINS_WKSP/archives
fi
if [ ! -d $ARCHIVES_LOC ]
then
mkdir $ARCHIVES_LOC
fi
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.txt $ARCHIVES_LOC
if [[ "$VM_NAME" == *"-cppcheck"* ]]
then
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/*.xml $ARCHIVES_LOC
fi
if [ $KEEP_VM_ALIVE -eq 0 ]
then
echo "############################################################"
echo "Destroying VM"
echo "############################################################"
uvt-kvm destroy $VM_NAME
ssh-keygen -R $VM_IP_ADDR
fi
rm -f $VM_CMDS
echo "############################################################"
echo "Checking build status"
echo "############################################################"
LOG_FILES=`ls $ARCHIVES_LOC/*.txt $ARCHIVES_LOC/*.xml`
STATUS=0
NB_FOUND_FILES=0
for FULLFILE in $LOG_FILES
do
if [[ $FULLFILE == *"$LOG_PATTERN"* ]]
then
filename=$(basename -- "$FULLFILE")
if [ "$LOG_PATTERN" == ".Rel14.txt" ]
then
PASS_PATTERN=`echo $filename | sed -e "s#$LOG_PATTERN##"`
fi
if [ "$LOG_PATTERN" == "basic_simulator" ]
then
PASS_PATTERN="lte-"
fi
if [ "$LOG_PATTERN" == "cppcheck.xml" ]
then
PASS_PATTERN="results version"
LOCAL_STAT=`egrep -c "$PASS_PATTERN" $FULLFILE`
else
LOCAL_STAT=`egrep -c "Built target $PASS_PATTERN" $FULLFILE`
fi
if [ $LOCAL_STAT -eq 0 ]; then STATUS=-1; fi
NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
fi
done
if [ $NB_PATTERN_FILES -ne $NB_FOUND_FILES ]; then STATUS=-1; fi
if [ $STATUS -eq 0 ]
then
echo "STATUS seems OK"
else
echo "STATUS failed?"
fi
exit $STATUS
#!/bin/bash
function usage {
echo "OAI VM Creation script"
echo " Original Author: Raphael Defosseux"
echo " Requirements:"
echo " -- uvtool uvtool-libvirt apt-cacher"
echo " -- xenial image already synced"
echo " Default:"
echo " -- eNB with USRP"
echo ""
echo "Usage:"
echo "------"
echo " createVM.sh [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
echo ""
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
echo " --variant enb-usrp OR -v1"
echo " --variant basic-sim OR -v2"
echo " --variant phy-sim OR -v3"
echo " --variant cppcheck OR -v4"
echo " --variant enb-ethernet OR -v7"
echo " --variant ue-ethernet OR -v8"
echo " Specify the variant to build."
echo ""
echo " --help OR -h"
echo " Print this help message."
echo ""
}
function variant_usage {
echo "OAI VM Build Check script"
echo " Original Author: Raphael Defosseux"
echo ""
echo " --variant enb-usrp OR -v1"
echo " --variant basic-sim OR -v2"
echo " --variant phy-sim OR -v3"
echo " --variant cppcheck OR -v4"
echo " --variant enb-ethernet OR -v7"
echo " --variant ue-ethernet OR -v8"
echo ""
}
if [ $# -lt 1 ] || [ $# -gt 6 ]
then
echo "Syntax Error: not the correct number of arguments"
echo ""
usage
exit 1
fi
VM_TEMPLATE=ci-
JOB_NAME=XX
BUILD_ID=XX
VM_NAME=ci-enb-usrp
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift
usage
exit 0
;;
-jn|--job-name)
JOB_NAME="$2"
shift
shift
;;
-id|--build-id)
BUILD_ID="$2"
shift
shift
;;
-v1)
VM_NAME=ci-enb-usrp
shift
;;
-v2)
VM_NAME=ci-basic-sim
shift
;;
-v3)
VM_NAME=ci-phy-sim
shift
;;
-v4)
VM_NAME=ci-cppcheck
shift
;;
-v7)
VM_NAME=ci-enb-ethernet
shift
;;
-v8)
VM_NAME=ci-ue-ethernet
shift
;;
--variant)
variant="$2"
case $variant in
enb-usrp)
VM_NAME=ci-enb-usrp
;;
basic-sim)
VM_NAME=ci-basic-sim
;;
phy-sim)
VM_NAME=ci-phy-sim
;;
cppcheck)
VM_NAME=ci-cppcheck
;;
enb-ethernet)
VM_NAME=ci-enb-ethernet
;;
ue-ethernet)
VM_NAME=ci-ue-ethernet
;;
*)
echo ""
echo "Syntax Error: Invalid Variant option -> $variant"
echo ""
variant_usage
exit 1
esac
shift
shift
;;
*)
echo "Syntax Error: unknown option: $key"
echo ""
usage
exit 1
esac
done
if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
then
VM_TEMPLATE=ci-
else
VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
fi
VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"`
VM_CMDS=${VM_NAME}_cmds.txt
echo "VM_NAME = $VM_NAME"
echo "############################################################"
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
echo "############################################################"
uvt-kvm create $VM_NAME release=xenial --memory 2048 --cpu 4 --unsafe-caching --template ci-scripts/template-host.xml
echo "Waiting for VM to be started"
uvt-kvm wait $VM_NAME --insecure
VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
exit 0
#!/bin/bash
function usage {
echo "OAI VM Destroy script"
echo " Original Author: Raphael Defosseux"
echo ""
echo "Usage:"
echo "------"
echo " destroyAllRunningVM.sh [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
echo ""
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
echo " --help OR -h"
echo " Print this help message."
echo ""
}
if [ $# -gt 4 ]
then
echo "Syntax Error: not the correct number of arguments"
echo ""
usage
exit 1
fi
VM_TEMPLATE=ci-
JOB_NAME=XX
BUILD_ID=XX
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift
usage
exit 0
;;
-jn|--job-name)
JOB_NAME="$2"
shift
shift
;;
-id|--build-id)
BUILD_ID="$2"
shift
shift
;;
*)
echo "Syntax Error: unknown option: $key"
echo ""
usage
exit 1
esac
done
if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
then
VM_TEMPLATE=ci-
else
VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
fi
LIST_CI_VM=`uvt-kvm list | grep $VM_TEMPLATE`
for CI_VM in $LIST_CI_VM
do
VM_IP_ADDR=`uvt-kvm ip $CI_VM`
echo "VM to destroy: $CI_VM -- IP $VM_IP_ADDR"
uvt-kvm destroy $CI_VM
ssh-keygen -R $VM_IP_ADDR
done
exit 0
#!/bin/bash
function usage {
echo "OAI Local Build Report script"
echo " Original Author: Raphael Defosseux"
echo ""
echo "Usage:"
echo "------"
echo ""
echo " reportBuildLocally.sh [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
echo ""
echo " --help OR -h"
echo " Print this help message."
echo ""
echo "Job Options:"
echo "------------"
echo ""
echo " --git-url #### OR -gu ####"
echo " Specify the URL of the GIT Repository."
echo ""
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
echo ""
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
echo " --trigger merge-request OR -mr"
echo " --trigger push OR -pu"
echo " Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
echo ""
echo "Merge-Request Options:"
echo "----------------------"
echo ""
echo " --src-branch #### OR -sb ####"
echo " Specify the source branch of the merge request."
echo ""
echo " --src-commit #### OR -sc ####"
echo " Specify the source commit ID (SHA-1) of the merge request."
echo ""
echo " --target-branch #### OR -tb ####"
echo " Specify the target branch of the merge request (usually develop)."
echo ""
echo " --target-commit #### OR -tc ####"
echo " Specify the target commit ID (SHA-1) of the merge request."
echo ""
echo "Push Options:"
echo "----------------------"
echo ""
echo " --branch #### OR -br ####"
echo " Specify the branch of the push event."
echo ""
echo " --commit #### OR -co ####"
echo " Specify the commit ID (SHA-1) of the push event."
echo ""
echo ""
}
function trigger_usage {
echo "OAI Local Build Report script"
echo " Original Author: Raphael Defosseux"
echo ""
echo " --trigger merge-request OR -mr"
echo " --trigger push OR -pu"
echo " Specify trigger action of the Jenkins job. Either a merge-request event or a push event."
echo ""
}
function details_table {
echo " <h4>$1</h4>" >> $3
echo " <table border = \"1\">" >> $3
echo " <tr bgcolor = \"#33CCFF\" >" >> $3
echo " <th>File</th>" >> $3
echo " <th>Line Number</th>" >> $3
echo " <th>Status</th>" >> $3
echo " <th>Message</th>" >> $3
echo " </tr>" >> $3
LIST_MESSAGES=`egrep "error:|warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto"`
COMPLETE_MESSAGE="start"
for MESSAGE in $LIST_MESSAGES
do
if [[ $MESSAGE == *"/home/ubuntu/tmp"* ]]
then
FILENAME=`echo $MESSAGE | sed -e "s#^/home/ubuntu/tmp/##" | awk -F ":" '{print $1}'`
LINENB=`echo $MESSAGE | awk -F ":" '{print $2}'`
if [ "$COMPLETE_MESSAGE" != "start" ]
then
COMPLETE_MESSAGE=`echo $COMPLETE_MESSAGE | sed -e "s#‘#'#g" -e "s#’#'#g"`
echo " <td>$COMPLETE_MESSAGE</td>" >> $3
echo " </tr>" >> $3
fi
echo " <tr>" >> $3
echo " <td>$FILENAME</td>" >> $3
echo " <td>$LINENB</td>" >> $3
else
if [[ $MESSAGE == *"warning:"* ]] || [[ $MESSAGE == *"error:"* ]]
then
MSGTYPE=`echo $MESSAGE | sed -e "s#:##g"`
echo " <td>$MSGTYPE</td>" >> $3
COMPLETE_MESSAGE=""
else
COMPLETE_MESSAGE=$COMPLETE_MESSAGE" "$MESSAGE
fi
fi
done
if [ "$COMPLETE_MESSAGE" != "start" ]
then
COMPLETE_MESSAGE=`echo $COMPLETE_MESSAGE | sed -e "s#‘#'#g" -e "s#’#'#g"`
echo " <td>$COMPLETE_MESSAGE</td>" >> $3
echo " </tr>" >> $3
fi
echo " </table>" >> $3
}
function summary_table_header {
echo " <h3>$1</h3>" >> ./build_results.html
echo " <table border = \"1\">" >> ./build_results.html
echo " <tr bgcolor = \"#33CCFF\" >" >> ./build_results.html
echo " <th>Element</th>" >> ./build_results.html
echo " <th>Status</th>" >> ./build_results.html
echo " <th>Nb Errors</th>" >> ./build_results.html
echo " <th>Nb Warnings</th>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
}
function summary_table_row {
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >$1</th>" >> ./build_results.html
if [ -f $2 ]
then
STATUS=`egrep -c "$3" $2`
if [ $STATUS -eq 1 ]
then
echo " <td bgcolor = \"green\" >OK</th>" >> ./build_results.html
else
echo " <td bgcolor = \"red\" >KO</th>" >> ./build_results.html
fi
NB_ERRORS=`egrep -c "error:" $2`
if [ $NB_ERRORS -eq 0 ]
then
echo " <td bgcolor = \"green\" >$NB_ERRORS</th>" >> ./build_results.html
else
echo " <td bgcolor = \"red\" >$NB_ERRORS</th>" >> ./build_results.html
fi
NB_WARNINGS=`egrep "warning:" $2 | egrep -v "jobserver unavailable|Clock skew detected.|flexran.proto" | egrep -c "warning:"`
if [ $NB_WARNINGS -eq 0 ]
then
echo " <td bgcolor = \"green\" >$NB_WARNINGS</th>" >> ./build_results.html
else
if [ $NB_WARNINGS -gt 20 ]
then
echo " <td bgcolor = \"red\" >$NB_WARNINGS</th>" >> ./build_results.html
else
echo " <td bgcolor = \"orange\" >$NB_WARNINGS</th>" >> ./build_results.html
fi
fi
if [ $NB_ERRORS -ne 0 ] || [ $NB_WARNINGS -ne 0 ]
then
details_table "$1" $2 $4
fi
else
echo " <td bgcolor = \"lightgray\" >Unknown</th>" >> ./build_results.html
echo " <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
echo " <td bgcolor = \"lightgray\" >--</th>" >> ./build_results.html
fi
echo " </tr>" >> ./build_results.html
}
function summary_table_footer {
echo " </table>" >> ./build_results.html
}
function sca_summary_table_header {
echo " <h3>$1</h3>" >> ./build_results.html
echo " <table border = \"1\">" >> ./build_results.html
echo " <tr bgcolor = \"#33CCFF\" >" >> ./build_results.html
echo " <th>Error / Warning Type</th>" >> ./build_results.html
echo " <th>Nb Errors</th>" >> ./build_results.html
echo " <th>Nb Warnings</th>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
echo "0" > ccp_error_cnt.txt
}
function sca_summary_table_row {
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >$2</td>" >> ./build_results.html
if [ -f $1 ]
then
NB_ERRORS=`egrep "severity=\"error\"" $1 | egrep -c "id=\"$3\""`
echo " <td>$NB_ERRORS</td>" >> ./build_results.html
echo " <td>N/A</td>" >> ./build_results.html
if [ -f ccp_error_cnt.txt ]
then
TOTAL_ERRORS=`cat ccp_error_cnt.txt`
TOTAL_ERRORS=$((TOTAL_ERRORS + NB_ERRORS))
echo $TOTAL_ERRORS > ccp_error_cnt.txt
fi
else
echo " <td>Unknown</td>" >> ./build_results.html
echo " <td>Unknown</td>" >> ./build_results.html
fi
echo " </tr>" >> ./build_results.html
}
function sca_summary_table_footer {
if [ -f $1 ]
then
NB_ERRORS=`egrep -c "severity=\"error\"" $1`
NB_WARNINGS=`egrep -c "severity=\"warning\"" $1`
if [ -f ccp_error_cnt.txt ]
then
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Others</td>" >> ./build_results.html
TOTAL_ERRORS=`cat ccp_error_cnt.txt`
TOTAL_ERRORS=$((NB_ERRORS - TOTAL_ERRORS))
echo " <td>$TOTAL_ERRORS</td>" >> ./build_results.html
echo " <td>$NB_WARNINGS</td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
rm -f ccp_error_cnt.txt
fi
echo " <tr bgcolor = \"#33CCFF\" >" >> ./build_results.html
echo " <th>Total</th>" >> ./build_results.html
echo " <th>$NB_ERRORS</th>" >> ./build_results.html
echo " <th>$NB_WARNINGS</th>" >> ./build_results.html
else
echo " <tr bgcolor = \"#33CCFF\" >" >> ./build_results.html
echo " <th>Total</th>" >> ./build_results.html
echo " <th>Unknown</th>" >> ./build_results.html
echo " <th>Unknown</th>" >> ./build_results.html
if [ -f ccp_error_cnt.txt ]
then
rm -f ccp_error_cnt.txt
fi
fi
echo " </tr>" >> ./build_results.html
echo " </table>" >> ./build_results.html
echo " <p>Full details in zipped artifact (cppcheck/cppcheck.xml) </p>" >> ./build_results.html
echo " <p>Graphical Interface tool : <code>cppcheck-gui -l cppcheck/cppcheck.xml</code> </p>" >> ./build_results.html
}
jb_checker=0
mr_checker=0
pu_checker=0
MR_TRIG=0
PU_TRIG=0
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift
usage
exit 0
;;
-gu|--git-url)
GIT_URL="$2"
let "jb_checker|=0x1"
shift
shift
;;
-jn|--job-name)
JOB_NAME="$2"
let "jb_checker|=0x2"
shift
shift
;;
-id|--build-id)
BUILD_ID="$2"
let "jb_checker|=0x4"
shift
shift
;;
--trigger)
TRIG="$2"
case $TRIG in
merge-request)
MR_TRIG=1
;;
push)
PU_TRIG=1
;;
*)
echo ""
echo "Syntax Error: Invalid Trigger option -> $TRIG"
echo ""
trigger_usage
exit
;;
esac
let "jb_checker|=0x8"
shift
shift
;;
-mr)
MR_TRIG=1
let "jb_checker|=0x8"
shift
;;
-pu)
PU_TRIG=1
let "jb_checker|=0x8"
shift
;;
-sb|--src-branch)
SOURCE_BRANCH="$2"
let "mr_checker|=0x1"
shift
shift
;;
-sc|--src-commit)
SOURCE_COMMIT_ID="$2"
let "mr_checker|=0x2"
shift
shift
;;
-tb|--target-branch)
TARGET_BRANCH="$2"
let "mr_checker|=0x4"
shift
shift
;;
-tc|--target-commit)
TARGET_COMMIT_ID="$2"
let "mr_checker|=0x8"
shift
shift
;;
-br|--branch)
SOURCE_BRANCH="$2"
let "pu_checker|=0x1"
shift
shift
;;
-co|--commit)
SOURCE_COMMIT_ID="$2"
let "pu_checker|=0x2"
shift
shift
;;
*)
echo "Syntax Error: unknown option: $key"
echo ""
usage
exit 1
;;
esac
done
if [ $jb_checker -ne 15 ]
then
echo ""
echo "Syntax Error: missing job information."
# TODO : list missing info
echo ""
exit 1
fi
if [ $PU_TRIG -eq 1 ] && [ $MR_TRIG -eq 1 ]
then
echo ""
echo "Syntax Error: trigger action incoherent."
echo ""
trigger_usage
exit 1
fi
if [ $PU_TRIG -eq 1 ]
then
if [ $pu_checker -ne 3 ]
then
echo ""
echo "Syntax Error: missing push information."
# TODO : list missing info
echo ""
exit 1
fi
fi
if [ $MR_TRIG -eq 1 ]
then
if [ $mr_checker -ne 15 ]
then
echo ""
echo "Syntax Error: missing merge-request information."
# TODO : list missing info
echo ""
exit 1
fi
fi
echo "<!DOCTYPE html>" > ./build_results.html
echo "<html class=\"no-js\" lang=\"en-US\">" >> ./build_results.html
echo "<head>" >> ./build_results.html
echo " <title>Build Results for $JOB_NAME job build #$BUILD_ID</title>" >> ./build_results.html
echo " <base href = \"http://www.openairinterface.org/\" />" >> ./build_results.html
echo "</head>" >> ./build_results.html
echo "<body>" >> ./build_results.html
echo " <table style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
echo " <tr style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
echo " <td style=\"border-collapse: collapse; border: none;\">" >> ./build_results.html
echo " <a href=\"http://www.openairinterface.org/\">" >> ./build_results.html
echo " <img src=\"/wp-content/uploads/2016/03/cropped-oai_final_logo2.png\" alt=\"\" border=\"none\" height=50 width=150>" >> ./build_results.html
echo " </img>" >> ./build_results.html
echo " </a>" >> ./build_results.html
echo " </td>" >> ./build_results.html
echo " <td style=\"border-collapse: collapse; border: none; vertical-align: center;\">" >> ./build_results.html
echo " <b><font size = \"6\">Job Summary -- Job: $JOB_NAME -- Build-ID: $BUILD_ID</font></b>" >> ./build_results.html
echo " </td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
echo " </table>" >> ./build_results.html
echo " <br>" >> ./build_results.html
echo " <table border = \"1\">" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >GIT Repository</td>" >> ./build_results.html
echo " <td>$GIT_URL</td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Job Trigger</td>" >> ./build_results.html
if [ $PU_TRIG -eq 1 ]; then echo " <td>Push Event</td>" >> ./build_results.html; fi
if [ $MR_TRIG -eq 1 ]; then echo " <td>Merge-Request</td>" >> ./build_results.html; fi
echo " </tr>" >> ./build_results.html
if [ $PU_TRIG -eq 1 ]
then
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Branch</td>" >> ./build_results.html
echo " <td>$SOURCE_BRANCH</td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Commit ID</td>" >> ./build_results.html
echo " <td>$SOURCE_COMMIT_ID</td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
fi
if [ $MR_TRIG -eq 1 ]
then
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Source Branch</td>" >> ./build_results.html
echo " <td>$SOURCE_BRANCH</td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Source Commit ID</td>" >> ./build_results.html
echo " <td>$SOURCE_COMMIT_ID</td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Target Branch</td>" >> ./build_results.html
echo " <td>$TARGET_BRANCH</td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Target Commit ID</td>" >> ./build_results.html
echo " <td>$TARGET_COMMIT_ID</td>" >> ./build_results.html
echo " </tr>" >> ./build_results.html
fi
echo " </table>" >> ./build_results.html
echo " <h2>Build Summary</h2>" >> ./build_results.html
if [ -f ./oai_rules_result.txt ]
then
echo " <h3>OAI Coding / Formatting Guidelines Check</h3>" >> ./build_results.html
echo " <table border = "1">" >> ./build_results.html
echo " <tr>" >> ./build_results.html
echo " <td bgcolor = \"lightcyan\" >Result:</td>" >> ./build_results.html
NB_FILES=`cat ./oai_rules_result.txt`
if [ $NB_FILES = "0" ]
then
if [ $PU_TRIG -eq 1 ]; then echo " <td bgcolor = \"green\">All files in repository follow OAI rules. </td>" >> ./build_results.html; fi
if [ $MR_TRIG -eq 1 ]; then echo " <td bgcolor = \"green\">All modified files in Merge-Request follow OAI rules.</td>" >> ./build_results.html; fi
else
if [ $PU_TRIG -eq 1 ]; then echo " <td bgcolor = \"orange\">$NB_FILES files in repository DO NOT follow OAI rules. </td>" >> ./build_results.html; fi
if [ $MR_TRIG -eq 1 ]; then echo " <td bgcolor = \"orange\">$NB_FILES modified files in Merge-Request DO NOT follow OAI rules.</td>" >> ./build_results.html; fi
fi
echo " </tr>" >> ./build_results.html
echo " </table>" >> ./build_results.html
fi
sca_summary_table_header "OAI Static Code Analysis with CPPCHECK"
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized variable" uninitvar
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Uninitialized struct member" uninitStructMember
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory leak" memleak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Memory is freed twice" doubleFree
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Resource leak" resourceLeak
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Possible null pointer dereference" nullPointer
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Array access out of bounds" arrayIndexOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Buffer is accessed out of bounds" bufferAccessOutOfBounds
sca_summary_table_row ./archives/cppcheck/cppcheck.xml "Expression depends on order of evaluation of side effects" unknownEvaluationOrder
sca_summary_table_footer ./archives/cppcheck/cppcheck.xml
summary_table_header "OAI Build eNB -- USRP option"
summary_table_row "LTE SoftModem - Release 14" ./archives/enb_usrp/lte-softmodem.Rel14.txt "Built target lte-softmodem" ./enb_usrp_row1.html
summary_table_row "Coding - Release 14" ./archives/enb_usrp/coding.Rel14.txt "Built target coding" ./enb_usrp_row2.html
summary_table_row "OAI USRP device if - Release 14" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt "Built target oai_usrpdevif" ./enb_usrp_row3.html
summary_table_row "Parameters Lib Config - Release 14" ./archives/enb_usrp/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_usrp_row4.html
summary_table_footer
summary_table_header "OAI Build basic simulator option"
summary_table_row "Basic Simulator eNb - Release 14" ./archives/basic_sim/basic_simulator_enb.txt "Built target lte-softmodem" ./basic_sim_row1.html
summary_table_row "Basic Simulator UE - Release 14" ./archives/basic_sim/basic_simulator_ue.txt "Built target lte-uesoftmodem" ./basic_sim_row2.html
summary_table_row "Conf 2 UE data - Release 14" ./archives/basic_sim/conf2uedata.Rel14.txt "Built target conf2uedata" ./basic_sim_row3.html
summary_table_footer
summary_table_header "OAI Build Physical simulators option"
summary_table_row "DL Simulator - Release 14" ./archives/phy_sim/dlsim.Rel14.txt "Built target dlsim" ./phy_sim_row1.html
summary_table_row "UL Simulator - Release 14" ./archives/phy_sim/ulsim.Rel14.txt "Built target ulsim" ./phy_sim_row2.html
summary_table_row "Coding - Release 14" ./archives/phy_sim/coding.Rel14.txt "Built target coding" ./phy_sim_row3.html
summary_table_footer
summary_table_header "OAI Build eNB -- ETHERNET transport option"
summary_table_row "LTE SoftModem w/o S1 - Release 14" ./archives/enb_eth/lte-softmodem-nos1.Rel14.txt "Built target lte-softmodem" ./enb_eth_row1.html
summary_table_row "Coding - Release 14" ./archives/enb_eth/coding.Rel14.txt "Built target coding" ./enb_eth_row2.html
summary_table_row "OAI ETHERNET transport - Release 14" ./archives/enb_eth/oai_eth_transpro.Rel14.txt "Built target oai_eth_transpro" ./enb_eth_row3.html
summary_table_row "Parameters Lib Config - Release 14" ./archives/enb_eth/params_libconfig.Rel14.txt "Built target params_libconfig" ./enb_eth_row4.html
summary_table_row "RB Tools - Release 14" ./archives/enb_eth/rb_tool.Rel14.txt "Built target rb_tool" ./enb_eth_row5.html
summary_table_row "NAS Mesh - Release 14" ./archives/enb_eth/nasmesh.Rel14.txt "Built target nasmesh" ./enb_eth_row6.html
summary_table_footer
summary_table_header "OAI Build UE -- ETHERNET transport option"
summary_table_row "LTE UE SoftModem w/o S1 - Release 14" ./archives/ue_eth/lte-uesoftmodem-nos1.Rel14.txt "Built target lte-uesoftmodem" ./ue_eth_row1.html
summary_table_row "Coding - Release 14" ./archives/ue_eth/coding.Rel14.txt "Built target coding" ./ue_eth_row2.html
summary_table_row "OAI ETHERNET transport - Release 14" ./archives/ue_eth/oai_eth_transpro.Rel14.txt "Built target oai_eth_transpro" ./ue_eth_row3.html
summary_table_row "Parameters Lib Config - Release 14" ./archives/ue_eth/params_libconfig.Rel14.txt "Built target params_libconfig" ./ue_eth_row4.html
summary_table_row "RB Tools - Release 14" ./archives/ue_eth/rb_tool.Rel14.txt "Built target rb_tool" ./ue_eth_row5.html
summary_table_row "NAS Mesh - Release 14" ./archives/ue_eth/nasmesh.Rel14.txt "Built target nasmesh" ./ue_eth_row6.html
summary_table_footer
echo " <h3>Details</h3>" >> ./build_results.html
for DETAILS_TABLE in `ls ./enb_usrp_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
for DETAILS_TABLE in `ls ./basic_sim_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
for DETAILS_TABLE in `ls ./phy_sim_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
for DETAILS_TABLE in `ls ./enb_eth_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
for DETAILS_TABLE in `ls ./ue_eth_row*.html`
do
cat $DETAILS_TABLE >> ./build_results.html
done
rm -f ./enb_usrp_row*.html ./basic_sim_row*.html ./phy_sim_row*.html ./enb_eth_row*.html ./ue_eth_row*.html
echo "</body>" >> ./build_results.html
echo "</html>" >> ./build_results.html
exit 0
#!/bin/bash
function usage {
echo "OAI VM Test Run script"
echo " Original Author: Raphael Defosseux"
echo " Default:"
echo " -- eNB with USRP"
echo ""
echo "Usage:"
echo "------"
echo " runTestOnVM.sh [OPTIONS]"
echo ""
echo "Options:"
echo "--------"
echo " --job-name #### OR -jn ####"
echo " Specify the name of the Jenkins job."
echo ""
echo " --build-id #### OR -id ####"
echo " Specify the build ID of the Jenkins job."
echo ""
echo " --workspace #### OR -ws ####"
echo " Specify the workspace."
echo ""
echo " --variant enb-usrp OR -v1"
echo " --variant basic-sim OR -v2"
echo " --variant phy-sim OR -v3"
echo " --variant cppcheck OR -v4"
echo " --variant enb-ethernet OR -v7"
echo " --variant ue-ethernet OR -v8"
echo " Specify the variant to build."
echo ""
echo " --keep-vm-alive OR -k"
echo " Keep the VM alive after the build."
echo ""
echo " --help OR -h"
echo " Print this help message."
echo ""
}
function variant_usage {
echo "OAI VM Test Run script"
echo " Original Author: Raphael Defosseux"
echo ""
echo " --variant enb-usrp OR -v1"
echo " --variant basic-sim OR -v2"
echo " --variant phy-sim OR -v3"
echo " --variant cppcheck OR -v4"
echo " --variant enb-ethernet OR -v7"
echo " --variant ue-ethernet OR -v8"
echo ""
}
if [ $# -lt 1 ] || [ $# -gt 9 ]
then
echo "Syntax Error: not the correct number of arguments"
echo ""
usage
exit 1
fi
VM_TEMPLATE=ci-
JOB_NAME=XX
BUILD_ID=XX
VM_NAME=ci-enb-usrp
ARCHIVES_LOC=enb_usrp/test
KEEP_VM_ALIVE=0
RUN_OPTIONS="none"
STATUS=0
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-h|--help)
shift
usage
exit 0
;;
-jn|--job-name)
JOB_NAME="$2"
shift
shift
;;
-id|--build-id)
BUILD_ID="$2"
shift
shift
;;
-ws|--workspace)
JENKINS_WKSP="$2"
shift
shift
;;
-k|--keep-vm-alive)
KEEP_VM_ALIVE=1
shift
;;
-v1)
VM_NAME=ci-enb-usrp
shift
;;
-v2)
VM_NAME=ci-basic-sim
shift
;;
-v3)
VM_NAME=ci-phy-sim
RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b"
ARCHIVES_LOC=phy_sim/test
shift
;;
-v4)
VM_NAME=ci-cppcheck
shift
;;
-v7)
VM_NAME=ci-enb-ethernet
shift
;;
-v8)
VM_NAME=ci-ue-ethernet
shift
;;
--variant)
variant="$2"
case $variant in
enb-usrp)
VM_NAME=ci-enb-usrp
;;
basic-sim)
VM_NAME=ci-basic-sim
;;
phy-sim)
VM_NAME=ci-phy-sim
RUN_OPTIONS="./run_exec_autotests.bash -g \"01510*\" -q -np -b"
ARCHIVES_LOC=phy_sim/test
;;
cppcheck)
VM_NAME=ci-cppcheck
;;
enb-ethernet)
VM_NAME=ci-enb-ethernet
;;
ue-ethernet)
VM_NAME=ci-ue-ethernet
;;
*)
echo ""
echo "Syntax Error: Invalid Variant option -> $variant"
echo ""
variant_usage
exit 1
esac
shift
shift
;;
*)
echo "Syntax Error: unknown option: $key"
echo ""
usage
exit 1
esac
done
if [ "$JOB_NAME" == "XX" ] || [ "$BUILD_ID" == "XX" ]
then
VM_TEMPLATE=ci-
else
VM_TEMPLATE=${JOB_NAME}-b${BUILD_ID}-
fi
VM_NAME=`echo $VM_NAME | sed -e "s#ci-#$VM_TEMPLATE#"`
VM_CMDS=${VM_NAME}_cmds.txt
ARCHIVES_LOC=${JENKINS_WKSP}/archives/${ARCHIVES_LOC}
echo "VM_NAME = $VM_NAME"
echo "VM_CMD_FILE = $VM_CMDS"
echo "JENKINS_WKSP = $JENKINS_WKSP"
echo "ARCHIVES_LOC = $ARCHIVES_LOC"
echo "############################################################"
echo "Waiting for VM to be started"
echo "############################################################"
uvt-kvm wait $VM_NAME --insecure
VM_IP_ADDR=`uvt-kvm ip $VM_NAME`
echo "$VM_NAME has for IP addr = $VM_IP_ADDR"
if [ "$RUN_OPTIONS" == "none" ]
then
echo "No run on VM testing for this variant currently"
else
echo "############################################################"
echo "Running test script on VM ($VM_NAME)"
echo "############################################################"
echo "echo \"sudo apt-get --yes --quiet install bc \"" > $VM_CMDS
echo "sudo apt-get update > bc-install.txt 2>&1" >> $VM_CMDS
echo "sudo apt-get --yes install bc >> bc-install.txt 2>&1" >> $VM_CMDS
echo "cd tmp" >> $VM_CMDS
echo "echo \"source oaienv\"" >> $VM_CMDS
echo "source oaienv" >> $VM_CMDS
echo "echo \"cd cmake_targets/autotests\"" >> $VM_CMDS
echo "cd cmake_targets/autotests" >> $VM_CMDS
echo "echo \"rm -Rf log\"" >> $VM_CMDS
echo "rm -Rf log" >> $VM_CMDS
echo "$RUN_OPTIONS" | sed -e 's@"@\\"@g' -e 's@^@echo "@' -e 's@$@"@' >> $VM_CMDS
echo "$RUN_OPTIONS" >> $VM_CMDS
echo "cp /home/ubuntu/bc-install.txt log" >> $VM_CMDS
echo "cd log" >> $VM_CMDS
echo "zip -r -qq tmp.zip *.* 0*" >> $VM_CMDS
ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS
echo "############################################################"
echo "Creating a tmp folder to store results and artifacts"
echo "############################################################"
if [ -d $ARCHIVES_LOC ]
then
rm -Rf $ARCHIVES_LOC
fi
mkdir --parents $ARCHIVES_LOC
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/autotests/log/tmp.zip $ARCHIVES_LOC
pushd $ARCHIVES_LOC
unzip -qq -DD tmp.zip
rm tmp.zip
if [ -f results_autotests.xml ]
then
FUNCTION=`echo $VM_NAME | sed -e "s@$VM_TEMPLATE@@"`
NEW_NAME=`echo "results_autotests.xml" | sed -e "s@results_autotests@results_autotests-$FUNCTION@"`
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $NEW_NAME
echo "<?xml-stylesheet type=\"text/xsl\" href=\"$FUNCTION.xsl\" ?>" >> $NEW_NAME
cat results_autotests.xml >> $NEW_NAME
sed -e "s@TEMPLATE@$FUNCTION@" $JENKINS_WKSP/ci-scripts/template.xsl > $FUNCTION.xsl
#mv results_autotests.xml $NEW_NAME
rm results_autotests.xml
fi
popd
if [ $KEEP_VM_ALIVE -eq 0 ]
then
echo "############################################################"
echo "Destroying VM"
echo "############################################################"
uvt-kvm destroy $VM_NAME
ssh-keygen -R $VM_IP_ADDR
fi
rm -f $VM_CMDS
echo "############################################################"
echo "Checking build status"
echo "############################################################"
LOG_FILES=`ls $ARCHIVES_LOC/results_autotests*.xml`
NB_FOUND_FILES=0
NB_RUNS=0
NB_FAILURES=0
for FULLFILE in $LOG_FILES
do
TESTSUITES=`egrep "testsuite errors" $FULLFILE`
for TESTSUITE in $TESTSUITES
do
if [[ "$TESTSUITE" == *"tests="* ]]
then
RUNS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
NB_RUNS=$((NB_RUNS + RUNS))
fi
if [[ "$TESTSUITE" == *"failures="* ]]
then
FAILS=`echo $TESTSUITE | awk 'BEGIN{FS="="}{print $2}END{}' | sed -e "s@'@@g" `
NB_FAILURES=$((NB_FAILURES + FAILS))
fi
done
NB_FOUND_FILES=$((NB_FOUND_FILES + 1))
done
echo "NB_FOUND_FILES = $NB_FOUND_FILES"
echo "NB_RUNS = $NB_RUNS"
echo "NB_FAILURES = $NB_FAILURES"
if [ $NB_FOUND_FILES -eq 0 ]; then STATUS=-1; fi
if [ $NB_RUNS -eq 0 ]; then STATUS=-1; fi
if [ $NB_FAILURES -ne 0 ]; then STATUS=-1; fi
if [ $STATUS -eq 0 ]
then
echo "STATUS seems OK"
else
echo "STATUS failed?"
fi
fi
exit $STATUS
<domain type='kvm'>
<os>
<type>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<cpu mode='host-passthrough'>
</cpu>
<devices>
<interface type='network'>
<source network='default'/>
<model type='virtio'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/3'/>
<target port='0'/>
</serial>
<graphics type='vnc' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<video/>
</devices>
</domain>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
<!-- main body -->
<xsl:template match="/">
<html>
<body>
<h3>TEMPLATE Results Summary</h3>
<table border="1">
<tr bgcolor="lightcyan">
<!--Header only so select first row to get headers-->
<th>Hostname</th>
<th>Nb Tests</th>
<th>Failures</th>
<th>Timestamp</th>
</tr>
<!--Get all the other rows-->
<xsl:for-each select="testsuites/testsuite">
<tr>
<td>
<xsl:value-of select="@hostname"/>
</td>
<td>
<xsl:value-of select="@tests"/>
</td>
<td>
<xsl:value-of select="@failures"/>
</td>
<td>
<xsl:value-of select="@timestamp"/>
</td>
</tr>
</xsl:for-each>
</table>
<h4>Details</h4>
<table border="1">
<tr bgcolor="lightcyan">
<!--Header only so select first row to get headers-->
<th>Test Name</th>
<th>Result</th>
<th>Time</th>
<th>Description</th>
</tr>
<!--Get all the other rows-->
<xsl:for-each select="testsuites/testsuite/testcase">
<tr>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:value-of select="@RESULT"/>
</td>
<td>
<xsl:value-of select="@time"/>
</td>
<td>
<xsl:value-of select="@description"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
...@@ -2127,6 +2127,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB, ...@@ -2127,6 +2127,7 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
int *); int *);
int P1_SHIFT[13],P2_SHIFT[13]; int P1_SHIFT[13],P2_SHIFT[13];
int offset,nushiftmod3; int offset,nushiftmod3;
......
/*
* 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 "PHY/types.h"
/**
\brief Gold Sequence Generation defined in 3x.211
\param x1 x1 shift register
\param x2 x2 shift register / cinit if reset is set
\param reset Reset flag / reinitialize the generator
\return c 32 bits of gold output
*/
extern inline uint32_t lte_gold_generic(uint32_t *x1, uint32_t *x2, uint8_t reset)
{
int32_t n;
// 3GPP 3x.211
// Nc = 1600
// c(n) = [x1(n+Nc) + x2(n+Nc)]mod2
// x1(n+31) = [x1(n+3) + x1(n)]mod2
// x2(n+31) = [x2(n+3) + x2(n+2) + x2(n+1) + x2(n)]mod2
if (reset)
{
// Init value for x1: x1(0) = 1, x1(n) = 0, n=1,2,...,30
// x1(31) = [x1(3) + x1(0)]mod2 = 1
*x1 = 1 + (1<<31);
// Init value for x2: cinit = sum_{i=0}^30 x2*2^i
// x2(31) = [x2(3) + x2(2) + x2(1) + x2(0)]mod2
// = (*x2>>3) ^ (*x2>>2) + (*x2>>1) + *x2
*x2 = *x2 ^ ((*x2 ^ (*x2>>1) ^ (*x2>>2) ^ (*x2>>3))<<31);
// x1 and x2 contain bits n = 0,1,...,31
// Nc = 1600 bits are skipped at the beginning
// i.e., 1600 / 32 = 50 32bit words
for (n = 1; n < 50; n++)
{
// Compute x1(0),...,x1(27)
*x1 = (*x1>>1) ^ (*x1>>4);
// Compute x1(28),..,x1(31) and xor
*x1 = *x1 ^ (*x1<<31) ^ (*x1<<28);
// Compute x2(0),...,x2(27)
*x2 = (*x2>>1) ^ (*x2>>2) ^ (*x2>>3) ^ (*x2>>4);
// Compute x2(28),..,x2(31) and xor
*x2 = *x2 ^ (*x2<<31) ^ (*x2<<30) ^ (*x2<<29) ^ (*x2<<28);
}
}
*x1 = (*x1>>1) ^ (*x1>>4);
*x1 = *x1 ^ (*x1<<31) ^ (*x1<<28);
*x2 = (*x2>>1) ^ (*x2>>2) ^ (*x2>>3) ^ (*x2>>4);
*x2 = *x2 ^ (*x2<<31) ^ (*x2<<30) ^ (*x2<<29) ^ (*x2<<28);
// c(n) = [x1(n+Nc) + x2(n+Nc)]mod2
return(*x1^*x2);
}
/*
* 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 "PHY/LTE_UE_TRANSPORT/transport_proto_ue.h"
uint8_t get_pmi(uint8_t N_RB_DL, MIMO_mode_t mode, uint32_t pmi_alloc,uint16_t rb)
{
/*
MIMO_mode_t mode = dlsch_harq->mimo_mode;
uint32_t pmi_alloc = dlsch_harq->pmi_alloc;
*/
switch (N_RB_DL) {
case 6: // 1 PRB per subband
if (mode <= PUSCH_PRECODING1)
return((pmi_alloc>>(rb<<1))&3);
else
return((pmi_alloc>>rb)&1);
break;
default:
case 25: // 4 PRBs per subband
if (mode <= PUSCH_PRECODING1)
return((pmi_alloc>>((rb>>2)<<1))&3);
else
return((pmi_alloc>>(rb>>2))&1);
break;
case 50: // 6 PRBs per subband
if (mode <= PUSCH_PRECODING1)
return((pmi_alloc>>((rb/6)<<1))&3);
else
return((pmi_alloc>>(rb/6))&1);
break;
case 100: // 8 PRBs per subband
if (mode <= PUSCH_PRECODING1)
return((pmi_alloc>>((rb>>3)<<1))&3);
else
return((pmi_alloc>>(rb>>3))&1);
break;
}
}
/* These functions compute linear preprocessing for
the UE using LAPACKE and CBLAS modules of
LAPACK libraries.
MMSE and MMSE whitening filters are available.
Functions are using RowMajor storage of the
matrices, like in conventional C. Traditional
Fortran functions of LAPACK employ ColumnMajor
data storage. */
#include<stdio.h>
#include<math.h>
#include<complex.h>
#include <stdlib.h>
#include <cblas.h>
#include <string.h>
#include <lapacke_utils.h>
#include <lapacke.h>
//#define DEBUG_PREPROC
void transpose (int N, float complex *A, float complex *Result)
{
// COnputes C := alpha*op(A)*op(B) + beta*C,
enum CBLAS_TRANSPOSE transa = CblasTrans;
enum CBLAS_TRANSPOSE transb = CblasNoTrans;
int rows_opA = N; // number of rows in op(A) and in C
int col_opB = N; //number of columns of op(B) and in C
int col_opA = N; //number of columns in op(A) and rows in op(B)
int col_B; //number of columns in B
float complex alpha = 1.0+I*0;
int lda = rows_opA;
float complex beta = 0.0+I*0;
int ldc = rows_opA;
int i;
float complex* B;
int ldb = col_opB;
if (transb == CblasNoTrans) {
B = (float complex*)calloc(ldb*col_opB,sizeof(float complex));
col_B= col_opB;
}
else {
B = (float complex*)calloc(ldb*col_opA, sizeof(float complex));
col_B = col_opA;
}
float complex* C = (float complex*)malloc(ldc*col_opB*sizeof(float complex));
for (i=0; i<lda*col_B; i+=N+1)
B[i]=1.0+I*0;
cblas_cgemm(CblasRowMajor, transa, transb, rows_opA, col_opB, col_opA, &alpha, A, lda, B, ldb, &beta, C, ldc);
memcpy(Result, C, N*N*sizeof(float complex));
free(B);
free(C);
}
void conjugate_transpose (int N, float complex *A, float complex *Result)
{
// Computes C := alpha*op(A)*op(B) + beta*C,
enum CBLAS_TRANSPOSE transa = CblasConjTrans;
enum CBLAS_TRANSPOSE transb = CblasNoTrans;
int rows_opA = N; // number of rows in op(A) and in C
int col_opB = N; //number of columns of op(B) and in C
int col_opA = N; //number of columns in op(A) and rows in op(B)
int col_B; //number of columns in B
float complex alpha = 1.0+I*0;
int lda = rows_opA;
float complex beta = 0.0+I*0;
int ldc = rows_opA;
int i;
float complex* B;
int ldb = col_opB;
if (transb == CblasNoTrans) {
B = (float complex*)calloc(ldb*col_opB,sizeof(float complex));
col_B= col_opB;
}
else {
B = (float complex*)calloc(ldb*col_opA, sizeof(float complex));
col_B = col_opA;
}
float complex* C = (float complex*)malloc(ldc*col_opB*sizeof(float complex));
for (i=0; i<lda*col_B; i+=N+1)
B[i]=1.0+I*0;
cblas_cgemm(CblasRowMajor, transa, transb, rows_opA, col_opB, col_opA, &alpha, A, lda, B, ldb, &beta, C, ldc);
memcpy(Result, C, N*N*sizeof(float complex));
free(B);
free(C);
}
void H_hermH_plus_sigma2I (int N, int M, float complex *A, float sigma2, float complex *Result)
{
//C := alpha*op(A)*op(B) + beta*C,
enum CBLAS_TRANSPOSE transa = CblasConjTrans;
enum CBLAS_TRANSPOSE transb = CblasNoTrans;
int rows_opA = N; // number of rows in op(A) and in C
int col_opB = N; //number of columns of op(B) and in C
int col_opA = N; //number of columns in op(A) and rows in op(B)
int col_C = N; //number of columns in B
float complex alpha = 1.0+I*0;
int lda = col_opA;
float complex beta = 1.0 + I*0;
int ldc = col_opA;
int i;
float complex* C = (float complex*)calloc(ldc*col_opB, sizeof(float complex));
for (i=0; i<lda*col_C; i+=N+1)
C[i]=sigma2*(1.0+I*0);
cblas_cgemm(CblasRowMajor, transa, transb, rows_opA, col_opB, col_opA, &alpha, A, lda, A, lda, &beta, C, ldc);
memcpy(Result, C, N*M*sizeof(float complex));
free(C);
}
void HH_herm_plus_sigma2I (int M, int N, float complex *A, float sigma2, float complex *Result)
{
//C := alpha*op(A)*op(B) + beta*C,
enum CBLAS_TRANSPOSE transa = CblasNoTrans;
enum CBLAS_TRANSPOSE transb = CblasConjTrans;
int k = N; //number of columns in op(A) and rows in op(B),k
float complex alpha = 1.0+I*0;
int lda = N;
int ldb = N;
int ldc = M;
int i;
float complex* C = (float complex*)calloc(M*M, sizeof(float complex));
for (i=0; i<M*M; i+=M+1)
C[i]=1.0+I*0;
cblas_cgemm(CblasRowMajor, transa, transb, M, M, k, &alpha, A, lda, A, ldb, &sigma2, C, ldc);
memcpy(Result, C, M*M*sizeof(float complex));
free(C);
}
void eigen_vectors_values (int N, float complex *A, float complex *Vectors, float *Values_Matrix)
{
// This function computes ORTHONORMAL eigenvectors and eigenvalues of matrix A,
// where Values_Matrix is a diagonal matrix of eigenvalues.
// A=Vectors*Values_Matrix*Vectors'
char jobz = 'V';
char uplo = 'U';
int order_A = N;
int lda = N;
int i;
float* Values = (float*)malloc(sizeof(float)*1*N);
LAPACKE_cheev(LAPACK_ROW_MAJOR, jobz, uplo, order_A, A, lda, Values);
memcpy(Vectors, A, N*N*sizeof(float complex));
for (i=0; i<lda; i+=1)
Values_Matrix[i*(lda+1)]=Values[i];
free(Values);
}
void lin_eq_solver (int N, float complex* A, float complex* B, float complex* Result)
{
int n = N;
int lda = N;
int ldb = N;
int nrhs = N;
char transa = 'N';
int* IPIV = malloc(N*N*sizeof(int));
// Compute LU-factorization
LAPACKE_cgetrf(LAPACK_ROW_MAJOR, n, nrhs, A, lda, IPIV);
// Solve AX=B
LAPACKE_cgetrs(LAPACK_ROW_MAJOR, transa, n, nrhs, A, lda, IPIV, B, ldb);
// cgetrs( "N", N, 4, A, lda, IPIV, B, ldb, INFO )
memcpy(Result, B, N*N*sizeof(float complex));
free(IPIV);
}
void mutl_matrix_matrix_row_based(float complex* M0, float complex* M1, int rows_M0, int col_M0, int rows_M1, int col_M1, float complex* Result ){
enum CBLAS_TRANSPOSE transa = CblasNoTrans;
enum CBLAS_TRANSPOSE transb = CblasNoTrans;
int rows_opA = rows_M0; // number of rows in op(A) and in C
int col_opB = col_M1; //number of columns of op(B) and in C
int col_opA = col_M0; //number of columns in op(A) and rows in op(B)
float complex alpha =1.0;
int lda = col_M0;
float complex beta = 0.0;
int ldc = col_M1;
int ldb = col_M1;
#ifdef DEBUG_PREPROC
int i=0;
printf("rows_M0 %d, col_M0 %d, rows_M1 %d, col_M1 %d\n", rows_M0, col_M0, rows_M1, col_M1);
for(i=0; i<rows_M0*col_M0; ++i)
printf(" rows_opA = %d, col_opB = %d, W_MMSE[%d] = (%f + i%f)\n", rows_opA, col_opB, i , creal(M0[i]), cimag(M0[i]));
for(i=0; i<rows_M1*col_M1; ++i)
printf(" M1[%d] = (%f + i%f)\n", i , creal(M1[i]), cimag(M1[i]));
#endif
cblas_cgemm(CblasRowMajor, transa, transb, rows_opA, col_opB, col_opA, &alpha, M0, lda, M1, ldb, &beta, Result, ldc);
#ifdef DEBUG_PREPROC
for(i=0; i<rows_opA*col_opB; ++i)
printf(" result[%d] = (%f + i%f)\n", i , creal(Result[i]), cimag(Result[i]));
#endif
}
void mutl_matrix_matrix_col_based(float complex* M0, float complex* M1, int rows_M0, int col_M0, int rows_M1, int col_M1, float complex* Result ){
enum CBLAS_TRANSPOSE transa = CblasNoTrans;
enum CBLAS_TRANSPOSE transb = CblasNoTrans;
int rows_opA = rows_M0; // number of rows in op(A) and in C
int col_opB = col_M1; //number of columns of op(B) and in C
int col_opA = col_M0; //number of columns in op(A) and rows in op(B)
float complex alpha =1.0;
int lda = col_M0;
float complex beta = 0.0;
int ldc = rows_M1;
int ldb = rows_M1;
#ifdef DEBUG_PREPROC
int i = 0;
printf("rows_M0 %d, col_M0 %d, rows_M1 %d, col_M1 %d\n", rows_M0, col_M0, rows_M1, col_M1);
for(i=0; i<rows_M0*col_M0; ++i)
printf(" rows_opA = %d, col_opB = %d, W_MMSE[%d] = (%f + i%f)\n", rows_opA, col_opB, i , creal(M0[i]), cimag(M0[i]));
for(i=0; i<rows_M1*col_M1; ++i)
printf(" M1[%d] = (%f + i%f)\n", i , creal(M1[i]), cimag(M1[i]));
#endif
cblas_cgemm(CblasColMajor, transa, transb, rows_opA, col_opB, col_opA, &alpha, M0, lda, M1, ldb, &beta, Result, ldc);
#ifdef DEBUG_PREPROC
for(i=0; i<rows_opA*col_opB; ++i)
printf(" result[%d] = (%f + i%f)\n", i , creal(Result[i]), cimag(Result[i]));
#endif
}
/*FILTERS */
void compute_MMSE(float complex* H, int order_H, float sigma2, float complex* W_MMSE)
{
int N = order_H;
float complex* H_hermH_sigmaI = malloc(N*N*sizeof(float complex));
float complex* H_herm = malloc(N*N*sizeof(float complex));
H_hermH_plus_sigma2I(N, N, H, sigma2, H_hermH_sigmaI);
#ifdef DEBUG_PREPROC
int i =0;
for(i=0;i<N*N;i++)
printf(" H_hermH_sigmaI[%d] = (%f + i%f)\n", i , creal(H_hermH_sigmaI[i]), cimag(H_hermH_sigmaI[i]));
#endif
conjugate_transpose (N, H, H_herm); //equals H_herm
#ifdef DEBUG_PREPROC
for(i=0;i<N*N;i++)
printf(" H_herm[%d] = (%f + i%f)\n", i , creal(H_herm[i]), cimag(H_herm[i]));
#endif
lin_eq_solver(N, H_hermH_sigmaI, H_herm, W_MMSE);
#ifdef DEBUG_PREPROC
for(i=0;i<N*N;i++)
printf(" W_MMSE[%d] = (%f + i%f)\n", i , creal(W_MMSE[i]), cimag(W_MMSE[i]));
#endif
free(H_hermH_sigmaI);
free(H_herm);
}
#if 0
void compute_white_filter(float complex* H_re,
int order_H,
float sigma2,
float complex* W_Wh_0_re,
float complex* W_Wh_1_re){
int aatx, aarx, re;
int i,j;
int M =n_rx;
int N = n_tx;
int sigma2=noise_power;
float complex *H0_re = malloc(n_rx*(n_tx>>2)*sizeof(float complex));
float complex *H1_re = malloc(n_rx*(n_tx>>2)*sizeof(float complex));
float complex *R_corr_col_n_0_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *R_corr_col_n_1_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *U_0_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *U_1_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *U_0_herm_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *U_1_herm_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *D_0_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *D_1_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *W_Wh_0_re = malloc(n_rx*n_tx*sizeof(float complex));
float complex *W_Wh_1_re = malloc(n_rx*n_tx*sizeof(float complex));
for (aatx=0; aatx<n_tx/2; aatx++){
for (aarx=0; aarx<n_rx; aarx++) {
H0_re[aatx*n_rx + aarx] = H_re[aatx*n_rx + aarx][re]; // H0 gets [0 1 2 3; 4,5,6,7].' coefficients of H
H1_re[aatx*n_rx + aarx] = H_re[aatx*n_rx + aarx + 8][re]; // H1 gets [8 9 10 11; 12, 13, 14, 15].' coefficients of H
if (re == 0)
printf("ant %d, H_re = (%f + i%f) \n", aatx*n_rx + aarx, creal(H[aatx*n_rx + aarx][re]), cimag(H[aatx*n_rx + aarx][re]));
}
}
//HH_herm_plus_sigma2I(n_rx, (n_tx>>2), H1_re, sigma2, R_corr_col_n_0_re);
HH_herm_plus_sigma2I(n_rx, (n_tx>>2), H0_re, sigma2, R_corr_col_n_1_re);
eigen_vectors_values(n_rx, R_corr_col_n_0_re, U_0_re, D_0_re);
eigen_vectors_values(n_rx, R_corr_col_n_1_re, U_1_re, D_1_re);
transpose (n_rx, U_0_re, U_0_herm_re);
transpose (n_rx, U_1_re, U_1_herm_re);
sigma = (float)(sqrt((double)(sigma2)));
/*The inverse of a diagonal matrix is obtained by replacing each element in the diagonal with its reciprocal.
A square root of a diagonal matrix is given by the diagonal matrix, whose diagonal entries are just the square
roots of the original matrix.*/
D_0_re_inv_sqrt[0] = sqrt_float(1/D_0_re_inv[0]);
D_0_re_inv_sqrt[5] = sqrt_float(1/D_0_re_inv[5]);
D_0_re_inv_sqrt[10] = sqrt_float(1/D_0_re_inv[10]);
D_0_re_inv_sqrt[15] = sqrt_float(1/D_0_re_inv[15]);
D_1_re_inv[0] = sqrt_float(1/D_1_re_inv[0]);
D_1_re_inv[5] = sqrt_float(1/D_1_re_inv[5]);
D_1_re_inv[10] = sqrt_float(1/D_1_re_inv[10]);
D_1_re_inv[15] = sqrt_float(1/D_1_re_inv[15]);
now only to multiply
free(H0);
free(H1);
free(R_corr_col_n_0);
free(R_corr_col_n_1);
}
#endif
float sqrt_float(float x, float sqrt_x)
{
sqrt_x = (float)(sqrt((double)(x)));
return sqrt_x;
}
\ No newline at end of file
#include<stdio.h>
#include<math.h>
#include<complex.h>
#include <stdlib.h>
#include "PHY/defs_UE.h"
/* FUNCTIONS FOR LINEAR PREPROCESSING: MMSE, WHITENNING, etc*/
void transpose(int N, float complex *A, float complex *Result);
void conjugate_transpose(int N, float complex *A, float complex *Result);
void H_hermH_plus_sigma2I(int N, int M, float complex *A, float sigma2, float complex *Result);
void HH_herm_plus_sigma2I(int M, int N, float complex *A, float sigma2, float complex *Result);
void eigen_vectors_values(int N, float complex *A, float complex *Vectors, float *Values_Matrix);
void lin_eq_solver(int N, float complex *A, float complex* B);
//float complex* lin_eq_solver (int N, float complex* A, float complex* B);
/* mutl_matrix_matrix_row_based performs multiplications when matrix is row-oriented H[0], H[1]; H[2], H[3]*/
void mutl_matrix_matrix_row_based(float complex* M0, float complex* M1, int rows_M0, int col_M0, int rows_M1, int col_M1, float complex* Result );
/* mutl_matrix_matrix_col_based performs multiplications matrix is column-oriented H[0], H[2]; H[1], H[3]*/
void mutl_matrix_matrix_col_based(float complex* M0, float complex* M1, int rows_M0, int col_M0, int rows_M1, int col_M1, float complex* Result );
void compute_MMSE(float complex* H, int order_H, float sigma2, float complex* W_MMSE);
void compute_white_filter(float complex* H, int order_H, float sigma2, float complex* U_1, float complex* D_1);
void mmse_processing_oai(LTE_UE_PDSCH *pdsch_vars,
LTE_DL_FRAME_PARMS *frame_parms,
PHY_MEASUREMENTS *measurements,
unsigned char first_symbol_flag,
MIMO_mode_t mimo_mode,
unsigned short mmse_flag,
int noise_power,
unsigned char symbol,
unsigned short nb_rb);
void precode_channel_est(int32_t **dl_ch_estimates_ext,
LTE_DL_FRAME_PARMS *frame_parms,
LTE_UE_PDSCH *pdsch_vars,
unsigned char symbol,
unsigned short nb_rb,
MIMO_mode_t mimo_mode);
void rxdataF_to_float(int32_t **rxdataF_ext,
float complex **rxdataF_f,
int n_rx,
int length,
int start_point);
void chan_est_to_float(int32_t **dl_ch_estimates_ext,
float complex **dl_ch_estimates_ext_f,
int n_tx,
int n_rx,
int length,
int start_point);
void float_to_chan_est(int32_t **dl_ch_estimates_ext,
float complex **dl_ch_estimates_ext_f,
int n_tx,
int n_rx,
int length,
int start_point);
void float_to_rxdataF(int32_t **rxdataF_ext,
float complex **rxdataF_f,
int n_tx,
int n_rx,
int length,
int start_point);
void mult_mmse_rxdataF(float complex** Wmmse,
float complex** rxdataF_ext_f,
int n_tx,
int n_rx,
int length,
int start_point);
void mult_mmse_chan_est(float complex** Wmmse,
float complex** dl_ch_estimates_ext_f,
int n_tx,
int n_rx,
int length,
int start_point);
void mmse_processing_core(int32_t **rxdataF_ext,
int32_t **dl_ch_estimates_ext,
int sigma2,
int n_tx,
int n_rx,
int length,
int start_point);
void mmse_processing_core_flp(float complex** rxdataF_ext_flcpx,
float complex **H,
int32_t **rxdataF_ext,
int32_t **dl_ch_estimates_ext,
float sigma2,
int n_tx,
int n_rx,
int length,
int start_point);
void whitening_processing_core_flp(float complex** rxdataF_ext_flcpx,
float complex **H,
int32_t **rxdataF_ext,
int32_t **dl_ch_estimates_ext,
float sigma2,
int n_tx,
int n_rx,
int length,
int start_point);
float sqrt_float(float x, float sqrt_x);
/*
* 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 <string.h>
#include <math.h>
#include <unistd.h>
#include <stdint.h>
#include <stdio.h>
#include <time.h>
#include "SIMULATION/TOOLS/sim.h"
#include "SIMULATION/RF/rf.h"
#include "PHY/types.h"
#include "PHY/defs_eNB.h"
#include "PHY/phy_extern.h"
#include "PHY/phy_extern_ue.h"
#include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_extern.h"
#include "UTIL/LOG/log_if.h"
#include "UTIL/LOG/log_extern.h"
#include "RRC/LTE/rrc_extern.h"
#include "PHY_INTERFACE/phy_interface_extern.h"
#include "UTIL/OCG/OCG.h"
#include "UTIL/OPT/opt.h" // to test OPT
#include "UTIL/FIFO/types.h"
#define RF
//#define DEBUG_SIM
//#undef LOG_D
//#define LOG_D(A,B,C...) printf(B,C)
void do_DL_sig(sim_t *sim,
uint16_t subframe,
uint32_t offset,
uint32_t length,
uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *ue_frame_parms,
uint8_t UE_id,
int CC_id)
{
int32_t **txdata,**rxdata;
uint32_t ru_id=0;
double tx_pwr;
double rx_pwr;
int32_t rx_pwr2;
uint32_t i,aa;
uint32_t sf_offset;
uint8_t hold_channel=0;
uint8_t nb_antennas_rx = sim->RU2UE[0][0][CC_id]->nb_rx; // number of rx antennas at UE
uint8_t nb_antennas_tx = sim->RU2UE[0][0][CC_id]->nb_tx; // number of tx antennas at eNB
double s_re0[30720];
double s_re1[30720];
double *s_re[2];
double s_im0[30720];
double s_im1[30720];
double *s_im[2];
double r_re00[30720];
double r_re01[30720];
double *r_re0[2];
double r_im00[30720];
double r_im01[30720];
double *r_im0[2];
LTE_DL_FRAME_PARMS *frame_parms;
s_re[0] = s_re0;
s_im[0] = s_im0;
s_re[1] = s_re1;
s_im[1] = s_im1;
r_re0[0] = r_re00;
r_im0[0] = r_im00;
r_re0[1] = r_re01;
r_im0[1] = r_im01;
if (subframe==0)
hold_channel = 0;
else
hold_channel = 1;
pthread_mutex_lock(&sim->RU_output_mutex[UE_id]);
if (sim->RU_output_mask[UE_id] == 0) { // This is the first eNodeB for this UE, clear the buffer
for (aa=0; aa<nb_antennas_rx; aa++) {
memset((void*)sim->r_re_DL[UE_id][aa],0,(RC.ru[0]->frame_parms.samples_per_tti)*sizeof(double));
memset((void*)sim->r_im_DL[UE_id][aa],0,(RC.ru[0]->frame_parms.samples_per_tti)*sizeof(double));
}
}
pthread_mutex_unlock(&sim->RU_output_mutex[UE_id]);
for (ru_id=0; ru_id<RC.nb_RU; ru_id++) {
txdata = RC.ru[ru_id]->common.txdata;
frame_parms = &RC.ru[ru_id]->frame_parms;
// sf_offset = (subframe*frame_parms->samples_per_tti) + offset;
sf_offset = (subframe*frame_parms->samples_per_tti);
LOG_D(OCM,">>>>>>>>>>>>>>>>>TXPATH: RU %d : DL_sig reading TX for subframe %d (sf_offset %d, length %d) from %p\n",ru_id,subframe,sf_offset,length,txdata[0]+sf_offset);
int length_meas = frame_parms->ofdm_symbol_size;
if (sf_offset+length <= frame_parms->samples_per_tti*10) {
tx_pwr = dac_fixed_gain(s_re,
s_im,
txdata,
sf_offset+offset,
nb_antennas_tx,
length,
sf_offset,
length_meas,
14,
frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE
0,
&sim->ru_amp[ru_id],
frame_parms->N_RB_DL*12);
}
else {
tx_pwr = dac_fixed_gain(s_re,
s_im,
txdata,
sf_offset,
nb_antennas_tx,
(frame_parms->samples_per_tti*10)-sf_offset,
sf_offset,
length_meas,
14,
frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE
0,
&sim->ru_amp[ru_id],
frame_parms->N_RB_DL*12);
tx_pwr = dac_fixed_gain(s_re,
s_im,
txdata,
sf_offset,
nb_antennas_tx,
length+sf_offset-(frame_parms->samples_per_tti*10),
sf_offset,
length_meas,
14,
frame_parms->pdsch_config_common.referenceSignalPower, // dBm/RE
0,
&sim->ru_amp[ru_id],
frame_parms->N_RB_DL*12);
}
#ifdef DEBUG_SIM
LOG_D(OCM,"[SIM][DL] subframe %d: txp (time) %d dB\n",
subframe,dB_fixed(signal_energy(&txdata[0][sf_offset],length_meas)));
LOG_D(OCM,"[SIM][DL] RU %d (CCid %d): tx_pwr %.1f dBm/RE (target %d dBm/RE), for subframe %d\n",
ru_id,CC_id,
10*log10(tx_pwr),
frame_parms->pdsch_config_common.referenceSignalPower,
subframe);
#endif
tx_pwr = signal_energy_fp(s_re,s_im,nb_antennas_tx,
length<length_meas?length:length_meas,
0)/(12.0*frame_parms->N_RB_DL);
//RU2UE[eNB_id][UE_id]->path_loss_dB = 0;
multipath_channel(sim->RU2UE[ru_id][UE_id][CC_id],s_re,s_im,r_re0,r_im0,
length,hold_channel);
#ifdef DEBUG_SIM
rx_pwr = signal_energy_fp2(sim->RU2UE[ru_id][UE_id][CC_id]->ch[0],
sim->RU2UE[ru_id][UE_id][CC_id]->channel_length)*sim->RU2UE[ru_id][UE_id][CC_id]->channel_length;
LOG_D(OCM,"[SIM][DL] Channel RU %d => UE %d (CCid %d): Channel gain %f dB (%f)\n",ru_id,UE_id,CC_id,10*log10(rx_pwr),rx_pwr);
#endif
#ifdef DEBUG_SIM
for (i=0; i<sim->RU2UE[ru_id][UE_id][CC_id]->channel_length; i++)
LOG_D(OCM,"channel(%d,%d)[%d] : (%f,%f)\n",ru_id,UE_id,i,sim->RU2UE[ru_id][UE_id][CC_id]->ch[0][i].x,sim->RU2UE[ru_id][UE_id][CC_id]->ch[0][i].y);
#endif
LOG_D(OCM,"[SIM][DL] Channel RU %d => UE %d (CCid %d): tx_power %.1f dBm/RE, path_loss %1.f dB\n",
ru_id,UE_id,CC_id,
(double)frame_parms->pdsch_config_common.referenceSignalPower,
sim->RU2UE[ru_id][UE_id][CC_id]->path_loss_dB);
#ifdef DEBUG_SIM
rx_pwr = signal_energy_fp(r_re0,r_im0,nb_antennas_rx,
length<length_meas?length:length_meas,
0)/(12.0*frame_parms->N_RB_DL);
LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr %f dBm/RE (%f dBm RSSI,tx %f dB)for subframe %d (length %d)\n",UE_id,
10*log10(rx_pwr),
10*log10(rx_pwr*(double)frame_parms->N_RB_DL*12),
10*log10(tx_pwr),subframe,
length<length_meas?length:length_meas);
LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr (noise) -132 dBm/RE (N0fs = %.1f dBm, N0B = %.1f dBm) for subframe %d\n",
UE_id,
10*log10(sim->RU2UE[ru_id][UE_id][CC_id]->sampling_rate*1e6)-174,
10*log10(sim->RU2UE[ru_id][UE_id][CC_id]->sampling_rate*1e6*12*frame_parms->N_RB_DL/(double)frame_parms->ofdm_symbol_size)-174,
subframe);
#endif
if (sim->RU2UE[ru_id][UE_id][CC_id]->first_run == 1)
sim->RU2UE[ru_id][UE_id][CC_id]->first_run = 0;
// RF model
#ifdef DEBUG_SIM
LOG_D(OCM,"[SIM][DL] UE %d (CCid %d): rx_gain %d dB (-ADC %f) for subframe %d\n",UE_id,CC_id,PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB,
PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB-66.227,subframe);
#endif
rf_rx_simple(r_re0,
r_im0,
nb_antennas_rx,
length,
1e3/sim->RU2UE[ru_id][UE_id][CC_id]->sampling_rate, // sampling time (ns)
(double)PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB - 66.227); // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later)
#ifdef DEBUG_SIM
rx_pwr = signal_energy_fp(r_re0,r_im0,
nb_antennas_rx,
length<length_meas?length:length_meas,
0)/(12.0*frame_parms->N_RB_DL);
LOG_D(OCM,"[SIM][DL] UE %d : ADC in (RU %d) %f dBm/RE for subframe %d\n",
UE_id,ru_id,
10*log10(rx_pwr),subframe);
#endif
pthread_mutex_lock(&sim->RU_output_mutex[UE_id]);
for (i=0; i<frame_parms->samples_per_tti; i++) {
for (aa=0; aa<nb_antennas_rx; aa++) {
sim->r_re_DL[UE_id][aa][i]+=r_re0[aa][i];
sim->r_im_DL[UE_id][aa][i]+=r_im0[aa][i];
}
}
sim->RU_output_mask[UE_id] |= (1<<ru_id);
if (sim->RU_output_mask[UE_id] == (1<<RC.nb_RU)-1) {
sim->RU_output_mask[UE_id]=0;
double *r_re_p[2] = {sim->r_re_DL[UE_id][0],sim->r_re_DL[UE_id][1]};
double *r_im_p[2] = {sim->r_im_DL[UE_id][0],sim->r_im_DL[UE_id][1]};
#ifdef DEBUG_SIM
rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,length<length_meas?length:length_meas,0)/(12.0*frame_parms->N_RB_DL);
LOG_D(OCM,"[SIM][DL] UE %d : ADC in %f dBm/RE for subframe %d\n",UE_id,10*log10(rx_pwr),subframe);
#endif
rxdata = PHY_vars_UE_g[UE_id][CC_id]->common_vars.rxdata;
sf_offset = (subframe*frame_parms->samples_per_tti)+offset;
adc(r_re_p,
r_im_p,
0,
sf_offset,
rxdata,
nb_antennas_rx,
length,
12);
#ifdef DEBUG_SIM
rx_pwr2 = signal_energy(rxdata[0]+sf_offset,length<length_meas?length:length_meas)/(12.0*frame_parms->N_RB_DL);
LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr (ADC out) %f dB/RE (%d) for subframe %d, writing to %p, length %d\n",UE_id, 10*log10((double)rx_pwr2),rx_pwr2,subframe,rxdata,length<length_meas?length:length_meas);
LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr (ADC out) %f dB for subframe %d\n",UE_id,10*log10((double)rx_pwr2*12*frame_parms->N_RB_DL) ,subframe);
#else
UNUSED_VARIABLE(rx_pwr2);
UNUSED_VARIABLE(tx_pwr);
UNUSED_VARIABLE(rx_pwr);
#endif
} // RU_output_mask
pthread_mutex_unlock(&sim->RU_output_mutex[UE_id]);
} // ru_id
}
void do_UL_sig(sim_t *sim,
uint16_t subframe,uint8_t abstraction_flag,LTE_DL_FRAME_PARMS *frame_parms,
uint32_t frame,int ru_id,uint8_t CC_id)
{
int32_t **txdata,**rxdata;
uint8_t UE_id=0;
uint8_t nb_antennas_rx = sim->UE2RU[0][0][CC_id]->nb_rx; // number of rx antennas at eNB
uint8_t nb_antennas_tx = sim->UE2RU[0][0][CC_id]->nb_tx; // number of tx antennas at UE
double tx_pwr, rx_pwr;
int32_t rx_pwr2;
uint32_t i,aa;
uint32_t sf_offset,sf_offset_tdd;
uint8_t hold_channel=0;
double s_re0[30720];
double s_re1[30720];
double *s_re[2];
double s_im0[30720];
double s_im1[30720];
double *s_im[2];
double r_re00[30720];
double r_re01[30720];
double *r_re0[2];
double r_im00[30720];
double r_im01[30720];
double *r_im0[2];
s_re[0] = s_re0;
s_im[0] = s_im0;
s_re[1] = s_re1;
s_im[1] = s_im1;
r_re0[0] = r_re00;
r_im0[0] = r_im00;
r_re0[1] = r_re01;
r_im0[1] = r_im01;
pthread_mutex_lock(&sim->UE_output_mutex[ru_id]);
// Clear RX signal for eNB = eNB_id
for (i=0; i<frame_parms->samples_per_tti; i++) {
for (aa=0; aa<nb_antennas_rx; aa++) {
sim->r_re_UL[ru_id][aa][i]=0.0;
sim->r_im_UL[ru_id][aa][i]=0.0;
}
}
pthread_mutex_unlock(&sim->UE_output_mutex[ru_id]);
// Compute RX signal for eNB = eNB_id
for (UE_id=0; UE_id<NB_UE_INST; UE_id++) {
txdata = PHY_vars_UE_g[UE_id][CC_id]->common_vars.txdata;
AssertFatal(txdata != NULL,"txdata is null\n");
sf_offset = subframe*frame_parms->samples_per_tti;
if (subframe>0) sf_offset_tdd = sf_offset - PHY_vars_UE_g[UE_id][CC_id]->N_TA_offset;
else sf_offset_tdd = sf_offset;
LOG_D(OCM,"txdata for subframe %d (%d), power %d\n",subframe,sf_offset_tdd,dB_fixed(signal_energy(&txdata[0][sf_offset_tdd],frame_parms->samples_per_tti)));
if (((double)PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe] +
sim->UE2RU[UE_id][ru_id][CC_id]->path_loss_dB) <= -125.0) {
// don't simulate a UE that is too weak
LOG_D(OCM,"[SIM][UL] ULPOWERS UE %d tx_pwr %d dBm (num_RE %d) for subframe %d (sf_offset %d,sf_offset_tdd %d)\n",
UE_id,
PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe],
PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe],
subframe,sf_offset,sf_offset_tdd);
} else {
tx_pwr = dac_fixed_gain((double**)s_re,
(double**)s_im,
txdata,
sf_offset_tdd,
nb_antennas_tx,
frame_parms->samples_per_tti,
sf_offset_tdd,
frame_parms->ofdm_symbol_size,
14,
(double)PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe]-10*log10((double)PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe]),
1,
NULL,
PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe]); // This make the previous argument the total power
LOG_D(OCM,"[SIM][UL] ULPOWERS UE %d tx_pwr %f dBm (target %d dBm, num_RE %d) for subframe %d (sf_offset %d,sf_offset_tdd %d)\n",
UE_id,
10*log10(tx_pwr*PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe]),
PHY_vars_UE_g[UE_id][CC_id]->tx_power_dBm[subframe],
PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe],
subframe,sf_offset,sf_offset_tdd);
multipath_channel(sim->UE2RU[UE_id][ru_id][CC_id],s_re,s_im,r_re0,r_im0,
frame_parms->samples_per_tti,hold_channel);
rx_pwr = signal_energy_fp2(sim->UE2RU[UE_id][ru_id][CC_id]->ch[0],
sim->UE2RU[UE_id][ru_id][CC_id]->channel_length)*sim->UE2RU[UE_id][ru_id][CC_id]->channel_length;
LOG_D(OCM,"[SIM][UL] subframe %d Channel UE %d => RU %d : %f dB (hold %d,length %d, PL %f)\n",subframe,UE_id,ru_id,10*log10(rx_pwr),
hold_channel,sim->UE2RU[UE_id][ru_id][CC_id]->channel_length,
sim->UE2RU[UE_id][ru_id][CC_id]->path_loss_dB);
rx_pwr = signal_energy_fp(r_re0,r_im0,nb_antennas_rx,frame_parms->samples_per_tti,0);
LOG_D(OCM,"[SIM][UL] RU %d (%d/%d rx antennas) : rx_pwr %f dBm (tx_pwr - PL %f) for subframe %d, sptti %d\n",
ru_id,nb_antennas_rx,sim->UE2RU[UE_id][ru_id][CC_id]->nb_rx,10*log10(rx_pwr),10*log10(tx_pwr*PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe])+sim->UE2RU[UE_id][ru_id][CC_id]->path_loss_dB,subframe,frame_parms->samples_per_tti);
/*
if (abs(10*log10(rx_pwr)-10*log10(tx_pwr*PHY_vars_UE_g[UE_id][CC_id]->tx_total_RE[subframe])-UE2RU[UE_id][ru_id][CC_id]->path_loss_dB)>3) {
write_output("txsig_re.m","s_re",s_re[0],frame_parms->samples_per_tti,1,7);
write_output("txsig_im.m","s_im",s_im[0],frame_parms->samples_per_tti,1,7);
write_output("rxsig_re.m","r_re",r_re0[0],frame_parms->samples_per_tti,1,7);
write_output("rxsig_im.m","r_im",r_im0[0],frame_parms->samples_per_tti,1,7);
exit(-1);
}*/
if (sim->UE2RU[UE_id][ru_id][CC_id]->first_run == 1)
sim->UE2RU[UE_id][ru_id][CC_id]->first_run = 0;
pthread_mutex_lock(&sim->UE_output_mutex[ru_id]);
for (aa=0; aa<nb_antennas_rx; aa++) {
for (i=0; i<frame_parms->samples_per_tti; i++) {
sim->r_re_UL[ru_id][aa][i]+=r_re0[aa][i];
sim->r_im_UL[ru_id][aa][i]+=r_im0[aa][i];
}
}
pthread_mutex_unlock(&sim->UE_output_mutex[ru_id]);
}
} //UE_id
double *r_re_p[2] = {sim->r_re_UL[ru_id][0],sim->r_re_UL[ru_id][1]};
double *r_im_p[2] = {sim->r_im_UL[ru_id][0],sim->r_im_UL[ru_id][1]};
rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,frame_parms->samples_per_tti,0);
LOG_D(OCM,"[SIM][UL] RU %d (%d/%d rx antennas) : rx_pwr %f dBm (before RF) for subframe %d, gain %f\n",
ru_id,nb_antennas_rx,nb_antennas_rx,10*log10(rx_pwr),subframe,
(double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx - 66.227);
rf_rx_simple(r_re_p,
r_im_p,
nb_antennas_rx,
frame_parms->samples_per_tti,
1e3/sim->UE2RU[0][ru_id][CC_id]->sampling_rate, // sampling time (ns)
(double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx - 66.227); // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later)
#ifdef DEBUG_SIM
rx_pwr = signal_energy_fp(r_re_p,r_im_p,nb_antennas_rx,frame_parms->samples_per_tti,0);//*(double)frame_parms->ofdm_symbol_size/(12.0*frame_parms->N_RB_DL;
LOG_D(OCM,"[SIM][UL] rx_pwr (ADC in) %f dB for subframe %d (rx_gain %f)\n",10*log10(rx_pwr),subframe,
(double)RC.ru[ru_id]->max_rxgain-(double)RC.ru[ru_id]->att_rx);
#endif
rxdata = RC.ru[ru_id]->common.rxdata;
sf_offset = subframe*frame_parms->samples_per_tti;
if (subframe>0) sf_offset_tdd = sf_offset - RC.ru[ru_id]->N_TA_offset;
else sf_offset_tdd = sf_offset;
adc(r_re_p,
r_im_p,
0,
sf_offset_tdd,
rxdata,
nb_antennas_rx,
frame_parms->samples_per_tti,
12);
#ifdef DEBUG_SIM
rx_pwr2 = signal_energy(rxdata[0]+sf_offset_tdd,frame_parms->samples_per_tti)*(double)frame_parms->ofdm_symbol_size/(12.0*frame_parms->N_RB_DL);
LOG_D(OCM,"[SIM][UL] RU %d rx_pwr (ADC out) %f dB (%d) for subframe %d (offset %d) = %p\n",ru_id,10*log10((double)rx_pwr2),rx_pwr2,subframe,sf_offset,rxdata[0]+sf_offset_tdd);
#else
UNUSED_VARIABLE(tx_pwr);
UNUSED_VARIABLE(rx_pwr);
UNUSED_VARIABLE(rx_pwr2);
#endif
}
This source diff could not be displayed because it is too large. You can view the blob instead.
/*
* 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 eNB_scheduler_fairRR.h
* \brief eNB scheduler fair round robin header
* \author Masayuki Harada
* \date 2018
* \email masayuki.harada@jp.fujitsu.com
* \version 1.0
* @ingroup _mac
*/
#ifndef __LAYER2_MAC_ENB_SCHEDULER_FAIRRR_H__
#define __LAYER2_MAC_ENB_SCHEDULER_FAIRRR_H__
/* define */
enum SCH_UE_PRIORITY {
SCH_PRIORITY_NONE,
SCH_DL_SI,
SCH_DL_PAGING,
SCH_DL_MSG2,
SCH_DL_MSG4,
SCH_UL_PRACH,
SCH_UL_MSG3,
SCH_DL_RETRANS,
SCH_UL_RETRANS,
SCH_DL_FIRST,
SCH_UL_FIRST,
SCH_UL_INACTIVE
};
typedef struct {
int UE_id;
enum SCH_UE_PRIORITY ue_priority;
rnti_t rnti;
uint16_t nb_rb;
} DLSCH_UE_INFO;
typedef struct {
uint16_t ue_num;
DLSCH_UE_INFO list[20];
} DLSCH_UE_SELECT;
typedef struct {
int UE_id;
enum SCH_UE_PRIORITY ue_priority;
uint8_t start_rb;
uint8_t nb_rb;
uint16_t ul_total_buffer;
} ULSCH_UE_INFO;
typedef struct {
uint8_t ue_num;
ULSCH_UE_INFO list[20];
} ULSCH_UE_SELECT;
/* proto */
void set_dl_ue_select_msg2(int CC_idP, uint16_t nb_rb, int UE_id, rnti_t rnti);
void set_dl_ue_select_msg4(int CC_idP, uint16_t nb_rb, int UE_id, rnti_t rnti);
void dlsch_scheduler_pre_ue_select_fairRR(
module_id_t module_idP,
frame_t frameP,
sub_frame_t subframeP,
int* mbsfn_flag,
uint16_t nb_rbs_required[MAX_NUM_CCs][NUMBER_OF_UE_MAX],
DLSCH_UE_SELECT dlsch_ue_select[MAX_NUM_CCs]);
void dlsch_scheduler_pre_processor_fairRR (module_id_t Mod_id,
frame_t frameP,
sub_frame_t subframeP,
int N_RBG[MAX_NUM_CCs],
int *mbsfn_flag);
void fill_DLSCH_dci_fairRR(
module_id_t module_idP,
frame_t frameP,
sub_frame_t subframeP,
int* mbsfn_flagP);
void schedule_ue_spec_fairRR(module_id_t module_idP,
frame_t frameP, sub_frame_t subframeP, int *mbsfn_flag);
void ulsch_scheduler_pre_ue_select_fairRR(
module_id_t module_idP,
frame_t frameP,
sub_frame_t subframeP,
sub_frame_t sched_subframeP,
ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]);
void ulsch_scheduler_pre_processor_fairRR(module_id_t module_idP,
frame_t frameP,
sub_frame_t subframeP,
sub_frame_t sched_subframeP,
ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]);
void schedule_ulsch_fairRR(module_id_t module_idP, frame_t frameP,
sub_frame_t subframeP);
void schedule_ulsch_rnti_fairRR(module_id_t module_idP,
frame_t frameP,
sub_frame_t subframeP,
unsigned char sched_subframeP,
ULSCH_UE_SELECT ulsch_ue_select[MAX_NUM_CCs]);
/* extern */
extern DLSCH_UE_SELECT dlsch_ue_select[MAX_NUM_CCs];
extern int last_dlsch_ue_id[MAX_NUM_CCs];
extern int last_ulsch_ue_id[MAX_NUM_CCs];
#endif
...@@ -223,7 +223,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s ...@@ -223,7 +223,7 @@ void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t s
nfapi_ul_config_request_body_t *ul_req = &mac->UL_req[CC_id].ul_config_request_body; nfapi_ul_config_request_body_t *ul_req = &mac->UL_req[CC_id].ul_config_request_body;
//mac->UL_req[CC_id].sfn_sf = (sched_frame<<4) + sched_subframe; mac->UL_req[CC_id].sfn_sf = (sched_frame<<4) + sched_subframe;
hi_dci0_req->sfn_sf = (frameP << 4) + subframeP; hi_dci0_req->sfn_sf = (frameP << 4) + subframeP;
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
EUTRA-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
BCCH-BCH-Message ::= SEQUENCE {
message BCCH-BCH-MessageType
}
BCCH-BCH-MessageType ::= MasterInformationBlock
BCCH-DL-SCH-Message ::= SEQUENCE {
message BCCH-DL-SCH-MessageType
}
BCCH-DL-SCH-MessageType ::= CHOICE {
c1 CHOICE {
systemInformation SystemInformation,
systemInformationBlockType1 SystemInformationBlockType1
},
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 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,
spare7 NULL,
spare6 NULL, spare5 NULL, spare4 NULL,
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 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,
spare5 NULL, spare4 NULL,
spare3 NULL, spare2 NULL, spare1 NULL
},
messageClassExtension 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 SEQUENCE {} OPTIONAL --Need OP
}
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)
}
CounterCheckResponse ::= SEQUENCE {
rrc-TransactionIdentifier RRC-TransactionIdentifier,
criticalExtensions CHOICE {
counterCheckResponse-r8 CounterCheckResponse-r8-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
CounterCheckResponse-r8-IEs ::= SEQUENCE {
drb-CountInfoList DRB-CountInfoList,
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)
}
CSFBParametersRequestCDMA2000 ::= SEQUENCE {
criticalExtensions CHOICE {
csfbParametersRequestCDMA2000-r8 CSFBParametersRequestCDMA2000-r8-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE {
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 SEQUENCE {} OPTIONAL --Need OP
}
DLInformationTransfer ::= SEQUENCE {
rrc-TransactionIdentifier RRC-TransactionIdentifier,
criticalExtensions CHOICE {
c1 CHOICE {
dlInformationTransfer-r8 DLInformationTransfer-r8-IEs,
spare3 NULL, spare2 NULL, spare1 NULL
},
criticalExtensionsFuture SEQUENCE {}
}
}
DLInformationTransfer-r8-IEs ::= SEQUENCE {
dedicatedInfoType CHOICE {
dedicatedInfoNAS DedicatedInfoNAS,
dedicatedInfoCDMA2000-1XRTT DedicatedInfoCDMA2000,
dedicatedInfoCDMA2000-HRPD DedicatedInfoCDMA2000
},
nonCriticalExtension SEQUENCE {} OPTIONAL --Need OP
}
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 SEQUENCE {} OPTIONAL -- Need OP
}
MasterInformationBlock ::= SEQUENCE {
dl-Bandwidth ENUMERATED {
n6, n15, n25, n50, n75, n100},
phich-Config PHICH-Config,
systemFrameNumber BIT STRING (SIZE (8)),
spare BIT STRING (SIZE (10))
}
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 SEQUENCE {} OPTIONAL
}
MobilityFromEUTRACommand ::= SEQUENCE {
rrc-TransactionIdentifier RRC-TransactionIdentifier,
criticalExtensions CHOICE {
c1 CHOICE{
mobilityFromEUTRACommand-r8 MobilityFromEUTRACommand-r8-IEs,
spare3 NULL, 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, -- Need OP
nonCriticalExtension MobilityFromEUTRACommand-v8d0-IEs OPTIONAL
}
MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE {
bandIndicator BandIndicatorGERAN OPTIONAL, -- Cond GERAN
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
}
Handover ::= SEQUENCE {
targetRAT-Type ENUMERATED {
utra, geran, cdma2000-1XRTT, cdma2000-HRPD,
spare4, spare3, spare2, spare1, ...},
targetRAT-MessageContainer OCTET STRING,
nas-SecurityParamFromEUTRA OCTET STRING (SIZE (1)) OPTIONAL, -- Cond UTRAGERAN
systemInformation SI-OrPSI-GERAN OPTIONAL -- Cond PSHO
}
CellChangeOrder ::= SEQUENCE {
t304 ENUMERATED {
ms100, ms200, ms500, ms1000,
ms2000, ms4000, ms8000, spare1},
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
}
SystemInfoListGERAN ::= SEQUENCE (SIZE (1..maxGERAN-SI)) OF
OCTET STRING (SIZE (1..23))
Paging ::= SEQUENCE {
pagingRecordList PagingRecordList OPTIONAL, -- Need ON
systemInfoModification ENUMERATED {true} OPTIONAL, -- Need ON
etws-Indication ENUMERATED {true} OPTIONAL, -- Need ON
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
}
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,
...
}
IMSI ::= SEQUENCE (SIZE (6..21)) OF IMSI-Digit
IMSI-Digit::= INTEGER (0..9)
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
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
}
SecurityConfigHO ::= SEQUENCE {
handoverType CHOICE {
intraLTE SEQUENCE {
securityAlgorithmConfig SecurityAlgorithmConfig OPTIONAL, -- Need OP
keyChangeIndicator BOOLEAN,
nextHopChainingCount NextHopChainingCount
},
interRAT SEQUENCE {
securityAlgorithmConfig SecurityAlgorithmConfig,
nas-SecurityParamToEUTRA OCTET STRING (SIZE(6))
}
},
...
}
RRCConnectionReconfigurationComplete ::= SEQUENCE {
rrc-TransactionIdentifier RRC-TransactionIdentifier,
criticalExtensions CHOICE {
rrcConnectionReconfigurationComplete-r8
RRCConnectionReconfigurationComplete-r8-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE {
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 SEQUENCE {} OPTIONAL -- Need OP
}
RRCConnectionReestablishmentComplete ::= SEQUENCE {
rrc-TransactionIdentifier RRC-TransactionIdentifier,
criticalExtensions CHOICE {
rrcConnectionReestablishmentComplete-r8
RRCConnectionReestablishmentComplete-r8-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE {
nonCriticalExtension SEQUENCE {} OPTIONAL
}
RRCConnectionReestablishmentReject ::= SEQUENCE {
criticalExtensions CHOICE {
rrcConnectionReestablishmentReject-r8
RRCConnectionReestablishmentReject-r8-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE {
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
}
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 SEQUENCE {} OPTIONAL -- Need OP
}
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 SEQUENCE {} OPTIONAL -- Need OP
}
ReleaseCause ::= ENUMERATED {loadBalancingTAUrequired,
other,spare2, spare1 }
RedirectedCarrierInfo ::= CHOICE {
eutra ARFCN-ValueEUTRA,
geran CarrierFreqsGERAN,
utra-FDD ARFCN-ValueUTRA,
utra-TDD ARFCN-ValueUTRA,
cdma2000-HRPD CarrierFreqCDMA2000,
cdma2000-1xRTT CarrierFreqCDMA2000,
...
}
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
...
}
FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..maxFreq)) OF FreqPriorityEUTRA
FreqPriorityEUTRA ::= SEQUENCE {
carrierFreq ARFCN-ValueEUTRA,
cellReselectionPriority CellReselectionPriority
}
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
}
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, spare3, spare2, 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 SEQUENCE {} OPTIONAL -- Need OP
}
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..6),
registeredMME RegisteredMME OPTIONAL,
dedicatedInfoNAS DedicatedInfoNAS,
nonCriticalExtension SEQUENCE {} OPTIONAL
}
RegisteredMME ::= SEQUENCE {
plmn-Identity PLMN-Identity OPTIONAL,
mmegi BIT STRING (SIZE (16)),
mmec MMEC
}
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 SEQUENCE {} OPTIONAL -- Need OP
}
SecurityConfigSMC ::= SEQUENCE {
securityAlgorithmConfig SecurityAlgorithmConfig,
...
}
SecurityModeComplete ::= SEQUENCE {
rrc-TransactionIdentifier RRC-TransactionIdentifier,
criticalExtensions CHOICE {
securityModeComplete-r8 SecurityModeComplete-r8-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
SecurityModeComplete-r8-IEs ::= SEQUENCE {
nonCriticalExtension SEQUENCE {} OPTIONAL
}
SecurityModeFailure ::= SEQUENCE {
rrc-TransactionIdentifier RRC-TransactionIdentifier,
criticalExtensions CHOICE {
securityModeFailure-r8 SecurityModeFailure-r8-IEs,
criticalExtensionsFuture SEQUENCE {}
}
}
SecurityModeFailure-r8-IEs ::= SEQUENCE {
nonCriticalExtension SEQUENCE {} OPTIONAL
}
SystemInformation ::= SEQUENCE {
criticalExtensions CHOICE {
systemInformation-r8 SystemInformation-r8-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,
...
},
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
}
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 BIT STRING (SIZE (27)) 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 -- Need OP
}
SystemInformationBlockType1-v890-IEs::= SEQUENCE {
lateNonCriticalExtension OCTET STRING (CONTAINING SystemInformationBlockType1-v8h0-IEs) OPTIONAL, -- Need OP
nonCriticalExtension SEQUENCE {} OPTIONAL
}
SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE {
multiBandInfoList MultiBandInfoList OPTIONAL, -- Need OR
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
}
PLMN-IdentityList ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo
PLMN-IdentityInfo ::= SEQUENCE {
plmn-Identity PLMN-Identity,
cellReservedForOperatorUse 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
}
SIB-MappingInfo ::= SEQUENCE (SIZE (0..maxSIB-1)) OF SIB-Type
SIB-Type ::= ENUMERATED {
sibType3, sibType4, sibType5, sibType6,
sibType7, sibType8, sibType9, sibType10,
sibType11, spare7, spare6, spare5,
spare4, spare3, spare2, spare1, ...}
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 SEQUENCE {} OPTIONAL -- Need OP
}
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 SEQUENCE {} 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 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 SEQUENCE {} 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 -- Need OP
}
SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE {
multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission OPTIONAL, -- Need OR
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
}
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-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))
}
}
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
},
...
}
SystemInformationBlockType4 ::= SEQUENCE {
intraFreqNeighCellList IntraFreqNeighCellList OPTIONAL, -- Need OR
intraFreqBlackCellList IntraFreqBlackCellList OPTIONAL, -- Need OR
csg-PhysCellIdRange PhysCellIdRange OPTIONAL, -- Cond CSG
...
}
IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellIntra)) OF IntraFreqNeighCellInfo
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 -- Need OP
}
SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE {
interFreqCarrierFreqList-v8h0 SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo-v8h0 OPTIONAL, -- Need OP
nonCriticalExtension SEQUENCE {} OPTIONAL -- Need OP
}
InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..maxFreq)) OF InterFreqCarrierFreqInfo
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
...
}
InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE {
multiBandInfoList MultiBandInfoList OPTIONAL -- Need OR
}
InterFreqNeighCellList ::= SEQUENCE (SIZE (1..maxCellInter)) OF InterFreqNeighCellInfo
InterFreqNeighCellInfo ::= SEQUENCE {
physCellId PhysCellId,
q-OffsetCell Q-OffsetRange
}
InterFreqBlackCellList ::= SEQUENCE (SIZE (1..maxCellBlack)) OF PhysCellIdRange
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 -- Need OP
}
SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE {
carrierFreqListUTRA-FDD-v8h0 SEQUENCE (SIZE (1..maxUTRA-FDD-Carrier)) OF CarrierFreqInfoUTRA-FDD-v8h0 OPTIONAL, -- Need OR
nonCriticalExtension SEQUENCE {} 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),
...
}
CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE {
multiBandInfoList SEQUENCE (SIZE (1..maxMultiBands)) OF FreqBandIndicator-UTRA-FDD OPTIONAL -- Need OR
}
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),
...
}
FreqBandIndicator-UTRA-FDD ::= INTEGER (1..86)
SystemInformationBlockType7 ::= SEQUENCE {
t-ReselectionGERAN T-Reselection,
t-ReselectionGERAN-SF SpeedStateScaleFactors OPTIONAL, -- Need OR
carrierFreqsInfoList CarrierFreqsInfoListGERAN OPTIONAL, -- Need OR
...
}
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
...
}
CellReselectionParametersCDMA2000 ::= SEQUENCE {
bandClassList BandClassListCDMA2000,
neighCellList NeighCellListCDMA2000,
t-ReselectionCDMA2000 T-Reselection,
t-ReselectionCDMA2000-SF SpeedStateScaleFactors OPTIONAL -- Need OP
}
NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000
NeighCellCDMA2000 ::= SEQUENCE {
bandClass BandclassCDMA2000,
neighCellsPerFreqList NeighCellsPerBandclassListCDMA2000
}
NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000
NeighCellsPerBandclassCDMA2000 ::= SEQUENCE {
arfcn ARFCN-ValueCDMA2000,
physCellIdList PhysCellIdListCDMA2000
}
PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) 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),
...
}
SystemInformationBlockType9 ::= SEQUENCE {
hnb-Name OCTET STRING (SIZE(1..48)) OPTIONAL, -- Need OR
...
}
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
...
}
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
...
}
AntennaInfoCommon ::= SEQUENCE {
antennaPortsCount ENUMERATED {an1, an2, an4, spare1}
}
AntennaInfoDedicated ::= SEQUENCE {
transmissionMode ENUMERATED {
tm1, tm2, tm3, tm4, tm5, tm6,
tm7, spare1},
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}
}
}
CQI-ReportConfig ::= SEQUENCE {
cqi-ReportModeAperiodic ENUMERATED {
rm12, rm20, rm22, rm30, rm31,
spare3, spare2, spare1} OPTIONAL, -- Need OR
nomPDSCH-RS-EPRE-Offset INTEGER (-1..6),
cqi-ReportPeriodic CQI-ReportPeriodic OPTIONAL -- Need ON
}
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
}
}
DRB-Identity ::= INTEGER (1..32)
LogicalChannelConfig ::= SEQUENCE {
ul-SpecificParameters SEQUENCE {
priority INTEGER (1..16),
prioritisedBitRate ENUMERATED {
kBps0, kBps8, kBps16, kBps32, kBps64, kBps128,
kBps256, infinity, spare8, spare7, spare6,
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
...
}
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 ENUMERATED {
sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80,
sf128, sf160, sf320, sf640, sf1280, sf2560,
infinity, spare1} OPTIONAL, -- Need ON
retxBSR-Timer ENUMERATED {
sf320, sf640, sf1280, sf2560, sf5120,
sf10240, spare2, spare1},
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
...
}
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, spare10,
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
}
}
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
},
...
}
},
...
}
PDSCH-ConfigCommon::= SEQUENCE {
referenceSignalPower INTEGER (-60..50),
p-b INTEGER (0..3)
}
PDSCH-ConfigDedicated::= SEQUENCE {
p-a ENUMERATED {
dB-6, dB-4dot77, dB-3, dB-1dot77,
dB0, dB1, dB2, dB3 }
}
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, -- Need ON
soundingRS-UL-ConfigDedicated SoundingRS-UL-ConfigDedicated OPTIONAL, -- Need ON
antennaInfo CHOICE {
explicitValue AntennaInfoDedicated,
defaultValue NULL
} OPTIONAL, -- Need ON
schedulingRequestConfig SchedulingRequestConfig OPTIONAL, -- Need ON
...
}
P-Max ::= INTEGER (-30..33)
PRACH-ConfigSIB ::= SEQUENCE {
rootSequenceIndex INTEGER (0..837),
prach-ConfigInfo PRACH-ConfigInfo
}
PRACH-Config ::= SEQUENCE {
rootSequenceIndex INTEGER (0..837),
prach-ConfigInfo PRACH-ConfigInfo OPTIONAL -- Need ON
}
PRACH-ConfigInfo ::= SEQUENCE {
prach-ConfigIndex INTEGER (0..63),
highSpeedFlag BOOLEAN,
zeroCorrelationZoneConfig INTEGER (0..15),
prach-FreqOffset INTEGER (0..94)
}
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-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
}
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-ConfigDedicated ::= SEQUENCE {
betaOffset-ACK-Index INTEGER (0..15),
betaOffset-RI-Index INTEGER (0..15),
betaOffset-CQI-Index INTEGER (0..15)
}
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 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}
},
ra-SupervisionInfo SEQUENCE {
preambleTransMax ENUMERATED {
n3, n4, n5, n6, n7, n8, n10, n20, n50,
n100, n200},
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),
...
}
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,
...
}
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,
...
}
BCCH-Config ::= SEQUENCE {
modificationPeriodCoeff ENUMERATED {n2, n4, n8, n16}
}
PCCH-Config ::= SEQUENCE {
defaultPagingCycle ENUMERATED {
rf32, rf64, rf128, rf256},
nB ENUMERATED {
fourT, twoT, oneT, halfT, quarterT, oneEighthT,
oneSixteenthT, oneThirtySecondT}
}
UL-CyclicPrefixLength ::= ENUMERATED {len1, len2}
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
...
}
SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) 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
...
}
DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod
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 Setup
logicalChannelIdentity INTEGER (3..10) OPTIONAL, -- Cond DRB-Setup
logicalChannelConfig LogicalChannelConfig OPTIONAL, -- Cond Setup
...
}
DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity
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 {
t-PollRetransmit T-PollRetransmit,
pollPDU PollPDU,
pollByte PollByte,
maxRetxThreshold ENUMERATED {
t1, t2, t3, t4, t6, t8, t16, t32}
}
DL-AM-RLC ::= SEQUENCE {
t-Reordering T-Reordering,
t-StatusProhibit T-StatusProhibit
}
UL-UM-RLC ::= SEQUENCE {
sn-FieldLength SN-FieldLength
}
DL-UM-RLC ::= SEQUENCE {
sn-FieldLength SN-FieldLength,
t-Reordering T-Reordering
}
SN-FieldLength ::= ENUMERATED {size5, size10}
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, spare9, spare8,
spare7, spare6, spare5, spare4, spare3,
spare2, spare1}
PollPDU ::= ENUMERATED {
p4, p8, p16, p32, p64, p128, p256, pInfinity}
PollByte ::= ENUMERATED {
kB25, kB50, kB75, kB100, kB125, kB250, kB375,
kB500, kB750, kB1000, kB1250, kB1500, kB2000,
kB3000, kBinfinity, spare1}
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, 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, spare8, spare7,
spare6, spare5, spare4, spare3, spare2,
spare1}
SchedulingRequestConfig ::= CHOICE {
release NULL,
setup SEQUENCE {
sr-PUCCH-ResourceIndex INTEGER (0..2047),
sr-ConfigIndex INTEGER (0..155),
dsr-TransMax ENUMERATED {
n4, n8, n16, n32, n64, spare3, spare2, spare1}
}
}
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}
}
}
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-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),
n1-PUCCH-AN-PersistentList N1-PUCCH-AN-PersistentList,
...
}
}
SPS-ConfigUL ::= CHOICE {
release NULL,
setup SEQUENCE {
semiPersistSchedIntervalUL ENUMERATED {
sf10, sf20, sf32, sf40, sf64, sf80,
sf128, sf160, sf320, sf640, spare6,
spare5, spare4, spare3, spare2,
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
...
}
}
N1-PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
TDD-Config ::= SEQUENCE {
subframeAssignment ENUMERATED {
sa0, sa1, sa2, sa3, sa4, sa5, sa6},
specialSubframePatterns ENUMERATED {
ssp0, ssp1, ssp2, ssp3, ssp4,ssp5, ssp6, ssp7,
ssp8}
}
TimeAlignmentTimer ::= ENUMERATED {
sf500, sf750, sf1280, sf1920, sf2560, sf5120,
sf10240, infinity}
TPC-PDCCH-Config::= CHOICE {
release NULL,
setup SEQUENCE {
tpc-RNTI BIT STRING (SIZE (16)),
tpc-Index TPC-Index
}
}
TPC-Index ::= CHOICE {
indexOfFormat3 INTEGER (1..15),
indexOfFormat3A INTEGER (1..31)
}
UplinkPowerControlCommon ::= SEQUENCE {
p0-NominalPUSCH INTEGER (-126..24),
alpha ENUMERATED {al0, al04, al05, al06, al07, al08, al09, al1},
p0-NominalPUCCH INTEGER (-127..-96),
deltaFList-PUCCH DeltaFList-PUCCH,
deltaPreambleMsg3 INTEGER (-1..6)
}
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
}
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}
}
NextHopChainingCount ::= INTEGER (0..7)
SecurityAlgorithmConfig ::= SEQUENCE {
cipheringAlgorithm ENUMERATED {
eea0, eea1, eea2, spare5, spare4, spare3,
spare2, spare1, ...},
integrityProtAlgorithm ENUMERATED {
reserved, eia1, eia2, spare5, spare4, spare3,
spare2, spare1, ...}
}
ShortMAC-I ::= BIT STRING (SIZE (16))
AdditionalSpectrumEmission ::= INTEGER (1..32)
ARFCN-ValueCDMA2000 ::= INTEGER (0..2047)
ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)
ARFCN-ValueGERAN ::= INTEGER (0..1023)
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, spare14, spare13, spare12, spare11, 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
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)
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))
}
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))
}
FreqBandIndicator ::= INTEGER (1..64)
MobilityControlInfo ::= SEQUENCE {
targetPhysCellId PhysCellId,
carrierFreq CarrierFreqEUTRA OPTIONAL, -- Cond HO-toEUTRA
carrierBandwidth CarrierBandwidthEUTRA OPTIONAL, -- Cond HO-toEUTRA
additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Cond HO-toEUTRA
t304 ENUMERATED {
ms50, ms100, ms150, ms200, ms500, ms1000,
ms2000, spare1},
newUE-Identity C-RNTI,
radioResourceConfigCommon RadioResourceConfigCommon,
rach-ConfigDedicated RACH-ConfigDedicated OPTIONAL, -- Need OP
...
}
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
}
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
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
}
PhysCellIdCDMA2000 ::= INTEGER (0..maxPNOffset)
PhysCellIdGERAN ::= SEQUENCE {
networkColourCode BIT STRING (SIZE (3)),
baseStationColourCode BIT STRING (SIZE (3))
}
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)
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-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)
SpeedStateScaleFactors ::= SEQUENCE {
sf-Medium ENUMERATED {oDot25, oDot5, oDot75, lDot0},
sf-High ENUMERATED {oDot25, oDot5, oDot75, lDot0}
}
SystemTimeInfoCDMA2000 ::= SEQUENCE {
cdma-EUTRA-Synchronisation BOOLEAN,
cdma-SystemTime CHOICE {
synchronousSystemTime BIT STRING (SIZE (39)),
asynchronousSystemTime BIT STRING (SIZE (49))
}
}
TrackingAreaCode ::= BIT STRING (SIZE (16))
T-Reselection ::= INTEGER (0..7)
AllowedMeasBandwidth ::= ENUMERATED {mbw6, mbw15, mbw25, mbw50, mbw75, mbw100}
Hysteresis ::= INTEGER (0..30)
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
...
}
MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasId
MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectId
ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId
MeasGapConfig ::= CHOICE {
release NULL,
setup SEQUENCE {
gapOffset CHOICE {
gp0 INTEGER (0..39),
gp1 INTEGER (0..79),
...
}
}
}
MeasId ::= INTEGER (1..maxMeasId)
MeasIdToAddModList ::= SEQUENCE (SIZE (1..maxMeasId)) OF MeasIdToAddMod
MeasIdToAddMod ::= SEQUENCE {
measId MeasId,
measObjectId MeasObjectId,
reportConfigId ReportConfigId
}
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,
-- Neighbour 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
...
}
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
}
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)
MeasObjectToAddModList ::= SEQUENCE (SIZE (1..maxObjectId)) OF MeasObjectToAddMod
MeasObjectToAddMod ::= SEQUENCE {
measObjectId MeasObjectId,
measObject CHOICE {
measObjectEUTRA MeasObjectEUTRA,
measObjectUTRA MeasObjectUTRA,
measObjectGERAN MeasObjectGERAN,
measObjectCDMA2000 MeasObjectCDMA2000,
...
}
}
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
...
}
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
}
MeasResults ::= SEQUENCE {
measId MeasId,
measResultServCell SEQUENCE {
rsrpResult RSRP-Range,
rsrqResult RSRQ-Range
},
measResultNeighCells CHOICE {
measResultListEUTRA MeasResultListEUTRA,
measResultListUTRA MeasResultListUTRA,
measResultListGERAN MeasResultListGERAN,
measResultsCDMA2000 MeasResultsCDMA2000,
...
} 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,
...
}
}
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,
...
}
}
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),
...
}
}
PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity
QuantityConfig ::= SEQUENCE {
quantityConfigEUTRA QuantityConfigEUTRA OPTIONAL, -- Need ON
quantityConfigUTRA QuantityConfigUTRA OPTIONAL, -- Need ON
quantityConfigGERAN QuantityConfigGERAN OPTIONAL, -- Need ON
quantityConfigCDMA2000 QuantityConfigCDMA2000 OPTIONAL, -- Need ON
...
}
QuantityConfigEUTRA ::= SEQUENCE {
filterCoefficientRSRP FilterCoefficient DEFAULT fc4,
filterCoefficientRSRQ FilterCoefficient DEFAULT fc4
}
QuantityConfigUTRA ::= SEQUENCE {
measQuantityUTRA-FDD ENUMERATED {cpich-RSCP, cpich-EcN0},
measQuantityUTRA-TDD ENUMERATED {pccpch-RSCP},
filterCoefficient FilterCoefficient DEFAULT fc4
}
QuantityConfigGERAN ::= SEQUENCE {
measQuantityGERAN ENUMERATED {rssi},
filterCoefficient FilterCoefficient DEFAULT fc2
}
QuantityConfigCDMA2000 ::= SEQUENCE {
measQuantityCDMA2000 ENUMERATED {pilotStrength, pilotPnPhaseAndPilotStrength}
}
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
},
...
},
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},
...
}
ThresholdEUTRA ::= CHOICE{
threshold-RSRP RSRP-Range,
threshold-RSRQ RSRQ-Range
}
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
}
},
...
},
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},
...
}
ThresholdUTRA ::= CHOICE{
utra-RSCP INTEGER (-5..91),
utra-EcN0 INTEGER (0..49)
}
ThresholdGERAN ::= INTEGER (0..63)
ThresholdCDMA2000 ::= INTEGER (0..63)
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}
RSRP-Range ::= INTEGER(0..97)
RSRQ-Range ::= INTEGER(0..34)
TimeToTrigger ::= ENUMERATED {
ms0, ms40, ms64, ms80, ms100, ms128, ms160, ms256,
ms320, ms480, ms512, ms640, ms1024, ms1280, ms2560,
ms5120}
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, ...}
MMEC ::= BIT STRING (SIZE (8))
NeighCellConfig ::= BIT STRING (SIZE (2))
RAND-CDMA2000 ::= BIT STRING (SIZE (32))
RAT-Type ::= ENUMERATED {
eutra, utra, geran-cs, geran-ps, cdma2000-1XRTT,
spare3, spare2, spare1, ...}
RRC-TransactionIdentifier ::= INTEGER (0..3)
S-TMSI ::= SEQUENCE {
mmec MMEC,
m-TMSI BIT STRING (SIZE (32))
}
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 SEQUENCE {} OPTIONAL
}
AccessStratumRelease ::= ENUMERATED {
rel8, spare7, spare6, spare5, spare4, spare3,
spare2, spare1, ...}
PDCP-Parameters ::= SEQUENCE {
supportedROHC-Profiles SEQUENCE {
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} DEFAULT cs16,
...
}
PhyLayerParameters ::= SEQUENCE {
ue-TxAntennaSelectionSupported BOOLEAN,
ue-SpecificRefSigsSupported BOOLEAN
}
RF-Parameters ::= SEQUENCE {
supportedBandListEUTRA SupportedBandListEUTRA
}
SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA
SupportedBandEUTRA ::= SEQUENCE {
bandEUTRA INTEGER (1..64),
halfDuplex BOOLEAN
}
MeasParameters ::= SEQUENCE {
bandListEUTRA BandListEUTRA
}
BandListEUTRA ::= SEQUENCE (SIZE (1..maxBands)) 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-ParametersUTRA-FDD ::= SEQUENCE {
supportedBandListUTRA-FDD SupportedBandListUTRA-FDD
}
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-ParametersGERAN ::= SEQUENCE {
supportedBandListGERAN SupportedBandListGERAN,
interRAT-PS-HO-ToGERAN BOOLEAN
}
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}
}
SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..maxCDMA-BandClass)) OF BandclassCDMA2000
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},
...
}
maxBands INTEGER ::= 64 -- Maximum number of bands listed in EUTRA UE caps
maxCDMA-BandClass INTEGER ::= 32 -- Maximum value of the CDMA band classes
maxCellBlack INTEGER ::= 16 -- Maximum number of blacklisted cells
-- listed in SIB type 4 and 5
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
maxCellMeas INTEGER ::= 32 -- Maximum number of entries in each of the neighbour
-- cell lists in a measurement object
maxCellReport INTEGER ::= 8 -- Maximum number of reported cells
maxDRB INTEGER ::= 11 -- Maximum number of Data Radio Bearers
maxEARFCN INTEGER ::= 65535 -- Maximum value of EUTRA carrier fequency
maxFreq INTEGER ::= 8 -- Maximum number of EUTRA carrier 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
maxMBSFN-Allocations INTEGER ::= 8 -- Maximum number of MBSFN frame allocations with
-- different offset
maxMCS-1 INTEGER ::= 16 -- Maximum number of PUCCH formats (MCS)
maxMeasId INTEGER ::= 32
maxMultiBands INTEGER ::= 8 -- Maximum number of additional frequency bands
-- that a cell belongs to
maxObjectId INTEGER ::= 32
maxPageRec INTEGER ::= 16 --
maxPNOffset INTEGER ::= 511 -- Maximum number of CDMA2000 PNOffsets
maxRAT-Capabilities INTEGER ::= 8 -- Maximum number of interworking RATs (incl EUTRA)
maxReportConfigId INTEGER ::= 32
maxSIB INTEGER ::= 32 -- Maximum number of SIBs
maxSIB-1 INTEGER ::= 31
maxSI-Message INTEGER ::= 32 -- Maximum number of SI messages
maxUTRA-FDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA FDD carrier frequencies
maxUTRA-TDD-Carrier INTEGER ::= 16 -- Maximum number of UTRA TDD carrier frequencies
END
EUTRA-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
CellIdentity,
SpeedStateScaleFactors,
C-RNTI,
MeasId,
MeasIdToAddModList,
MeasObjectToAddModList,
MobilityStateParameters,
NeighCellConfig,
PhysCellId,
QuantityConfig,
ReportConfigToAddModList,
RSRP-Range,
maxCellMeas,
maxMeasId
FROM EUTRA-RRC-Definitions;
VarMeasConfig ::= SEQUENCE {
-- Measurement identities
measIdList MeasIdToAddModList OPTIONAL,
-- Measurement objects
measObjectList MeasObjectToAddModList OPTIONAL,
-- Reporting configurations
reportConfigList ReportConfigToAddModList OPTIONAL,
-- Other parameters
quantityConfig QuantityConfig OPTIONAL,
s-Measure RSRP-Range OPTIONAL,
speedStatePars CHOICE {
release NULL,
setup SEQUENCE {
mobilityStateParameters MobilityStateParameters,
timeToTrigger-SF SpeedStateScaleFactors
}
} OPTIONAL
}
VarMeasReportList ::= SEQUENCE (SIZE (1..maxMeasId)) OF VarMeasReport
VarMeasReport ::= SEQUENCE {
-- List of measurement that have been triggered
measId MeasId,
cellsTriggeredList CellsTriggeredList OPTIONAL,
numberOfReportsSent INTEGER
}
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxCellMeas)) OF PhysCellId
VarShortMAC-Input ::= SEQUENCE {
cellIdentity CellIdentity,
physCellId PhysCellId,
c-RNTI C-RNTI
}
END
EUTRA-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
AntennaInfoCommon,
CellIdentity,
C-RNTI,
DL-DCCH-Message,
ARFCN-ValueEUTRA,
MasterInformationBlock,
MeasConfig,
PhysCellId,
RadioResourceConfigDedicated,
SecurityAlgorithmConfig,
ShortMAC-I,
SystemInformationBlockType1,
SystemInformationBlockType2,
UECapabilityInformation,
UE-CapabilityRAT-ContainerList
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 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
}
AS-Config ::= SEQUENCE {
sourceMeasConfig MeasConfig,
sourceRadioResourceConfig RadioResourceConfigDedicated,
sourceSecurityAlgorithmConfig SecurityAlgorithmConfig,
sourceUE-Identity C-RNTI,
sourceMasterInformationBlock MasterInformationBlock,
sourceSystemInformationBlockType1 SystemInformationBlockType1,
sourceSystemInformationBlockType2 SystemInformationBlockType2,
antennaInfoCommon AntennaInfoCommon,
sourceDl-CarrierFreq ARFCN-ValueEUTRA,
...
}
AS-Context ::= SEQUENCE {
reestablishmentInfo ReestablishmentInfo OPTIONAL -- Cond HO
}
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,
...
}
maxReestabInfo INTEGER ::= 32 -- Maximum number of KeNB* and shortMAC-I forwarded
-- at handover for re-establishment preparation
END
This source diff could not be displayed because it is too large. You can view the blob instead.
-- **************************************************************
--
-- 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
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
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 ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
snStatusTransfer |
uEContextRelease |
handoverCancel |
errorIndication |
resourceStatusReporting |
loadIndication |
privateMessage |
rLFIndication | handoverReport,
...
}
-- **************************************************************
--
-- 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
}
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,
Cause,
CompositeAvailableCapacityGroup,
COUNTvalue,
CriticalityDiagnostics,
CRNTI,
CSGMembershipStatus,
CSG-Id,
DeactivationIndication,
DL-Forwarding,
ECGI,
E-RAB-ID,
E-RAB-Level-QoS-Parameters,
E-RAB-List,
EUTRANTraceID,
GlobalENB-ID,
GTPtunnelEndpoint,
GUGroupIDList,
GUMMEI,
HandoverReportType,
HandoverRestrictionList,
InvokeIndication,
LocationReportingInformation,
MDT-Configuration,
ManagementBasedMDTallowed,
Neighbour-Information,
PCI,
PDCP-SN,
PLMN-Identity,
ReceiveStatusofULPDCPSDUs,
Registration-Request,
RelativeNarrowbandTxPower,
RadioResourceStatus,
RRCConnSetupIndicator,
UE-RLF-Report-Container,
RRC-Context,
ServedCell-Information,
ServedCells,
ShortMAC-I,
SRVCCOperationPossible,
SubscriberProfileIDforRFP,
TargeteNBtoSource-eNBTransparentContainer,
TimeToWait,
TraceActivation,
TraceDepth,
TransportLayerAddress,
UEAggregateMaximumBitRate,
UE-HistoryInformation,
UE-S1AP-ID,
UESecurityCapabilities,
UE-X2AP-ID,
UL-HighInterferenceIndicationInfo,
UL-InterferenceOverloadIndication,
HWLoadIndicator,
S1TNLLoadIndicator,
Measurement-ID,
ReportCharacteristics,
MobilityParametersInformation,
MobilityParametersModificationRange
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-Cause,
id-CellInformation,
id-CellInformation-Item,
id-CellMeasurementResult,
id-CellMeasurementResult-Item,
id-CellToReport,
id-CellToReport-Item,
id-CompositeAvailableCapacityGroup,
id-CriticalityDiagnostics,
id-DeactivationIndication,
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-InvokeIndication,
id-New-eNB-UE-X2AP-ID,
id-Old-eNB-UE-X2AP-ID,
id-Registration-Request,
id-ReportingPeriodicity,
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,
maxCellineNB,
maxnoofBearers,
maxnoofPDCP-SN,
maxFailedMeasObjects,
maxnoofCellIDforMDT,
maxnoofTAforMDT
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},
...
}
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 },
...
}
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 ::= {
...
}
-- **************************************************************
--
-- 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 },
...
}
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 },
...
}
-- **************************************************************
--
-- 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” -- ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
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 ::= {
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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},
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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},
...
}
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”--
{ 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},
...
}
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},
...
}
-- **************************************************************
--
-- 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},
...
}
-- **************************************************************
--
-- 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 },
...
}
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,
maxnoofBearers,
maxCellineNB,
maxEARFCN,
maxInterfaces,
maxnoofBPLMNs,
maxnoofCells,
maxnoofEPLMNs,
maxnoofEPLMNsPlusOne,
maxnoofForbLACs,
maxnoofForbTACs,
maxnoofNeighbours,
maxnoofPRBs,
maxNrOfErrors,
maxPools,
maxnoofMBSFN,
maxnoofTAforMDT,
maxnoofCellIDforMDT
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 ::= {
...
}
DL-ABS-status::= INTEGER (0..100)
AS-SecurityInformation ::= SEQUENCE {
key-eNodeB-star Key-eNodeB-Star,
nextHopChainingCount NextHopChainingCount,
iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL,
...
}
AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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,
...
}
-- B
BitRate ::= INTEGER (0..10000000000)
BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
-- C
CapacityValue ::= INTEGER (0..100)
CellCapacityClassValue ::= INTEGER (1..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
}
CauseTransport ::= ENUMERATED {
transport-resource-unavailable,
unspecified,
...
}
CellBasedMDT::= SEQUENCE {
cellIdListforMDT CellIdListforMDT,
iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL,
...
}
CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI
Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... }
CellType ::= SEQUENCE {
cell-Size Cell-Size,
iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
...
}
CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CompositeAvailableCapacityGroup ::= SEQUENCE {
dL-CompositeAvailableCapacity CompositeAvailableCapacity,
uL-CompositeAvailableCapacity CompositeAvailableCapacity,
iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL,
...
}
CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CompositeAvailableCapacity ::= SEQUENCE {
cellCapacityClassValue CellCapacityClassValue OPTIONAL,
capacityValue CapacityValue,
iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL,
...
}
CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
COUNTvalue ::= SEQUENCE {
pDCP-SN PDCP-SN,
hFN HFN,
iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL,
...
}
COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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))
CyclicPrefixDL ::= ENUMERATED {
normal,
extended,
...
}
CyclicPrefixUL ::= ENUMERATED {
normal,
extended,
...
}
-- D
DeactivationIndication::= ENUMERATED {
deactivated,
...
}
DL-Forwarding ::= ENUMERATED {
dL-forwardingProposed,
...
}
DL-GBR-PRB-usage::= INTEGER (0..100)
DL-non-GBR-PRB-usage::= INTEGER (0..100)
DL-Total-PRB-usage::= INTEGER (0..100)
-- E
EARFCN ::= INTEGER (0..maxEARFCN)
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 ::= {
...
}
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 ::= {
...
}
EUTRA-Mode-Info ::= CHOICE {
fDD FDD-Info,
tDD TDD-Info,
...
}
ECGI ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eUTRANcellIdentifier EUTRANCellIdentifier,
iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
...
}
ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
ENB-ID ::= CHOICE {
macro-eNB-ID BIT STRING (SIZE (20)),
home-eNB-ID BIT STRING (SIZE (28)),
...
}
EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...))
EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
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 ::= {
...
}
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 ::= {
...
}
EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
EUTRANTraceID ::= OCTET STRING (SIZE (8))
EventType ::= ENUMERATED{
change-of-serving-cell,
...
}
-- F
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))
-- 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 ::= {
...
}
GlobalENB-ID ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eNB-ID ENB-ID,
iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
...
}
GlobalENB-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 ::= {
...
}
-- H
HandoverReportType ::= ENUMERATED {
hoTooEarly,
hoToWrongCell,
...
}
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 ::= {
...
}
HFN ::= INTEGER (0..1048575)
HWLoadIndicator ::= SEQUENCE {
dLHWLoadIndicator LoadIndicator,
uLHWLoadIndicator LoadIndicator,
iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL,
...
}
HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- I
InvokeIndication ::= ENUMERATED{
abs-information,
...
}
IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...))
InterfacesToTrace ::= BIT STRING (SIZE (8))
-- 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,
...
}
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 ::= {
...
}
LastVisitedUTRANCellInformation ::= OCTET STRING
LastVisitedGERANCellInformation ::= CHOICE {
undefined NULL,
...
}
LoadIndicator ::= ENUMERATED {
lowLoad,
mediumLoad,
highLoad,
overLoad,
...
}
LocationReportingInformation ::= SEQUENCE {
eventType EventType,
reportArea ReportArea,
iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL,
...
}
LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={
...
}
-- M
MDT-Activation ::= ENUMERATED {
immediate-MDT-only,
immediate-MDT-and-Trace,
...
}
MDT-Configuration ::= SEQUENCE {
mdt-Activation MDT-Activation,
areaScopeOfMDT AreaScopeOfMDT,
measurementsToActivate MeasurementsToActivate,
reportingTriggerMDT ReportingTriggerMDT,
thresholdeventA2 ThresholdEventA2 OPTIONAL,
-- Included in case of event-triggered reporting for measurement M1
periodicReportingMDT PeriodicReportingMDT OPTIONAL,
-- Included in case of periodic reporting
iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL,
...
}
MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
MeasurementsToActivate::= BIT STRING (SIZE (8))
MeasurementThresholdA2 ::= CHOICE {
threshold-RSRP Threshold-RSRP,
threshold-RSRQ Threshold-RSRQ,
...
}
MME-Group-ID ::= OCTET STRING (SIZE (2))
MME-Code ::= OCTET STRING (SIZE (1))
Measurement-ID ::= INTEGER (1..4095, ...)
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 ::= {
...
}
ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...}
MobilityParametersModificationRange ::= SEQUENCE {
handoverTriggerChangeLowerLimit INTEGER (-20..20),
handoverTriggerChangeUpperLimit INTEGER (-20..20),
...
}
MobilityParametersInformation ::= SEQUENCE {
handoverTriggerChange INTEGER (-20..20),
...
}
-- 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 ::= {
...
}
NextHopChainingCount ::= INTEGER (0..7)
Number-of-Antennaports ::= ENUMERATED {
an1,
an2,
an4,
...
}
-- O
Oneframe ::= BIT STRING (SIZE (6))
-- P
PDCP-SN ::= INTEGER (0..4095)
PCI ::= INTEGER (0..503, ...)
PeriodicReportingMDT ::= SEQUENCE {
reportInterval ReportIntervalMDT,
reportAmount ReportAmountMDT,
iE-Extensions ProtocolExtensionContainer { { PeriodicReportingMDT-ExtIEs} } OPTIONAL,
...
}
PeriodicReportingMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
PLMN-Identity ::= OCTET STRING (SIZE(3))
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,
...
}
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)
-- 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 ::= {
...
}
ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
Registration-Request ::= ENUMERATED {
start,
stop,
...
}
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 ::= {
...
}
ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity}
ReportArea ::= ENUMERATED{
ecgi,
...
}
ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60}
ReportCharacteristics ::= BIT STRING (SIZE (32))
ReportingTriggerMDT::= ENUMERATED{
periodic,
a2eventtriggered,
...
}
RNTP-Threshold ::= ENUMERATED {
minusInfinity,
minusEleven,
minusTen,
minusNine,
minusEight,
minusSeven,
minusSix,
minusFive,
minusFour,
minusThree,
minusTwo,
minusOne,
zero,
one,
two,
three,
...
}
RRC-Context ::= OCTET STRING
RRCConnSetupIndicator::= ENUMERATED {
rrcConnSetup,
...
}
-- S
S1TNLLoadIndicator ::= SEQUENCE {
dLS1TNLLoadIndicator LoadIndicator,
uLS1TNLLoadIndicator LoadIndicator,
iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL,
...
}
S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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 },
...
}
ShortMAC-I ::= BIT STRING (SIZE(16))
SRVCCOperationPossible ::= ENUMERATED {
possible,
...
}
SubframeAssignment ::= ENUMERATED {
sa0,
sa1,
sa2,
sa3,
sa4,
sa5,
sa6,
...
}
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,
...
}
SubscriberProfileIDforRFP ::= INTEGER (1..256)
SubframeAllocation ::= CHOICE {
oneframe Oneframe,
fourframes Fourframes,
...
}
-- T
TAC ::= OCTET STRING (SIZE (2))
TABasedMDT::= SEQUENCE {
tAListforMDT TAListforMDT,
iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL,
...
}
TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
ThresholdEventA2 ::= SEQUENCE {
measurementThreshold MeasurementThresholdA2,
iE-Extensions ProtocolExtensionContainer { { ThresholdEventA2-ExtIEs} } OPTIONAL,
...
}
ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
Threshold-RSRP ::= INTEGER(0..97)
Threshold-RSRQ ::= INTEGER(0..34)
TimeToWait ::= ENUMERATED {
v1s,
v2s,
v5s,
v10s,
v20s,
v60s,
...
}
Time-UE-StayedInCell ::= INTEGER (0..4095)
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},
...
}
TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...))
TraceDepth ::= ENUMERATED {
minimum,
medium,
maximum,
minimumWithoutVendorSpecificExtension,
mediumWithoutVendorSpecificExtension,
maximumWithoutVendorSpecificExtension,
...
}
Transmission-Bandwidth ::= ENUMERATED {
bw6,
bw15,
bw25,
bw50,
bw75,
bw100,
...
}
TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
TypeOfError ::= ENUMERATED {
not-understood,
missing,
...
}
-- U
UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
UE-S1AP-ID ::= INTEGER (0.. 4294967295)
UE-X2AP-ID ::= INTEGER (0..4095)
UEAggregateMaximumBitRate ::= SEQUENCE {
uEaggregateMaximumBitRateDownlink BitRate,
uEaggregateMaximumBitRateUplink BitRate,
iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL,
...
}
UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UESecurityCapabilities ::= SEQUENCE {
encryptionAlgorithms EncryptionAlgorithms,
integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
...
}
UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UL-GBR-PRB-usage::= INTEGER (0..100)
UL-non-GBR-PRB-usage::= INTEGER (0..100)
UL-Total-PRB-usage::= INTEGER (0..100)
UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item
UL-InterferenceOverloadIndication-Item ::= ENUMERATED {
high-interference,
medium-interference,
low-interference,
...
}
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, ...))
UE-RLF-Report-Container::= OCTET STRING
-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9]
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 ::= {
...
}
-- V
-- W
-- X
-- 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
-- **************************************************************
--
-- Lists
--
-- **************************************************************
maxEARFCN INTEGER ::= 65535
maxInterfaces INTEGER ::= 16
maxCellineNB INTEGER ::= 256
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
-- **************************************************************
--
-- 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
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
-- **************************************************************
--
-- 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
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
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 ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
snStatusTransfer |
uEContextRelease |
handoverCancel |
errorIndication |
resourceStatusReporting |
loadIndication |
privateMessage |
rLFIndication | handoverReport,
...
}
-- **************************************************************
--
-- 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
}
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,
Cause,
CompositeAvailableCapacityGroup,
COUNTvalue,
CriticalityDiagnostics,
CRNTI,
CSGMembershipStatus,
CSG-Id,
DeactivationIndication,
DL-Forwarding,
ECGI,
E-RAB-ID,
E-RAB-Level-QoS-Parameters,
E-RAB-List,
EUTRANTraceID,
GlobalENB-ID,
GTPtunnelEndpoint,
GUGroupIDList,
GUMMEI,
HandoverReportType,
HandoverRestrictionList,
InvokeIndication,
LocationReportingInformation,
MDT-Configuration,
ManagementBasedMDTallowed,
MDTPLMNList,
Neighbour-Information,
PCI,
PDCP-SN,
PLMN-Identity,
ReceiveStatusofULPDCPSDUs,
Registration-Request,
RelativeNarrowbandTxPower,
RadioResourceStatus,
RRCConnReestabIndicator,
RRCConnSetupIndicator,
UE-RLF-Report-Container,
RRC-Context,
ServedCell-Information,
ServedCells,
ShortMAC-I,
SRVCCOperationPossible,
SubscriberProfileIDforRFP,
TargetCellInUTRAN,
TargeteNBtoSource-eNBTransparentContainer,
TimeToWait,
TraceActivation,
TraceDepth,
TransportLayerAddress,
UEAggregateMaximumBitRate,
UE-HistoryInformation,
UE-S1AP-ID,
UESecurityCapabilities,
UE-X2AP-ID,
UL-HighInterferenceIndicationInfo,
UL-InterferenceOverloadIndication,
HWLoadIndicator,
S1TNLLoadIndicator,
Measurement-ID,
ReportCharacteristics,
MobilityParametersInformation,
MobilityParametersModificationRange,
ReceiveStatusOfULPDCPSDUsExtended,
COUNTValueExtended
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-Cause,
id-CellInformation,
id-CellInformation-Item,
id-CellMeasurementResult,
id-CellMeasurementResult-Item,
id-CellToReport,
id-CellToReport-Item,
id-CompositeAvailableCapacityGroup,
id-CriticalityDiagnostics,
id-DeactivationIndication,
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-InvokeIndication,
id-New-eNB-UE-X2AP-ID,
id-Old-eNB-UE-X2AP-ID,
id-Registration-Request,
id-ReportingPeriodicity,
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,
maxCellineNB,
maxnoofBearers,
maxnoofPDCP-SN,
maxFailedMeasObjects,
maxnoofCellIDforMDT,
maxnoofTAforMDT
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},
...
}
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 },
...
}
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 ::= {
...
}
MobilityInformation ::= BIT STRING (SIZE(32))
-- **************************************************************
--
-- 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 },
...
}
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 },
...
}
-- **************************************************************
--
-- 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},
...
}
-- **************************************************************
--
-- 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} ,
...
}
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},
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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},
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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},
...
}
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”--
{ 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},
...
}
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},
...
}
-- **************************************************************
--
-- 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},
...
}
-- **************************************************************
--
-- 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 },
...
}
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-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-AdditionalSpecialSubframe-Info,
maxnoofBearers,
maxCellineNB,
maxEARFCN,
maxEARFCNPlusOne,
newmaxEARFCN,
maxInterfaces,
maxnoofBands,
maxnoofBPLMNs,
maxnoofCells,
maxnoofEPLMNs,
maxnoofEPLMNsPlusOne,
maxnoofForbLACs,
maxnoofForbTACs,
maxnoofNeighbours,
maxnoofPRBs,
maxNrOfErrors,
maxPools,
maxnoofMBSFN,
maxnoofTAforMDT,
maxnoofCellIDforMDT,
maxnoofMBMSServiceAreaIdentities,
maxnoofMDTPLMNs
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 ::= {
...
}
DL-ABS-status::= INTEGER (0..100)
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,
...
}
AS-SecurityInformation ::= SEQUENCE {
key-eNodeB-star Key-eNodeB-Star,
nextHopChainingCount NextHopChainingCount,
iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL,
...
}
AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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
}
-- B
BitRate ::= INTEGER (0..10000000000)
BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
-- C
CapacityValue ::= INTEGER (0..100)
CellCapacityClassValue ::= INTEGER (1..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
}
CauseTransport ::= ENUMERATED {
transport-resource-unavailable,
unspecified,
...
}
CellBasedMDT::= SEQUENCE {
cellIdListforMDT CellIdListforMDT,
iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL,
...
}
CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI
Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... }
CellType ::= SEQUENCE {
cell-Size Cell-Size,
iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
...
}
CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CompositeAvailableCapacityGroup ::= SEQUENCE {
dL-CompositeAvailableCapacity CompositeAvailableCapacity,
uL-CompositeAvailableCapacity CompositeAvailableCapacity,
iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL,
...
}
CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CompositeAvailableCapacity ::= SEQUENCE {
cellCapacityClassValue CellCapacityClassValue OPTIONAL,
capacityValue CapacityValue,
iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL,
...
}
CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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 ::= {
...
}
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))
CyclicPrefixDL ::= ENUMERATED {
normal,
extended,
...
}
CyclicPrefixUL ::= ENUMERATED {
normal,
extended,
...
}
-- D
DeactivationIndication::= ENUMERATED {
deactivated,
...
}
DL-Forwarding ::= ENUMERATED {
dL-forwardingProposed,
...
}
DL-GBR-PRB-usage::= INTEGER (0..100)
DL-non-GBR-PRB-usage::= INTEGER (0..100)
DL-Total-PRB-usage::= INTEGER (0..100)
-- E
EARFCN ::= INTEGER (0..maxEARFCN)
EARFCNExtension ::= INTEGER(maxEARFCNPlusOne..newmaxEARFCN, ...)
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},
...
}
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},
...
}
EUTRA-Mode-Info ::= CHOICE {
fDD FDD-Info,
tDD TDD-Info,
...
}
ECGI ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eUTRANcellIdentifier EUTRANCellIdentifier,
iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
...
}
ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
ENB-ID ::= CHOICE {
macro-eNB-ID BIT STRING (SIZE (20)),
home-eNB-ID BIT STRING (SIZE (28)),
...
}
EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...))
EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
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 ::= {
...
}
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 ::= {
...
}
EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
EUTRANTraceID ::= OCTET STRING (SIZE (8))
EventType ::= ENUMERATED{
change-of-serving-cell,
...
}
-- F
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, ...)
-- 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 ::= {
...
}
GlobalENB-ID ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eNB-ID ENB-ID,
iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
...
}
GlobalENB-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 ::= {
...
}
-- 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 ::= {
...
}
HFN ::= INTEGER (0..1048575)
HFNModified ::= INTEGER (0..131071)
HWLoadIndicator ::= SEQUENCE {
dLHWLoadIndicator LoadIndicator,
uLHWLoadIndicator LoadIndicator,
iE-Extensions ProtocolExtensionContainer { { HWLoadIndicator-ExtIEs} } OPTIONAL,
...
}
HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- I
InvokeIndication ::= ENUMERATED{
abs-information,
...
}
IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...))
InterfacesToTrace ::= BIT STRING (SIZE (8))
-- 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,
...
}
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},
...
}
LastVisitedUTRANCellInformation ::= OCTET STRING
LastVisitedGERANCellInformation ::= CHOICE {
undefined NULL,
...
}
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
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, ... }
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},
...
}
MDTPLMNList ::= SEQUENCE (SIZE(1..maxnoofMDTPLMNs)) OF PLMN-Identity
MDT-Location-Info ::= BIT STRING (SIZE (8))
MeasurementsToActivate::= BIT STRING (SIZE (8))
MeasurementThresholdA2 ::= CHOICE {
threshold-RSRP Threshold-RSRP,
threshold-RSRQ Threshold-RSRQ,
...
}
MME-Group-ID ::= OCTET STRING (SIZE (2))
MME-Code ::= OCTET STRING (SIZE (1))
Measurement-ID ::= INTEGER (1..4095, ...)
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 ::= {
...
}
ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...}
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 ::= {
...
}
-- 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,
...
}
-- O
Oneframe ::= BIT STRING (SIZE (6))
-- P
PDCP-SN ::= INTEGER (0..4095)
PDCP-SNExtended ::= INTEGER (0..32767)
PCI ::= INTEGER (0..503, ...)
M1PeriodicReporting ::= SEQUENCE {
reportInterval ReportIntervalMDT,
reportAmount ReportAmountMDT,
iE-Extensions ProtocolExtensionContainer { { M1PeriodicReporting-ExtIEs} } OPTIONAL,
...
}
M1PeriodicReporting-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
PLMN-Identity ::= OCTET STRING (SIZE(3))
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,
...
}
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)
-- 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 ::= {
...
}
ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
ReceiveStatusOfULPDCPSDUsExtended ::= BIT STRING (SIZE(1..16384))
Registration-Request ::= ENUMERATED {
start,
stop,
...
}
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 ::= {
...
}
ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity}
ReportArea ::= ENUMERATED{
ecgi,
...
}
ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60}
ReportCharacteristics ::= BIT STRING (SIZE (32))
M1ReportingTrigger::= ENUMERATED{
periodic,
a2eventtriggered,
...,
a2eventtriggered-periodic
}
RNTP-Threshold ::= ENUMERATED {
minusInfinity,
minusEleven,
minusTen,
minusNine,
minusEight,
minusSeven,
minusSix,
minusFive,
minusFour,
minusThree,
minusTwo,
minusOne,
zero,
one,
two,
three,
...
}
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,
...
}
-- S
S1TNLLoadIndicator ::= SEQUENCE {
dLS1TNLLoadIndicator LoadIndicator,
uLS1TNLLoadIndicator LoadIndicator,
iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL,
...
}
S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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 },
...
}
ShortMAC-I ::= BIT STRING (SIZE(16))
SRVCCOperationPossible ::= ENUMERATED {
possible,
...
}
SubframeAssignment ::= ENUMERATED {
sa0,
sa1,
sa2,
sa3,
sa4,
sa5,
sa6,
...
}
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,
...
}
SubscriberProfileIDforRFP ::= INTEGER (1..256)
SubframeAllocation ::= CHOICE {
oneframe Oneframe,
fourframes Fourframes,
...
}
-- T
TAC ::= OCTET STRING (SIZE (2))
TABasedMDT::= SEQUENCE {
tAListforMDT TAListforMDT,
iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL,
...
}
TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC
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 ::= {
...
}
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]
M1ThresholdEventA2 ::= SEQUENCE {
measurementThreshold MeasurementThresholdA2,
iE-Extensions ProtocolExtensionContainer { { M1ThresholdEventA2-ExtIEs} } OPTIONAL,
...
}
M1ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
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},
...
}
TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...))
TraceDepth ::= ENUMERATED {
minimum,
medium,
maximum,
minimumWithoutVendorSpecificExtension,
mediumWithoutVendorSpecificExtension,
maximumWithoutVendorSpecificExtension,
...
}
Transmission-Bandwidth ::= ENUMERATED {
bw6,
bw15,
bw25,
bw50,
bw75,
bw100,
...
}
TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
TypeOfError ::= ENUMERATED {
not-understood,
missing,
...
}
-- U
UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
UE-S1AP-ID ::= INTEGER (0.. 4294967295)
UE-X2AP-ID ::= INTEGER (0..4095)
UEAggregateMaximumBitRate ::= SEQUENCE {
uEaggregateMaximumBitRateDownlink BitRate,
uEaggregateMaximumBitRateUplink BitRate,
iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL,
...
}
UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UESecurityCapabilities ::= SEQUENCE {
encryptionAlgorithms EncryptionAlgorithms,
integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
...
}
UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UL-GBR-PRB-usage::= INTEGER (0..100)
UL-non-GBR-PRB-usage::= INTEGER (0..100)
UL-Total-PRB-usage::= INTEGER (0..100)
UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item
UL-InterferenceOverloadIndication-Item ::= ENUMERATED {
high-interference,
medium-interference,
low-interference,
...
}
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, ...))
UE-RLF-Report-Container::= OCTET STRING
-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9]
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 ::= {
...
}
-- V
-- W
-- X
-- 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
-- **************************************************************
--
-- 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
-- **************************************************************
--
-- 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
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
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
-- **************************************************************
--
-- 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
ENBConfigurationUpdate,
ENBConfigurationUpdateAcknowledge,
ENBConfigurationUpdateFailure,
ErrorIndication,
HandoverCancel,
HandoverPreparationFailure,
HandoverRequest,
HandoverRequestAcknowledge,
LoadInformation,
PrivateMessage,
ResetRequest,
ResetResponse,
ResourceStatusFailure,
ResourceStatusRequest,
ResourceStatusResponse,
ResourceStatusUpdate,
SNStatusTransfer,
UEContextRelease,
X2SetupFailure, X2SetupRequest,
X2SetupResponse
FROM X2AP-PDU-Contents
id-eNBConfigurationUpdate,
id-errorIndication,
id-handoverCancel,
id-handoverPreparation,
id-loadIndication,
id-privateMessage,
id-reset,
id-resourceStatusReporting,
id-resourceStatusReportingInitiation,
id-snStatusTransfer,
id-uEContextRelease,
id-x2Setup
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 ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
snStatusTransfer |
uEContextRelease |
handoverCancel |
errorIndication |
resourceStatusReporting |
loadIndication |
privateMessage ,
...
}
-- **************************************************************
--
-- 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
}
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
}
privateMessage X2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE PrivateMessage
PROCEDURE CODE id-privateMessage
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
AS-SecurityInformation,
Cause,
COUNTvalue,
CriticalityDiagnostics,
DL-Forwarding,
ECGI,
E-RAB-ID,
E-RAB-Level-QoS-Parameters,
E-RAB-List,
EUTRANTraceID,
GlobalENB-ID,
GTPtunnelEndpoint,
GUGroupIDList,
GUMMEI,
HandoverRestrictionList,
LocationReportingInformation,
Neighbour-Information,
PDCP-SN,
PLMN-Identity,
ReceiveStatusofULPDCPSDUs,
Registration-Request,
RelativeNarrowbandTxPower,
RadioResourceStatus,
RRC-Context,
ServedCell-Information,
ServedCells,
SRVCCOperationPossible,
SubscriberProfileIDforRFP,
TargeteNBtoSource-eNBTransparentContainer,
TimeToWait,
TraceActivation,
TraceDepth,
TransportLayerAddress,
UEAggregateMaximumBitRate,
UE-HistoryInformation,
UE-S1AP-ID,
UESecurityCapabilities,
UE-X2AP-ID,
UL-HighInterferenceIndicationInfo,
UL-InterferenceOverloadIndication,
HWLoadIndicator,
S1TNLLoadIndicator,
Measurement-ID,
ReportCharacteristics
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-Cause,
id-CellInformation,
id-CellInformation-Item,
id-CellMeasurementResult,
id-CellMeasurementResult-Item,
id-CellToReport,
id-CellToReport-Item,
id-CriticalityDiagnostics,
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-New-eNB-UE-X2AP-ID,
id-Old-eNB-UE-X2AP-ID,
id-Registration-Request,
id-ReportingPeriodicity,
id-ServedCells,
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,
maxCellineNB,
maxnoofBearers,
maxnoofPDCP-SN
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 },
...
}
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 ::= {
...
}
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 ::= {
...
}
-- **************************************************************
--
-- 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 },
...
}
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 },
...
}
-- **************************************************************
--
-- 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} ,
...
}
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 ::= {
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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},
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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 ::= {
...
}
-- **************************************************************
--
-- 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},
...
}
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 ::= {
...
}
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”--
{ 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} ,
...
}
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,
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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,
hWOverLoadIndicator HWLoadIndicator OPTIONAL,
s1TNLOverLoadIndicator S1TNLLoadIndicator OPTIONAL,
radioResourceStatus RadioResourceStatus OPTIONAL,
iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL,
...
}
CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- **************************************************************
--
-- PRIVATE MESSAGE
--
-- **************************************************************
PrivateMessage ::= SEQUENCE {
privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
...
}
PrivateMessage-IEs X2AP-PRIVATE-IES ::= {
...
}
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,
maxnoofBearers, maxCellineNB,
maxEARFCN,
maxInterfaces,
maxnoofBPLMNs,
maxnoofCells,
maxnoofEPLMNs,
maxnoofEPLMNsPlusOne,
maxnoofForbLACs,
maxnoofForbTACs,
maxnoofNeighbours,
maxnoofPRBs,
maxNrOfErrors,
maxPools
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
AS-SecurityInformation ::= SEQUENCE {
key-eNodeB-star Key-eNodeB-Star,
nextHopChainingCount NextHopChainingCount,
iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL,
...
}
AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
AllocationAndRetentionPriority ::= SEQUENCE {
priorityLevel PriorityLevel,
pre-emptionCapability Pre-emptionCapability,
pre-emptionVulnerability Pre-emptionVulnerability,
iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
...
}
AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- B
BitRate ::= INTEGER (0..10000000000)
BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
-- C
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,
...
}
CauseTransport ::= ENUMERATED {
transport-resource-unavailable,
unspecified,
...
}
Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... }
CellType ::= SEQUENCE {
cell-Size Cell-Size,
iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
...
}
CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
COUNTvalue ::= SEQUENCE {
pDCP-SN PDCP-SN,
hFN HFN,
iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL,
...
}
COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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 ::= {
...
}
CyclicPrefixDL ::= ENUMERATED {
normal,
extended,
...
}
CyclicPrefixUL ::= ENUMERATED {
normal,
extended,
...
}
-- D
DL-Forwarding ::= ENUMERATED {
dL-forwardingProposed,
...
}
-- E
EARFCN ::= INTEGER (0..maxEARFCN)
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 ::= {
...
}
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 ::= {
...
}
EUTRA-Mode-Info ::= CHOICE {
fDD FDD-Info,
tDD TDD-Info,
...
}
ECGI ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eUTRANcellIdentifier EUTRANCellIdentifier,
iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
...
}
ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
ENB-ID ::= CHOICE {
macro-eNB-ID BIT STRING (SIZE (20)),
home-eNB-ID BIT STRING (SIZE (28)),
...
}
EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...))
EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
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 ::= {
...
}
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 ::= {
...
}
EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
EUTRANTraceID ::= OCTET STRING (SIZE (8))
EventType ::= ENUMERATED{
change-of-serving-cell,
...
}
-- F
ForbiddenInterRATs ::= ENUMERATED {
all,
geran,
utran,
cdma2000,
...
}
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
-- 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 ::= {
...
}
GlobalENB-ID ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eNB-ID ENB-ID,
iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
...
}
GlobalENB-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 ::= {
...
}
-- H
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 ::= {
...
}
HFN ::= INTEGER (0..1048575)
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))
-- 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,
...
}
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 ::= {
...
}
LastVisitedUTRANCellInformation ::= OCTET STRING
LastVisitedGERANCellInformation ::= CHOICE {
undefined NULL,
...
}
LoadIndicator ::= ENUMERATED {
lowLoad,
mediumLoad,
highLoad,
overLoad,
...
}
LocationReportingInformation ::= SEQUENCE {
eventType EventType,
reportArea ReportArea,
iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL,
...
}
LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={
...
}
-- M
MME-Group-ID ::= OCTET STRING (SIZE (2))
MME-Code ::= OCTET STRING (SIZE (1))
Measurement-ID ::= INTEGER (1..4095, ...)
-- 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 ::= {
...
}
NextHopChainingCount ::= INTEGER (0..7)
Number-of-Antennaports ::= ENUMERATED {
an1,
an2,
an4,
...
}
-- O
-- P
PDCP-SN ::= INTEGER (0..4095)
PCI ::= INTEGER (0..503, ...)
PLMN-Identity ::= OCTET STRING (SIZE(3))
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)
-- Q
QCI ::= INTEGER (0..255)
-- R
ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
Registration-Request ::= ENUMERATED {
start,
stop,
...
}
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 ::= {
...
}
ReportArea ::= ENUMERATED{
ecgi,
...
}
ReportCharacteristics ::= BIT STRING (SIZE (32))
RNTP-Threshold ::= ENUMERATED {
minusInfinity,
minusEleven,
minusTen,
minusNine,
minusEight,
minusSeven,
minusSix,
minusFive,
minusFour,
minusThree,
minusTwo,
minusOne,
zero,
one,
two,
three,
...
}
RRC-Context ::= OCTET STRING
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 ::= {
...
}
DL-GBR-PRB-usage::= INTEGER (0..100)
UL-GBR-PRB-usage::= INTEGER (0..100)
DL-non-GBR-PRB-usage::= INTEGER (0..100)
UL-non-GBR-PRB-usage::= INTEGER (0..100)
DL-Total-PRB-usage::= INTEGER (0..100)
UL-Total-PRB-usage::= INTEGER (0..100)
-- S
S1TNLLoadIndicator ::= SEQUENCE {
dLS1TNLLoadIndicator LoadIndicator,
uLS1TNLLoadIndicator LoadIndicator,
iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL,
...
}
S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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 },
...
}
SRVCCOperationPossible ::= ENUMERATED {
possible,
...
}
SubframeAssignment ::= ENUMERATED {
sa0,
sa1,
sa2,
sa3,
sa4,
sa5,
sa6,
...
}
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,
...
}
SubscriberProfileIDforRFP ::= INTEGER (1..256)
-- T
TAC ::= OCTET STRING (SIZE (2))
TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
TimeToWait ::= ENUMERATED {
v1s,
v2s,
v5s,
v10s,
v20s,
v60s,
...
}
Time-UE-StayedInCell ::= INTEGER (0..4095)
TraceActivation ::= SEQUENCE {
eUTRANTraceID EUTRANTraceID,
interfacesToTrace InterfacesToTrace,
traceDepth TraceDepth,
traceCollectionEntityIPAddress TraceCollectionEntityIPAddress,
iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL,
...
}
TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...))
TraceDepth ::= ENUMERATED {
minimum,
medium,
maximum,
minimumWithoutVendorSpecificExtension,
mediumWithoutVendorSpecificExtension,
maximumWithoutVendorSpecificExtension,
...
}
Transmission-Bandwidth ::= ENUMERATED {
bw6,
bw15,
bw25,
bw50,
bw75,
bw100,
...
}
TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
TypeOfError ::= ENUMERATED {
not-understood,
missing,
...
}
-- U
UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
UE-S1AP-ID ::= INTEGER (0.. 4294967295)
UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS
UEAggregateMaximumBitRate ::= SEQUENCE {
uEaggregateMaximumBitRateDownlink BitRate,
uEaggregateMaximumBitRateUplink BitRate,
iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL,
...
}
UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UESecurityCapabilities ::= SEQUENCE {
encryptionAlgorithms EncryptionAlgorithms,
integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
...
}
UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item
UL-InterferenceOverloadIndication-Item ::= ENUMERATED {
high-interference,
medium-interference,
low-interference,
...
}
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, ...))
-- V
-- W
-- X
-- 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
-- **************************************************************
--
-- Lists
--
-- **************************************************************
maxEARFCN INTEGER ::= 65535
maxInterfaces INTEGER ::= 16
maxCellineNB INTEGER ::= 256
maxnoofBearers INTEGER ::= 256
maxNrOfErrors INTEGER ::= 256
maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked
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
-- **************************************************************
--
-- 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
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
-- **************************************************************
--
-- 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
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
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 ,
...
}
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
snStatusTransfer |
uEContextRelease |
handoverCancel |
errorIndication |
resourceStatusReporting |
loadIndication |
privateMessage |
rLFIndication | handoverReport,
...
}
-- **************************************************************
--
-- 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
}
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
AS-SecurityInformation,
Cause,
CompositeAvailableCapacityGroup,
COUNTvalue,
CriticalityDiagnostics,
CRNTI,
DeactivationIndication,
DL-Forwarding,
ECGI,
E-RAB-ID,
E-RAB-Level-QoS-Parameters,
E-RAB-List,
EUTRANTraceID,
GlobalENB-ID,
GTPtunnelEndpoint,
GUGroupIDList,
GUMMEI,
HandoverReportType,
HandoverRestrictionList,
LocationReportingInformation,
Neighbour-Information,
PCI,
PDCP-SN,
PLMN-Identity,
ReceiveStatusofULPDCPSDUs,
Registration-Request,
RelativeNarrowbandTxPower,
RadioResourceStatus,
UE-RLF-Report-Container,
RRC-Context,
ServedCell-Information,
ServedCells,
ShortMAC-I,
SRVCCOperationPossible,
SubscriberProfileIDforRFP,
TargeteNBtoSource-eNBTransparentContainer,
TimeToWait,
TraceActivation,
TraceDepth,
TransportLayerAddress,
UEAggregateMaximumBitRate,
UE-HistoryInformation,
UE-S1AP-ID,
UESecurityCapabilities,
UE-X2AP-ID,
UL-HighInterferenceIndicationInfo,
UL-InterferenceOverloadIndication,
HWLoadIndicator,
S1TNLLoadIndicator,
Measurement-ID,
ReportCharacteristics,
MobilityParametersInformation,
MobilityParametersModificationRange
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-ActivatedCellList,
id-Cause,
id-CellInformation,
id-CellInformation-Item,
id-CellMeasurementResult,
id-CellMeasurementResult-Item,
id-CellToReport,
id-CellToReport-Item,
id-CompositeAvailableCapacityGroup,
id-CriticalityDiagnostics,
id-DeactivationIndication,
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-New-eNB-UE-X2AP-ID,
id-Old-eNB-UE-X2AP-ID,
id-Registration-Request,
id-ReportingPeriodicity,
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,
maxCellineNB,
maxnoofBearers,
maxnoofPDCP-SN
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 },
...
}
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 ::= {
...
}
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 ::= {
...
}
-- **************************************************************
--
-- 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 },
...
}
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 },
...
}
-- **************************************************************
--
-- 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” -- ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
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 ::= {
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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} ,
...
}
-- **************************************************************
--
-- 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},
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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 ::= {
...
}
-- **************************************************************
--
-- 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},
...
}
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”--
{ 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} ,
...
}
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,
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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 },
...
}
-- **************************************************************
--
-- 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,
hWOverLoadIndicator HWLoadIndicator OPTIONAL,
s1TNLOverLoadIndicator 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 },
...
}
-- **************************************************************
--
-- 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},
...
}
-- **************************************************************
--
-- 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 },
...
}
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,
maxnoofBearers,
maxCellineNB,
maxEARFCN,
maxInterfaces,
maxnoofBPLMNs,
maxnoofCells,
maxnoofEPLMNs,
maxnoofEPLMNsPlusOne,
maxnoofForbLACs,
maxnoofForbTACs,
maxnoofNeighbours,
maxnoofPRBs,
maxNrOfErrors,
maxPools,
maxnoofMBSFN
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
AS-SecurityInformation ::= SEQUENCE {
key-eNodeB-star Key-eNodeB-Star,
nextHopChainingCount NextHopChainingCount,
iE-Extensions ProtocolExtensionContainer { { AS-SecurityInformation-ExtIEs} } OPTIONAL,
...
}
AS-SecurityInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
AllocationAndRetentionPriority ::= SEQUENCE {
priorityLevel PriorityLevel,
pre-emptionCapability Pre-emptionCapability,
pre-emptionVulnerability Pre-emptionVulnerability,
iE-Extensions ProtocolExtensionContainer { {AllocationAndRetentionPriority-ExtIEs} } OPTIONAL,
...
}
AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
-- B
BitRate ::= INTEGER (0..10000000000)
BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
-- C
CapacityValue ::= INTEGER (0..100)
CellCapacityClassValue ::= INTEGER (1..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
}
CauseTransport ::= ENUMERATED {
transport-resource-unavailable,
unspecified,
...
}
Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... }
CellType ::= SEQUENCE {
cell-Size Cell-Size,
iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL,
...
}
CellType-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CompositeAvailableCapacityGroup ::= SEQUENCE {
dL-CompositeAvailableCapacity CompositeAvailableCapacity,
uL-CompositeAvailableCapacity CompositeAvailableCapacity,
iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacityGroup-ExtIEs} } OPTIONAL,
...
}
CompositeAvailableCapacityGroup-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CompositeAvailableCapacity ::= SEQUENCE {
cellCapacityClassValue CellCapacityClassValue OPTIONAL,
capacityValue CapacityValue,
iE-Extensions ProtocolExtensionContainer { { CompositeAvailableCapacity-ExtIEs} } OPTIONAL,
...
}
CompositeAvailableCapacity-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
COUNTvalue ::= SEQUENCE {
pDCP-SN PDCP-SN,
hFN HFN,
iE-Extensions ProtocolExtensionContainer { { COUNTvalue-ExtIEs} } OPTIONAL,
...
}
COUNTvalue-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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))
CyclicPrefixDL ::= ENUMERATED {
normal,
extended,
...
}
CyclicPrefixUL ::= ENUMERATED {
normal,
extended,
...
}
-- D
DeactivationIndication::= ENUMERATED {
deactivated,
...
}
DL-Forwarding ::= ENUMERATED {
dL-forwardingProposed,
...
}
-- E
EARFCN ::= INTEGER (0..maxEARFCN)
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 ::= {
...
}
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 ::= {
...
}
EUTRA-Mode-Info ::= CHOICE {
fDD FDD-Info,
tDD TDD-Info,
...
}
ECGI ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eUTRANcellIdentifier EUTRANCellIdentifier,
iE-Extensions ProtocolExtensionContainer { {ECGI-ExtIEs} } OPTIONAL,
...
}
ECGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
ENB-ID ::= CHOICE {
macro-eNB-ID BIT STRING (SIZE (20)),
home-eNB-ID BIT STRING (SIZE (28)),
...
}
EncryptionAlgorithms ::= BIT STRING (SIZE (16, ...))
EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
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 ::= {
...
}
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 ::= {
...
}
EUTRANCellIdentifier ::= BIT STRING (SIZE (28))
EUTRANTraceID ::= OCTET STRING (SIZE (8))
EventType ::= ENUMERATED{
change-of-serving-cell,
...
}
-- F
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))
-- 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 ::= {
...
}
GlobalENB-ID ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
eNB-ID ENB-ID,
iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
...
}
GlobalENB-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 ::= {
...
}
-- H
HandoverReportType ::= ENUMERATED {
hoTooEarly,
hoToWrongCell,
...
}
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 ::= {
...
}
HFN ::= INTEGER (0..1048575)
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))
-- 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,
...
}
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 ::= {
...
}
LastVisitedUTRANCellInformation ::= OCTET STRING
LastVisitedGERANCellInformation ::= CHOICE {
undefined NULL,
...
}
LoadIndicator ::= ENUMERATED {
lowLoad,
mediumLoad,
highLoad,
overLoad,
...
}
LocationReportingInformation ::= SEQUENCE {
eventType EventType,
reportArea ReportArea,
iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL,
...
}
LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={
...
}
-- M
MME-Group-ID ::= OCTET STRING (SIZE (2))
MME-Code ::= OCTET STRING (SIZE (1))
Measurement-ID ::= INTEGER (1..4095, ...)
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),
...
}
-- 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 ::= {
...
}
NextHopChainingCount ::= INTEGER (0..7)
Number-of-Antennaports ::= ENUMERATED {
an1,
an2,
an4,
...
}
-- O
Oneframe ::= BIT STRING (SIZE (6))
-- P
PDCP-SN ::= INTEGER (0..4095)
PCI ::= INTEGER (0..503, ...)
PLMN-Identity ::= OCTET STRING (SIZE(3))
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,
...
}
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)
-- Q
QCI ::= INTEGER (0..255)
-- R
ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096))
Registration-Request ::= ENUMERATED {
start,
stop,
...
}
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 ::= {
...
}
ReportArea ::= ENUMERATED{
ecgi,
...
}
ReportCharacteristics ::= BIT STRING (SIZE (32))
RNTP-Threshold ::= ENUMERATED {
minusInfinity,
minusEleven,
minusTen,
minusNine,
minusEight,
minusSeven,
minusSix,
minusFive,
minusFour,
minusThree,
minusTwo,
minusOne,
zero,
one,
two,
three,
...
}
RRC-Context ::= OCTET STRING
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 ::= {
...
}
DL-GBR-PRB-usage::= INTEGER (0..100)
UL-GBR-PRB-usage::= INTEGER (0..100)
DL-non-GBR-PRB-usage::= INTEGER (0..100)
UL-non-GBR-PRB-usage::= INTEGER (0..100)
DL-Total-PRB-usage::= INTEGER (0..100)
UL-Total-PRB-usage::= INTEGER (0..100)
RadioframeAllocationPeriod ::= ENUMERATED{
n1,
n2,
n4,
n8,
n16,
n32,
...
}
RadioframeAllocationOffset ::= INTEGER (0..7, ...)
-- S
S1TNLLoadIndicator ::= SEQUENCE {
dLS1TNLLoadIndicator LoadIndicator,
uLS1TNLLoadIndicator LoadIndicator,
iE-Extensions ProtocolExtensionContainer { { S1TNLLoadIndicator-ExtIEs} } OPTIONAL,
...
}
S1TNLLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
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 },
...
}
ShortMAC-I ::= BIT STRING (SIZE(16))
SRVCCOperationPossible ::= ENUMERATED {
possible,
...
}
SubframeAssignment ::= ENUMERATED {
sa0,
sa1,
sa2,
sa3,
sa4,
sa5,
sa6,
...
}
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,
...
}
SubscriberProfileIDforRFP ::= INTEGER (1..256)
SubframeAllocation ::= CHOICE {
oneframe Oneframe,
fourframes Fourframes,
...
}
-- T
TAC ::= OCTET STRING (SIZE (2))
TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
TimeToWait ::= ENUMERATED {
v1s,
v2s,
v5s,
v10s,
v20s,
v60s,
...
}
Time-UE-StayedInCell ::= INTEGER (0..4095)
TraceActivation ::= SEQUENCE {
eUTRANTraceID EUTRANTraceID,
interfacesToTrace InterfacesToTrace,
traceDepth TraceDepth,
traceCollectionEntityIPAddress TraceCollectionEntityIPAddress,
iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL,
...
}
TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
TraceCollectionEntityIPAddress ::= BIT STRING (SIZE(1..160, ...))
TraceDepth ::= ENUMERATED {
minimum,
medium,
maximum,
minimumWithoutVendorSpecificExtension,
mediumWithoutVendorSpecificExtension,
maximumWithoutVendorSpecificExtension,
...
}
Transmission-Bandwidth ::= ENUMERATED {
bw6,
bw15,
bw25,
bw50,
bw75,
bw100,
...
}
TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
TypeOfError ::= ENUMERATED {
not-understood,
missing,
...
}
-- U
UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
UE-S1AP-ID ::= INTEGER (0.. 4294967295)
UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS
UEAggregateMaximumBitRate ::= SEQUENCE {
uEaggregateMaximumBitRateDownlink BitRate,
uEaggregateMaximumBitRateUplink BitRate,
iE-Extensions ProtocolExtensionContainer { {UEAggregate-MaximumBitrate-ExtIEs} } OPTIONAL,
...
}
UEAggregate-MaximumBitrate-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UESecurityCapabilities ::= SEQUENCE {
encryptionAlgorithms EncryptionAlgorithms,
integrityProtectionAlgorithms IntegrityProtectionAlgorithms,
iE-Extensions ProtocolExtensionContainer { { UESecurityCapabilities-ExtIEs} } OPTIONAL,
...
}
UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item
UL-InterferenceOverloadIndication-Item ::= ENUMERATED {
high-interference,
medium-interference,
low-interference,
...
}
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, ...))
UE-RLF-Report-Container::= OCTET STRING
-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9]
-- V
-- W
-- X
-- 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
-- **************************************************************
--
-- Lists
--
-- **************************************************************
maxEARFCN INTEGER ::= 65535
maxInterfaces INTEGER ::= 16
maxCellineNB INTEGER ::= 256
maxnoofBearers INTEGER ::= 256
maxNrOfErrors INTEGER ::= 256
maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked
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
-- **************************************************************
--
-- 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
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
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "92";
tr_s_preference = "local_mac"
////////// Physical parameters:
component_carriers = (
{
node_function = "3GPP_eNODEB";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2685000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 25;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 115;
pbch_repetition = "FALSE";
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 0;
pdsch_referenceSignalPower = -27;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -108;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
//Parameters for SIB18
rxPool_sc_CP_Len = "normal";
rxPool_sc_Period = "sf40";
rxPool_data_CP_Len = "normal";
rxPool_ResourceConfig_prb_Num = 20;
rxPool_ResourceConfig_prb_Start = 5;
rxPool_ResourceConfig_prb_End = 44;
rxPool_ResourceConfig_offsetIndicator_present = "prSmall";
rxPool_ResourceConfig_offsetIndicator_choice = 0;
rxPool_ResourceConfig_subframeBitmap_present = "prBs40";
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000";
rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
/* rxPool_dataHoppingConfig_hoppingParameter = 0;
rxPool_dataHoppingConfig_numSubbands = "ns1";
rxPool_dataHoppingConfig_rbOffset = 0;
rxPool_commTxResourceUC-ReqAllowed = "TRUE";
*/
// Parameters for SIB19
discRxPool_cp_Len = "normal"
discRxPool_discPeriod = "rf32"
discRxPool_numRetx = 1;
discRxPool_numRepetition = 2;
discRxPool_ResourceConfig_prb_Num = 5;
discRxPool_ResourceConfig_prb_Start = 3;
discRxPool_ResourceConfig_prb_End = 21;
discRxPool_ResourceConfig_offsetIndicator_present = "prSmall";
discRxPool_ResourceConfig_offsetIndicator_choice = 0;
discRxPool_ResourceConfig_subframeBitmap_present = "prBs40";
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff";
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.13.11";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "lo";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.13.10/24";
ENB_INTERFACE_NAME_FOR_S1U = "lo";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.13.10/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
phy_test_mode = 0;
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
}
);
RUs = (
{
local_rf = "yes"
nb_tx = 1
nb_rx = 1
att_tx = 0
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 125;
eNB_instances = [0];
}
);
NETWORK_CONTROLLER :
{
FLEXRAN_ENABLED = "no";
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_PORT = 2210;
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";
};
/*
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
*/
log_config :
{
global_log_level ="crit";
global_log_verbosity ="crit";
hw_log_level ="crit";
hw_log_verbosity ="crit";
phy_log_level ="crit";
phy_log_verbosity ="crit";
mac_log_level ="crit";
mac_log_verbosity ="crit";
rlc_log_level ="crit";
rlc_log_verbosity ="crit";
pdcp_log_level ="crit";
pdcp_log_verbosity ="crit";
rrc_log_level ="crit";
rrc_log_verbosity ="crit";
};
Active_eNBs = ( "eNB_Eurecom_LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB_Eurecom_LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "93";
tr_s_preference = "local_mac"
////////// Physical parameters:
component_carriers = (
{
node_function = "3GPP_eNODEB";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 7;
downlink_frequency = 2685000000L;
uplink_frequency_offset = -120000000;
Nid_cell = 0;
N_RB_DL = 50;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
pbch_repetition = "FALSE";
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 0;
pdsch_referenceSignalPower = -27;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONE";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -96;
pusch_alpha = "AL1";
pucch_p0_Nominal = -104;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -108;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
ue_multiple_max = 20;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "192.168.12.26";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.19/24";
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.19/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
}
);
RUs = (
{
local_rf = "yes"
nb_tx = 1
nb_rx = 1
att_tx = 0
att_rx = 0;
bands = [7];
max_pdschReferenceSignalPower = -27;
max_rxgain = 125;
eNB_instances = [0];
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
Active_eNBs = ( "eNB-Eurecom-LTEBox");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
eNBs =
(
{
# real_time choice in {hard, rt-preempt, no}
real_time = "no";
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = "1";
mobile_country_code = "208";
mobile_network_code = "93";
tr_s_preference = "local_mac"
////////// Physical parameters:
component_carriers = (
{
node_function = "NGFI_RCC_IF4p5";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "TDD";
tdd_config = 1;
tdd_config_s = 0;
prefix_type = "NORMAL";
eutra_band = 38;
downlink_frequency = 2580000000L;
uplink_frequency_offset = 0;
Nid_cell = 0;
N_RB_DL = 50;
Nid_cell_mbsfn = 0;
nb_antenna_ports = 1;
nb_antennas_tx = 1;
nb_antennas_rx = 1;
tx_gain = 90;
rx_gain = 125;
pbch_repetition = "FALSE";
prach_root = 0;
prach_config_index = 0;
prach_high_speed = "DISABLE";
prach_zero_correlation = 1;
prach_freq_offset = 2;
pucch_delta_shift = 1;
pucch_nRB_CQI = 0;
pucch_nCS_AN = 0;
pucch_n1_AN = 32;
pdsch_referenceSignalPower = -27;
pdsch_p_b = 0;
pusch_n_SB = 1;
pusch_enable64QAM = "DISABLE";
pusch_hoppingMode = "interSubFrame";
pusch_hoppingOffset = 0;
pusch_groupHoppingEnabled = "ENABLE";
pusch_groupAssignment = 0;
pusch_sequenceHoppingEnabled = "DISABLE";
pusch_nDMRS1 = 1;
phich_duration = "NORMAL";
phich_resource = "ONESIXTH";
srs_enable = "DISABLE";
/* srs_BandwidthConfig =;
srs_SubframeConfig =;
srs_ackNackST =;
srs_MaxUpPts =;*/
pusch_p0_Nominal = -104;
pusch_alpha = "AL1";
pucch_p0_Nominal = -96;
msg3_delta_Preamble = 6;
pucch_deltaF_Format1 = "deltaF2";
pucch_deltaF_Format1b = "deltaF3";
pucch_deltaF_Format2 = "deltaF0";
pucch_deltaF_Format2a = "deltaF0";
pucch_deltaF_Format2b = "deltaF0";
rach_numberOfRA_Preambles = 64;
rach_preamblesGroupAConfig = "DISABLE";
/*
rach_sizeOfRA_PreamblesGroupA = ;
rach_messageSizeGroupA = ;
rach_messagePowerOffsetGroupB = ;
*/
rach_powerRampingStep = 4;
rach_preambleInitialReceivedTargetPower = -108;
rach_preambleTransMax = 10;
rach_raResponseWindowSize = 10;
rach_macContentionResolutionTimer = 48;
rach_maxHARQ_Msg3Tx = 4;
pcch_default_PagingCycle = 128;
pcch_nB = "oneT";
bcch_modificationPeriodCoeff = 2;
ue_TimersAndConstants_t300 = 1000;
ue_TimersAndConstants_t301 = 1000;
ue_TimersAndConstants_t310 = 1000;
ue_TimersAndConstants_t311 = 10000;
ue_TimersAndConstants_n310 = 20;
ue_TimersAndConstants_n311 = 1;
ue_TransmissionMode = 1;
}
);
srb1_parameters :
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit = 80;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering = 35;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit = 0;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu = 4;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte = 99999;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold = 4;
}
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// MME parameters:
mme_ip_address = ( { ipv4 = "127.0.0.3";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "lo";
ENB_IPV4_ADDRESS_FOR_S1_MME = "127.0.0.2/24";
ENB_INTERFACE_NAME_FOR_S1U = "lo";
ENB_IPV4_ADDRESS_FOR_S1U = "127.0.0.5/24";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
}
);
RUs = (
{
local_if_name = "lo";
remote_address = "127.0.0.2";
local_address = "127.0.0.1";
local_portc = 50000;
remote_portc = 50000;
local_portd = 50001;
remote_portd = 50001;
local_rf = "no"
tr_preference = "udp_if4p5"
nb_tx = 2
nb_rx = 2
att_tx = 0
att_rx = 0;
eNB_instances = [0];
is_slave = "no";
}
);
log_config = {
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
RUs = (
{
local_if_name = "lo";
remote_address = "127.0.0.1"
local_address = "127.0.0.2";
local_portc = 50000;
remote_portc = 50000;
local_portd = 50001;
remote_portd = 50001;
local_rf = "yes"
tr_preference = "udp_if4p5";
nb_tx = 1;
nb_rx = 1;
max_pdschReferenceSignalPower = -29;
max_rxgain = 120;
bands = [38];
is_slave = "no";
}
);
log_config = {
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
};
...@@ -1729,7 +1729,6 @@ static void* ru_thread( void* param ) { ...@@ -1729,7 +1729,6 @@ static void* ru_thread( void* param ) {
ru->do_prach, ru->do_prach,
is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx), is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx),
proc->frame_rx,proc->subframe_rx); proc->frame_rx,proc->subframe_rx);
if ((ru->do_prach>0) && (is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx)==1)) { if ((ru->do_prach>0) && (is_prach_subframe(fp, proc->frame_rx, proc->subframe_rx)==1)) {
wakeup_prach_ru(ru); wakeup_prach_ru(ru);
} }
......
/*
* 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 rfsim.c
* \brief function for simulated RF device
* \author R. Knopp
* \date 2018
* \version 1.0
* \company Eurecom
* \email: openair_tech@eurecom.fr
* \note
* \warning
*/
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <execinfo.h>
#include <time.h>
#include <mcheck.h>
#include <sys/timerfd.h>
#include "assertions.h"
#include "rfsim.h"
#include "openair1/SIMULATION/TOOLS/sim.h"
#include "enb_config.h"
#include "enb_paramdef.h"
#include "platform_constants.h"
#include "common/config/config_paramdesc.h"
#include "common/config/config_userapi.h"
#include "common/ran_context.h"
#include "PHY/defs_UE.h"
#include "PHY/defs_eNB.h"
#include "vcd_signal_dumper.h"
RAN_CONTEXT_t RC;
extern PHY_VARS_UE ***PHY_vars_UE_g;
// put all of these in a common structure after
sim_t sim;
void init_ru_devices(void);
void init_RU(const char*);
void *rfsim_top(void *n_frames);
void wait_RUs(void)
{
int i;
// wait for all RUs to be configured over fronthaul
pthread_mutex_lock(&RC.ru_mutex);
while (RC.ru_mask>0) {
pthread_cond_wait(&RC.ru_cond,&RC.ru_mutex);
}
// copy frame parameters from RU to UEs
for (i=0;i<NB_UE_INST;i++) {
sim.current_UE_rx_timestamp[i][0] = RC.ru[0]->frame_parms.samples_per_tti + RC.ru[0]->frame_parms.ofdm_symbol_size + RC.ru[0]->frame_parms.nb_prefix_samples0;
}
for (int ru_id=0;ru_id<RC.nb_RU;ru_id++) sim.current_ru_rx_timestamp[ru_id][0] = RC.ru[ru_id]->frame_parms.samples_per_tti;
printf("RUs are ready, let's go\n");
}
void wait_eNBs(void)
{
return;
}
void RCConfig_sim(void) {
paramlist_def_t RUParamList = {CONFIG_STRING_RU_LIST,NULL,0};
// AssertFatal(RC.config_file_name!=NULL,"configuration file is undefined\n");
// Get num RU instances
config_getlist( &RUParamList,NULL,0, NULL);
RC.nb_RU = RUParamList.numelt;
printf("returned with %d rus\n",RC.nb_RU);
init_RU(NULL);
printf("Waiting for RUs to get set up\n");
wait_RUs();
init_ru_devices();
static int nframes = 100000;
AssertFatal(0 == pthread_create(&sim.rfsim_thread,
NULL,
rfsim_top,
(void*)&nframes), "");
}
int ru_trx_start(openair0_device *device) {
return(0);
}
void ru_trx_end(openair0_device *device) {
return;
}
int ru_trx_stop(openair0_device *device) {
return(0);
}
int UE_trx_start(openair0_device *device) {
return(0);
}
void UE_trx_end(openair0_device *device) {
return;
}
int UE_trx_stop(openair0_device *device) {
return(0);
}
int ru_trx_set_freq(openair0_device *device, openair0_config_t *openair0_cfg, int dummy) {
return(0);
}
int ru_trx_set_gains(openair0_device *device, openair0_config_t *openair0_cfg) {
return(0);
}
int UE_trx_set_freq(openair0_device *device, openair0_config_t *openair0_cfg, int dummy) {
return(0);
}
int UE_trx_set_gains(openair0_device *device, openair0_config_t *openair0_cfg) {
return(0);
}
extern pthread_mutex_t subframe_mutex;
extern int subframe_ru_mask,subframe_UE_mask;
int ru_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc) {
int ru_id = device->Mod_id;
int CC_id = device->CC_id;
int subframe;
int sample_count=0;
*ptimestamp = sim.last_ru_rx_timestamp[ru_id][CC_id];
LOG_D(SIM,"RU_trx_read nsamps %d TS(%llu,%llu) => subframe %d\n",nsamps,
(unsigned long long)sim.current_ru_rx_timestamp[ru_id][CC_id],
(unsigned long long)sim.last_ru_rx_timestamp[ru_id][CC_id],
(int)((*ptimestamp/RC.ru[ru_id]->frame_parms.samples_per_tti)%10));
// if we're at a subframe boundary generate UL signals for this ru
while (sample_count<nsamps) {
while (sim.current_ru_rx_timestamp[ru_id][CC_id]<
(nsamps+sim.last_ru_rx_timestamp[ru_id][CC_id])) {
LOG_D(SIM,"RU: current TS %"PRIi64", last TS %"PRIi64", sleeping\n",sim.current_ru_rx_timestamp[ru_id][CC_id],sim.last_ru_rx_timestamp[ru_id][CC_id]);
usleep(500);
}
subframe = (sim.last_ru_rx_timestamp[ru_id][CC_id]/RC.ru[ru_id]->frame_parms.samples_per_tti)%10;
if (subframe_select(&RC.ru[ru_id]->frame_parms,subframe) != SF_DL || RC.ru[ru_id]->frame_parms.frame_type == FDD) {
LOG_D(SIM,"RU_trx_read generating UL subframe %d (Ts %llu, current TS %llu)\n",
subframe,(unsigned long long)*ptimestamp,
(unsigned long long)sim.current_ru_rx_timestamp[ru_id][CC_id]);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL,1);
do_UL_sig(&sim,
subframe,
0, // abstraction_flag
&RC.ru[ru_id]->frame_parms,
0, // frame is only used for abstraction
ru_id,
CC_id);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL,0);
}
sim.last_ru_rx_timestamp[ru_id][CC_id] += RC.ru[ru_id]->frame_parms.samples_per_tti;
sample_count += RC.ru[ru_id]->frame_parms.samples_per_tti;
}
return(nsamps);
}
int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_UE_TRX_READ,1);
int UE_id = device->Mod_id;
int CC_id = device->CC_id;
int subframe;
int sample_count=0;
int read_size;
int sptti = PHY_vars_UE_g[UE_id][CC_id]->frame_parms.samples_per_tti;
*ptimestamp = sim.last_UE_rx_timestamp[UE_id][CC_id];
LOG_D(PHY,"UE %d DL simulation 0: UE_trx_read nsamps %d TS %llu (%llu, offset %d) antenna %d\n",
UE_id,
nsamps,
(unsigned long long)sim.current_UE_rx_timestamp[UE_id][CC_id],
(unsigned long long)sim.last_UE_rx_timestamp[UE_id][CC_id],
(int)(sim.last_UE_rx_timestamp[UE_id][CC_id]%sptti),
cc);
if (nsamps < sptti)
read_size = nsamps;
else
read_size = sptti;
while (sample_count<nsamps) {
LOG_D(SIM,"UE %d: DL simulation 1: UE_trx_read : current TS now %"PRIi64", last TS %"PRIi64"\n",UE_id,sim.current_UE_rx_timestamp[UE_id][CC_id],sim.last_UE_rx_timestamp[UE_id][CC_id]);
while (sim.current_UE_rx_timestamp[UE_id][CC_id] <
(sim.last_UE_rx_timestamp[UE_id][CC_id]+read_size)) {
LOG_D(SIM,"UE %d: DL simulation 2: UE_trx_read : current TS %"PRIi64", last TS %"PRIi64", sleeping\n",UE_id,sim.current_UE_rx_timestamp[UE_id][CC_id],sim.last_UE_rx_timestamp[UE_id][CC_id]);
usleep(500);
}
LOG_D(SIM,"UE %d: DL simulation 3: UE_trx_read : current TS now %"PRIi64", last TS %"PRIi64"\n",UE_id,sim.current_UE_rx_timestamp[UE_id][CC_id],sim.last_UE_rx_timestamp[UE_id][CC_id]);
// if we cross a subframe-boundary
subframe = (sim.last_UE_rx_timestamp[UE_id][CC_id]/sptti)%10;
// tell top-level we are busy
pthread_mutex_lock(&sim.subframe_mutex);
sim.subframe_UE_mask|=(1<<UE_id);
LOG_D(SIM,"Setting UE_id %d mask to busy (%d)\n",UE_id,sim.subframe_UE_mask);
pthread_mutex_unlock(&sim.subframe_mutex);
LOG_D(PHY,"UE %d: DL simulation 4: UE_trx_read generating DL subframe %d (Ts %llu, current TS %llu,nsamps %d)\n",
UE_id,subframe,(unsigned long long)*ptimestamp,
(unsigned long long)sim.current_UE_rx_timestamp[UE_id][CC_id],
nsamps);
LOG_D(SIM,"UE %d: DL simulation 5: Doing DL simulation for %d samples starting in subframe %d at offset %d\n",
UE_id,nsamps,subframe,
(int)(sim.last_UE_rx_timestamp[UE_id][CC_id]%sptti));
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL,1);
do_DL_sig(&sim,
subframe,
sim.last_UE_rx_timestamp[UE_id][CC_id]%sptti,
sptti,
0, //abstraction_flag,
&PHY_vars_UE_g[UE_id][CC_id]->frame_parms,
UE_id,
CC_id);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL,0);
LOG_D(PHY,"UE %d: DL simulation 6: UE_trx_read @ TS %"PRIi64" (%"PRIi64")=> frame %d, subframe %d\n",
UE_id, sim.current_UE_rx_timestamp[UE_id][CC_id],
sim.last_UE_rx_timestamp[UE_id][CC_id],
(int)((sim.last_UE_rx_timestamp[UE_id][CC_id]/(sptti*10))&1023),
subframe);
sim.last_UE_rx_timestamp[UE_id][CC_id] += read_size;
sample_count += read_size;
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_UE_TRX_READ,0);
return(nsamps);
}
int ru_trx_write(openair0_device *device,openair0_timestamp timestamp, void **buff, int nsamps, int cc, int flags) {
int ru_id = device->Mod_id;
LTE_DL_FRAME_PARMS *frame_parms = &RC.ru[ru_id]->frame_parms;
pthread_mutex_lock(&sim.subframe_mutex);
LOG_D(SIM,"[TXPATH] ru_trx_write: RU %d mask %d\n",ru_id,sim.subframe_ru_mask);
pthread_mutex_unlock(&sim.subframe_mutex);
// compute amplitude of TX signal from first symbol in subframe
// note: assumes that the packet is an entire subframe
sim.ru_amp[ru_id] = 0;
for (int aa=0; aa<RC.ru[ru_id]->nb_tx; aa++) {
sim.ru_amp[ru_id] += (double)signal_energy((int32_t*)buff[aa],frame_parms->ofdm_symbol_size)/(12*frame_parms->N_RB_DL);
}
sim.ru_amp[ru_id] = sqrt(sim.ru_amp[ru_id]);
LOG_D(PHY,"Setting amp for RU %d to %f (%d)\n",ru_id,sim.ru_amp[ru_id], dB_fixed((double)signal_energy((int32_t*)buff[0],frame_parms->ofdm_symbol_size)));
// tell top-level we are done
pthread_mutex_lock(&sim.subframe_mutex);
sim.subframe_ru_mask|=(1<<ru_id);
LOG_D(SIM,"Setting RU %d to busy\n",ru_id);
pthread_mutex_unlock(&sim.subframe_mutex);
return(nsamps);
}
int UE_trx_write(openair0_device *device,openair0_timestamp timestamp, void **buff, int nsamps, int cc, int flags) {
return(nsamps);
}
void init_ru_devices(){
module_id_t ru_id;
RU_t *ru;
// allocate memory for RU if not already done
if (RC.ru==NULL) RC.ru = (RU_t**)malloc(RC.nb_RU*sizeof(RU_t*));
for (ru_id=0;ru_id<RC.nb_RU;ru_id++) {
LOG_D(SIM,"Initiaizing rfdevice for RU %d\n",ru_id);
if (RC.ru[ru_id]==NULL) RC.ru[ru_id] = (RU_t*)malloc(sizeof(RU_t));
ru = RC.ru[ru_id];
ru->rfdevice.Mod_id = ru_id;
ru->rfdevice.CC_id = 0;
ru->rfdevice.trx_start_func = ru_trx_start;
ru->rfdevice.trx_read_func = ru_trx_read;
ru->rfdevice.trx_write_func = ru_trx_write;
ru->rfdevice.trx_end_func = ru_trx_end;
ru->rfdevice.trx_stop_func = ru_trx_stop;
ru->rfdevice.trx_set_freq_func = ru_trx_set_freq;
ru->rfdevice.trx_set_gains_func = ru_trx_set_gains;
sim.last_ru_rx_timestamp[ru_id][0] = 0;
}
}
void init_ue_devices(PHY_VARS_UE *UE) {
AssertFatal(UE!=NULL,"UE context is not allocated\n");
printf("Initializing UE %d.%d\n",UE->Mod_id,UE->CC_id);
UE->rfdevice.Mod_id = UE->Mod_id;
UE->rfdevice.CC_id = UE->CC_id;
UE->rfdevice.trx_start_func = UE_trx_start;
UE->rfdevice.trx_read_func = UE_trx_read;
UE->rfdevice.trx_write_func = UE_trx_write;
UE->rfdevice.trx_end_func = UE_trx_end;
UE->rfdevice.trx_stop_func = UE_trx_stop;
UE->rfdevice.trx_set_freq_func = UE_trx_set_freq;
UE->rfdevice.trx_set_gains_func = UE_trx_set_gains;
sim.last_UE_rx_timestamp[UE->Mod_id][UE->CC_id] = 0;
}
void init_ocm(double snr_dB,double sinr_dB)
{
module_id_t UE_id, ru_id;
int CC_id;
randominit(0);
set_taus_seed(0);
init_channel_vars ();//fp, &s_re, &s_im, &r_re, &r_im, &r_re0, &r_im0);
// initialize channel descriptors
LOG_I(PHY,"Initializing channel descriptors (nb_RU %d, nb_UE %d)\n",RC.nb_RU,NB_UE_INST);
for (ru_id = 0; ru_id < RC.nb_RU; ru_id++) {
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) {
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
LOG_I(PHY,"Initializing channel descriptors (RU %d, UE %d) for N_RB_DL %d\n",ru_id,UE_id,
RC.ru[ru_id]->frame_parms.N_RB_DL);
sim.RU2UE[ru_id][UE_id][CC_id] =
new_channel_desc_scm(RC.ru[ru_id]->nb_tx,
PHY_vars_UE_g[UE_id][CC_id]->frame_parms.nb_antennas_rx,
AWGN,
N_RB2sampling_rate(RC.ru[ru_id]->frame_parms.N_RB_DL),
N_RB2channel_bandwidth(RC.ru[ru_id]->frame_parms.N_RB_DL),
0.0,
0,
0);
random_channel(sim.RU2UE[ru_id][UE_id][CC_id],0);
LOG_D(OCM,"[SIM] Initializing channel (%s) from UE %d to ru %d\n", "AWGN",UE_id, ru_id);
sim.UE2RU[UE_id][ru_id][CC_id] =
new_channel_desc_scm(PHY_vars_UE_g[UE_id][CC_id]->frame_parms.nb_antennas_tx,
RC.ru[ru_id]->nb_rx,
AWGN,
N_RB2sampling_rate(RC.ru[ru_id]->frame_parms.N_RB_UL),
N_RB2channel_bandwidth(RC.ru[ru_id]->frame_parms.N_RB_UL),
0.0,
0,
0);
random_channel(sim.UE2RU[UE_id][ru_id][CC_id],0);
// to make channel reciprocal uncomment following line instead of previous. However this only works for SISO at the moment. For MIMO the channel would need to be transposed.
//UE2RU[UE_id][ru_id] = RU2UE[ru_id][UE_id];
AssertFatal(sim.RU2UE[ru_id][UE_id][CC_id]!=NULL,"RU2UE[%d][%d][%d] is null\n",ru_id,UE_id,CC_id);
AssertFatal(sim.UE2RU[UE_id][ru_id][CC_id]!=NULL,"UE2RU[%d][%d][%d] is null\n",UE_id,ru_id,CC_id);
//pathloss: -132.24 dBm/15kHz RE + target SNR - eNB TX power per RE
if (ru_id == (UE_id % RC.nb_RU)) {
sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB = -132.24 + snr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower;
sim.UE2RU[UE_id][ru_id][CC_id]->path_loss_dB = -132.24 + snr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower;
} else {
sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower;
sim.UE2RU[UE_id][ru_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower;
}
LOG_I(OCM,"Path loss from eNB %d to UE %d (CCid %d)=> %f dB (eNB TX %d, SNR %f)\n",ru_id,UE_id,CC_id,
sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB,
RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower,snr_dB);
}
}
}
}
void update_ocm(double snr_dB,double sinr_dB)
{
module_id_t UE_id, ru_id;
int CC_id;
for (ru_id = 0; ru_id < RC.nb_RU; ru_id++) {
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++) {
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
AssertFatal(sim.RU2UE[ru_id][UE_id][CC_id]!=NULL,"RU2UE[%d][%d][%d] is null\n",ru_id,UE_id,CC_id);
AssertFatal(sim.UE2RU[UE_id][ru_id][CC_id]!=NULL,"UE2RU[%d][%d][%d] is null\n",UE_id,ru_id,CC_id);
//pathloss: -132.24 dBm/15kHz RE + target SNR - eNB TX power per RE
if (ru_id == (UE_id % RC.nb_RU)) {
sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB = -132.24 + snr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower;
sim.UE2RU[UE_id][ru_id][CC_id]->path_loss_dB = -132.24 + snr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower;
} else {
sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower;
sim.UE2RU[UE_id][ru_id][CC_id]->path_loss_dB = -132.24 + sinr_dB - RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower;
}
LOG_D(OCM,"Path loss from eNB %d to UE %d (CCid %d)=> %f dB (eNB TX %d, SNR %f)\n",ru_id,UE_id,CC_id,
sim.RU2UE[ru_id][UE_id][CC_id]->path_loss_dB,
RC.ru[ru_id]->frame_parms.pdsch_config_common.referenceSignalPower,snr_dB);
}
}
}
}
void init_channel_vars(void)
{
int i;
memset(sim.RU_output_mask,0,sizeof(int)*NUMBER_OF_UE_MAX);
for (i=0;i<NB_UE_INST;i++)
pthread_mutex_init(&sim.RU_output_mutex[i],NULL);
memset(sim.UE_output_mask,0,sizeof(int)*NUMBER_OF_RU_MAX);
for (i=0;i<RC.nb_RU;i++)
pthread_mutex_init(&sim.UE_output_mutex[i],NULL);
}
void *rfsim_top(void *n_frames) {
wait_sync("rfsim_top");
printf("Running rfsim with %d frames\n",*(int*)n_frames);
for (int frame = 0;
frame < *(int*)n_frames;
frame++) {
for (int sf = 0; sf < 10; sf++) {
int CC_id=0;
int all_done=0;
while (all_done==0) {
pthread_mutex_lock(&sim.subframe_mutex);
int subframe_ru_mask_local = (subframe_select(&RC.ru[0]->frame_parms,(sf+4)%10)!=SF_UL) ? sim.subframe_ru_mask : ((1<<RC.nb_RU)-1);
int subframe_UE_mask_local = (RC.ru[0]->frame_parms.frame_type == FDD || subframe_select(&RC.ru[0]->frame_parms,(sf+4)%10)!=SF_DL) ? sim.subframe_UE_mask : ((1<<NB_UE_INST)-1);
pthread_mutex_unlock(&sim.subframe_mutex);
LOG_D(SIM,"Frame %d, Subframe %d, NB_RU %d, NB_UE %d: Checking masks %x,%x\n",frame,sf,RC.nb_RU,NB_UE_INST,subframe_ru_mask_local,subframe_UE_mask_local);
if ((subframe_ru_mask_local == ((1<<RC.nb_RU)-1)) &&
(subframe_UE_mask_local == ((1<<NB_UE_INST)-1))) all_done=1;
else usleep(1500);
}
//clear subframe masks for next round
pthread_mutex_lock(&sim.subframe_mutex);
sim.subframe_ru_mask=0;
sim.subframe_UE_mask=0;
pthread_mutex_unlock(&sim.subframe_mutex);
// increment timestamps
for (int ru_id=0;ru_id<RC.nb_RU;ru_id++) {
sim.current_ru_rx_timestamp[ru_id][CC_id] += RC.ru[ru_id]->frame_parms.samples_per_tti;
LOG_D(SIM,"RU %d/%d: TS %"PRIi64"\n",ru_id,CC_id,sim.current_ru_rx_timestamp[ru_id][CC_id]);
}
for (int UE_inst = 0; UE_inst<NB_UE_INST;UE_inst++) {
sim.current_UE_rx_timestamp[UE_inst][CC_id] += PHY_vars_UE_g[UE_inst][CC_id]->frame_parms.samples_per_tti;
LOG_D(SIM,"UE %d/%d: TS %"PRIi64"\n",UE_inst,CC_id,sim.current_UE_rx_timestamp[UE_inst][CC_id]);
}
if (oai_exit == 1) return((void*)NULL);
}
}
return((void*)NULL);
}
/*
* 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
*/
#ifndef __RFSIM__H__
#define __RFSIM__H__
#include "lte-softmodem.h"
#include "openair1/SIMULATION/TOOLS/sim.h"
#include "platform_constants.h"
#include "common/ran_context.h"
#include "PHY/defs_UE.h"
#include "PHY/defs_eNB.h"
void init_ocm(double snr_dB,double sinr_dB);
void update_ocm(double snr_dB,double sinr_dB);
void init_channel_vars(void);
#endif
[*]
[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI
[*] Tue Jun 5 12:44:02 2018
[*]
[dumpfile] "/tmp/openair_dump_UE.vcd"
[dumpfile_mtime] "Tue Jun 5 12:38:07 2018"
[dumpfile_size] 21826387
[savefile] "/home/knopp/oai/openairinterface5g/targets/RT/USER/rru_if4p5_simulator.gtkw"
[timestart] 6591570000
[size] 1301 716
[pos] 309 0
*-22.793451 29983948856 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[sst_width] 312
[signals_width] 262
[sst_expanded] 1
[sst_vpaned_height] 294
@29
functions.UE_trx_read
@28
functions.trx_read
functions.trx_write
@24
variables.trx_write_flags[63:0]
@28
functions.trx_write_if
functions.send_if4
functions.trx_read_if
functions.recv_if4
@24
variables.trx_ts[63:0]
variables.trx_tst[63:0]
variables.frame_number_RX0_RU[63:0]
variables.subframe_number_RX0_RU[63:0]
variables.frame_number_TX0_RU[63:0]
variables.subframe_number_TX0_RU[63:0]
@28
functions.do_DL_sig
functions.do_UL_sig
functions.phy_procedures_ru_feprx0
functions.phy_procedures_ru_feptx_ofdm0
[pattern_trace] 1
[pattern_trace] 0
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment