diff --git a/ci-scripts/Jenkinsfile-gitlab b/ci-scripts/Jenkinsfile-gitlab
new file mode 100644
index 0000000000..442e5d3791
--- /dev/null
+++ b/ci-scripts/Jenkinsfile-gitlab
@@ -0,0 +1,106 @@
+// Comments
+
+pipeline {
+ agent {
+ label 'bellatrix'
+ }
+ options {
+ disableConcurrentBuilds()
+ timestamps()
+ gitLabConnection('OAI GitLab')
+ //gitlabBuilds(builds: ["Build", "Test"])
+ gitlabBuilds(builds: ["Local Build"])
+ }
+
+ stages {
+ stage ("Verify Guidelines") {
+ steps {
+ echo "Git URL is ${GIT_URL}"
+ echo "GitLab Act is ${env.gitlabActionType}"
+ script {
+ if ("MERGE".equals(env.gitlabActionType)) {
+ // GitLab-Jenkins plugin integration is lacking to perform the merge by itself
+ // Doing it manually --> it may have merge conflicts
+ sh "./ci-scripts/doGitLabMerge.sh --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
+
+ // Running astyle options on the list of modified files by the merge request
+ // For the moment, there is no fail criteria. Just a notification of number of files that do not follow
+ sh "./ci-scripts/checkCodingFormattingRules.sh --src-branch ${env.gitlabSourceBranch} --target-branch ${env.gitlabTargetBranch}"
+ def res=readFile('./oai_rules_result.txt').trim();
+ if ("0".equals(res)) {
+ def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): All Changed files in Merge Request follow OAI Formatting Rules"
+ addGitLabMRComment comment: message
+ } else {
+ def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): Some Changed files in Merge Request DO NOT follow OAI Formatting Rules"
+ addGitLabMRComment comment: message
+ }
+ } else {
+ echo "Git Branch is ${GIT_BRANCH}"
+ echo "Git Commit is ${GIT_COMMIT}"
+
+ // Running astyle options on all C/H files in the repository
+ // For the moment, there is no fail criteria. Just a notification of number of files that do not follow
+ sh "./ci-scripts/checkCodingFormattingRules.sh"
+ }
+ }
+ }
+ }
+ stage ("Local Build") {
+ steps {
+ gitlabCommitStatus(name: "Local Build") {
+ sh "./ci-scripts/buildLocally.sh --workspace $WORKSPACE"
+ }
+ }
+ post {
+ always {
+ script {
+ if(fileExists('archives/local_build_logs.zip')) {
+ archiveArtifacts artifacts: 'archives/local_build_logs.zip'
+ }
+ if ("MERGE".equals(env.gitlabActionType)) {
+ sh "./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger merge-request --src-branch ${env.gitlabSourceBranch} --src-commit ${env.gitlabMergeRequestLastCommit} --target-branch ${env.gitlabTargetBranch} --target-commit ${GIT_COMMIT}"
+ } else {
+ sh "./ci-scripts/reportBuildLocally.sh --git-url ${GIT_URL} --job-name ${JOB_NAME} --build-id ${BUILD_ID} --trigger push --branch ${GIT_BRANCH} --commit ${GIT_COMMIT}"
+ }
+ if(fileExists('build_results.html')) {
+ archiveArtifacts artifacts: 'build_results.html'
+ }
+ }
+ }
+ }
+ }
+ }
+ post {
+ always {
+ script {
+ echo "End of script"
+ }
+ }
+ success {
+ script {
+ def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): passed (" + BUILD_URL + ")"
+ if ("MERGE".equals(env.gitlabActionType)) {
+ echo "This is a MERGE event"
+ addGitLabMRComment comment: message
+ def message2 = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): passed (" + BUILD_URL + ") -- MergeRequest #" + env.gitlabMergeRequestIid + " (" + env.gitlabMergeRequestTitle + ")"
+ slackSend channel: 'ci-enb', color: 'good', message: message2
+ } else {
+ slackSend channel: 'ci-enb', color: 'good', message: message
+ }
+ }
+ }
+ failure {
+ script {
+ def message = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): failed (" + BUILD_URL + ")"
+ if ("MERGE".equals(env.gitlabActionType)) {
+ echo "This is a MERGE event"
+ addGitLabMRComment comment: message
+ def message2 = "OAI " + JOB_NAME + " build (" + BUILD_ID + "): failed (" + BUILD_URL + ") -- MergeRequest #" + env.gitlabMergeRequestIid + " (" + env.gitlabMergeRequestTitle + ")"
+ slackSend channel: 'ci-enb', color: 'danger', message: message2
+ } else {
+ slackSend channel: 'ci-enb', color: 'danger', message: message
+ }
+ }
+ }
+ }
+}
diff --git a/ci-scripts/astyle-options.txt b/ci-scripts/astyle-options.txt
new file mode 100644
index 0000000000..7f28bbb1f0
--- /dev/null
+++ b/ci-scripts/astyle-options.txt
@@ -0,0 +1,20 @@
+# OAI is using a style that is similar to the Google style
+--style=google
+# long options can be written without the preceding '--'
+# Convert tabs to spaces
+convert-tabs
+# Indentation is 2 spaces
+indent=spaces=2
+# Indent 'switch' blocks so that the 'case X:' statements are indented in the switch block.
+indent-switches
+# Indent C++ comments beginning in column one.
+indent-col1-comments
+# Pad empty lines around header blocks
+break-blocks
+delete-empty-lines
+# Attach a pointer or reference operator (*, &, or ^) to the variable name (right)
+align-pointer=name
+# The code line length is 200 characters/columns
+max-code-length=200
+break-after-logical
+lineend=linux
diff --git a/ci-scripts/buildLocally.sh b/ci-scripts/buildLocally.sh
new file mode 100755
index 0000000000..6701950832
--- /dev/null
+++ b/ci-scripts/buildLocally.sh
@@ -0,0 +1,153 @@
+#!/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
diff --git a/ci-scripts/checkCodingFormattingRules.sh b/ci-scripts/checkCodingFormattingRules.sh
new file mode 100755
index 0000000000..20657b7fd0
--- /dev/null
+++ b/ci-scripts/checkCodingFormattingRules.sh
@@ -0,0 +1,121 @@
+#!/bin/bash
+
+function usage {
+ echo "OAI Coding / Formatting Guideline Check script"
+ echo " Original Author: Raphael Defosseux"
+ echo ""
+ echo " Requirement: astyle shall be installed"
+ echo ""
+ echo " By default (no options) the complete repository will be checked"
+ echo " In case of merge request, provided source and target branch,"
+ echo " the script will check only the modified files"
+ echo ""
+ echo "Usage:"
+ echo "------"
+ echo " checkCodingFormattingRules.sh [OPTIONS]"
+ echo ""
+ echo "Options:"
+ echo "--------"
+ echo " --src-branch #### OR -sb ####"
+ echo " Specify the source branch of the merge request."
+ echo ""
+ echo " --target-branch #### OR -tb ####"
+ echo " Specify the target branch of the merge request (usually develop)."
+ echo ""
+ echo " --help OR -h"
+ echo " Print this help message."
+ echo ""
+}
+
+if [ $# -ne 4 ] && [ $# -ne 1 ] && [ $# -ne 0 ]
+then
+ echo "Syntax Error: not the correct number of arguments"
+ echo ""
+ usage
+ exit 1
+fi
+
+if [ $# -eq 0 ]
+then
+ echo " ---- Checking the whole repository ----"
+ echo ""
+ NB_FILES_TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt --recursive *.c *.h | grep -c Formatted `
+ echo "Nb Files that do NOT follow OAI rules: $NB_FILES_TO_FORMAT"
+ echo $NB_FILES_TO_FORMAT > ./oai_rules_result.txt
+ exit 0
+fi
+
+checker=0
+while [[ $# -gt 0 ]]
+do
+key="$1"
+
+case $key in
+ -h|--help)
+ shift
+ usage
+ exit 0
+ ;;
+ -sb|--src-branch)
+ SOURCE_BRANCH="$2"
+ let "checker|=0x1"
+ shift
+ shift
+ ;;
+ -tb|--target-branch)
+ TARGET_BRANCH="$2"
+ let "checker|=0x2"
+ shift
+ shift
+ ;;
+ *)
+ echo "Syntax Error: unknown option: $key"
+ echo ""
+ usage
+ exit 1
+esac
+
+done
+
+
+if [ $checker -ne 3 ]
+then
+ echo "Source Branch is : $SOURCE_BRANCH"
+ echo "Target Branch is : $TARGET_BRANCH"
+ echo ""
+ echo "Syntax Error: missing option"
+ echo ""
+ usage
+ exit 1
+fi
+
+# Merge request scenario
+
+MERGE_COMMMIT=`git log -n1 | grep commit | sed -e "s@commit @@"`
+TARGET_INIT_COMMIT=`cat .git/refs/remotes/origin/$TARGET_BRANCH`
+
+echo " ---- Checking the modified files by the merge request ----"
+echo ""
+echo "Source Branch is : $SOURCE_BRANCH"
+echo "Target Branch is : $TARGET_BRANCH"
+echo "Merged Commit is : $MERGE_COMMMIT"
+echo "Target Init is : $TARGET_INIT_COMMIT"
+
+# Retrieve the list of modified files since the latest develop commit
+MODIFIED_FILES=`git log $TARGET_INIT_COMMIT..$MERGE_COMMMIT --oneline --name-status | egrep "^M|^A" | sed -e "s@^M\t*@@" -e "s@^A\t*@@" | sort | uniq`
+NB_TO_FORMAT=0
+for FULLFILE in $MODIFIED_FILES
+do
+ echo $FULLFILE
+ filename=$(basename -- "$FULLFILE")
+ EXT="${filename##*.}"
+ if [ $EXT = "c" ] || [ $EXT = "h" ] || [ $EXT = "cpp" ] || [ $EXT = "hpp" ]
+ then
+ TO_FORMAT=`astyle --dry-run --options=ci-scripts/astyle-options.txt $FULLFILE | grep -c Formatted `
+ NB_TO_FORMAT=$((NB_TO_FORMAT + TO_FORMAT))
+ fi
+done
+echo "Nb Files that do NOT follow OAI rules: $NB_TO_FORMAT"
+echo $NB_TO_FORMAT > ./oai_rules_result.txt
+
+exit 0
diff --git a/ci-scripts/doGitLabMerge.sh b/ci-scripts/doGitLabMerge.sh
new file mode 100755
index 0000000000..cc6f38c810
--- /dev/null
+++ b/ci-scripts/doGitLabMerge.sh
@@ -0,0 +1,109 @@
+#!/bin/bash
+
+function usage {
+ echo "OAI GitLab merge request applying script"
+ echo " Original Author: Raphael Defosseux"
+ echo ""
+ echo "Usage:"
+ echo "------"
+ echo ""
+ echo " doGitLabMerge.sh [OPTIONS] [MANDATORY_OPTIONS]"
+ echo ""
+ echo "Mandatory 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 "Options:"
+ echo "--------"
+ echo " --help OR -h"
+ echo " Print this help message."
+ echo ""
+}
+
+if [ $# -ne 8 ] && [ $# -ne 1 ]
+then
+ echo "Syntax Error: not the correct number of arguments"
+ echo ""
+ usage
+ exit 1
+fi
+
+checker=0
+while [[ $# -gt 0 ]]
+do
+key="$1"
+
+case $key in
+ -h|--help)
+ shift
+ usage
+ exit 0
+ ;;
+ -sb|--src-branch)
+ SOURCE_BRANCH="$2"
+ let "checker|=0x1"
+ shift
+ shift
+ ;;
+ -sc|--src-commit)
+ SOURCE_COMMIT_ID="$2"
+ let "checker|=0x2"
+ shift
+ shift
+ ;;
+ -tb|--target-branch)
+ TARGET_BRANCH="$2"
+ let "checker|=0x4"
+ shift
+ shift
+ ;;
+ -tc|--target-commit)
+ TARGET_COMMIT_ID="$2"
+ let "checker|=0x8"
+ shift
+ shift
+ ;;
+ *)
+ echo "Syntax Error: unknown option: $key"
+ echo ""
+ usage
+ exit 1
+esac
+
+done
+
+echo "Source Branch is : $SOURCE_BRANCH"
+echo "Source Commit ID is : $SOURCE_COMMIT_ID"
+echo "Target Branch is : $TARGET_BRANCH"
+echo "Target Commit ID is : $TARGET_COMMIT_ID"
+
+if [ $checker -ne 15 ]
+then
+ echo ""
+ echo "Syntax Error: missing option"
+ echo ""
+ usage
+ exit 1
+fi
+
+git config user.email "jenkins@openairinterface.org"
+git config user.name "OAI Jenkins"
+
+git checkout -f $SOURCE_COMMIT_ID
+
+git merge --ff $TARGET_COMMIT_ID -m "Temporary merge for CI"
+
+exit 0
+
+
diff --git a/ci-scripts/reportBuildLocally.sh b/ci-scripts/reportBuildLocally.sh
new file mode 100755
index 0000000000..d3dd1f52a0
--- /dev/null
+++ b/ci-scripts/reportBuildLocally.sh
@@ -0,0 +1,535 @@
+#!/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 ""
+}
+
+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 "" > ./build_results.html
+echo "" >> ./build_results.html
+echo "
" >> ./build_results.html
+echo " " >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | Element | " >> ./build_results.html
+echo " Status | " >> ./build_results.html
+echo " Nb Errors | " >> ./build_results.html
+echo " Nb Warnings | " >> ./build_results.html
+echo "
" >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | LTE SoftModem - Release 14" >> ./build_results.html
+if [ -f ./archives/enb_usrp/lte-softmodem.Rel14.txt ]
+then
+ STATUS=`egrep -c "Built target lte-softmodem" ./archives/enb_usrp/lte-softmodem.Rel14.txt`
+ if [ $STATUS -eq 1 ]
+ then
+ echo " | OK" >> ./build_results.html
+ else
+ echo " | KO" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "error:" ./archives/enb_usrp/lte-softmodem.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "warning:" ./archives/enb_usrp/lte-softmodem.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+else
+ echo " | Unknown" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+fi
+echo " |
" >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | Coding - Release 14" >> ./build_results.html
+if [ -f ./archives/enb_usrp/coding.Rel14.txt ]
+then
+ STATUS=`egrep -c "Built target coding" ./archives/enb_usrp/coding.Rel14.txt`
+ if [ $STATUS -eq 1 ]
+ then
+ echo " | OK" >> ./build_results.html
+ else
+ echo " | KO" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "error:" ./archives/enb_usrp/coding.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "warning:" ./archives/enb_usrp/coding.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+else
+ echo " | Unknown" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+fi
+echo " |
" >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | OAI USRP device if - Release 14" >> ./build_results.html
+if [ -f ./archives/enb_usrp/oai_usrpdevif.Rel14.txt ]
+then
+ STATUS=`egrep -c "Built target oai_usrpdevif" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt`
+ if [ $STATUS -eq 1 ]
+ then
+ echo " | OK" >> ./build_results.html
+ else
+ echo " | KO" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "error:" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "warning:" ./archives/enb_usrp/oai_usrpdevif.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+else
+ echo " | Unknown" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+fi
+echo " |
" >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | Parameters Lib Config - Release 14" >> ./build_results.html
+if [ -f ./archives/enb_usrp/params_libconfig.Rel14.txt ]
+then
+ STATUS=`egrep -c "Built target params_libconfig" ./archives/enb_usrp/params_libconfig.Rel14.txt`
+ if [ $STATUS -eq 1 ]
+ then
+ echo " | OK" >> ./build_results.html
+ else
+ echo " | KO" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "error:" ./archives/enb_usrp/params_libconfig.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "warning:" ./archives/enb_usrp/params_libconfig.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+else
+ echo " | Unknown" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+fi
+echo " |
" >> ./build_results.html
+echo "
" >> ./build_results.html
+
+# conf2uedata.Rel14.txt
+# archives/basic_sim
+
+echo " " >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | Element | " >> ./build_results.html
+echo " Status | " >> ./build_results.html
+echo " Nb Errors | " >> ./build_results.html
+echo " Nb Warnings | " >> ./build_results.html
+echo "
" >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | Basic Simulator eNb - Release 14" >> ./build_results.html
+if [ -f ./archives/basic_sim/basic_simulator_enb.txt ]
+then
+ STATUS=`egrep -c "Built target lte-softmodem" ./archives/basic_sim/basic_simulator_enb.txt`
+ if [ $STATUS -eq 1 ]
+ then
+ echo " | OK" >> ./build_results.html
+ else
+ echo " | KO" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "error:" ./archives/basic_sim/basic_simulator_enb.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "warning:" ./archives/basic_sim/basic_simulator_enb.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+else
+ echo " | Unknown" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+fi
+echo " |
" >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | Basic Simulator UE - Release 14" >> ./build_results.html
+if [ -f ./archives/basic_sim/basic_simulator_ue.txt ]
+then
+ STATUS=`egrep -c "Built target lte-uesoftmodem" ./archives/basic_sim/basic_simulator_ue.txt`
+ if [ $STATUS -eq 1 ]
+ then
+ echo " | OK" >> ./build_results.html
+ else
+ echo " | KO" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "error:" ./archives/basic_sim/basic_simulator_ue.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "warning:" ./archives/basic_sim/basic_simulator_ue.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+else
+ echo " | Unknown" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+fi
+echo " |
" >> ./build_results.html
+echo " " >> ./build_results.html
+echo " | Conf 2 UE data - Release 14" >> ./build_results.html
+if [ -f ./archives/basic_sim/conf2uedata.Rel14.txt ]
+then
+ STATUS=`egrep -c "Built target conf2uedata" ./archives/basic_sim/conf2uedata.Rel14.txt`
+ if [ $STATUS -eq 1 ]
+ then
+ echo " | OK" >> ./build_results.html
+ else
+ echo " | KO" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "error:" ./archives/basic_sim/conf2uedata.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+ STATUS=`egrep -c "warning:" ./archives/basic_sim/conf2uedata.Rel14.txt`
+ if [ $STATUS -eq 0 ]
+ then
+ echo " | $STATUS" >> ./build_results.html
+ else
+ echo " | $STATUS" >> ./build_results.html
+ fi
+else
+ echo " | Unknown" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+ echo " | --" >> ./build_results.html
+fi
+echo " |
" >> ./build_results.html
+echo "
" >> ./build_results.html
+
+echo "" >> ./build_results.html
+echo "" >> ./build_results.html
+
+exit 0
diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt
index c0b864182e..4d154fc34e 100644
--- a/cmake_targets/CMakeLists.txt
+++ b/cmake_targets/CMakeLists.txt
@@ -113,6 +113,14 @@ macro(add_list_string_option name val helpstr)
add_definitions("-D${name}=\"${value}\"")
endif()
endmacro(add_list_string_option)
+
+function(make_version VERSION_VALUE)
+ math(EXPR RESULT "0")
+ foreach (ARG ${ARGN})
+ math(EXPR RESULT "${RESULT} * 16 + ${ARG}")
+ endforeach()
+ set(${VERSION_VALUE} "${RESULT}" PARENT_SCOPE)
+endfunction()
####################################################
# compilation flags
#############################################
@@ -162,7 +170,7 @@ set(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} ${C_FLAGS_PROCESSOR} -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat -fPIC ")
# add autotools definitions that were maybe used!
set(CMAKE_C_FLAGS
- "${CMAKE_C_FLAGS} -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP"
+ "${CMAKE_C_FLAGS} -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP -D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'"
)
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} ${C_FLAGS_PROCESSOR} -std=c++11 "
@@ -243,6 +251,8 @@ add_boolean_option(UE_DEBUG_TRACE False "Activate UE debug trace")
add_boolean_option(UE_TIMING_TRACE False "Activate UE timing trace")
add_boolean_option(DISABLE_LOG_X False "Deactivate all LOG_* macros")
add_boolean_option(USRP_REC_PLAY False "Enable USRP record playback mode")
+add_boolean_option(UE_NAS_USE_TUN False "Enable UE NAS TUN device instead of ue_ip.ko")
+add_boolean_option(BASIC_SIMULATOR False "Has to be True when building the basic simulator, False otherwise")
add_boolean_option(DEBUG_CONSOLE False "makes debugging easier, disables stdout/stderr buffering")
@@ -284,16 +294,21 @@ set(protobuf_generated_dir ${OPENAIR_BIN_DIR})
add_list2_option(RRC_ASN1_VERSION "Rel14" "ASN.1 version of RRC interface" "Rel8" "Rel10" "Rel14" "CBA")
if (${RRC_ASN1_VERSION} STREQUAL "Rel8")
- set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn)
+ make_version(RRC_VERSION 8 6 0)
+ set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn)
elseif (${RRC_ASN1_VERSION} STREQUAL "CBA")
- set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn)
+ make_version(RRC_VERSION 10 2 0)
+ add_definitions(-DCBA)
+ set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn)
elseif (${RRC_ASN1_VERSION} STREQUAL "Rel10")
- set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn)
+ make_version(RRC_VERSION 10 2 0)
+ set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn)
else()
- set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn)
+ make_version(RRC_VERSION 14 3 0)
+ set (RRC_GRAMMAR ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn)
endif (${RRC_ASN1_VERSION} STREQUAL "Rel8")
-
-set (RRC_FULL_DIR ${asn1_generated_dir}/${RRC_ASN1_VERSION})
+add_definitions(-DRRC_VERSION=${RRC_VERSION})
+set (RRC_FULL_DIR ${asn1_generated_dir}/RRC_${RRC_ASN1_VERSION})
if(NOT EXISTS ${asn1c_call})
message( FATAL_ERROR "The script ${asn1c_call} must be present" )
endif(NOT EXISTS ${asn1c_call})
@@ -315,8 +330,8 @@ file(GLOB rrc_h ${RRC_FULL_DIR}/*.h)
set(rrc_h ${rrc_h} ${RRC_FULL_DIR}/asn1_constants.h)
set_source_files_properties(${rrc_source} PROPERTIES COMPILE_FLAGS -w) # suppress warnings from generated code
add_library(RRC_LIB ${rrc_h} ${rrc_source}
- ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1_msg.c
- ${OPENAIR2_DIR}/RRC/LITE/MESSAGES/asn1_msg_NB_IoT.c)
+ ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1_msg.c
+ ${OPENAIR2_DIR}/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c)
include_directories ("${RRC_FULL_DIR}")
# add the command to generate the source code
@@ -332,18 +347,20 @@ add_custom_command (
# Same limitation as described in RRC: unknown generated file list
# so we generate it at cmake time
##############
-add_list1_option(S1AP_VERSION R10 "S1AP Asn.1 grammar version" R8 R9 R10)
+add_list1_option(S1AP_RELEASE R10 "S1AP ASN.1 grammar version" R8 R9 R10)
set(S1AP_DIR ${OPENAIR3_DIR}/S1AP)
-if (${S1AP_VERSION} STREQUAL "R10")
- set (ASN1RELDIR R10.5)
- add_definitions("-DUPDATE_RELEASE_9 -DUPDATE_RELEASE_10")
-elseif (${S1AP_VERSION} STREQUAL "R9")
- set (ASN1RELDIR R9.8)
- add_definitions("-DUPDATE_RELEASE_9")
-else(${S1AP_VERSION} STREQUAL "R8")
+if (${S1AP_RELEASE} STREQUAL "R8")
+ make_version(S1AP_VERSION 8 10 0)
set (ASN1RELDIR R8.10)
-endif(${S1AP_VERSION} STREQUAL "R10")
+elseif (${S1AP_RELEASE} STREQUAL "R9")
+ make_version(S1AP_VERSION 9 8 0)
+ set (ASN1RELDIR R9.8)
+elseif (${S1AP_RELEASE} STREQUAL "R10")
+ make_version(S1AP_VERSION 10 5 0)
+ set (ASN1RELDIR R10.5)
+endif(${S1AP_RELEASE} STREQUAL "R8")
+add_definitions(-DS1AP_VERSION=${S1AP_VERSION})
set(S1AP_ASN_DIR ${S1AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR})
set(S1AP_ASN_FILES
${S1AP_ASN_DIR}/S1AP-CommonDataTypes.asn
@@ -351,7 +368,7 @@ set(S1AP_ASN_FILES
${S1AP_ASN_DIR}/S1AP-IEs.asn
${S1AP_ASN_DIR}/S1AP-PDU.asn
)
-set(S1AP_C_DIR ${asn1_generated_dir}/${ASN1RELDIR})
+set(S1AP_C_DIR ${asn1_generated_dir}/S1AP_${ASN1RELDIR})
#message("calling ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}")
execute_process(COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
RESULT_VARIABLE ret)
@@ -363,7 +380,7 @@ execute_process(COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1A
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "asn1tostruct.py: error")
endif (NOT ${ret} STREQUAL 0)
-execute_process(COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_VERSION}
+execute_process(COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_RELEASE}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${fix_asn1c_call}: error")
@@ -384,7 +401,7 @@ add_custom_command (
OUTPUT ${S1AP_OAI_generated}
COMMAND ${asn1c_call} ${S1AP_C_DIR} ${S1AP_ASN_FILES}
COMMAND python ${S1AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f${S1AP_ASN_DIR}/S1AP-PDU-Contents.asn -o${S1AP_C_DIR}
- COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_VERSION}
+ COMMAND ${fix_asn1c_call} ${S1AP_C_DIR} S1AP ${S1AP_RELEASE}
DEPENDS ${S1AP_ASN_FILES}
)
add_library(S1AP_LIB
@@ -418,13 +435,16 @@ add_library(S1AP_ENB
# Same limitation as described in RRC/S1AP: unknown generated file list
# so we generate it at cmake time
##############
-add_list1_option(X2AP_VERSION R11 "X2AP Asn.1 grammar version" R10 R11)
+add_list1_option(X2AP_RELEASE R11 "X2AP ASN.1 grammar version" R10 R11)
set(X2AP_DIR ${OPENAIR2_DIR}/X2AP)
-if (${X2AP_VERSION} STREQUAL "R11")
- set (ASN1RELDIR R11.2)
-elseif (${X2AP_VERSION} STREQUAL "R10")
+if (${X2AP_RELEASE} STREQUAL "R10")
+ make_version(S1AP_VERSION 10 0 0)
set (ASN1RELDIR R.UNKNOWN)
-endif(${X2AP_VERSION} STREQUAL "R11")
+elseif (${X2AP_RELEASE} STREQUAL "R11")
+ make_version(S1AP_VERSION 11 2 0)
+ set (ASN1RELDIR R11.2)
+endif(${X2AP_RELEASE} STREQUAL "R10")
+add_definitions(-DX2AP_VERSION=${X2AP_VERSION})
set(X2AP_ASN_DIR ${X2AP_DIR}/MESSAGES/ASN1/${ASN1RELDIR})
set(X2AP_ASN_FILES
${X2AP_ASN_DIR}/X2AP-CommonDataTypes.asn
@@ -434,7 +454,7 @@ set(X2AP_ASN_FILES
${X2AP_ASN_DIR}/X2AP-Containers.asn
)
-set(X2AP_C_DIR ${asn1_generated_dir}/${ASN1RELDIR})
+set(X2AP_C_DIR ${asn1_generated_dir}/X2AP_${ASN1RELDIR})
#message("calling ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}")
execute_process(COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}
RESULT_VARIABLE ret)
@@ -446,7 +466,7 @@ execute_process(COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "asn1tostruct.py: error")
endif (NOT ${ret} STREQUAL 0)
-execute_process(COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_VERSION}
+execute_process(COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_RELEASE}
RESULT_VARIABLE ret)
if (NOT ${ret} STREQUAL 0)
message(FATAL_ERROR "${fix_asn1c_call}: error")
@@ -467,7 +487,7 @@ add_custom_command (
OUTPUT ${X2AP_OAI_generated}
COMMAND ${asn1c_call} ${X2AP_C_DIR} ${X2AP_ASN_FILES}
COMMAND python ${X2AP_DIR}/MESSAGES/ASN1/asn1tostruct.py -f ${X2AP_ASN_DIR}/X2AP-PDU-Contents.asn -o ${X2AP_C_DIR}
- COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_VERSION}
+ COMMAND ${fix_asn1c_call} ${X2AP_C_DIR} X2AP ${X2AP_RELEASE}
DEPENDS ${X2AP_ASN_FILES}
)
@@ -633,14 +653,26 @@ add_library(oai_mobipass MODULE ${TPLIB_MOBIPASS_SOURCE} )
get_target_property(mobipas_cflags oai_mobipass COMPILE_FLAGS)
set_target_properties(oai_mobipass PROPERTIES COMPILE_FLAGS "${mobipass_cflags} -fvisibility=hidden")
+# TCP bridge libraries
+######################################################################
+
+# this one is for internal use at Eurecom and is not documented
set(HWLIB_TCP_BRIDGE_SOURCE
${OPENAIR_TARGETS}/ARCH/tcp_bridge/tcp_bridge.c
)
-add_library(oai_tcp_bridge MODULE ${HWLIB_TCP_BRIDGE_SOURCE} )
+add_library(tcp_bridge MODULE ${HWLIB_TCP_BRIDGE_SOURCE} )
-#get_target_property(tcp_bridge_cflags oai_tcp_bridge COMPILE_FLAGS)
-#set_target_properties(oai_tcp_bridge PROPERTIES COMPILE_FLAGS "${tcp_bridge_cflags} -fvisibility=hidden")
-set_target_properties(oai_tcp_bridge PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
+#get_target_property(tcp_bridge_cflags tcp_bridge COMPILE_FLAGS)
+#set_target_properties(tcp_bridge PROPERTIES COMPILE_FLAGS "${tcp_bridge_cflags} -fvisibility=hidden")
+set_target_properties(tcp_bridge PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
+
+# this one is to connect OAI eNB and OAI UE in the basic simulator
+# see targets/ARCH/tcp_bridge/README.tcp_bridge_oai for usage
+set(HWLIB_TCP_BRIDGE_OAI_SOURCE
+ ${OPENAIR_TARGETS}/ARCH/tcp_bridge/tcp_bridge_oai.c
+ )
+add_library(tcp_bridge_oai MODULE ${HWLIB_TCP_BRIDGE_OAI_SOURCE} )
+set_target_properties(tcp_bridge_oai PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
##########################################################
@@ -705,12 +737,6 @@ add_boolean_option(DEBUG_PHY False "Enable PHY layer debugging opt
add_boolean_option(DEBUG_PHY_PROC False "Enable debugging of PHY layer procedures")
add_boolean_option(DEBUG_DLSCH False "Enable debugging of DLSCH physical layer channel")
-##########################
-# 802.21 options
-##########################
-add_boolean_option(ENABLE_RAL False "ENABLE 802.21 INTERFACE")
-add_boolean_option(USE_3GPP_ADDR_AS_LINK_ADDR False "As per attribute name")
-
##########################
# NAS LAYER OPTIONS
##########################
@@ -779,7 +805,7 @@ include_directories("${OPENAIR_BIN_DIR}")
# add directories to find all include files
# the internal rule is to use generic names such as defs.h
# but to make it uniq name as adding the relative path in the include directtive
-# example: #include "RRC/LITE/defs.h"
+# example: #include "RRC/LTE/rrc_defs.h"
#find_path (include_dirs_all *.h ${OPENAIR_DIR})
#find_path (include_dirs_all *.h PATHS /usr/include NO_CMAKE_PATH)
#include_directories("${include_dirs_all}")
@@ -813,11 +839,8 @@ include_directories("${OPENAIR2_DIR}/LAYER2/RLC/AM_v9.3.0")
include_directories("${OPENAIR2_DIR}/LAYER2/RLC/UM_v9.3.0")
include_directories("${OPENAIR2_DIR}/LAYER2/RLC/TM_v9.3.0")
include_directories("${OPENAIR2_DIR}/LAYER2/PDCP_v10.1.0")
-include_directories("${OPENAIR2_DIR}/RRC/LITE/MESSAGES")
-include_directories("${OPENAIR2_DIR}/RRC/LITE")
-include_directories("${OPENAIR3_DIR}/RAL-LTE/INTERFACE-802.21/INCLUDE")
-include_directories("${OPENAIR3_DIR}/RAL-LTE/LTE_RAL_ENB/INCLUDE")
-include_directories("${OPENAIR3_DIR}/RAL-LTE/LTE_RAL_UE/INCLUDE")
+include_directories("${OPENAIR2_DIR}/RRC/LTE/MESSAGES")
+include_directories("${OPENAIR2_DIR}/RRC/LTE")
include_directories("${OPENAIR_DIR}/common/utils")
include_directories("${OPENAIR_DIR}/common/utils/itti")
include_directories("${OPENAIR3_DIR}/NAS/COMMON")
@@ -854,7 +877,7 @@ include_directories("${OPENAIR2_DIR}/UTIL/OTG")
include_directories("${OPENAIR2_DIR}/UTIL/CLI")
include_directories("${OPENAIR2_DIR}/UTIL/OPT")
include_directories("${OPENAIR2_DIR}/UTIL/OMV")
-include_directories("${OPENAIR2_DIR}/RRC/LITE/MESSAGES")
+include_directories("${OPENAIR2_DIR}/RRC/LTE/MESSAGES")
include_directories("${OPENAIR3_DIR}/GTPV1-U/nw-gtpv1u/shared")
include_directories("${OPENAIR3_DIR}/GTPV1-U/nw-gtpv1u/include")
include_directories("${OPENAIR_DIR}")
@@ -1025,9 +1048,9 @@ endif()
include_directories(${OPENAIR_DIR}/common/utils/msc)
set(UTIL_SRC
- ${OPENAIR2_DIR}/UTIL/CLI/cli.c
- ${OPENAIR2_DIR}/UTIL/CLI/cli_cmd.c
- ${OPENAIR2_DIR}/UTIL/CLI/cli_server.c
+# ${OPENAIR2_DIR}/UTIL/CLI/cli.c
+# ${OPENAIR2_DIR}/UTIL/CLI/cli_cmd.c
+# ${OPENAIR2_DIR}/UTIL/CLI/cli_server.c
${OPENAIR2_DIR}/UTIL/FIFO/pad_list.c
${OPENAIR2_DIR}/UTIL/LISTS/list.c
${OPENAIR2_DIR}/UTIL/LISTS/list2.c
@@ -1035,32 +1058,32 @@ set(UTIL_SRC
${OPENAIR2_DIR}/UTIL/LOG/vcd_signal_dumper.c
${OPENAIR2_DIR}/UTIL/MATH/oml.c
${OPENAIR2_DIR}/UTIL/MEM/mem_block.c
- ${OPENAIR2_DIR}/UTIL/OCG/OCG.c
- ${OPENAIR2_DIR}/UTIL/OCG/OCG_create_dir.c
- ${OPENAIR2_DIR}/UTIL/OCG/OCG_detect_file.c
- ${OPENAIR2_DIR}/UTIL/OCG/OCG_generate_report.c
- ${OPENAIR2_DIR}/UTIL/OCG/OCG_parse_filename.c
- ${OPENAIR2_DIR}/UTIL/OCG/OCG_parse_XML.c
- ${OPENAIR2_DIR}/UTIL/OCG/OCG_save_XML.c
- ${OPENAIR2_DIR}/UTIL/OMG/common.c
- ${OPENAIR2_DIR}/UTIL/OMG/grid.c
- ${OPENAIR2_DIR}/UTIL/OMG/job.c
- ${OPENAIR2_DIR}/UTIL/OMG/mobility_parser.c
- ${OPENAIR2_DIR}/UTIL/OMG/omg.c
+# ${OPENAIR2_DIR}/UTIL/OCG/OCG.c
+# ${OPENAIR2_DIR}/UTIL/OCG/OCG_create_dir.c
+# ${OPENAIR2_DIR}/UTIL/OCG/OCG_detect_file.c
+# ${OPENAIR2_DIR}/UTIL/OCG/OCG_generate_report.c
+# ${OPENAIR2_DIR}/UTIL/OCG/OCG_parse_filename.c
+# ${OPENAIR2_DIR}/UTIL/OCG/OCG_parse_XML.c
+# ${OPENAIR2_DIR}/UTIL/OCG/OCG_save_XML.c
+# ${OPENAIR2_DIR}/UTIL/OMG/common.c
+# ${OPENAIR2_DIR}/UTIL/OMG/grid.c
+# ${OPENAIR2_DIR}/UTIL/OMG/job.c
+# ${OPENAIR2_DIR}/UTIL/OMG/mobility_parser.c
+# ${OPENAIR2_DIR}/UTIL/OMG/omg.c
#${OPENAIR2_DIR}/UTIL/OMG/omg_hashtable.c
- ${OPENAIR2_DIR}/UTIL/OMG/rwalk.c
- ${OPENAIR2_DIR}/UTIL/OMG/rwp.c
- ${OPENAIR2_DIR}/UTIL/OMG/static.c
- ${OPENAIR2_DIR}/UTIL/OMG/steadystaterwp.c
- ${OPENAIR2_DIR}/UTIL/OMG/trace.c
- ${OPENAIR2_DIR}/UTIL/OMG/trace_hashtable.c
+# ${OPENAIR2_DIR}/UTIL/OMG/rwalk.c
+# ${OPENAIR2_DIR}/UTIL/OMG/rwp.c
+# ${OPENAIR2_DIR}/UTIL/OMG/static.c
+# ${OPENAIR2_DIR}/UTIL/OMG/steadystaterwp.c
+# ${OPENAIR2_DIR}/UTIL/OMG/trace.c
+# ${OPENAIR2_DIR}/UTIL/OMG/trace_hashtable.c
${OPENAIR2_DIR}/UTIL/OPT/probe.c
- ${OPENAIR2_DIR}/UTIL/OTG/otg_tx.c
- ${OPENAIR2_DIR}/UTIL/OTG/otg.c
- ${OPENAIR2_DIR}/UTIL/OTG/otg_kpi.c
- ${OPENAIR2_DIR}/UTIL/OTG/otg_models.c
- ${OPENAIR2_DIR}/UTIL/OTG/otg_form.c
- ${OPENAIR2_DIR}/UTIL/OTG/otg_rx.c
+# ${OPENAIR2_DIR}/UTIL/OTG/otg_tx.c
+# ${OPENAIR2_DIR}/UTIL/OTG/otg.c
+# ${OPENAIR2_DIR}/UTIL/OTG/otg_kpi.c
+# ${OPENAIR2_DIR}/UTIL/OTG/otg_models.c
+# ${OPENAIR2_DIR}/UTIL/OTG/otg_form.c
+# ${OPENAIR2_DIR}/UTIL/OTG/otg_rx.c
)
add_library(UTIL ${UTIL_SRC})
@@ -1094,30 +1117,27 @@ set(SECU_CN_SRC
)
add_library(SECU_CN ${SECU_CN_SRC})
-# Scheduler
+# Physical Channel Procedures Scheduling
################################"
set(SCHED_SRC
${OPENAIR1_DIR}/SCHED/fapi_l1.c
${OPENAIR1_DIR}/SCHED/phy_procedures_lte_eNb.c
- ${OPENAIR1_DIR}/SCHED/phy_procedures_lte_ue.c
${OPENAIR1_DIR}/SCHED/phy_procedures_lte_common.c
- ${OPENAIR1_DIR}/SCHED/prach_procedures.c
- ${OPENAIR1_DIR}/SCHED/ru_procedures.c
-# ${OPENAIR1_DIR}/SCHED/phy_mac_stub.c
- ${OPENAIR1_DIR}/SCHED/pucch_pc.c
- ${OPENAIR1_DIR}/SCHED/pusch_pc.c
- ${OPENAIR1_DIR}/SCHED/srs_pc.c
)
add_library(SCHED_LIB ${SCHED_SRC})
-set(SCHED_SRC_UE
- ${OPENAIR1_DIR}/SCHED/phy_procedures_lte_ue.c
- ${OPENAIR1_DIR}/SCHED/phy_procedures_lte_common.c
+set(SCHED_SRC_RU
${OPENAIR1_DIR}/SCHED/ru_procedures.c
${OPENAIR1_DIR}/SCHED/prach_procedures.c
- ${OPENAIR1_DIR}/SCHED/pucch_pc.c
- ${OPENAIR1_DIR}/SCHED/pusch_pc.c
- ${OPENAIR1_DIR}/SCHED/srs_pc.c
+)
+add_library(SCHED_RU_LIB ${SCHED_SRC_RU})
+
+set(SCHED_SRC_UE
+ ${OPENAIR1_DIR}/SCHED_UE/phy_procedures_lte_ue.c
+ ${OPENAIR1_DIR}/SCHED/phy_procedures_lte_common.c
+ ${OPENAIR1_DIR}/SCHED_UE/pucch_pc.c
+ ${OPENAIR1_DIR}/SCHED_UE/pusch_pc.c
+ ${OPENAIR1_DIR}/SCHED_UE/srs_pc.c
)
add_library(SCHED_UE_LIB ${SCHED_SRC_UE})
@@ -1188,156 +1208,26 @@ set(PHY_TURBOIF
)
add_library(coding MODULE ${PHY_TURBOSRC} )
-set(PHY_SRC
+set(PHY_SRC_COMMON
# depend on code generation from asn1c
${RRC_FULL_DIR}/asn1_constants.h
# actual source
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pss.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/sss.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pilots.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pilots_mbsfn.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_coding.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_modulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_demodulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/power_control.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_decoding.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_scrambling.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci_tools.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/uci_tools.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci_tools_common.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/lte_mcs.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pbch.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/edci.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/phich.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pcfich.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pch.c
+# ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/slss.c
+# ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/sldch.c
+# ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/slsch.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/group_hopping.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/srs_modulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/drs_modulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_modulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_demodulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_coding.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_decoding.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/rar_tools.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/print_stats.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/initial_sync.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if4_tools.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if5_tools.c
- ${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c
- ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep.c
- ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_mbsfn.c
- ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_ul.c
- ${OPENAIR1_DIR}/PHY/MODULATION/ul_7_5_kHz.c
- ${OPENAIR1_DIR}/PHY/MODULATION/beamforming.c
- ${OPENAIR1_DIR}/PHY/MODULATION/compute_bf_weights.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/freq_equalization.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_adjust_sync.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_est_freq_offset.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ue_measurements.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/adjust_gain.c
- ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_dl_cell_spec.c
- ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_dl_uespec.c
- ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_gold.c
- ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_gold_mbsfn.c
- ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_dl_mbsfn.c
- ${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_ul_ref.c
- ${OPENAIR1_DIR}/PHY/CODING/lte_segmentation.c
- ${OPENAIR1_DIR}/PHY/CODING/ccoding_byte.c
- ${OPENAIR1_DIR}/PHY/CODING/ccoding_byte_lte.c
- ${OPENAIR1_DIR}/PHY/CODING/crc_byte.c
- ${PHY_TURBOIF}
- ${OPENAIR1_DIR}/PHY/CODING/lte_rate_matching.c
- ${OPENAIR1_DIR}/PHY/CODING/viterbi.c
- ${OPENAIR1_DIR}/PHY/CODING/viterbi_lte.c
- ${OPENAIR1_DIR}/PHY/INIT/lte_init.c
- ${OPENAIR1_DIR}/PHY/INIT/lte_init_ru.c
- ${OPENAIR1_DIR}/PHY/INIT/lte_init_ue.c
- ${OPENAIR1_DIR}/PHY/INIT/init_top.c
- ${OPENAIR1_DIR}/PHY/INIT/lte_parms.c
- ${OPENAIR1_DIR}/PHY/INIT/lte_param_init.c
- ${OPENAIR1_DIR}/PHY/TOOLS/file_output.c
- ${OPENAIR1_DIR}/PHY/TOOLS/cadd_vv.c
- ${OPENAIR1_DIR}/PHY/TOOLS/lte_dfts.c
- ${OPENAIR1_DIR}/PHY/TOOLS/log2_approx.c
- ${OPENAIR1_DIR}/PHY/TOOLS/cmult_sv.c
- ${OPENAIR1_DIR}/PHY/TOOLS/cmult_vv.c
- ${OPENAIR1_DIR}/PHY/TOOLS/cdot_prod.c
- ${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
- ${OPENAIR1_DIR}/PHY/TOOLS/dB_routines.c
- ${OPENAIR1_DIR}/PHY/TOOLS/sqrt.c
- ${OPENAIR1_DIR}/PHY/TOOLS/time_meas.c
- ${OPENAIR1_DIR}/PHY/TOOLS/lut.c
- )
-
-set(PHY_SRC_UE
- # depend on code generation from asn1c
- ${RRC_FULL_DIR}/asn1_constants.h
- # actual source
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pss.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/sss.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pilots.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pilots_mbsfn.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_coding.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_modulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_demodulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/phich_common.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pcfich_common.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch_common.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/power_control.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_decoding.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach_common.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch_common.c
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_scrambling.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci_tools.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/uci_tools.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/lte_mcs.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pbch.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/edci.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/phich.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pcfich.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pch.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/group_hopping.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/srs_modulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/drs_modulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_modulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_demodulation.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_coding.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_decoding.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/rar_tools.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/print_stats.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/initial_sync.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if4_tools.c
- ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if5_tools.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/srs_modulation.c
${OPENAIR1_DIR}/PHY/MODULATION/ofdm_mod.c
- ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep.c
- ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_mbsfn.c
- ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_ul.c
- ${OPENAIR1_DIR}/PHY/MODULATION/ul_7_5_kHz.c
- ${OPENAIR1_DIR}/PHY/MODULATION/beamforming.c
- ${OPENAIR1_DIR}/PHY/MODULATION/compute_bf_weights.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/freq_equalization.c
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_adjust_sync.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_est_freq_offset.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ue_measurements.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
- ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/adjust_gain.c
${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_dl_cell_spec.c
${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_dl_uespec.c
${OPENAIR1_DIR}/PHY/LTE_REFSIG/lte_gold.c
@@ -1353,8 +1243,6 @@ set(PHY_SRC_UE
${OPENAIR1_DIR}/PHY/CODING/lte_rate_matching.c
${OPENAIR1_DIR}/PHY/CODING/viterbi.c
${OPENAIR1_DIR}/PHY/CODING/viterbi_lte.c
- ${OPENAIR1_DIR}/PHY/INIT/lte_init_ru.c
- ${OPENAIR1_DIR}/PHY/INIT/lte_init_ue.c
${OPENAIR1_DIR}/PHY/INIT/init_top.c
${OPENAIR1_DIR}/PHY/INIT/lte_parms.c
${OPENAIR1_DIR}/PHY/INIT/lte_param_init.c
@@ -1372,17 +1260,97 @@ set(PHY_SRC_UE
${OPENAIR1_DIR}/PHY/TOOLS/lut.c
)
+set(PHY_SRC
+ # actual source
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pss.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/sss.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pilots.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pilots_mbsfn.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_coding.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_modulation.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci_tools.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pbch.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dci.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/edci.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/phich.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pcfich.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_demodulation.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_decoding.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/rar_tools.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/uci_tools.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/freq_equalization.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
+ ${OPENAIR1_DIR}/PHY/INIT/lte_init.c
+ )
+
+set(PHY_SRC_RU
+ # actual source
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if4_tools.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if5_tools.c
+ ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_ul.c
+ ${OPENAIR1_DIR}/PHY/MODULATION/ul_7_5_kHz.c
+ ${OPENAIR1_DIR}/PHY/MODULATION/beamforming.c
+ ${OPENAIR1_DIR}/PHY/MODULATION/compute_bf_weights.c
+ ${OPENAIR1_DIR}/PHY/INIT/lte_init_ru.c
+ ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/prach.c
+
+ )
+
+set(PHY_SRC_UE
+ # actual source
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/sss_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dci_tools_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/uci_tools_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/pbch_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dci_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/phich_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/pcfich_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/pucch_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/prach_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/pmch_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/pch_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/slss.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/sldch.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/slsch.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/drs_modulation.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/ulsch_coding.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/rar_tools_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/initial_sync.c
+ ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep.c
+ ${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_mbsfn.c
+ ${OPENAIR1_DIR}/PHY/MODULATION/ul_7_5_kHz_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_time.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_sync_timefreq.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_adjust_sync_ue.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_est_freq_offset.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ue_measurements.c
+ ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/adjust_gain.c
+ ${OPENAIR1_DIR}/PHY/INIT/lte_init_ue.c
+ )
+
if (${SMBV})
set(PHY_SRC "${PHY_SRC} ${OPENAIR1_DIR}/PHY/TOOLS/smbv.c")
endif (${SMBV})
if (${COMPILATION_AVX2} STREQUAL "True")
- set(PHY_SRC ${PHY_SRC} ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c)
- set(PHY_SRC_UE ${PHY_SRC_UE} ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c)
+ set(PHY_SRC_UE ${PHY_SRC_UE} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c)
endif ()
+add_library(PHY_COMMON ${PHY_SRC_COMMON})
add_library(PHY ${PHY_SRC})
add_library(PHY_UE ${PHY_SRC_UE})
+add_library(PHY_RU ${PHY_SRC_RU})
#Layer 2 library
#####################
@@ -1392,7 +1360,7 @@ set(RLC_DIR ${OPENAIR2_DIR}/LAYER2/RLC)
set(RLC_UM_DIR ${OPENAIR2_DIR}/LAYER2/RLC/UM_v9.3.0)
set(RLC_AM_DIR ${OPENAIR2_DIR}/LAYER2/RLC/AM_v9.3.0)
set(RLC_TM_DIR ${OPENAIR2_DIR}/LAYER2/RLC/TM_v9.3.0)
-set(RRC_DIR ${OPENAIR2_DIR}/RRC/LITE)
+set(RRC_DIR ${OPENAIR2_DIR}/RRC/LTE)
set(PDCP_DIR ${OPENAIR2_DIR}/LAYER2/PDCP_v10.1.0)
set(L2_SRC
${OPENAIR2_DIR}/LAYER2/openair2_proc.c
@@ -1482,14 +1450,15 @@ set(L2_SRC_UE
)
set (MAC_SRC
+ #${PHY_INTERFACE_DIR}/phy_stub_UE.c
${PHY_INTERFACE_DIR}/IF_Module.c
${MAC_DIR}/main.c
- ${MAC_DIR}/main_ue.c
- ${MAC_DIR}/ue_procedures.c
- ${MAC_DIR}/ra_procedures.c
+ #${MAC_DIR}/main_ue.c
+ #${MAC_DIR}/ue_procedures.c
+ #${MAC_DIR}/ra_procedures.c
${MAC_DIR}/l1_helpers.c
${MAC_DIR}/rar_tools.c
- ${MAC_DIR}/rar_tools_ue.c
+ #${MAC_DIR}/rar_tools_ue.c
${MAC_DIR}/eNB_scheduler.c
${MAC_DIR}/eNB_scheduler_dlsch.c
${MAC_DIR}/eNB_scheduler_ulsch.c
@@ -1497,12 +1466,14 @@ set (MAC_SRC
${MAC_DIR}/eNB_scheduler_bch.c
${MAC_DIR}/eNB_scheduler_primitives.c
${MAC_DIR}/eNB_scheduler_RA.c
+ ${MAC_DIR}/eNB_scheduler_phytest.c
${MAC_DIR}/pre_processor.c
${MAC_DIR}/config.c
- ${MAC_DIR}/config_ue.c
+ #${MAC_DIR}/config_ue.c
)
set (MAC_SRC_UE
+ ${PHY_INTERFACE_DIR}/phy_stub_UE.c
${MAC_DIR}/main_ue.c
${MAC_DIR}/ue_procedures.c
${MAC_DIR}/ra_procedures.c
@@ -1528,38 +1499,11 @@ add_library(L2_UE
${MAC_SRC_UE}
)
-
include_directories(${NFAPI_USER_DIR})
# L3 Libs
##########################
-set(RAL_LTE_DIR ${OPENAIR3_DIR}/RAL-LTE/)
-if (${ENABLE_RAL})
- set(RAL_LTE_SRC
- ${RRC_DIR}/rrc_UE_ral.c
- ${RRC_DIR}/rrc_eNB_ral.c
- ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_action.c
- ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_main.c
- ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_mih_msg.c
- ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_parameters.c
- ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_process.c
- ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_rrc_msg.c
- ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_subscribe.c
- ${RAL_LTE_DIR}LTE_RAL_ENB/SRC/lteRALenb_thresholds.c
- ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_action.c
- ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_main.c
- ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_mih_msg.c
- ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_parameters.c
- ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_process.c
- ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_rrc_msg.c
- ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_subscribe.c
- ${RAL_LTE_DIR}LTE_RAL_UE/SRC/lteRALue_thresholds.c
- )
- add_library(RAL ${RAL_LTE_SRC})
- set(RAL_LIB RAL)
-endif()
-
# CN libs
##########################
@@ -1906,8 +1850,8 @@ ${OPENAIR1_DIR}/SIMULATION/TOOLS/random_channel.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/rangen_double.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/multipath_channel.c
-${OPENAIR1_DIR}/SIMULATION/TOOLS/abstraction.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/multipath_tv_channel.c
+${OPENAIR1_DIR}/SIMULATION/TOOLS/abstraction.c
${OPENAIR1_DIR}/SIMULATION/RF/rf.c
${OPENAIR1_DIR}/SIMULATION/RF/dac.c
${OPENAIR1_DIR}/SIMULATION/RF/adc.c
@@ -2094,10 +2038,11 @@ add_executable(lte-softmodem
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
${OPENAIR2_DIR}/ENB_APP/NB_IoT_interface.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
- ${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/COMMON/create_tasks.c
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${OPENAIR_DIR}/common/utils/utils.c
${OPENAIR_DIR}/common/utils/system.c
@@ -2111,7 +2056,8 @@ add_executable(lte-softmodem
target_link_libraries (lte-softmodem
-Wl,--start-group
- RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} ${FSPT_MSG_LIB} ${PROTO_AGENT_LIB} LFDS7
+ RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB PHY_COMMON PHY PHY_RU LFDS L2
+ ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} ${FSPT_MSG_LIB} ${PROTO_AGENT_LIB} LFDS7
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
-Wl,--end-group z dl)
@@ -2132,12 +2078,13 @@ add_executable(lte-softmodem-nos1
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
${OPENAIR2_DIR}/ENB_APP/NB_IoT_interface.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
- ${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/COMMON/create_tasks.c
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
${OPENAIR_DIR}/common/utils/system.c
${XFORMS_SOURCE}
${XFORMS_SOURCE_SOFTMODEM}
@@ -2146,13 +2093,14 @@ add_executable(lte-softmodem-nos1
${SHLIB_LOADER_SOURCES}
)
target_link_libraries (lte-softmodem-nos1
- -Wl,--start-group
- RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB} ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} ${FSPT_MSG_LIB} ${PROTO_AGENT_LIB} LFDS7
+ -Wl,--start-grou
+ RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_LIB SCHED_RU_LIB PHY_COMMON PHY PHY_RU LFDS L2 ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB}
+ ${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} ${FSPT_MSG_LIB} ${PROTO_AGENT_LIB} LFDS7
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
-Wl,--end-group z dl )
target_link_libraries (lte-softmodem-nos1 ${LIBXML2_LIBRARIES})
-target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
+target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 ${LIB_LMS_LIBRARIES})
target_link_libraries (lte-softmodem-nos1 ${T_LIB})
@@ -2167,10 +2115,11 @@ add_executable(lte-uesoftmodem
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
- ${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/COMMON/create_tasks_ue.c
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${OPENAIR_DIR}/common/utils/utils.c
${OPENAIR_DIR}/common/utils/system.c
@@ -2183,8 +2132,9 @@ add_executable(lte-uesoftmodem
target_link_libraries (lte-uesoftmodem
-Wl,--start-group
- RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_UE_LIB PHY_UE LFDS L2_UE
+ RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE
${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7
+ NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
-Wl,--end-group z dl)
target_link_libraries (lte-uesoftmodem ${LIBXML2_LIBRARIES})
@@ -2192,22 +2142,24 @@ target_link_libraries (lte-uesoftmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${
target_link_libraries (lte-uesoftmodem ${LIB_LMS_LIBRARIES})
target_link_libraries (lte-uesoftmodem ${T_LIB})
-# lte-softmodem-nos1 is both eNB and UE implementation
+# lte-uesoftmodem-nos1 is UE implementation
###################################################
add_executable(lte-uesoftmodem-nos1
${rrc_h}
${s1ap_h}
- ${OPENAIR_BIN_DIR}/messages_xml.h
+# ${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
- ${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/COMMON/create_tasks_ue.c
${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
+ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
+ ${OPENAIR_DIR}/common/utils/utils.c
${OPENAIR_DIR}/common/utils/system.c
${XFORMS_SOURCE}
${XFORMS_SOURCE_SOFTMODEM}
@@ -2215,10 +2167,12 @@ add_executable(lte-uesoftmodem-nos1
${CONFIG_SOURCES}
${SHLIB_LOADER_SOURCES}
)
+
target_link_libraries (lte-uesoftmodem-nos1
-Wl,--start-group
- RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_UE_LIB PHY_UE LFDS L2_UE ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB}
+ RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE ${MSC_LIB} ${RAL_LIB} ${ITTI_LIB}
${MIH_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7
+ NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
-Wl,--end-group z dl )
target_link_libraries (lte-uesoftmodem-nos1 ${LIBXML2_LIBRARIES})
@@ -2264,8 +2218,7 @@ add_executable(oaisim
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c
- ${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
- ${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c
+# ${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c
${OPENAIR_TARGETS}/SIMU/USER/sinr_sim.c
${OPENAIR_TARGETS}/SIMU/USER/cor_SF_sim.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim_functions.c
@@ -2288,8 +2241,8 @@ add_executable(oaisim
target_include_directories(oaisim PUBLIC ${OPENAIR_TARGETS}/SIMU/USER)
target_link_libraries (oaisim
-Wl,-ldl,--start-group
- RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_UE_LIB PHY_UE LFDS L2 ${MSC_LIB} LIB_NAS_UE SIMU SECU_OSA ${ITTI_LIB} ${MIH_LIB}
- ${ASYNC_IF_LIB} ${FSPT_MSG_LIB} ${FLEXRAN_AGENT_LIB} ${PROTO_AGENT_LIB} LFDS7
+ RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS L2_UE ${MSC_LIB} LIB_NAS_UE SIMU SECU_OSA ${ITTI_LIB} ${MIH_LIB}
+ ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} ${FSPT_MSG_LIB} ${PROTO_AGENT_LIB} LFDS7
-Wl,--end-group z dl)
target_link_libraries (oaisim ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES})
@@ -2309,10 +2262,10 @@ add_executable(oaisim_nos1
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
+ ${OPENAIR1_DIR}/SCHED/prach_procedures.c
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c
- ${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
- ${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c
+# ${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c
${OPENAIR_TARGETS}/SIMU/USER/sinr_sim.c
${OPENAIR_TARGETS}/SIMU/USER/cor_SF_sim.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim_functions.c
@@ -2331,11 +2284,8 @@ add_executable(oaisim_nos1
target_include_directories(oaisim_nos1 PUBLIC ${OPENAIR_TARGETS}/SIMU/USER)
target_link_libraries (oaisim_nos1
-Wl,--start-group
- RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_UE_LIB PHY_UE LFDS ${MSC_LIB} ${ITTI_LIB} SIMU L2_UE ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7
- ${ASYNC_IF_LIB} ${FSPT_MSG_LIB} ${PROTO_AGENT_LIB}
-
- -Wl,--end-group z dl )
-
+ RRC_LIB X2AP_LIB SECU_CN UTIL HASHTABLE SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_UE PHY_RU LFDS ${MSC_LIB} ${ITTI_LIB} SIMU L2_UE ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FSPT_MSG_LIB} ${PROTO_AGENT_LIB} LFDS7
+ -Wl,--end-group z dl )
target_link_libraries (oaisim_nos1 ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES})
target_link_libraries (oaisim_nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES}
@@ -2353,20 +2303,20 @@ target_link_libraries (oaisim_nos1 ${T_LIB})
#special case for dlim TM4, which uses its own version of phy_scope code
add_executable(dlsim_tm4
- ${OPENAIR_BIN_DIR}/messages_xml.h
+# ${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR1_DIR}/SIMULATION/LTE_PHY/dlsim_tm4.c
${OPENAIR1_DIR}/PHY/TOOLS/lte_phy_scope_tm4.c
${T_SOURCE}
)
target_link_libraries (dlsim_tm4
- -Wl,--start-group SIMU UTIL SCHED_LIB PHY LFDS ${ITTI_LIB} -Wl,--end-group
+ -Wl,--start-group SIMU UTIL SCHED_LIB SCHED_RU_LIB PHY LFDS ${ITTI_LIB} -Wl,--end-group
pthread m rt ${CONFIG_LIBRARIES} ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB}
)
foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
add_executable(${myExe}
- ${OPENAIR_BIN_DIR}/messages_xml.h
+# ${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR1_DIR}/SIMULATION/LTE_PHY/${myExe}.c
${XFORMS_SOURCE}
${T_SOURCE}
@@ -2375,7 +2325,7 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr
)
target_link_libraries (${myExe}
- -Wl,--start-group SIMU UTIL SCHED_LIB PHY LFDS ${ITTI_LIB} LFDS7 -Wl,--end-group
+ -Wl,--start-group SIMU UTIL SCHED_LIB SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY PHY_UE PHY_RU LFDS ${ITTI_LIB} LFDS7 -Wl,--end-group
pthread m rt ${CONFIG_LIBRARIES} ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB} dl
)
endforeach(myExe)
@@ -2388,7 +2338,7 @@ add_executable(test_epc_generate_scenario
${OPENAIR2_DIR}/COMMON/messages_def.h
${OPENAIR2_DIR}/COMMON/messages_types.h
${OPENAIR3_DIR}/S1AP/s1ap_eNB_defs.h
- ${OPENAIR_BIN_DIR}/messages_xml.h
+# ${OPENAIR_BIN_DIR}/messages_xml.h
)
target_link_libraries (test_epc_generate_scenario
-Wl,--start-group RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB GTPV1U LIB_NAS_UE SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS ${ITTI_LIB} ${MSC_LIB} L2 -Wl,--end-group pthread m rt crypt sctp ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
@@ -2412,7 +2362,7 @@ add_executable(test_epc_play_scenario
)
target_include_directories(test_epc_play_scenario PUBLIC /usr/local/share/asn1c)
target_link_libraries (test_epc_play_scenario
- -Wl,--start-group RRC_LIB S1AP_LIB X2AP_LIB GTPV1U LIB_NAS_UE SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS ${ITTI_LIB} ${MSC_LIB} -Wl,--end-group pthread m rt crypt sctp ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
+ -Wl,--start-group RRC_LIB S1AP_LIB X2AP_LIB GTPV1U LIB_NAS_UE SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY_COMMON PHY PHY_UE LFDS ${ITTI_LIB} ${MSC_LIB} -Wl,--end-group pthread m rt crypt sctp ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES}
)
@@ -2481,7 +2431,7 @@ endforeach()
# castxml doesn't work with c11 (gcc 5 default)
# force castxml and clang compilation with gnu89 standard
# we can't use cXX standard as pthread_rwlock_t is gnu standard
-list(APPEND itti_compiler_options "-std=gnu89")
+list(APPEND itti_compiler_options "-std=gnu89;-D'MAKE_VERSION(a,b,c)=((a)*256+(b)*16+c)'")
set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h)
if(EXISTS /usr/bin/gccxml)
set(xml_command gccxml ${itti_compiler_options} -fxml=${OPENAIR_BIN_DIR}/messages.xml ${ITTI_H})
@@ -2569,7 +2519,7 @@ list(APPEND oai_nw_drv_src device.c common.c ioctl.c classifier.c tool.c)
if(OAI_NW_DRIVER_USE_NETLINK)
list(APPEND oai_nw_drv_src netlink.c)
endif()
-make_driver(oai_nw_drv ${OPENAIR2_DIR}/NETWORK_DRIVER/LITE ${oai_nw_drv_src})
+make_driver(oai_nw_drv ${OPENAIR2_DIR}/NETWORK_DRIVER/LTE ${oai_nw_drv_src})
# Exmimo board drivers
#########################
diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai
index 2586a73112..60bf3951c2 100755
--- a/cmake_targets/build_oai
+++ b/cmake_targets/build_oai
@@ -67,6 +67,8 @@ UE_TIMING_TRACE="False"
DISABLE_LOG_X="False"
USRP_REC_PLAY="False"
BUILD_ECLIPSE=0
+UE_NAS_USE_TUN="False"
+BASIC_SIMULATOR=0
trap handle_ctrl_c INT
function print_help() {
@@ -160,6 +162,11 @@ Options
Build eclipse project files. Paths are auto corrected by fixprj.sh
--usrp-recplay
Build for I/Q record-playback modes
+--ue-nas-use-tun
+ Use TUN devices for the UEs instead of ue_ip.ko
+--basic-simulator
+ Generates a basic [1 UE + 1 eNB + no channel] simulator.
+ See targets/ARCH/tcp_bridge/README.tcp_bridge_oai for documentation.
Usage (first build):
oaisim (eNB + UE): ./build_oai -I --oaisim -x --install-system-files
Eurecom EXMIMO + COTS UE : ./build_oai -I --eNB -x --install-system-files
@@ -355,6 +362,14 @@ function main() {
USRP_REC_PLAY="True"
echo_info "Enabling USRP record playback mode"
shift 1;;
+ --ue-nas-use-tun)
+ UE_NAS_USE_TUN="True"
+ echo_info "Enabling UE NAS TUN device usage instead of ue_ip.ko"
+ shift 1;;
+ --basic-simulator)
+ BASIC_SIMULATOR=1
+ echo_info "Compiling the basic simulator"
+ shift 1;;
-h | --help)
print_help
exit 1;;
@@ -715,6 +730,7 @@ function main() {
echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set ( T_TRACER $T_TRACER )" >> $cmake_file
+ echo "set ( UE_NAS_USE_TUN $UE_NAS_USE_TUN )" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
[ "$CLEAN" = "1" ] && rm -rf $DIR/$oaisim_build_dir/build
mkdir -p $DIR/$oaisim_build_dir/build
@@ -723,6 +739,12 @@ function main() {
compilations \
$oaisim_build_dir $oaisim_exec \
$oaisim_exec $dbin/$oaisim_exec.$REL
+ compilations \
+ $oaisim_build_dir $config_libconfig_shlib \
+ lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so
+ compilations \
+ $oaisim_build_dir coding \
+ libcoding.so $dbin/libcoding.so
if [ "$NOS1" != "1" ] ; then
@@ -924,6 +946,124 @@ fi
else
echo_info "10. Bypassing the Tests ..."
fi
+
+ # basic simulator
+ #####################
+ if [ "$BASIC_SIMULATOR" = "1" ]; then
+ echo_info "Build basic simulator"
+ [ "$CLEAN" = "1" ] && rm -rf $OPENAIR_DIR/cmake_targets/basic_simulator
+ [ "$CLEAN" = "1" ] && rm -rf $OPENAIR_DIR/cmake_targets/nas_sim_tools/build
+ mkdir -p $OPENAIR_DIR/cmake_targets/basic_simulator
+ mkdir -p $OPENAIR_DIR/cmake_targets/basic_simulator/enb
+ mkdir -p $OPENAIR_DIR/cmake_targets/basic_simulator/ue
+ mkdir -p $OPENAIR_DIR/cmake_targets/nas_sim_tools/build
+
+ # enb
+
+ cmake_file=$OPENAIR_DIR/cmake_targets/basic_simulator/enb/CMakeLists.txt
+ echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
+ echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
+ echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
+ echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
+ echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
+ echo "set ( XFORMS $XFORMS )" >> $cmake_file
+ echo "set ( RF_BOARD \"OAI_USRP\")" >> $cmake_file
+ echo "set ( TRANSP_PRO \"None\")" >> $cmake_file
+ echo "set(PACKAGE_NAME \"simulator_enb\")" >> $cmake_file
+ echo "set (DEADLINE_SCHEDULER \"False\" )" >> $cmake_file
+ echo "set (CPU_AFFINITY \"False\" )" >> $cmake_file
+ echo "set ( T_TRACER \"True\" )" >> $cmake_file
+ echo "set (UE_AUTOTEST_TRACE $UE_AUTOTEST_TRACE)" >> $cmake_file
+ echo "set (UE_DEBUG_TRACE $UE_DEBUG_TRACE)" >> $cmake_file
+ echo "set (UE_TIMING_TRACE $UE_TIMING_TRACE)" >> $cmake_file
+ echo "set (DISABLE_LOG_X $DISABLE_LOG_X)" >> $cmake_file
+ echo "set (USRP_REC_PLAY $USRP_REC_PLAY)" >> $cmake_file
+ echo "set (BASIC_SIMULATOR \"True\" )" >> $cmake_file
+ echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)' >> $cmake_file
+
+ echo_info "Build eNB"
+ echo_info "logs are in $dlog/basic_simulator_enb.txt"
+ set +e
+ {
+ cd $OPENAIR_DIR/cmake_targets/basic_simulator/enb
+ cmake .
+ make -j`nproc` lte-softmodem
+ make -j`nproc` coding params_libconfig tcp_bridge_oai
+ ln -sf libtcp_bridge_oai.so liboai_device.so
+ cd ../..
+ } > $dlog/basic_simulator_enb.txt 2>&1
+ set -e
+ if [ -s $OPENAIR_DIR/cmake_targets/basic_simulator/enb/lte-softmodem -a \
+ -s $OPENAIR_DIR/cmake_targets/basic_simulator/enb/libcoding.so -a \
+ -s $OPENAIR_DIR/cmake_targets/basic_simulator/enb/libparams_libconfig.so -a \
+ -s $OPENAIR_DIR/cmake_targets/basic_simulator/enb/libtcp_bridge_oai.so ] ; then
+ echo_success "eNB compiled"
+ check_warnings "$dlog/basic_simulator_enb.txt"
+ else
+ echo_error "eNB compilation failed"
+ exit 1
+ fi
+
+ # ue
+
+ echo_info "Compile conf2uedata"
+ cd $OPENAIR_DIR/cmake_targets/nas_sim_tools/build
+ eval $CMAKE_CMD
+ compilations \
+ nas_sim_tools conf2uedata \
+ conf2uedata $dbin/conf2uedata
+
+ cmake_file=$OPENAIR_DIR/cmake_targets/basic_simulator/ue/CMakeLists.txt
+ echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
+ echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
+ echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
+ echo "set ( RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
+ echo "set ( ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
+ echo "set ( XFORMS $XFORMS )" >> $cmake_file
+ echo "set ( RF_BOARD \"OAI_USRP\")" >> $cmake_file
+ echo "set ( TRANSP_PRO \"None\")" >> $cmake_file
+ echo "set(PACKAGE_NAME \"simulator_ue\")" >> $cmake_file
+ echo "set (DEADLINE_SCHEDULER \"False\" )" >> $cmake_file
+ echo "set (CPU_AFFINITY \"False\" )" >> $cmake_file
+ echo "set ( T_TRACER \"False\" )" >> $cmake_file
+ echo "set (UE_AUTOTEST_TRACE $UE_AUTOTEST_TRACE)" >> $cmake_file
+ echo "set (UE_DEBUG_TRACE $UE_DEBUG_TRACE)" >> $cmake_file
+ echo "set (UE_TIMING_TRACE $UE_TIMING_TRACE)" >> $cmake_file
+ echo "set (DISABLE_LOG_X $DISABLE_LOG_X)" >> $cmake_file
+ echo "set (USRP_REC_PLAY $USRP_REC_PLAY)" >> $cmake_file
+ echo "set (LINUX True )" >> $cmake_file
+ echo "set (PDCP_USE_NETLINK True )" >> $cmake_file
+ echo "set (BASIC_SIMULATOR \"True\" )" >> $cmake_file
+ echo "set (UE_NAS_USE_TUN \"True\" )" >> $cmake_file
+ echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)' >> $cmake_file
+
+ echo_info "Build UE"
+ echo_info "logs are in $dlog/basic_simulator_ue.txt"
+ set +e
+ {
+ cd $OPENAIR_DIR/cmake_targets/basic_simulator/ue
+ cmake .
+ make -j`nproc` lte-uesoftmodem
+ make -j`nproc` coding params_libconfig tcp_bridge_oai
+ ln -sf libtcp_bridge_oai.so liboai_device.so
+ cd ../..
+ } > $dlog/basic_simulator_ue.txt 2>&1
+ set -e
+ if [ -s $OPENAIR_DIR/cmake_targets/basic_simulator/ue/lte-uesoftmodem -a \
+ -s $OPENAIR_DIR/cmake_targets/basic_simulator/ue/libcoding.so -a \
+ -s $OPENAIR_DIR/cmake_targets/basic_simulator/ue/libparams_libconfig.so -a \
+ -s $OPENAIR_DIR/cmake_targets/basic_simulator/ue/libtcp_bridge_oai.so ] ; then
+ echo_success "UE compiled"
+ check_warnings "$dlog/basic_simulator_ue.txt"
+ else
+ echo_error "UE compilation failed"
+ exit 1
+ fi
+
+ echo_info "Generate UE SIM data"
+ $OPENAIR_DIR/targets/bin/conf2uedata -c $OPENAIR_DIR/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf -o $OPENAIR_DIR/cmake_targets/basic_simulator/ue
+
+ fi
}
main "$@"
diff --git a/cmake_targets/lte-simulators/CMakeLists.txt b/cmake_targets/lte-simulators/CMakeLists.txt
index ca754449d7..b7e83a92a0 100644
--- a/cmake_targets/lte-simulators/CMakeLists.txt
+++ b/cmake_targets/lte-simulators/CMakeLists.txt
@@ -8,5 +8,5 @@ set(DEBUG_PHY False)
set(MU_RECIEVER False)
set(NAS_UE False)
set(MESSAGE_CHART_GENERATOR False)
-
+set(RRC_ASN1_VERSION "Rel14")
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper
index 9b5c932077..0270556b88 100755
--- a/cmake_targets/tools/build_helper
+++ b/cmake_targets/tools/build_helper
@@ -95,6 +95,7 @@ get_distribution_release() {
check_supported_distribution() {
local distribution=$(get_distribution_release)
case "$distribution" in
+ "ubuntu18.04") return 0 ;;
"ubuntu17.10") return 0 ;;
"ubuntu17.04") return 0 ;;
"ubuntu16.04") return 0 ;;
@@ -267,7 +268,7 @@ check_install_usrp_uhd_driver(){
if [[ "$OS_DISTRO" == "ubuntu" ]]; then
#first we remove old installation
$SUDO apt-get remove -y uhd || true
- $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y
+ $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y || true
v=$(lsb_release -cs)
$SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main"
#The new USRP repository
@@ -488,19 +489,24 @@ check_install_oai_software() {
$SUDO apt install -y software-properties-common
case "$(get_distribution_release)" in
"ubuntu14.04")
- specific_packages="libtasn1-3-dev gccxml libgnutls-dev libatlas-dev"
+ specific_packages="libtasn1-3-dev gccxml libgnutls-dev libatlas-dev iproute libconfig8-dev"
# For iperf3
$SUDO add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty-backports universe"
$SUDO apt-get update
;;
"ubuntu16.04")
- specific_packages="libtasn1-6-dev gccxml libgnutls-dev libatlas-dev"
+ specific_packages="libtasn1-6-dev gccxml libgnutls-dev libatlas-dev iproute libconfig8-dev"
;;
"ubuntu17.04")
- specific_packages="libtasn1-6-dev castxml libgnutls28-dev libatlas-dev"
+ specific_packages="libtasn1-6-dev castxml libgnutls28-dev libatlas-dev iproute libconfig8-dev"
;;
"ubuntu17.10")
- specific_packages="libtasn1-6-dev castxml libgnutls28-dev"
+ specific_packages="libtasn1-6-dev castxml libgnutls28-dev iproute libconfig8-dev"
+ LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu"
+ LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so"
+ ;;
+ "ubuntu18.04")
+ specific_packages="libtasn1-6-dev castxml libgnutls28-dev iproute2 libconfig-dev"
LAPACK_LIBNAME="liblapack.so-x86_64-linux-gnu"
LAPACK_TARGET="/usr/lib/x86_64-linux-gnu/atlas/liblapack.so"
;;
@@ -524,12 +530,10 @@ check_install_oai_software() {
gtkwave \
guile-2.0-dev \
iperf \
- iproute \
iptables \
iptables-dev \
libatlas-base-dev \
libblas-dev \
- libconfig8-dev \
libffi-dev \
libforms-bin \
libforms-dev \
diff --git a/common/config/libconfig/config_libconfig.c b/common/config/libconfig/config_libconfig.c
index a73a0737f2..cfb0a214cf 100644
--- a/common/config/libconfig/config_libconfig.c
+++ b/common/config/libconfig/config_libconfig.c
@@ -130,6 +130,7 @@ int config_libconfig_get(paramdef_t *cfgoptions,int numoptions, char *prefix )
{
case TYPE_STRING:
+printf("call config_lookup_string for '%s' %p\n", cfgpath, &(libconfig_privdata.cfg)); fflush(stdout);
if ( config_lookup_string(&(libconfig_privdata.cfg),cfgpath, (const char **)&str)) {
if ( cfgoptions[i].numelt > 0 && str != NULL && strlen(str) >= cfgoptions[i].numelt ) {
fprintf(stderr,"[LIBCONFIG] %s: %s exceeds maximum length of %i bytes, value truncated\n",
diff --git a/common/ran_context.h b/common/ran_context.h
index 3b8ce6e09c..343258cb1d 100644
--- a/common/ran_context.h
+++ b/common/ran_context.h
@@ -35,12 +35,13 @@
#include