Merge branch 'OAI_develop' into oai_develop_nfapi
This commit is contained in:
@@ -63,3 +63,4 @@ v1.0.0 -> January 2019. This version first implements the architectural split de
|
|||||||
A lot of bugfixes and a proper automated Continuous Integration process validates contributions.
|
A lot of bugfixes and a proper automated Continuous Integration process validates contributions.
|
||||||
v1.0.1 -> February 2019: Bug fix for the UE L1 simulator.
|
v1.0.1 -> February 2019: Bug fix for the UE L1 simulator.
|
||||||
v1.0.2 -> February 2019: Full OAI support for 3.13.1 UHD
|
v1.0.2 -> February 2019: Full OAI support for 3.13.1 UHD
|
||||||
|
v1.0.3 -> June 2019: Bug fix for LimeSuite v19.04.0 API
|
||||||
|
|||||||
@@ -416,6 +416,11 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
stage ("Destroy all Virtual Machines") {
|
||||||
|
steps {
|
||||||
|
sh "./ci-scripts/oai-ci-vm-tool destroy --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ("Test MONOLITHIC - FDD - Band 7 - B210") {
|
stage ("Test MONOLITHIC - FDD - Band 7 - B210") {
|
||||||
@@ -459,6 +464,7 @@ pipeline {
|
|||||||
stage ("Test IF4p5 - FDD - Band 7 - B210") {
|
stage ("Test IF4p5 - FDD - Band 7 - B210") {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
|
sh "sleep 60"
|
||||||
triggerSlaveJob ('eNB-CI-IF4p5-FDD-Band7-B210', 'Test-IF4p5-FDD-Band7')
|
triggerSlaveJob ('eNB-CI-IF4p5-FDD-Band7-B210', 'Test-IF4p5-FDD-Band7')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -478,6 +484,7 @@ pipeline {
|
|||||||
stage ("Test IF4p5 - TDD - Band 40 - B210") {
|
stage ("Test IF4p5 - TDD - Band 40 - B210") {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
|
sh "sleep 60"
|
||||||
triggerSlaveJob ('eNB-CI-IF4p5-TDD-Band40-B210', 'Test-IF4p5-TDD-Band40')
|
triggerSlaveJob ('eNB-CI-IF4p5-TDD-Band40-B210', 'Test-IF4p5-TDD-Band40')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -576,11 +583,6 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ("Destroy all Virtual Machines") {
|
|
||||||
steps {
|
|
||||||
sh "./ci-scripts/oai-ci-vm-tool destroy --job-name ${JOB_NAME} --build-id ${BUILD_ID}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
post {
|
post {
|
||||||
always {
|
always {
|
||||||
|
|||||||
@@ -75,21 +75,6 @@ pipeline {
|
|||||||
if (params.pythonExecutor != null) {
|
if (params.pythonExecutor != null) {
|
||||||
echo "eNB CI executor node : ${pythonExecutor}"
|
echo "eNB CI executor node : ${pythonExecutor}"
|
||||||
}
|
}
|
||||||
// If not present picking a default XML file
|
|
||||||
if (params.pythonTestXmlFile == null) {
|
|
||||||
// picking default
|
|
||||||
testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml'
|
|
||||||
echo "Test XML file(default): ${testXMLFile}"
|
|
||||||
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
|
|
||||||
} else {
|
|
||||||
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
|
||||||
for (xmlFile in myXmlTestSuite) {
|
|
||||||
if (fileExists("ci-scripts/" + xmlFile)) {
|
|
||||||
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
|
||||||
echo "Test XML file : ${xmlFile}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// If not present picking a default Stage Name
|
// If not present picking a default Stage Name
|
||||||
if (params.pipelineTestStageName == null) {
|
if (params.pipelineTestStageName == null) {
|
||||||
// picking default
|
// picking default
|
||||||
@@ -193,6 +178,21 @@ pipeline {
|
|||||||
script {
|
script {
|
||||||
dir ('ci-scripts') {
|
dir ('ci-scripts') {
|
||||||
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
|
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
|
||||||
|
// If not present picking a default XML file
|
||||||
|
if (params.pythonTestXmlFile == null) {
|
||||||
|
// picking default
|
||||||
|
testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml'
|
||||||
|
echo "Test XML file(default): ${testXMLFile}"
|
||||||
|
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
|
||||||
|
} else {
|
||||||
|
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
||||||
|
for (xmlFile in myXmlTestSuite) {
|
||||||
|
if (fileExists(xmlFile)) {
|
||||||
|
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
||||||
|
echo "Test XML file : ${xmlFile}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
withCredentials([
|
withCredentials([
|
||||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
|
||||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.UE_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password'],
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.UE_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password'],
|
||||||
|
|||||||
@@ -106,21 +106,6 @@ pipeline {
|
|||||||
if (params.pythonExecutor != null) {
|
if (params.pythonExecutor != null) {
|
||||||
echo "eNB CI executor node : ${pythonExecutor}"
|
echo "eNB CI executor node : ${pythonExecutor}"
|
||||||
}
|
}
|
||||||
// If not present picking a default XML file
|
|
||||||
if (params.pythonTestXmlFile == null) {
|
|
||||||
// picking default
|
|
||||||
testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml'
|
|
||||||
echo "Test XML file(default): ${testXMLFile}"
|
|
||||||
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
|
|
||||||
} else {
|
|
||||||
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
|
||||||
for (xmlFile in myXmlTestSuite) {
|
|
||||||
if (fileExists("ci-scripts/" + xmlFile)) {
|
|
||||||
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
|
||||||
echo "Test XML file : ${xmlFile}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// If not present picking a default Stage Name
|
// If not present picking a default Stage Name
|
||||||
if (params.pipelineTestStageName == null) {
|
if (params.pipelineTestStageName == null) {
|
||||||
// picking default
|
// picking default
|
||||||
@@ -212,6 +197,21 @@ pipeline {
|
|||||||
script {
|
script {
|
||||||
dir ('ci-scripts') {
|
dir ('ci-scripts') {
|
||||||
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
|
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
|
||||||
|
// If not present picking a default XML file
|
||||||
|
if (params.pythonTestXmlFile == null) {
|
||||||
|
// picking default
|
||||||
|
testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml'
|
||||||
|
echo "Test XML file(default): ${testXMLFile}"
|
||||||
|
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
|
||||||
|
} else {
|
||||||
|
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
||||||
|
for (xmlFile in myXmlTestSuite) {
|
||||||
|
if (fileExists(xmlFile)) {
|
||||||
|
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
||||||
|
echo "Test XML file : ${xmlFile}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
withCredentials([
|
withCredentials([
|
||||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.eNB_Credentials}", usernameVariable: 'eNB_Username', passwordVariable: 'eNB_Password'],
|
||||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'],
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.EPC_Credentials}", usernameVariable: 'EPC_Username', passwordVariable: 'EPC_Password'],
|
||||||
|
|||||||
@@ -66,35 +66,6 @@ pipeline {
|
|||||||
ansiColor('xterm')
|
ansiColor('xterm')
|
||||||
lock (ciSmartPhoneResource)
|
lock (ciSmartPhoneResource)
|
||||||
}
|
}
|
||||||
// the following parameter options are commented out so it shows the ones
|
|
||||||
// that you SHALL have to run the job.
|
|
||||||
// You can use them as template
|
|
||||||
/*
|
|
||||||
parameters {
|
|
||||||
//node-test parameters
|
|
||||||
string(name: 'pythonExecutor', defaultValue: 'nodea', description: 'Node where the pipeline - python scripts will be executed')
|
|
||||||
string(name: 'pythonTestXmlFile', defaultValue: 'enb_usrpB210_band7_50PRB.xml', description: 'Location of the Test XML to be run')
|
|
||||||
string(name: 'pipelineTestStageName', defaultValue: 'Test COTS-UE - OAI eNB - LTEBOX EPC', description: 'Naming of the Test Stage')
|
|
||||||
booleanParam(name: 'pipelineZipsConsoleLog', defaultValue: 'True', description: 'If true, the pipeline script retrieves the job console log, zips it and archives it as artifact')
|
|
||||||
string(name: 'smartphonesResource', defaultValue: 'CI-Bench-1-Phones', description: 'Lockeable Resource to prevent multiple jobs to run simultaneously with the same resource')
|
|
||||||
|
|
||||||
//eNB parameters
|
|
||||||
string(name: 'eNB_IPAddress', defaultValue: '192.168.XX.XX', description: 'IP Address of eNB')
|
|
||||||
credentials(name: 'eNB_Credentials', defaultValue: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', credentialType: "Username with password", required: true, description: 'Credentials for eNB')
|
|
||||||
string(name: 'eNB_SourceCodePath', defaultValue: '/tmp/CI-enb', description: 'Full path of eNB source code')
|
|
||||||
|
|
||||||
//EPC parameters
|
|
||||||
string(name: 'EPC_IPAddress', defaultValue: '192.168.XX.XX', description: 'IP Address of EPC')
|
|
||||||
string(name: 'EPC_Type', defaultValue: 'ltebox', description: 'EPC type: OAI or ltebox')
|
|
||||||
credentials(name: 'EPC_Credentials', defaultValue: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', credentialType: "Username with password", required: true, description: 'Credentials for EPC')
|
|
||||||
string(name: 'EPC_SourceCodePath', defaultValue: '/tmp/CI-enb', description: 'Full path of EPC source code')
|
|
||||||
|
|
||||||
//ADB server parameters
|
|
||||||
string(name: 'ADB_IPAddress', defaultValue: '192.168.XX.XX', description: 'IP Address of ADB server')
|
|
||||||
credentials(name: 'ADB_Credentials', defaultValue: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', credentialType: "Username with password", required: true, description: 'Credentials for ADB')
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
stages {
|
stages {
|
||||||
stage ("Verify Parameters") {
|
stage ("Verify Parameters") {
|
||||||
steps {
|
steps {
|
||||||
@@ -106,21 +77,6 @@ pipeline {
|
|||||||
if (params.pythonExecutor != null) {
|
if (params.pythonExecutor != null) {
|
||||||
echo "eNB CI executor node : ${pythonExecutor}"
|
echo "eNB CI executor node : ${pythonExecutor}"
|
||||||
}
|
}
|
||||||
// If not present picking a default XML file
|
|
||||||
if (params.pythonTestXmlFile == null) {
|
|
||||||
// picking default
|
|
||||||
testXMLFile = 'xml_files/enb_usrpB210_band7_50PRB.xml'
|
|
||||||
echo "Test XML file(default): ${testXMLFile}"
|
|
||||||
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
|
|
||||||
} else {
|
|
||||||
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
|
||||||
for (xmlFile in myXmlTestSuite) {
|
|
||||||
if (fileExists("ci-scripts/" + xmlFile)) {
|
|
||||||
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
|
||||||
echo "Test XML file : ${xmlFile}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// If not present picking a default Stage Name
|
// If not present picking a default Stage Name
|
||||||
if (params.pipelineTestStageName == null) {
|
if (params.pipelineTestStageName == null) {
|
||||||
// picking default
|
// picking default
|
||||||
@@ -212,6 +168,21 @@ pipeline {
|
|||||||
script {
|
script {
|
||||||
dir ('ci-scripts') {
|
dir ('ci-scripts') {
|
||||||
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
|
echo "\u2705 \u001B[32m${testStageName}\u001B[0m"
|
||||||
|
// If not present picking a default XML file
|
||||||
|
if (params.pythonTestXmlFile == null) {
|
||||||
|
// picking default
|
||||||
|
testXMLFile = 'xml_files/ue_band20_build.xml'
|
||||||
|
echo "Test XML file(default): ${testXMLFile}"
|
||||||
|
mainPythonAllXmlFiles += "--XMLTestFile=" + testXMLFile + " "
|
||||||
|
} else {
|
||||||
|
String[] myXmlTestSuite = testXMLFile.split("\\r?\\n")
|
||||||
|
for (xmlFile in myXmlTestSuite) {
|
||||||
|
if (fileExists(xmlFile)) {
|
||||||
|
mainPythonAllXmlFiles += "--XMLTestFile=" + xmlFile + " "
|
||||||
|
echo "Test XML file : ${xmlFile}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
withCredentials([
|
withCredentials([
|
||||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.UE_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password'],
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.UE_Credentials}", usernameVariable: 'UE_Username', passwordVariable: 'UE_Password'],
|
||||||
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
|
[$class: 'UsernamePasswordMultiBinding', credentialsId: "${params.ADB_Credentials}", usernameVariable: 'ADB_Username', passwordVariable: 'ADB_Password']
|
||||||
|
|||||||
+4
-27
@@ -25,7 +25,7 @@ function build_usage {
|
|||||||
echo " Original Author: Raphael Defosseux"
|
echo " Original Author: Raphael Defosseux"
|
||||||
echo " Requirements:"
|
echo " Requirements:"
|
||||||
echo " -- uvtool uvtool-libvirt apt-cacher"
|
echo " -- uvtool uvtool-libvirt apt-cacher"
|
||||||
echo " -- xenial image already synced"
|
echo " -- $VM_OSREL image already synced"
|
||||||
echo " Default:"
|
echo " Default:"
|
||||||
echo " -- eNB with USRP"
|
echo " -- eNB with USRP"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -33,31 +33,8 @@ function build_usage {
|
|||||||
echo "------"
|
echo "------"
|
||||||
echo " oai-ci-vm-tool build [OPTIONS]"
|
echo " oai-ci-vm-tool build [OPTIONS]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Mandatory Options:"
|
command_options_usage
|
||||||
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 "Options:"
|
|
||||||
echo "--------"
|
|
||||||
variant_usage
|
|
||||||
echo " Specify the variant to build."
|
|
||||||
echo ""
|
|
||||||
echo " --keep-vm-alive OR -k"
|
|
||||||
echo " Keep the VM alive after the build."
|
|
||||||
echo ""
|
|
||||||
echo " --daemon OR -D"
|
|
||||||
echo " Run as daemon"
|
|
||||||
echo ""
|
|
||||||
echo " --help OR -h"
|
|
||||||
echo " Print this help message."
|
|
||||||
echo ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function build_on_vm {
|
function build_on_vm {
|
||||||
@@ -95,7 +72,7 @@ function build_on_vm {
|
|||||||
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
acquire_vm_create_lock
|
acquire_vm_create_lock
|
||||||
uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
|
uvt-kvm create $VM_NAME release=$VM_OSREL --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
|
||||||
echo "Waiting for VM to be started"
|
echo "Waiting for VM to be started"
|
||||||
uvt-kvm wait $VM_NAME --insecure
|
uvt-kvm wait $VM_NAME --insecure
|
||||||
|
|
||||||
|
|||||||
@@ -117,3 +117,12 @@ NETWORK_CONTROLLER : {
|
|||||||
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||||
FLEXRAN_AWAIT_RECONF = "no";
|
FLEXRAN_AWAIT_RECONF = "no";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
THREAD_STRUCT = (
|
||||||
|
{
|
||||||
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
|
# #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
|
worker_config = "WORKER_ENABLE";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|||||||
@@ -117,3 +117,12 @@ NETWORK_CONTROLLER : {
|
|||||||
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||||
FLEXRAN_AWAIT_RECONF = "no";
|
FLEXRAN_AWAIT_RECONF = "no";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
THREAD_STRUCT = (
|
||||||
|
{
|
||||||
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
|
# #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
|
worker_config = "WORKER_ENABLE";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|||||||
@@ -117,3 +117,12 @@ NETWORK_CONTROLLER : {
|
|||||||
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||||
FLEXRAN_AWAIT_RECONF = "no";
|
FLEXRAN_AWAIT_RECONF = "no";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
THREAD_STRUCT = (
|
||||||
|
{
|
||||||
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
|
# #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
|
worker_config = "WORKER_ENABLE";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ eNBs =
|
|||||||
lastPreamble_r13 = 63;
|
lastPreamble_r13 = 63;
|
||||||
ra_ResponseWindowSize_r13 = 20; #0
|
ra_ResponseWindowSize_r13 = 20; #0
|
||||||
mac_ContentionResolutionTimer_r13 = 80; #0
|
mac_ContentionResolutionTimer_r13 = 80; #0
|
||||||
rar_HoppingConfig_r13 = "off"; #1;
|
rar_HoppingConfig_r13 = 1; // Note 1 means off
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -360,6 +360,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
@@ -213,7 +215,7 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
@@ -213,7 +215,7 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
@@ -213,7 +215,7 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,230 @@
|
|||||||
|
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;
|
||||||
|
plmn_list = ( { mcc = 208; mnc = 92; mnc_length = 2; } );
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
component_carriers = (
|
||||||
|
{
|
||||||
|
node_function = "eNodeB_3GPP";
|
||||||
|
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 = 40;
|
||||||
|
downlink_frequency = 2350000000L;
|
||||||
|
uplink_frequency_offset = 0;
|
||||||
|
Nid_cell = 0;
|
||||||
|
N_RB_DL = 25;
|
||||||
|
Nid_cell_mbsfn = 0;
|
||||||
|
nb_antenna_ports = 2;
|
||||||
|
nb_antennas_tx = 2;
|
||||||
|
nb_antennas_rx = 2;
|
||||||
|
tx_gain = 90;
|
||||||
|
rx_gain = 125;
|
||||||
|
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 = 1;
|
||||||
|
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 = -106;
|
||||||
|
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 = "CI_MME_IP_ADDR";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
active = "yes";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
///X2
|
||||||
|
enable_x2 = "no";
|
||||||
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||||
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||||
|
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level ="debug";
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
scheduler_mode = "fairRR";
|
||||||
|
puSch10xSnr = 150;
|
||||||
|
puCch10xSnr = 150;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "yes"
|
||||||
|
nb_tx = 2
|
||||||
|
nb_rx = 2
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [38];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 110;
|
||||||
|
eNB_instances = [0];
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
THREAD_STRUCT = (
|
||||||
|
{
|
||||||
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
|
worker_config = "WORKER_ENABLE";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
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";
|
||||||
|
};
|
||||||
@@ -178,6 +178,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -18,6 +18,9 @@ eNBs =
|
|||||||
|
|
||||||
tr_s_preference = "local_mac"
|
tr_s_preference = "local_mac"
|
||||||
|
|
||||||
|
// In seconds
|
||||||
|
rrc_inactivity_threshold = 30;
|
||||||
|
|
||||||
////////// Physical parameters:
|
////////// Physical parameters:
|
||||||
|
|
||||||
component_carriers = (
|
component_carriers = (
|
||||||
@@ -178,6 +181,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
@@ -241,8 +246,8 @@ THREAD_STRUCT = (
|
|||||||
NETWORK_CONTROLLER :
|
NETWORK_CONTROLLER :
|
||||||
{
|
{
|
||||||
FLEXRAN_ENABLED = "no";
|
FLEXRAN_ENABLED = "no";
|
||||||
FLEXRAN_INTERFACE_NAME = "lo";
|
FLEXRAN_INTERFACE_NAME = "eth0";
|
||||||
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
|
FLEXRAN_IPV4_ADDRESS = "CI_MME_IP_ADDR";
|
||||||
FLEXRAN_PORT = 2210;
|
FLEXRAN_PORT = 2210;
|
||||||
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||||
FLEXRAN_AWAIT_RECONF = "no";
|
FLEXRAN_AWAIT_RECONF = "no";
|
||||||
|
|||||||
@@ -186,6 +186,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
@@ -234,7 +236,7 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,6 +178,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -144,6 +144,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
@@ -220,7 +222,7 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,6 +144,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
@@ -220,7 +222,7 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,6 +144,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
@@ -220,7 +222,7 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -179,6 +179,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ RUs = (
|
|||||||
THREAD_STRUCT = (
|
THREAD_STRUCT = (
|
||||||
{
|
{
|
||||||
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
worker_config = "WORKER_ENABLE";
|
worker_config = "WORKER_ENABLE";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ function create_usage {
|
|||||||
echo " Original Author: Raphael Defosseux"
|
echo " Original Author: Raphael Defosseux"
|
||||||
echo " Requirements:"
|
echo " Requirements:"
|
||||||
echo " -- uvtool uvtool-libvirt apt-cacher"
|
echo " -- uvtool uvtool-libvirt apt-cacher"
|
||||||
echo " -- xenial image already synced"
|
echo " -- $VM_OSREL image already synced"
|
||||||
echo " Default:"
|
echo " Default:"
|
||||||
echo " -- eNB with USRP"
|
echo " -- eNB with USRP"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -90,7 +90,7 @@ function create_vm {
|
|||||||
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
echo "Creating VM ($VM_NAME) on Ubuntu Cloud Image base"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
acquire_vm_create_lock
|
acquire_vm_create_lock
|
||||||
uvt-kvm create $VM_NAME release=xenial --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
|
uvt-kvm create $VM_NAME release=$VM_OSREL --memory $VM_MEMORY --cpu $VM_CPU --unsafe-caching --template ci-scripts/template-host.xml
|
||||||
echo "Waiting for VM to be started"
|
echo "Waiting for VM to be started"
|
||||||
uvt-kvm wait $VM_NAME --insecure
|
uvt-kvm wait $VM_NAME --insecure
|
||||||
|
|
||||||
|
|||||||
@@ -30,19 +30,7 @@ function destroy_usage {
|
|||||||
echo "------"
|
echo "------"
|
||||||
echo " oai-ci-vm-tool destroy [OPTIONS]"
|
echo " oai-ci-vm-tool destroy [OPTIONS]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Mandatory Options:"
|
command_options_usage
|
||||||
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 "Options:"
|
|
||||||
echo "--------"
|
|
||||||
echo " --help OR -h"
|
|
||||||
echo " Print this help message."
|
|
||||||
echo ""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function destroy_vm {
|
function destroy_vm {
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ The main script is including a bunch of sub BASH scripts.
|
|||||||
* ci-scripts/reportBuildLocally.sh
|
* ci-scripts/reportBuildLocally.sh
|
||||||
* ci-scripts/reportTestLocally.sh
|
* ci-scripts/reportTestLocally.sh
|
||||||
|
|
||||||
**NOTE: ci-scripts/runTestOnVM.sh is getting big and will certainly be split to facilate maintenance. Start functions will be also factorized.**
|
**NOTE: ci-scripts/runTestOnVM.sh is getting big and will certainly be split to facilitate maintenance. Start functions will be also factorized.**
|
||||||
|
|
||||||
# 3. Main script features #
|
# 3. Main script features #
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ It is also **testing if uvtool and apt-cacher are installed.**
|
|||||||
|
|
||||||
It finally provides parameters to the requested functions. Parameter definition is centralized there.
|
It finally provides parameters to the requested functions. Parameter definition is centralized there.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
for VM instance creation:
|
for VM instance creation:
|
||||||
|
|
||||||
@@ -75,13 +75,122 @@ for OAI variant build:
|
|||||||
* build log file to parse: LOG_PATTERN
|
* build log file to parse: LOG_PATTERN
|
||||||
* the number of log files to parse: NB_PATTERN_FILES
|
* the number of log files to parse: NB_PATTERN_FILES
|
||||||
|
|
||||||
These last 2 variables are very important if you change the build options or if you modify the build system and add more targets to build (especially true for physical simulator).
|
You can get the list of variant specific variables specifying the variant argument when asking for help:
|
||||||
|
|
||||||
There are many more variables.
|
``` bash
|
||||||
|
./ci-scripts/oai-ci-vm-tool help variant
|
||||||
|
--variant flexran-rtc OR -v10 ( build and test non-OSA )
|
||||||
|
VM_NAME=ci-flexran-rtc ARCHIVES_LOC=flexran
|
||||||
|
VM_MEMORY=2048 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=1 BUILD_OPTIONS="cmake . && make -j2"
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
--variant enb-usrp OR -v1 ( build and test )
|
||||||
|
VM_NAME=ci-enb-usrp ARCHIVES_LOC=enb_usrp
|
||||||
|
VM_MEMORY=2048 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=9 BUILD_OPTIONS="--eNB -w USRP --mu"
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
--variant l1-sim OR -v20 ( test )
|
||||||
|
VM_NAME=ci-l1-sim ARCHIVES_LOC=l1_sim
|
||||||
|
VM_MEMORY=2048 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=9 BUILD_OPTIONS=""
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
--variant rf-sim OR -v21 ( test )
|
||||||
|
VM_NAME=ci-rf-sim ARCHIVES_LOC=rf_sim
|
||||||
|
VM_MEMORY=2048 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=9 BUILD_OPTIONS=""
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
--variant l2-sim OR -v22 ( test )
|
||||||
|
VM_NAME=ci-l2-sim ARCHIVES_LOC=l2_sim
|
||||||
|
VM_MEMORY=2048 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=9 BUILD_OPTIONS=""
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
--variant basic-sim OR -v2 ( build and test )
|
||||||
|
VM_NAME=ci-basic-sim ARCHIVES_LOC=basic_sim
|
||||||
|
VM_MEMORY=8192 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=13 BUILD_OPTIONS="--eNB --UE"
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
--variant phy-sim OR -v3 ( build and test )
|
||||||
|
VM_NAME=ci-phy-sim ARCHIVES_LOC=phy_sim
|
||||||
|
VM_MEMORY=2048 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=3 BUILD_OPTIONS="--phy_simulators"
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
--variant cppcheck OR -v4 ( build and test )
|
||||||
|
VM_NAME=ci-cppcheck ARCHIVES_LOC=cppcheck
|
||||||
|
VM_MEMORY=4096 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=1 BUILD_OPTIONS="--enable=warning --force --xml --xml-version=2 --suppressions-list=ci-scripts/cppcheck_suppressions.list -I common/utils -j4"
|
||||||
|
LOG_PATTERN=cppcheck.xml
|
||||||
|
|
||||||
|
--variant enb-ethernet OR -v7 ( build and test )
|
||||||
|
VM_NAME=ci-enb-ethernet ARCHIVES_LOC=enb_eth
|
||||||
|
VM_MEMORY=4096 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=8 BUILD_OPTIONS="--eNB"
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
--variant ue-ethernet OR -v8 ( build and test )
|
||||||
|
VM_NAME=ci-ue-ethernet ARCHIVES_LOC=ue_eth
|
||||||
|
VM_MEMORY=4096 VM_CPU=4
|
||||||
|
NB_PATTERN_FILES=12 BUILD_OPTIONS="--UE"
|
||||||
|
LOG_PATTERN=.Rel14.txt
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
To define a new variant you just need to define a function which name conforms to `function variant__v<n>__<variant_name>` where n and variant_name will respectively define the short and long options for your variant. The function only needs to define the variant dependent variables. For many variables, default values are set in the `check_set_variant` function. When a variant doesn't define the BUILD_OPTIONS variable it cannot be used for the `build` `wait` and `create` commands.
|
||||||
|
|
||||||
|
The main scripts also allows the definition of non variant-dependant variable via the `--setvar_<variable name> <variable value>` options.
|
||||||
|
You can get the list of these variables by using `help setvar`:
|
||||||
|
|
||||||
|
```BASH
|
||||||
|
./ci-scripts/oai-ci-vm-tool help setvar
|
||||||
|
--setvar_<varname> <value> where varname is one of:
|
||||||
|
VM_OSREL : OS release to use in virtual machines
|
||||||
|
RUN_EXPERIMENTAL : Enforce execution of variants with EXPERIMENTAL variable set to "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
To add a new non-variant dependant variable you need:
|
||||||
|
* Add an item to the `AUTHORIZED_VAR` array
|
||||||
|
* In the `setvar_usage`function, add your help string in the HELP_VAR["<your variable name>"] variable.
|
||||||
|
* Write the bash code for your variable.
|
||||||
|
|
||||||
|
Example of non variant dependent usage:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
./ci-scripts/oai-ci-vm-tool test -v21 -ws /usr/local/oai/enhance_CI_extEPC/openairinterface5g -id 1 -jn testci
|
||||||
|
Currently testci-b1-rf-sim Testing is not implemented / enabled
|
||||||
|
Comment out these lines in ./ci-scripts/oai-ci-vm-tool if you want to run it
|
||||||
|
or use option --setvar_RUN_EXPERIMENTAL=true to test it
|
||||||
|
|
||||||
|
|
||||||
|
./ci-scripts/oai-ci-vm-tool test -v21 -ws /usr/local/oai/enhance_CI_extEPC/openairinterface5g -id 1 -jn testci --setvar_RUN_EXPERIMENTAL true
|
||||||
|
Setting RUN_EXPERIMENTAL to true...
|
||||||
|
############################################################
|
||||||
|
OAI CI VM script
|
||||||
|
############################################################
|
||||||
|
ENB_VM_NAME = testci-b1-enb-ethernet
|
||||||
|
ENB_VM_CMD_FILE = testci-b1-enb-ethernet_cmds.txt
|
||||||
|
UE_VM_NAME = testci-b1-ue-ethernet
|
||||||
|
UE_VM_CMD_FILE = testci-b1-ue-ethernet_cmds.txt
|
||||||
|
JENKINS_WKSP = /usr/local/oai/enhance_CI_extEPC/openairinterface5g
|
||||||
|
ARCHIVES_LOC = /usr/local/oai/enhance_CI_extEPC/openairinterface5g/archives/rf_sim/test
|
||||||
|
############################################################
|
||||||
|
Waiting for ENB VM to be started
|
||||||
|
...........................
|
||||||
|
```
|
||||||
|
|
||||||
|
In the same way, you can set the variable `VM_OSREL` to run the test in virtual machines of the specified OS release:
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
./ci-scripts/oai-ci-vm-tool test -v21 -ws /usr/local/oai/enhance_CI_extEPC/openairinterface5g -id 1 -jn testci --setvar_VM_OSREL bionic
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Next step: [how to create one or several VM instances](./vm_based_simulator_create.md)
|
Next step: [how to create one or several VM instances](./vm_based_simulator_create.md)
|
||||||
|
|
||||||
You can also go back to the [CI dev main page](./ci_dev_home.md)
|
You can also go back to the [CI dev main page](./ci_dev_home.md)
|
||||||
|
|
||||||
|
|||||||
+308
-23
@@ -1,3 +1,4 @@
|
|||||||
|
# /*
|
||||||
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||||
# * contributor license agreements. See the NOTICE file distributed with
|
# * contributor license agreements. See the NOTICE file distributed with
|
||||||
# * this work for additional information regarding copyright ownership.
|
# * this work for additional information regarding copyright ownership.
|
||||||
@@ -52,7 +53,8 @@ UE_IP_ADDRESS_ISSUE = -5
|
|||||||
OAI_UE_PROCESS_NOLOGFILE_TO_ANALYZE = -20
|
OAI_UE_PROCESS_NOLOGFILE_TO_ANALYZE = -20
|
||||||
OAI_UE_PROCESS_COULD_NOT_SYNC = -21
|
OAI_UE_PROCESS_COULD_NOT_SYNC = -21
|
||||||
OAI_UE_PROCESS_ASSERTION = -22
|
OAI_UE_PROCESS_ASSERTION = -22
|
||||||
OAI_UE_PROCESS_FAILED = -6
|
OAI_UE_PROCESS_FAILED = -23
|
||||||
|
OAI_UE_PROCESS_NO_TUNNEL_INTERFACE = -24
|
||||||
OAI_UE_PROCESS_OK = +6
|
OAI_UE_PROCESS_OK = +6
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
@@ -144,6 +146,9 @@ class SSHConnection():
|
|||||||
self.UELogFile = ''
|
self.UELogFile = ''
|
||||||
self.Build_OAI_UE_args = ''
|
self.Build_OAI_UE_args = ''
|
||||||
self.Initialize_OAI_UE_args = ''
|
self.Initialize_OAI_UE_args = ''
|
||||||
|
self.flexranCtrlInstalled = False
|
||||||
|
self.flexranCtrlStarted = False
|
||||||
|
self.expectedNbOfConnectedUEs = 0
|
||||||
|
|
||||||
def open(self, ipaddress, username, password):
|
def open(self, ipaddress, username, password):
|
||||||
count = 0
|
count = 0
|
||||||
@@ -335,12 +340,24 @@ class SSHConnection():
|
|||||||
self.command('mkdir -p log', '\$', 5)
|
self.command('mkdir -p log', '\$', 5)
|
||||||
self.command('chmod 777 log', '\$', 5)
|
self.command('chmod 777 log', '\$', 5)
|
||||||
# no need to remove in log (git clean did the trick)
|
# no need to remove in log (git clean did the trick)
|
||||||
self.command('stdbuf -o0 ./build_oai ' + self.Build_eNB_args + ' 2>&1 | stdbuf -o0 tee compile_oai_enb.log', 'Bypassing the Tests', 600)
|
self.command('stdbuf -o0 ./build_oai ' + self.Build_eNB_args + ' 2>&1 | stdbuf -o0 tee compile_oai_enb.log', 'Bypassing the Tests|build have failed', 600)
|
||||||
|
self.command('ls lte_build_oai/build', '\$', 3)
|
||||||
|
self.command('ls lte_build_oai/build', '\$', 3)
|
||||||
|
buildStatus = True
|
||||||
|
result = re.search('lte-softmodem', str(self.ssh.before))
|
||||||
|
if result is None:
|
||||||
|
buildStatus = False
|
||||||
self.command('mkdir -p build_log_' + self.testCase_id, '\$', 5)
|
self.command('mkdir -p build_log_' + self.testCase_id, '\$', 5)
|
||||||
self.command('mv log/* ' + 'build_log_' + self.testCase_id, '\$', 5)
|
self.command('mv log/* ' + 'build_log_' + self.testCase_id, '\$', 5)
|
||||||
self.command('mv compile_oai_enb.log ' + 'build_log_' + self.testCase_id, '\$', 5)
|
self.command('mv compile_oai_enb.log ' + 'build_log_' + self.testCase_id, '\$', 5)
|
||||||
self.close()
|
self.close()
|
||||||
self.CreateHtmlTestRow(self.Build_eNB_args, 'OK', ALL_PROCESSES_OK)
|
if buildStatus:
|
||||||
|
self.CreateHtmlTestRow(self.Build_eNB_args, 'OK', ALL_PROCESSES_OK)
|
||||||
|
else:
|
||||||
|
logging.error('\u001B[1m Building OAI eNB Failed\u001B[0m')
|
||||||
|
self.CreateHtmlTestRow(self.Build_eNB_args, 'KO', ALL_PROCESSES_OK)
|
||||||
|
self.CreateHtmlTabFooter(False)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
def BuildOAIUE(self):
|
def BuildOAIUE(self):
|
||||||
if self.UEIPAddress == '' or self.eNBRepository == '' or self.eNBBranch == '' or self.UEUserName == '' or self.UEPassword == '' or self.UESourceCodePath == '':
|
if self.UEIPAddress == '' or self.eNBRepository == '' or self.eNBBranch == '' or self.UEUserName == '' or self.UEPassword == '' or self.UESourceCodePath == '':
|
||||||
@@ -371,13 +388,24 @@ class SSHConnection():
|
|||||||
self.command('mkdir -p log', '\$', 5)
|
self.command('mkdir -p log', '\$', 5)
|
||||||
self.command('chmod 777 log', '\$', 5)
|
self.command('chmod 777 log', '\$', 5)
|
||||||
# no need to remove in log (git clean did the trick)
|
# no need to remove in log (git clean did the trick)
|
||||||
self.command('stdbuf -o0 ./build_oai ' + self.Build_OAI_UE_args + ' 2>&1 | stdbuf -o0 tee compile_oai_ue.log', 'Bypassing the Tests', 600)
|
self.command('stdbuf -o0 ./build_oai ' + self.Build_OAI_UE_args + ' 2>&1 | stdbuf -o0 tee compile_oai_ue.log', 'Bypassing the Tests|build have failed', 600)
|
||||||
|
self.command('ls lte_build_oai/build', '\$', 3)
|
||||||
|
self.command('ls lte_build_oai/build', '\$', 3)
|
||||||
|
buildStatus = True
|
||||||
|
result = re.search('lte-uesoftmodem', str(self.ssh.before))
|
||||||
|
if result is None:
|
||||||
|
buildStatus = False
|
||||||
self.command('mkdir -p build_log_' + self.testCase_id, '\$', 5)
|
self.command('mkdir -p build_log_' + self.testCase_id, '\$', 5)
|
||||||
self.command('mv log/* ' + 'build_log_' + self.testCase_id, '\$', 5)
|
self.command('mv log/* ' + 'build_log_' + self.testCase_id, '\$', 5)
|
||||||
self.command('mv compile_oai_ue.log ' + 'build_log_' + self.testCase_id, '\$', 5)
|
self.command('mv compile_oai_ue.log ' + 'build_log_' + self.testCase_id, '\$', 5)
|
||||||
self.close()
|
self.close()
|
||||||
self.CreateHtmlTestRow(self.Build_OAI_UE_args, 'OK', ALL_PROCESSES_OK, 'OAI UE')
|
if buildStatus:
|
||||||
|
self.CreateHtmlTestRow(self.Build_OAI_UE_args, 'OK', ALL_PROCESSES_OK, 'OAI UE')
|
||||||
|
else:
|
||||||
|
logging.error('\u001B[1m Building OAI UE Failed\u001B[0m')
|
||||||
|
self.CreateHtmlTestRow(self.Build_OAI_UE_args, 'KO', ALL_PROCESSES_OK, 'OAI UE')
|
||||||
|
self.CreateHtmlTabFooter(False)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
def InitializeHSS(self):
|
def InitializeHSS(self):
|
||||||
if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '' or self.EPCSourceCodePath == '' or self.EPCType == '':
|
if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '' or self.EPCSourceCodePath == '' or self.EPCType == '':
|
||||||
@@ -438,6 +466,37 @@ class SSHConnection():
|
|||||||
self.close()
|
self.close()
|
||||||
self.CreateHtmlTestRow(self.EPCType, 'OK', ALL_PROCESSES_OK)
|
self.CreateHtmlTestRow(self.EPCType, 'OK', ALL_PROCESSES_OK)
|
||||||
|
|
||||||
|
def CheckFlexranCtrlInstallation(self):
|
||||||
|
if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '':
|
||||||
|
return
|
||||||
|
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
|
||||||
|
self.command('ls -ls /opt/flexran_rtc/*/rt_controller', '\$', 5)
|
||||||
|
result = re.search('/opt/flexran_rtc/build/rt_controller', str(self.ssh.before))
|
||||||
|
if result is not None:
|
||||||
|
self.flexranCtrlInstalled = True
|
||||||
|
logging.debug('Flexran Controller is installed')
|
||||||
|
self.close()
|
||||||
|
|
||||||
|
def InitializeFlexranCtrl(self):
|
||||||
|
if self.flexranCtrlInstalled == False:
|
||||||
|
return
|
||||||
|
if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '':
|
||||||
|
Usage()
|
||||||
|
sys.exit('Insufficient Parameter')
|
||||||
|
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
|
||||||
|
self.command('cd /opt/flexran_rtc', '\$', 5)
|
||||||
|
self.command('echo ' + self.EPCPassword + ' | sudo -S rm -f log/*.log', '\$', 5)
|
||||||
|
self.command('echo ' + self.EPCPassword + ' | sudo -S echo "build/rt_controller -c log_config/basic_log" > ./my-flexran-ctl.sh', '\$', 5)
|
||||||
|
self.command('echo ' + self.EPCPassword + ' | sudo -S chmod 755 ./my-flexran-ctl.sh', '\$', 5)
|
||||||
|
self.command('echo ' + self.EPCPassword + ' | sudo -S daemon --unsafe --name=flexran_rtc_daemon --chdir=/opt/flexran_rtc -o /opt/flexran_rtc/log/flexranctl_' + self.testCase_id + '.log ././my-flexran-ctl.sh', '\$', 5)
|
||||||
|
self.command('ps -aux | grep --color=never rt_controller', '\$', 5)
|
||||||
|
result = re.search('rt_controller -c ', str(self.ssh.before))
|
||||||
|
if result is not None:
|
||||||
|
logging.debug('\u001B[1m Initialize FlexRan Controller Completed\u001B[0m')
|
||||||
|
self.flexranCtrlStarted = True
|
||||||
|
self.close()
|
||||||
|
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
||||||
|
|
||||||
def InitializeeNB(self):
|
def InitializeeNB(self):
|
||||||
if self.eNBIPAddress == '' or self.eNBUserName == '' or self.eNBPassword == '' or self.eNBSourceCodePath == '':
|
if self.eNBIPAddress == '' or self.eNBUserName == '' or self.eNBPassword == '' or self.eNBSourceCodePath == '':
|
||||||
Usage()
|
Usage()
|
||||||
@@ -501,6 +560,10 @@ class SSHConnection():
|
|||||||
self.command('cp ' + full_config_file + ' ' + ci_full_config_file, '\$', 5)
|
self.command('cp ' + full_config_file + ' ' + ci_full_config_file, '\$', 5)
|
||||||
self.command('sed -i -e \'s/CI_MME_IP_ADDR/' + self.EPCIPAddress + '/\' ' + ci_full_config_file, '\$', 2);
|
self.command('sed -i -e \'s/CI_MME_IP_ADDR/' + self.EPCIPAddress + '/\' ' + ci_full_config_file, '\$', 2);
|
||||||
self.command('sed -i -e \'s/CI_ENB_IP_ADDR/' + self.eNBIPAddress + '/\' ' + ci_full_config_file, '\$', 2);
|
self.command('sed -i -e \'s/CI_ENB_IP_ADDR/' + self.eNBIPAddress + '/\' ' + ci_full_config_file, '\$', 2);
|
||||||
|
if self.flexranCtrlInstalled and self.flexranCtrlStarted:
|
||||||
|
self.command('sed -i -e \'s/FLEXRAN_ENABLED.*;/FLEXRAN_ENABLED = "yes";/\' ' + ci_full_config_file, '\$', 2);
|
||||||
|
else:
|
||||||
|
self.command('sed -i -e \'s/FLEXRAN_ENABLED.*;/FLEXRAN_ENABLED = "no";/\' ' + ci_full_config_file, '\$', 2);
|
||||||
# Launch eNB with the modified config file
|
# Launch eNB with the modified config file
|
||||||
self.command('source oaienv', '\$', 5)
|
self.command('source oaienv', '\$', 5)
|
||||||
self.command('cd cmake_targets', '\$', 5)
|
self.command('cd cmake_targets', '\$', 5)
|
||||||
@@ -568,6 +631,9 @@ class SSHConnection():
|
|||||||
logging.debug('send adb commands')
|
logging.debug('send adb commands')
|
||||||
try:
|
try:
|
||||||
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
||||||
|
# enable data service
|
||||||
|
self.command('stdbuf -o0 adb -s ' + device_id + ' shell svc data enable', '\$', 60)
|
||||||
|
|
||||||
# The following commands are deprecated since we no longer work on Android 7+
|
# The following commands are deprecated since we no longer work on Android 7+
|
||||||
# self.command('stdbuf -o0 adb -s ' + device_id + ' shell settings put global airplane_mode_on 1', '\$', 10)
|
# self.command('stdbuf -o0 adb -s ' + device_id + ' shell settings put global airplane_mode_on 1', '\$', 10)
|
||||||
# self.command('stdbuf -o0 adb -s ' + device_id + ' shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true', '\$', 60)
|
# self.command('stdbuf -o0 adb -s ' + device_id + ' shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true', '\$', 60)
|
||||||
@@ -705,13 +771,24 @@ class SSHConnection():
|
|||||||
result = re.search('inet addr', str(self.ssh.before))
|
result = re.search('inet addr', str(self.ssh.before))
|
||||||
if result is not None:
|
if result is not None:
|
||||||
logging.debug('\u001B[1m oaitun_ue1 interface is mounted and configured\u001B[0m')
|
logging.debug('\u001B[1m oaitun_ue1 interface is mounted and configured\u001B[0m')
|
||||||
|
tunnelInterfaceStatus = True
|
||||||
else:
|
else:
|
||||||
logging.error('\u001B[1m oaitun_ue1 interface is either NOT mounted or NOT configured\u001B[0m')
|
logging.error('\u001B[1m oaitun_ue1 interface is either NOT mounted or NOT configured\u001B[0m')
|
||||||
|
tunnelInterfaceStatus = False
|
||||||
|
else:
|
||||||
|
tunnelInterfaceStatus = True
|
||||||
|
|
||||||
self.close()
|
self.close()
|
||||||
# For the moment we are always OK!!!
|
if fullSyncStatus and gotSyncStatus and tunnelInterfaceStatus:
|
||||||
self.CreateHtmlTestRow(self.Initialize_OAI_UE_args, 'OK', ALL_PROCESSES_OK, 'OAI UE')
|
self.CreateHtmlTestRow(self.Initialize_OAI_UE_args, 'OK', ALL_PROCESSES_OK, 'OAI UE')
|
||||||
logging.debug('\u001B[1m Initialize OAI UE Completed\u001B[0m')
|
logging.debug('\u001B[1m Initialize OAI UE Completed\u001B[0m')
|
||||||
|
else:
|
||||||
|
self.htmlUEFailureMsg = 'oaitun_ue1 interface is either NOT mounted or NOT configured'
|
||||||
|
self.CreateHtmlTestRow(self.Initialize_OAI_UE_args, 'KO', OAI_UE_PROCESS_NO_TUNNEL_INTERFACE, 'OAI UE')
|
||||||
|
logging.error('\033[91mInitialize OAI UE Failed! \033[0m')
|
||||||
|
self.AutoTerminateUEandeNB()
|
||||||
|
self.CreateHtmlTabFooter(False)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
def checkDevTTYisUnlocked(self):
|
def checkDevTTYisUnlocked(self):
|
||||||
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
||||||
@@ -1149,6 +1226,54 @@ class SSHConnection():
|
|||||||
job.join()
|
job.join()
|
||||||
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
||||||
|
|
||||||
|
def DataDisableUE_common(self, device_id):
|
||||||
|
try:
|
||||||
|
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
||||||
|
# enable data service
|
||||||
|
self.command('stdbuf -o0 adb -s ' + device_id + ' shell svc data disable', '\$', 60)
|
||||||
|
logging.debug('\u001B[1mUE (' + device_id + ') Disabled Data Service\u001B[0m')
|
||||||
|
self.close()
|
||||||
|
except:
|
||||||
|
os.kill(os.getppid(),signal.SIGUSR1)
|
||||||
|
|
||||||
|
def DataDisableUE(self):
|
||||||
|
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
|
||||||
|
Usage()
|
||||||
|
sys.exit('Insufficient Parameter')
|
||||||
|
multi_jobs = []
|
||||||
|
for device_id in self.UEDevices:
|
||||||
|
p = Process(target = self.DataDisableUE_common, args = (device_id,))
|
||||||
|
p.daemon = True
|
||||||
|
p.start()
|
||||||
|
multi_jobs.append(p)
|
||||||
|
for job in multi_jobs:
|
||||||
|
job.join()
|
||||||
|
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
||||||
|
|
||||||
|
def DataEnableUE_common(self, device_id):
|
||||||
|
try:
|
||||||
|
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
||||||
|
# enable data service
|
||||||
|
self.command('stdbuf -o0 adb -s ' + device_id + ' shell svc data enable', '\$', 60)
|
||||||
|
logging.debug('\u001B[1mUE (' + device_id + ') Enabled Data Service\u001B[0m')
|
||||||
|
self.close()
|
||||||
|
except:
|
||||||
|
os.kill(os.getppid(),signal.SIGUSR1)
|
||||||
|
|
||||||
|
def DataEnableUE(self):
|
||||||
|
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
|
||||||
|
Usage()
|
||||||
|
sys.exit('Insufficient Parameter')
|
||||||
|
multi_jobs = []
|
||||||
|
for device_id in self.UEDevices:
|
||||||
|
p = Process(target = self.DataEnableUE_common, args = (device_id,))
|
||||||
|
p.daemon = True
|
||||||
|
p.start()
|
||||||
|
multi_jobs.append(p)
|
||||||
|
for job in multi_jobs:
|
||||||
|
job.join()
|
||||||
|
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
||||||
|
|
||||||
def GetAllUEDevices(self, terminate_ue_flag):
|
def GetAllUEDevices(self, terminate_ue_flag):
|
||||||
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
|
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
|
||||||
Usage()
|
Usage()
|
||||||
@@ -1175,6 +1300,118 @@ class SSHConnection():
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
def CheckUEStatus_common(self, lock, device_id, statusQueue):
|
||||||
|
try:
|
||||||
|
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
||||||
|
self.command('stdbuf -o0 adb -s ' + device_id + ' shell dumpsys telephony.registry', '\$', 15)
|
||||||
|
result = re.search('mServiceState=(?P<serviceState>[0-9]+)', str(self.ssh.before))
|
||||||
|
serviceState = 'Service State: UNKNOWN'
|
||||||
|
if result is not None:
|
||||||
|
lServiceState = int(result.group('serviceState'))
|
||||||
|
if lServiceState == 3:
|
||||||
|
serviceState = 'Service State: RADIO_POWERED_OFF'
|
||||||
|
if lServiceState == 1:
|
||||||
|
serviceState = 'Service State: OUT_OF_SERVICE'
|
||||||
|
if lServiceState == 0:
|
||||||
|
serviceState = 'Service State: IN_SERVICE'
|
||||||
|
if lServiceState == 2:
|
||||||
|
serviceState = 'Service State: EMERGENCY_ONLY'
|
||||||
|
result = re.search('mDataConnectionState=(?P<dataConnectionState>[0-9]+)', str(self.ssh.before))
|
||||||
|
dataConnectionState = 'Data State: UNKNOWN'
|
||||||
|
if result is not None:
|
||||||
|
lDataConnectionState = int(result.group('dataConnectionState'))
|
||||||
|
if lDataConnectionState == 0:
|
||||||
|
dataConnectionState = 'Data State: DISCONNECTED'
|
||||||
|
if lDataConnectionState == 1:
|
||||||
|
dataConnectionState = 'Data State: CONNECTING'
|
||||||
|
if lDataConnectionState == 2:
|
||||||
|
dataConnectionState = 'Data State: CONNECTED'
|
||||||
|
if lDataConnectionState == 3:
|
||||||
|
dataConnectionState = 'Data State: SUSPENDED'
|
||||||
|
result = re.search('mDataConnectionReason=(?P<dataConnectionReason>[0-9a-zA-Z_]+)', str(self.ssh.before))
|
||||||
|
dataConnectionReason = 'Data Reason: UNKNOWN'
|
||||||
|
if result is not None:
|
||||||
|
dataConnectionReason = 'Data Reason: ' + result.group('dataConnectionReason')
|
||||||
|
lock.acquire()
|
||||||
|
logging.debug('\u001B[1;37;44m Status Check (' + str(device_id) + ') \u001B[0m')
|
||||||
|
logging.debug('\u001B[1;34m ' + serviceState + '\u001B[0m')
|
||||||
|
logging.debug('\u001B[1;34m ' + dataConnectionState + '\u001B[0m')
|
||||||
|
logging.debug('\u001B[1;34m ' + dataConnectionReason + '\u001B[0m')
|
||||||
|
statusQueue.put(0)
|
||||||
|
statusQueue.put(device_id)
|
||||||
|
qMsg = serviceState + '\n' + dataConnectionState + '\n' + dataConnectionReason
|
||||||
|
statusQueue.put(qMsg)
|
||||||
|
lock.release()
|
||||||
|
self.close()
|
||||||
|
except:
|
||||||
|
os.kill(os.getppid(),signal.SIGUSR1)
|
||||||
|
|
||||||
|
def CheckStatusUE(self):
|
||||||
|
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
|
||||||
|
Usage()
|
||||||
|
sys.exit('Insufficient Parameter')
|
||||||
|
check_eNB = True
|
||||||
|
check_OAI_UE = False
|
||||||
|
pStatus = self.CheckProcessExist(check_eNB, check_OAI_UE)
|
||||||
|
if (pStatus < 0):
|
||||||
|
self.CreateHtmlTestRow('N/A', 'KO', pStatus)
|
||||||
|
self.CreateHtmlTabFooter(False)
|
||||||
|
sys.exit(1)
|
||||||
|
multi_jobs = []
|
||||||
|
lock = Lock()
|
||||||
|
status_queue = SimpleQueue()
|
||||||
|
for device_id in self.UEDevices:
|
||||||
|
p = Process(target = self.CheckUEStatus_common, args = (lock,device_id,status_queue,))
|
||||||
|
p.daemon = True
|
||||||
|
p.start()
|
||||||
|
multi_jobs.append(p)
|
||||||
|
for job in multi_jobs:
|
||||||
|
job.join()
|
||||||
|
if self.flexranCtrlInstalled and self.flexranCtrlStarted:
|
||||||
|
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
|
||||||
|
self.command('cd /opt/flexran_rtc', '\$', 5)
|
||||||
|
self.command('curl http://localhost:9999/stats | jq \'.\' > log/check_status_' + self.testCase_id + '.log 2>&1', '\$', 5)
|
||||||
|
self.command('cat log/check_status_' + self.testCase_id + '.log | jq \'.eNB_config[0].UE\' | grep -c rnti | sed -e "s#^#Nb Connected UE = #"', '\$', 5)
|
||||||
|
result = re.search('Nb Connected UE = (?P<nb_ues>[0-9]+)', str(self.ssh.before))
|
||||||
|
passStatus = True
|
||||||
|
if result is not None:
|
||||||
|
nb_ues = int(result.group('nb_ues'))
|
||||||
|
htmlOptions = 'Nb Connected UE(s) to eNB = ' + str(nb_ues)
|
||||||
|
logging.debug('\u001B[1;37;44m ' + htmlOptions + ' \u001B[0m')
|
||||||
|
if self.expectedNbOfConnectedUEs > -1:
|
||||||
|
if nb_ues != self.expectedNbOfConnectedUEs:
|
||||||
|
passStatus = False
|
||||||
|
else:
|
||||||
|
htmlOptions = 'N/A'
|
||||||
|
self.close()
|
||||||
|
else:
|
||||||
|
passStatus = True
|
||||||
|
htmlOptions = 'N/A'
|
||||||
|
|
||||||
|
if (status_queue.empty()):
|
||||||
|
self.CreateHtmlTestRow(htmlOptions, 'KO', ALL_PROCESSES_OK)
|
||||||
|
self.AutoTerminateUEandeNB()
|
||||||
|
self.CreateHtmlTabFooter(False)
|
||||||
|
sys.exit(1)
|
||||||
|
else:
|
||||||
|
check_status = True
|
||||||
|
html_queue = SimpleQueue()
|
||||||
|
while (not status_queue.empty()):
|
||||||
|
count = status_queue.get()
|
||||||
|
if (count < 0):
|
||||||
|
check_status = False
|
||||||
|
device_id = status_queue.get()
|
||||||
|
message = status_queue.get()
|
||||||
|
html_cell = '<pre style="background-color:white">UE (' + device_id + ')\n' + message + '</pre>'
|
||||||
|
html_queue.put(html_cell)
|
||||||
|
if check_status and passStatus:
|
||||||
|
self.CreateHtmlTestRowQueue(htmlOptions, 'OK', len(self.UEDevices), html_queue)
|
||||||
|
else:
|
||||||
|
self.CreateHtmlTestRowQueue(htmlOptions, 'KO', len(self.UEDevices), html_queue)
|
||||||
|
self.AutoTerminateUEandeNB()
|
||||||
|
self.CreateHtmlTabFooter(False)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
def GetAllUEIPAddresses(self):
|
def GetAllUEIPAddresses(self):
|
||||||
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
|
if self.ADBIPAddress == '' or self.ADBUserName == '' or self.ADBPassword == '':
|
||||||
Usage()
|
Usage()
|
||||||
@@ -1188,9 +1425,13 @@ class SSHConnection():
|
|||||||
self.open(self.UEIPAddress, self.UEUserName, self.UEPassword)
|
self.open(self.UEIPAddress, self.UEUserName, self.UEPassword)
|
||||||
self.command('ifconfig oaitun_ue1', '\$', 4)
|
self.command('ifconfig oaitun_ue1', '\$', 4)
|
||||||
result = re.search('inet addr:(?P<ueipaddress>[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)', str(self.ssh.before))
|
result = re.search('inet addr:(?P<ueipaddress>[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)', str(self.ssh.before))
|
||||||
UE_IPAddress = result.group('ueipaddress')
|
if result is not None:
|
||||||
logging.debug('\u001B[1mUE (' + self.UEDevices[0] + ') IP Address is ' + UE_IPAddress + '\u001B[0m')
|
UE_IPAddress = result.group('ueipaddress')
|
||||||
self.UEIPAddresses.append(UE_IPAddress)
|
logging.debug('\u001B[1mUE (' + self.UEDevices[0] + ') IP Address is ' + UE_IPAddress + '\u001B[0m')
|
||||||
|
self.UEIPAddresses.append(UE_IPAddress)
|
||||||
|
else:
|
||||||
|
logging.debug('\u001B[1;37;41m UE IP Address Not Found! \u001B[0m')
|
||||||
|
ue_ip_status -= 1
|
||||||
self.close()
|
self.close()
|
||||||
return ue_ip_status
|
return ue_ip_status
|
||||||
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
||||||
@@ -1297,6 +1538,12 @@ class SSHConnection():
|
|||||||
except:
|
except:
|
||||||
os.kill(os.getppid(),signal.SIGUSR1)
|
os.kill(os.getppid(),signal.SIGUSR1)
|
||||||
|
|
||||||
|
def PingNoS1_wrong_exit(self, qMsg):
|
||||||
|
html_queue = SimpleQueue()
|
||||||
|
html_cell = '<pre style="background-color:white">OAI UE ping result\n' + qMsg + '</pre>'
|
||||||
|
html_queue.put(html_cell)
|
||||||
|
self.CreateHtmlTestRowQueue(self.ping_args, 'KO', len(self.UEDevices), html_queue)
|
||||||
|
|
||||||
def PingNoS1(self):
|
def PingNoS1(self):
|
||||||
check_eNB = True
|
check_eNB = True
|
||||||
check_OAI_UE = True
|
check_OAI_UE = True
|
||||||
@@ -1329,21 +1576,25 @@ class SSHConnection():
|
|||||||
if ping_status < 0:
|
if ping_status < 0:
|
||||||
message = 'Ping with OAI UE crashed due to TIMEOUT!'
|
message = 'Ping with OAI UE crashed due to TIMEOUT!'
|
||||||
logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m')
|
logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m')
|
||||||
|
self.PingNoS1_wrong_exit(message)
|
||||||
return
|
return
|
||||||
result = re.search(', (?P<packetloss>[0-9\.]+)% packet loss, time [0-9\.]+ms', str(self.ssh.before))
|
result = re.search(', (?P<packetloss>[0-9\.]+)% packet loss, time [0-9\.]+ms', str(self.ssh.before))
|
||||||
if result is None:
|
if result is None:
|
||||||
message = 'Packet Loss Not Found!'
|
message = 'Packet Loss Not Found!'
|
||||||
logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m')
|
logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m')
|
||||||
|
self.PingNoS1_wrong_exit(message)
|
||||||
return
|
return
|
||||||
packetloss = result.group('packetloss')
|
packetloss = result.group('packetloss')
|
||||||
if float(packetloss) == 100:
|
if float(packetloss) == 100:
|
||||||
message = 'Packet Loss is 100%'
|
message = 'Packet Loss is 100%'
|
||||||
logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m')
|
logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m')
|
||||||
|
self.PingNoS1_wrong_exit(message)
|
||||||
return
|
return
|
||||||
result = re.search('rtt min\/avg\/max\/mdev = (?P<rtt_min>[0-9\.]+)\/(?P<rtt_avg>[0-9\.]+)\/(?P<rtt_max>[0-9\.]+)\/[0-9\.]+ ms', str(self.ssh.before))
|
result = re.search('rtt min\/avg\/max\/mdev = (?P<rtt_min>[0-9\.]+)\/(?P<rtt_avg>[0-9\.]+)\/(?P<rtt_max>[0-9\.]+)\/[0-9\.]+ ms', str(self.ssh.before))
|
||||||
if result is None:
|
if result is None:
|
||||||
message = 'Ping RTT_Min RTT_Avg RTT_Max Not Found!'
|
message = 'Ping RTT_Min RTT_Avg RTT_Max Not Found!'
|
||||||
logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m')
|
logging.debug('\u001B[1;37;41m ' + message + ' \u001B[0m')
|
||||||
|
self.PingNoS1_wrong_exit(message)
|
||||||
return
|
return
|
||||||
rtt_min = result.group('rtt_min')
|
rtt_min = result.group('rtt_min')
|
||||||
rtt_avg = result.group('rtt_avg')
|
rtt_avg = result.group('rtt_avg')
|
||||||
@@ -2141,6 +2392,8 @@ class SSHConnection():
|
|||||||
if logStatus < 0:
|
if logStatus < 0:
|
||||||
result = logStatus
|
result = logStatus
|
||||||
self.eNBLogFile = ''
|
self.eNBLogFile = ''
|
||||||
|
if self.flexranCtrlInstalled and self.flexranCtrlStarted:
|
||||||
|
self.TerminateFlexranCtrl()
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def CheckOAIUEProcessExist(self, initialize_OAI_UE_flag):
|
def CheckOAIUEProcessExist(self, initialize_OAI_UE_flag):
|
||||||
@@ -2307,7 +2560,7 @@ class SSHConnection():
|
|||||||
result = re.search('LTE_RRCConnectionSetupComplete from UE', str(line))
|
result = re.search('LTE_RRCConnectionSetupComplete from UE', str(line))
|
||||||
if result is not None:
|
if result is not None:
|
||||||
rrcSetupComplete += 1
|
rrcSetupComplete += 1
|
||||||
result = re.search('Generate LTE_RRCConnectionRelease', str(line))
|
result = re.search('Generate LTE_RRCConnectionRelease|Generate RRCConnectionRelease', str(line))
|
||||||
if result is not None:
|
if result is not None:
|
||||||
rrcReleaseRequest += 1
|
rrcReleaseRequest += 1
|
||||||
result = re.search('Generate LTE_RRCConnectionReconfiguration', str(line))
|
result = re.search('Generate LTE_RRCConnectionReconfiguration', str(line))
|
||||||
@@ -2660,7 +2913,6 @@ class SSHConnection():
|
|||||||
else:
|
else:
|
||||||
self.command('cd ' + self.EPCSourceCodePath, '\$', 5)
|
self.command('cd ' + self.EPCSourceCodePath, '\$', 5)
|
||||||
self.command('cd scripts', '\$', 5)
|
self.command('cd scripts', '\$', 5)
|
||||||
self.command('rm -f ./kill_hss.sh', '\$', 5)
|
|
||||||
self.command('echo ' + self.EPCPassword + ' | sudo -S daemon --name=simulated_hss --stop', '\$', 5)
|
self.command('echo ' + self.EPCPassword + ' | sudo -S daemon --name=simulated_hss --stop', '\$', 5)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGKILL hss_sim', '\$', 5)
|
self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGKILL hss_sim', '\$', 5)
|
||||||
@@ -2697,9 +2949,25 @@ class SSHConnection():
|
|||||||
self.close()
|
self.close()
|
||||||
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
||||||
|
|
||||||
|
def TerminateFlexranCtrl(self):
|
||||||
|
if self.flexranCtrlInstalled == False or self.flexranCtrlStarted == False:
|
||||||
|
return
|
||||||
|
if self.EPCIPAddress == '' or self.EPCUserName == '' or self.EPCPassword == '':
|
||||||
|
Usage()
|
||||||
|
sys.exit('Insufficient Parameter')
|
||||||
|
self.open(self.EPCIPAddress, self.EPCUserName, self.EPCPassword)
|
||||||
|
self.command('echo ' + self.EPCPassword + ' | sudo -S daemon --name=flexran_rtc_daemon --stop', '\$', 5)
|
||||||
|
time.sleep(1)
|
||||||
|
self.command('echo ' + self.EPCPassword + ' | sudo -S killall --signal SIGKILL rt_controller', '\$', 5)
|
||||||
|
time.sleep(1)
|
||||||
|
self.close()
|
||||||
|
self.flexranCtrlStarted = False
|
||||||
|
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
||||||
|
|
||||||
def TerminateUE_common(self, device_id):
|
def TerminateUE_common(self, device_id):
|
||||||
try:
|
try:
|
||||||
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
self.open(self.ADBIPAddress, self.ADBUserName, self.ADBPassword)
|
||||||
|
# back in airplane mode on (ie radio off)
|
||||||
self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/off', '\$', 60)
|
self.command('stdbuf -o0 adb -s ' + device_id + ' shell /data/local/tmp/off', '\$', 60)
|
||||||
logging.debug('\u001B[1mUE (' + device_id + ') Detach Completed\u001B[0m')
|
logging.debug('\u001B[1mUE (' + device_id + ') Detach Completed\u001B[0m')
|
||||||
|
|
||||||
@@ -2774,7 +3042,6 @@ class SSHConnection():
|
|||||||
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
||||||
self.UELogFile = ''
|
self.UELogFile = ''
|
||||||
else:
|
else:
|
||||||
self.htmlUEFailureMsg = 'No Log File to analyze!'
|
|
||||||
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
self.CreateHtmlTestRow('N/A', 'OK', ALL_PROCESSES_OK)
|
||||||
|
|
||||||
def AutoTerminateUEandeNB(self):
|
def AutoTerminateUEandeNB(self):
|
||||||
@@ -3217,7 +3484,7 @@ class SSHConnection():
|
|||||||
if result is not None:
|
if result is not None:
|
||||||
cellBgColor = 'red'
|
cellBgColor = 'red'
|
||||||
else:
|
else:
|
||||||
result = re.search('showed|Could not copy UE logfile|No Log File to analyze', self.htmlUEFailureMsg)
|
result = re.search('showed|Could not copy UE logfile|oaitun_ue1 interface is either NOT mounted or NOT configured', self.htmlUEFailureMsg)
|
||||||
if result is not None:
|
if result is not None:
|
||||||
cellBgColor = 'orange'
|
cellBgColor = 'orange'
|
||||||
self.htmlFile.write(' <td bgcolor = "' + cellBgColor + '" colspan=' + str(self.htmlUEConnected) + '><pre style="background-color:' + cellBgColor + '">' + self.htmlUEFailureMsg + '</pre></td>\n')
|
self.htmlFile.write(' <td bgcolor = "' + cellBgColor + '" colspan=' + str(self.htmlUEConnected) + '><pre style="background-color:' + cellBgColor + '">' + self.htmlUEFailureMsg + '</pre></td>\n')
|
||||||
@@ -3302,7 +3569,7 @@ def Usage():
|
|||||||
print('------------------------------------------------------------')
|
print('------------------------------------------------------------')
|
||||||
|
|
||||||
def CheckClassValidity(action,id):
|
def CheckClassValidity(action,id):
|
||||||
if action != 'Build_eNB' and action != 'Initialize_eNB' and action != 'Terminate_eNB' and action != 'Initialize_UE' and action != 'Terminate_UE' and action != 'Attach_UE' and action != 'Detach_UE' and action != 'Build_OAI_UE' and action != 'Initialize_OAI_UE' and action != 'Terminate_OAI_UE' and action != 'Ping' and action != 'Iperf' and action != 'Reboot_UE' and action != 'Initialize_HSS' and action != 'Terminate_HSS' and action != 'Initialize_MME' and action != 'Terminate_MME' and action != 'Initialize_SPGW' and action != 'Terminate_SPGW' and action != 'Initialize_CatM_module' and action != 'Terminate_CatM_module' and action != 'Attach_CatM_module' and action != 'Detach_CatM_module' and action != 'Ping_CatM_module' and action != 'IdleSleep':
|
if action != 'Build_eNB' and action != 'Initialize_eNB' and action != 'Terminate_eNB' and action != 'Initialize_UE' and action != 'Terminate_UE' and action != 'Attach_UE' and action != 'Detach_UE' and action != 'Build_OAI_UE' and action != 'Initialize_OAI_UE' and action != 'Terminate_OAI_UE' and action != 'DataDisable_UE' and action != 'DataEnable_UE' and action != 'CheckStatusUE' and action != 'Ping' and action != 'Iperf' and action != 'Reboot_UE' and action != 'Initialize_FlexranCtrl' and action != 'Terminate_FlexranCtrl' and action != 'Initialize_HSS' and action != 'Terminate_HSS' and action != 'Initialize_MME' and action != 'Terminate_MME' and action != 'Initialize_SPGW' and action != 'Terminate_SPGW' and action != 'Initialize_CatM_module' and action != 'Terminate_CatM_module' and action != 'Attach_CatM_module' and action != 'Detach_CatM_module' and action != 'Ping_CatM_module' and action != 'IdleSleep':
|
||||||
logging.debug('ERROR: test-case ' + id + ' has wrong class ' + action)
|
logging.debug('ERROR: test-case ' + id + ' has wrong class ' + action)
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
@@ -3329,6 +3596,13 @@ def GetParametersFromXML(action):
|
|||||||
else:
|
else:
|
||||||
SSH.nbMaxUEtoAttach = int(nbMaxUEtoAttach)
|
SSH.nbMaxUEtoAttach = int(nbMaxUEtoAttach)
|
||||||
|
|
||||||
|
if action == 'CheckStatusUE':
|
||||||
|
expectedNBUE = test.findtext('expectedNbOfConnectedUEs')
|
||||||
|
if (expectedNBUE is None):
|
||||||
|
SSH.expectedNbOfConnectedUEs = -1
|
||||||
|
else:
|
||||||
|
SSH.expectedNbOfConnectedUEs = int(expectedNBUE)
|
||||||
|
|
||||||
if action == 'Build_OAI_UE':
|
if action == 'Build_OAI_UE':
|
||||||
SSH.Build_OAI_UE_args = test.findtext('Build_OAI_UE_args')
|
SSH.Build_OAI_UE_args = test.findtext('Build_OAI_UE_args')
|
||||||
|
|
||||||
@@ -3547,10 +3821,10 @@ elif re.match('^LogCollectIperf$', mode, re.IGNORECASE):
|
|||||||
sys.exit('Insufficient Parameter')
|
sys.exit('Insufficient Parameter')
|
||||||
SSH.LogCollectIperf()
|
SSH.LogCollectIperf()
|
||||||
elif re.match('^LogCollectOAIUE$', mode, re.IGNORECASE):
|
elif re.match('^LogCollectOAIUE$', mode, re.IGNORECASE):
|
||||||
if SSH.UEIPAddress == '' or SSH.UEUserName == '' or SSH.UEPassword == '' or SSH.UESourceCodePath == '':
|
if SSH.UEIPAddress == '' or SSH.UEUserName == '' or SSH.UEPassword == '' or SSH.UESourceCodePath == '':
|
||||||
Usage()
|
Usage()
|
||||||
sys.exit('Insufficient Parameter')
|
sys.exit('Insufficient Parameter')
|
||||||
SSH.LogCollectOAIUE()
|
SSH.LogCollectOAIUE()
|
||||||
elif re.match('^InitiateHtml$', mode, re.IGNORECASE):
|
elif re.match('^InitiateHtml$', mode, re.IGNORECASE):
|
||||||
if (SSH.ADBIPAddress == '' or SSH.ADBUserName == '' or SSH.ADBPassword == ''):
|
if (SSH.ADBIPAddress == '' or SSH.ADBUserName == '' or SSH.ADBPassword == ''):
|
||||||
Usage()
|
Usage()
|
||||||
@@ -3588,7 +3862,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
sys.exit('UE: Insufficient Parameter')
|
sys.exit('UE: Insufficient Parameter')
|
||||||
|
|
||||||
#read test_case_list.xml file
|
#read test_case_list.xml file
|
||||||
# if no parameters for XML file, use default value
|
# if no parameters for XML file, use default value
|
||||||
if (SSH.nbTestXMLfiles != 1):
|
if (SSH.nbTestXMLfiles != 1):
|
||||||
xml_test_file = cwd + "/test_case_list.xml"
|
xml_test_file = cwd + "/test_case_list.xml"
|
||||||
else:
|
else:
|
||||||
@@ -3626,6 +3900,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
else:
|
else:
|
||||||
logging.debug('ERROR: requested test is invalidly formatted: ' + test)
|
logging.debug('ERROR: requested test is invalidly formatted: ' + test)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
SSH.CheckFlexranCtrlInstallation()
|
||||||
|
|
||||||
#get the list of tests to be done
|
#get the list of tests to be done
|
||||||
todo_tests=[]
|
todo_tests=[]
|
||||||
@@ -3652,7 +3927,7 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
continue
|
continue
|
||||||
SSH.ShowTestID()
|
SSH.ShowTestID()
|
||||||
GetParametersFromXML(action)
|
GetParametersFromXML(action)
|
||||||
if action == 'Initialize_UE' or action == 'Attach_UE' or action == 'Detach_UE' or action == 'Ping' or action == 'Iperf' or action == 'Reboot_UE':
|
if action == 'Initialize_UE' or action == 'Attach_UE' or action == 'Detach_UE' or action == 'Ping' or action == 'Iperf' or action == 'Reboot_UE' or action == 'DataDisable_UE' or action == 'DataEnable_UE' or action == 'CheckStatusUE':
|
||||||
if (SSH.ADBIPAddress != 'none'):
|
if (SSH.ADBIPAddress != 'none'):
|
||||||
terminate_ue_flag = False
|
terminate_ue_flag = False
|
||||||
SSH.GetAllUEDevices(terminate_ue_flag)
|
SSH.GetAllUEDevices(terminate_ue_flag)
|
||||||
@@ -3670,6 +3945,12 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
SSH.AttachUE()
|
SSH.AttachUE()
|
||||||
elif action == 'Detach_UE':
|
elif action == 'Detach_UE':
|
||||||
SSH.DetachUE()
|
SSH.DetachUE()
|
||||||
|
elif action == 'DataDisable_UE':
|
||||||
|
SSH.DataDisableUE()
|
||||||
|
elif action == 'DataEnable_UE':
|
||||||
|
SSH.DataEnableUE()
|
||||||
|
elif action == 'CheckStatusUE':
|
||||||
|
SSH.CheckStatusUE()
|
||||||
elif action == 'Build_OAI_UE':
|
elif action == 'Build_OAI_UE':
|
||||||
SSH.BuildOAIUE()
|
SSH.BuildOAIUE()
|
||||||
elif action == 'Initialize_OAI_UE':
|
elif action == 'Initialize_OAI_UE':
|
||||||
@@ -3704,6 +3985,10 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
|
|||||||
SSH.InitializeSPGW()
|
SSH.InitializeSPGW()
|
||||||
elif action == 'Terminate_SPGW':
|
elif action == 'Terminate_SPGW':
|
||||||
SSH.TerminateSPGW()
|
SSH.TerminateSPGW()
|
||||||
|
elif action == 'Initialize_FlexranCtrl':
|
||||||
|
SSH.InitializeFlexranCtrl()
|
||||||
|
elif action == 'Terminate_FlexranCtrl':
|
||||||
|
SSH.TerminateFlexranCtrl()
|
||||||
elif action == 'IdleSleep':
|
elif action == 'IdleSleep':
|
||||||
SSH.IdleSleep()
|
SSH.IdleSleep()
|
||||||
else:
|
else:
|
||||||
|
|||||||
+564
-366
File diff suppressed because it is too large
Load Diff
@@ -28,56 +28,8 @@ function report_build_usage {
|
|||||||
echo "------"
|
echo "------"
|
||||||
echo " oai-ci-vm-tool report-build [OPTIONS]"
|
echo " oai-ci-vm-tool report-build [OPTIONS]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Options:"
|
command_options_usage
|
||||||
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 " --workspace #### OR -ws ####"
|
|
||||||
echo " Specify the workspace."
|
|
||||||
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 {
|
function trigger_usage {
|
||||||
@@ -566,9 +518,11 @@ function report_build {
|
|||||||
summary_table_footer
|
summary_table_footer
|
||||||
|
|
||||||
summary_table_header "OAI Build basic simulator option" ./archives/basic_sim
|
summary_table_header "OAI Build basic simulator option" ./archives/basic_sim
|
||||||
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 "LTE SoftModem - Release 14" ./archives/basic_sim/lte-softmodem.Rel14.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 "LTE UE SoftModem - Release 14" ./archives/basic_sim/lte-uesoftmodem.Rel14.txt "Built target lte-uesoftmodem" ./basic_sim_row2.htm
|
||||||
summary_table_row "Conf 2 UE data - Release 14" ./archives/basic_sim/conf2uedata.Rel14.txt "Built target conf2uedata" ./basic_sim_row3.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_row "RB Tool - Release 14" ./archives/basic_sim/rb_tool.Rel14.txt "Built target rb_tool" ./basic_sim_row4.html
|
||||||
|
summary_table_row "NASMESH - Release 14" ./archives/basic_sim/nasmesh.Rel14.txt "Built target nasmesh" ./basic_sim_row5.html
|
||||||
summary_table_footer
|
summary_table_footer
|
||||||
|
|
||||||
summary_table_header "OAI Build Physical simulators option" ./archives/phy_sim
|
summary_table_header "OAI Build Physical simulators option" ./archives/phy_sim
|
||||||
@@ -644,7 +598,7 @@ function report_build {
|
|||||||
cat $DETAILS_TABLE >> ./build_results.html
|
cat $DETAILS_TABLE >> ./build_results.html
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if [ -f ./basic_sim_row1.html ] || [ -f ./basic_sim_row2.html ] || [ -f ./basic_sim_row3.html ]
|
if [ -f ./basic_sim_row1.html ] || [ -f ./basic_sim_row2.html ] || [ -f ./basic_sim_row3.html ] || [ -f ./basic_sim_row4.html ] || [ -f ./basic_sim_row5.html ]
|
||||||
then
|
then
|
||||||
for DETAILS_TABLE in `ls ./basic_sim_row*.html`
|
for DETAILS_TABLE in `ls ./basic_sim_row*.html`
|
||||||
do
|
do
|
||||||
|
|||||||
@@ -28,56 +28,7 @@ function report_test_usage {
|
|||||||
echo "------"
|
echo "------"
|
||||||
echo " oai-ci-vm-tool report-test [OPTIONS]"
|
echo " oai-ci-vm-tool report-test [OPTIONS]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Options:"
|
command_options_usage
|
||||||
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 " --workspace #### OR -ws ####"
|
|
||||||
echo " Specify the workspace."
|
|
||||||
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 analyzePingFiles {
|
function analyzePingFiles {
|
||||||
@@ -508,26 +459,26 @@ function report_test {
|
|||||||
NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG`
|
NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG`
|
||||||
NB_UE_GOT_SYNC=`egrep -c "got sync" $UE_LOG`
|
NB_UE_GOT_SYNC=`egrep -c "got sync" $UE_LOG`
|
||||||
NB_ENB_SYNCED_WITH_UE=`egrep -c "Sending NFAPI_START_RESPONSE" $UE_LOG`
|
NB_ENB_SYNCED_WITH_UE=`egrep -c "Sending NFAPI_START_RESPONSE" $UE_LOG`
|
||||||
if [ $NB_ENB_GOT_SYNC -eq 1 ] && [ $NB_UE_GOT_SYNC -eq 3 ] && [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
|
if [ $NB_ENB_GOT_SYNC -gt 0 ] && [ $NB_UE_GOT_SYNC -gt 2 ] && [ $NB_ENB_SYNCED_WITH_UE -gt 0 ]
|
||||||
then
|
then
|
||||||
echo " <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
|
echo " <td bgcolor = \"green\" >OK</td>" >> ./test_simulator_results.html
|
||||||
else
|
else
|
||||||
echo " <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
|
echo " <td bgcolor = \"red\" >KO</td>" >> ./test_simulator_results.html
|
||||||
fi
|
fi
|
||||||
echo " <td><pre>" >> ./test_simulator_results.html
|
echo " <td><pre>" >> ./test_simulator_results.html
|
||||||
if [ $NB_ENB_GOT_SYNC -eq 1 ]
|
if [ $NB_ENB_GOT_SYNC -gt 0 ]
|
||||||
then
|
then
|
||||||
echo "<font color = \"blue\">- eNB --> got sync</font>" >> ./test_simulator_results.html
|
echo "<font color = \"blue\">- eNB --> got sync</font>" >> ./test_simulator_results.html
|
||||||
else
|
else
|
||||||
echo "<font color = \"red\"><b>- eNB NEVER got sync</b></font>" >> ./test_simulator_results.html
|
echo "<font color = \"red\"><b>- eNB NEVER got sync</b></font>" >> ./test_simulator_results.html
|
||||||
fi
|
fi
|
||||||
if [ $NB_UE_GOT_SYNC -eq 3 ]
|
if [ $NB_UE_GOT_SYNC -gt 2 ]
|
||||||
then
|
then
|
||||||
echo "<font color = \"blue\">- UE --> got sync</font>" >> ./test_simulator_results.html
|
echo "<font color = \"blue\">- UE --> got sync</font>" >> ./test_simulator_results.html
|
||||||
else
|
else
|
||||||
echo "<font color = \"red\"><b>- UE NEVER got sync</b></font>" >> ./test_simulator_results.html
|
echo "<font color = \"red\"><b>- UE NEVER got sync</b></font>" >> ./test_simulator_results.html
|
||||||
fi
|
fi
|
||||||
if [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
|
if [ $NB_ENB_SYNCED_WITH_UE -gt 0 ]
|
||||||
then
|
then
|
||||||
echo "<font color = \"blue\">- UE attached to eNB</font>" >> ./test_simulator_results.html
|
echo "<font color = \"blue\">- UE attached to eNB</font>" >> ./test_simulator_results.html
|
||||||
else
|
else
|
||||||
|
|||||||
+98
-102
@@ -20,12 +20,12 @@
|
|||||||
# * contact@openairinterface.org
|
# * contact@openairinterface.org
|
||||||
# */
|
# */
|
||||||
|
|
||||||
function run_test_usage {
|
function test_usage {
|
||||||
echo "OAI CI VM script"
|
echo "OAI CI VM script"
|
||||||
echo " Original Author: Raphael Defosseux"
|
echo " Original Author: Raphael Defosseux"
|
||||||
echo " Requirements:"
|
echo " Requirements:"
|
||||||
echo " -- uvtool uvtool-libvirt apt-cacher"
|
echo " -- uvtool uvtool-libvirt apt-cacher"
|
||||||
echo " -- xenial image already synced"
|
echo " -- $VM_OSREL image already synced"
|
||||||
echo " Default:"
|
echo " Default:"
|
||||||
echo " -- eNB with USRP"
|
echo " -- eNB with USRP"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -33,26 +33,7 @@ function run_test_usage {
|
|||||||
echo "------"
|
echo "------"
|
||||||
echo " oai-ci-vm-tool test [OPTIONS]"
|
echo " oai-ci-vm-tool test [OPTIONS]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Options:"
|
command_options_usage
|
||||||
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 ""
|
|
||||||
variant_usage
|
|
||||||
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 start_basic_sim_enb {
|
function start_basic_sim_enb {
|
||||||
@@ -80,15 +61,15 @@ function start_basic_sim_enb {
|
|||||||
fi
|
fi
|
||||||
echo "echo \"grep N_RB_DL ci-$LOC_CONF_FILE\"" >> $1
|
echo "echo \"grep N_RB_DL ci-$LOC_CONF_FILE\"" >> $1
|
||||||
echo "grep N_RB_DL ci-$LOC_CONF_FILE | sed -e 's#N_RB_DL.*=#N_RB_DL =#'" >> $1
|
echo "grep N_RB_DL ci-$LOC_CONF_FILE | sed -e 's#N_RB_DL.*=#N_RB_DL =#'" >> $1
|
||||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/basic_simulator/enb/\"" >> $1
|
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" >> $1
|
||||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/basic_simulator" >> $1
|
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/" >> $1
|
||||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/basic_simulator/enb/" >> $1
|
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||||
echo "cd /home/ubuntu/tmp/cmake_targets/basic_simulator/enb/" >> $1
|
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --basicsim\" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||||
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE; fi" >> $1
|
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE; fi" >> $1
|
||||||
echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/enb -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1
|
||||||
|
|
||||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1
|
ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1
|
||||||
rm $1
|
rm $1
|
||||||
@@ -123,14 +104,14 @@ function start_basic_sim_ue {
|
|||||||
local LOC_UE_LOG_FILE=$3
|
local LOC_UE_LOG_FILE=$3
|
||||||
local LOC_NB_RBS=$4
|
local LOC_NB_RBS=$4
|
||||||
local LOC_FREQUENCY=$5
|
local LOC_FREQUENCY=$5
|
||||||
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/basic_simulator/ue\"" > $1
|
echo "echo \"cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/\"" > $1
|
||||||
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/basic_simulator/ue" >> $1
|
echo "sudo chmod 777 /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||||
echo "cd /home/ubuntu/tmp/cmake_targets/basic_simulator/ue" >> $1
|
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build" >> $1
|
||||||
echo "echo \"./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_NB_RBS --ue-rxgain 140\" > ./my-lte-uesoftmodem-run.sh" >> $1
|
echo "echo \"./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_NB_RBS --log_config.global_log_options nocolor,level --basicsim\" > ./my-lte-uesoftmodem-run.sh" >> $1
|
||||||
echo "chmod 775 ./my-lte-uesoftmodem-run.sh" >> $1
|
echo "chmod 775 ./my-lte-uesoftmodem-run.sh" >> $1
|
||||||
echo "cat ./my-lte-uesoftmodem-run.sh" >> $1
|
echo "cat ./my-lte-uesoftmodem-run.sh" >> $1
|
||||||
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE; fi" >> $1
|
echo "if [ -e /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ]; then sudo sudo rm -f /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE; fi" >> $1
|
||||||
echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/basic_simulator/ue -o /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ./my-lte-uesoftmodem-run.sh" >> $1
|
echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build -o /home/ubuntu/tmp/cmake_targets/log/$LOC_UE_LOG_FILE ./my-lte-uesoftmodem-run.sh" >> $1
|
||||||
|
|
||||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
||||||
rm $1
|
rm $1
|
||||||
@@ -418,14 +399,14 @@ function recover_core_dump {
|
|||||||
then
|
then
|
||||||
local TC=`echo $3 | sed -e "s#^.*enb_##" -e "s#Hz.*#Hz#"`
|
local TC=`echo $3 | sed -e "s#^.*enb_##" -e "s#Hz.*#Hz#"`
|
||||||
echo "Segmentation fault detected on enb -> recovering core dump"
|
echo "Segmentation fault detected on enb -> recovering core dump"
|
||||||
echo "cd /home/ubuntu/tmp/cmake_targets/basic_simulator/enb" > $1
|
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" > $1
|
||||||
echo "sync" >> $1
|
echo "sync" >> $1
|
||||||
echo "sudo tar -cjhf basic-simulator-enb-core-${TC}.bz2 core lte-softmodem *.so ci-lte-basic-sim.conf my-lte-softmodem-run.sh" >> $1
|
echo "sudo tar -cjhf basic-simulator-enb-core-${TC}.bz2 core lte-softmodem *.so ci-lte-basic-sim.conf my-lte-softmodem-run.sh" >> $1
|
||||||
echo "sudo rm core" >> $1
|
echo "sudo rm core" >> $1
|
||||||
echo "rm ci-lte-basic-sim.conf" >> $1
|
echo "rm ci-lte-basic-sim.conf" >> $1
|
||||||
echo "sync" >> $1
|
echo "sync" >> $1
|
||||||
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
ssh -T -o StrictHostKeyChecking=no ubuntu@$2 < $1
|
||||||
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/basic_simulator/enb/basic-simulator-enb-core-${TC}.bz2 $4
|
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/basic-simulator-enb-core-${TC}.bz2 $4
|
||||||
rm -f $1
|
rm -f $1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -483,7 +464,7 @@ function install_epc_on_vm {
|
|||||||
echo "Creating test EPC VM ($LOC_EPC_VM_NAME) on Ubuntu Cloud Image base"
|
echo "Creating test EPC VM ($LOC_EPC_VM_NAME) on Ubuntu Cloud Image base"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
acquire_vm_create_lock
|
acquire_vm_create_lock
|
||||||
uvt-kvm create $LOC_EPC_VM_NAME release=xenial --unsafe-caching
|
uvt-kvm create $LOC_EPC_VM_NAME release=$VM_OSREL --unsafe-caching
|
||||||
echo "Waiting for VM to be started"
|
echo "Waiting for VM to be started"
|
||||||
uvt-kvm wait $LOC_EPC_VM_NAME --insecure
|
uvt-kvm wait $LOC_EPC_VM_NAME --insecure
|
||||||
release_vm_create_lock
|
release_vm_create_lock
|
||||||
@@ -629,14 +610,19 @@ function retrieve_real_epc_ip_addr {
|
|||||||
local LOC_EPC_VM_CMDS=$2
|
local LOC_EPC_VM_CMDS=$2
|
||||||
local LOC_EPC_VM_IP_ADDR=$3
|
local LOC_EPC_VM_IP_ADDR=$3
|
||||||
|
|
||||||
if [ $LTEBOX -eq 1 ]
|
if [[ "$EPC_IPADDR" == "" ]]
|
||||||
then
|
then
|
||||||
# in our configuration file, we are using pool 5
|
if [ $LTEBOX -eq 1 ]
|
||||||
echo "ifconfig tun5 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*\$##'" > $LOC_EPC_VM_CMDS
|
then
|
||||||
REAL_EPC_IP_ADDR=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS`
|
# in our configuration file, we are using pool 5
|
||||||
echo "EPC IP Address is : $REAL_EPC_IP_ADDR"
|
echo "ifconfig tun5 | egrep \"inet addr\" | sed -e 's#^.*inet addr:##' -e 's# P-t-P:.*\$##'" > $LOC_EPC_VM_CMDS
|
||||||
rm $LOC_EPC_VM_CMDS
|
REAL_EPC_IP_ADDR=`ssh -T -o StrictHostKeyChecking=no ubuntu@$LOC_EPC_VM_IP_ADDR < $LOC_EPC_VM_CMDS`
|
||||||
|
rm $LOC_EPC_VM_CMDS
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
REAL_EPC_IP_ADDR=$EPC_TUN_IPADDR
|
||||||
fi
|
fi
|
||||||
|
echo "EPC IP Address is : $REAL_EPC_IP_ADDR"
|
||||||
}
|
}
|
||||||
|
|
||||||
function terminate_epc {
|
function terminate_epc {
|
||||||
@@ -694,8 +680,8 @@ function build_ue_on_separate_folder {
|
|||||||
echo "cd cmake_targets/" >> $1
|
echo "cd cmake_targets/" >> $1
|
||||||
echo "mkdir log" >> $1
|
echo "mkdir log" >> $1
|
||||||
echo "chmod 777 log" >> $1
|
echo "chmod 777 log" >> $1
|
||||||
echo "echo \"./build_oai --UE -t ETHERNET \"" >> $1
|
echo "echo \"./build_oai --UE \"" >> $1
|
||||||
echo "./build_oai --UE -t ETHERNET > log/ue-build.txt 2>&1" >> $1
|
echo "./build_oai --UE > log/ue-build.txt 2>&1" >> $1
|
||||||
echo "cd tools" >> $1
|
echo "cd tools" >> $1
|
||||||
echo "sudo ifconfig lo: 127.0.0.2 netmask 255.0.0.0 up" >> $1
|
echo "sudo ifconfig lo: 127.0.0.2 netmask 255.0.0.0 up" >> $1
|
||||||
echo "sudo chmod 666 /etc/iproute2/rt_tables" >> $1
|
echo "sudo chmod 666 /etc/iproute2/rt_tables" >> $1
|
||||||
@@ -729,9 +715,9 @@ function start_l2_sim_enb {
|
|||||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||||
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
else
|
else
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --log_config.global_log_options level,nocolor \" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
fi
|
fi
|
||||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||||
@@ -837,9 +823,9 @@ function start_l2_sim_ue {
|
|||||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||||
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nokrnmod 1 --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nums_ue_thread $LOC_NB_UES --nokrnmod 1 --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
else
|
else
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nokrnmod 1\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --L2-emul 3 --num-ues $LOC_NB_UES --nums_ue_thread $LOC_NB_UES --nokrnmod 1 --log_config.global_log_options level,nocolor\" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
fi
|
fi
|
||||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||||
@@ -949,9 +935,9 @@ function start_rf_sim_enb {
|
|||||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||||
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
else
|
else
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-softmodem -O /home/ubuntu/tmp/ci-scripts/conf_files/ci-$LOC_CONF_FILE --rfsim --log_config.global_log_options level,nocolor \" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
fi
|
fi
|
||||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||||
@@ -1028,9 +1014,9 @@ function start_rf_sim_ue {
|
|||||||
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
echo "cd /home/ubuntu/tmp/cmake_targets/lte_build_oai/build/" >> $1
|
||||||
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
if [ $LOC_S1_CONFIGURATION -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --nokrnmod 1 --rfsim --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --nokrnmod 1 --rfsim --log_config.global_log_options level,nocolor --noS1\" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
else
|
else
|
||||||
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --nokrnmod 1 --rfsim\" > ./my-lte-softmodem-run.sh " >> $1
|
echo "echo \"ulimit -c unlimited && ./lte-uesoftmodem -C ${LOC_FREQUENCY}000000 -r $LOC_PRB --nokrnmod 1 --rfsim --log_config.global_log_options level,nocolor\" > ./my-lte-softmodem-run.sh " >> $1
|
||||||
fi
|
fi
|
||||||
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
echo "chmod 775 ./my-lte-softmodem-run.sh" >> $1
|
||||||
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
echo "cat ./my-lte-softmodem-run.sh" >> $1
|
||||||
@@ -1093,7 +1079,7 @@ function run_test_on_vm {
|
|||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "OAI CI VM script"
|
echo "OAI CI VM script"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
if [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-l2-sim.* )) || (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-rf-sim.* )) ]]
|
if [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-l2-sim.* )) ]] || [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-rf-sim.* )) ]]
|
||||||
then
|
then
|
||||||
ENB_VM_NAME=`echo $VM_NAME | sed -e "s#l2-sim#enb-ethernet#" -e "s#rf-sim#enb-ethernet#"`
|
ENB_VM_NAME=`echo $VM_NAME | sed -e "s#l2-sim#enb-ethernet#" -e "s#rf-sim#enb-ethernet#"`
|
||||||
ENB_VM_CMDS=${ENB_VM_NAME}_cmds.txt
|
ENB_VM_CMDS=${ENB_VM_NAME}_cmds.txt
|
||||||
@@ -1110,7 +1096,7 @@ function run_test_on_vm {
|
|||||||
echo "JENKINS_WKSP = $JENKINS_WKSP"
|
echo "JENKINS_WKSP = $JENKINS_WKSP"
|
||||||
echo "ARCHIVES_LOC = $ARCHIVES_LOC"
|
echo "ARCHIVES_LOC = $ARCHIVES_LOC"
|
||||||
|
|
||||||
if [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-l2-sim.* )) || (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-rf-sim.* )) ]]
|
if [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-l2-sim.* )) ]] || [[ (( "$RUN_OPTIONS" == "complex" ) && ( $VM_NAME =~ .*-rf-sim.* )) ]]
|
||||||
then
|
then
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "Waiting for ENB VM to be started"
|
echo "Waiting for ENB VM to be started"
|
||||||
@@ -1261,11 +1247,18 @@ function run_test_on_vm {
|
|||||||
EPC_VM_NAME=`echo $VM_NAME | sed -e "s#basic-sim#epc#"`
|
EPC_VM_NAME=`echo $VM_NAME | sed -e "s#basic-sim#epc#"`
|
||||||
EPC_VM_CMDS=${EPC_VM_NAME}_cmds.txt
|
EPC_VM_CMDS=${EPC_VM_NAME}_cmds.txt
|
||||||
LTEBOX=0
|
LTEBOX=0
|
||||||
install_epc_on_vm $EPC_VM_NAME $EPC_VM_CMDS
|
if [[ "$EPC_IPADDR" == "" ]]
|
||||||
EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
|
then
|
||||||
|
# Creating a VM for EPC and installing SW
|
||||||
|
install_epc_on_vm $EPC_VM_NAME $EPC_VM_CMDS
|
||||||
|
EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
|
||||||
|
|
||||||
# Starting EPC
|
# Starting EPC
|
||||||
start_epc $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
start_epc $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
||||||
|
else
|
||||||
|
echo "We will use EPC on $EPC_IPADDR"
|
||||||
|
EPC_VM_IP_ADDR=$EPC_IPADDR
|
||||||
|
fi
|
||||||
|
|
||||||
# Retrieve EPC real IP address
|
# Retrieve EPC real IP address
|
||||||
retrieve_real_epc_ip_addr $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
retrieve_real_epc_ip_addr $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
||||||
@@ -1277,9 +1270,8 @@ function run_test_on_vm {
|
|||||||
do
|
do
|
||||||
for BW in ${BW_CASES[@]}
|
for BW in ${BW_CASES[@]}
|
||||||
do
|
do
|
||||||
# Not Running in TDD-10MHz and TDD-20MHz : too unstable
|
# Not Running in TDD-20MHz : too unstable
|
||||||
#if [[ $TMODE =~ .*tdd.* ]] && [[ $BW =~ .*10.* ]]; then continue; fi
|
if [[ $TMODE =~ .*tdd.* ]] && [[ $BW =~ .*20.* ]]; then continue; fi
|
||||||
#if [[ $TMODE =~ .*tdd.* ]] && [[ $BW =~ .*20.* ]]; then continue; fi
|
|
||||||
|
|
||||||
if [[ $BW =~ .*05.* ]]; then PRB=25; fi
|
if [[ $BW =~ .*05.* ]]; then PRB=25; fi
|
||||||
if [[ $BW =~ .*10.* ]]; then PRB=50; fi
|
if [[ $BW =~ .*10.* ]]; then PRB=50; fi
|
||||||
@@ -1300,15 +1292,9 @@ function run_test_on_vm {
|
|||||||
if [ $UE_SYNC -eq 0 ]
|
if [ $UE_SYNC -eq 0 ]
|
||||||
then
|
then
|
||||||
echo "Problem w/ eNB and UE not syncing"
|
echo "Problem w/ eNB and UE not syncing"
|
||||||
terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR 0
|
full_terminate
|
||||||
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
|
|
||||||
scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
|
|
||||||
recover_core_dump $VM_CMDS $VM_IP_ADDR $ARCHIVES_LOC/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
|
|
||||||
terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
|
||||||
full_basic_sim_destroy
|
|
||||||
echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log
|
|
||||||
STATUS=-1
|
STATUS=-1
|
||||||
return
|
continue
|
||||||
fi
|
fi
|
||||||
get_ue_ip_addr $VM_CMDS $VM_IP_ADDR 1
|
get_ue_ip_addr $VM_CMDS $VM_IP_ADDR 1
|
||||||
|
|
||||||
@@ -1453,7 +1439,10 @@ function run_test_on_vm {
|
|||||||
echo "Terminate EPC"
|
echo "Terminate EPC"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
|
|
||||||
terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
if [[ "$EPC_IPADDR" == "" ]]
|
||||||
|
then
|
||||||
|
terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
||||||
|
fi
|
||||||
|
|
||||||
full_basic_sim_destroy
|
full_basic_sim_destroy
|
||||||
|
|
||||||
@@ -1481,43 +1470,56 @@ function run_test_on_vm {
|
|||||||
rm -Rf $ARCHIVES_LOC
|
rm -Rf $ARCHIVES_LOC
|
||||||
fi
|
fi
|
||||||
mkdir --parents $ARCHIVES_LOC
|
mkdir --parents $ARCHIVES_LOC
|
||||||
|
if [[ "$EPC_IPADDR" == "" ]]
|
||||||
|
then
|
||||||
# Creating a VM for EPC and installing SW
|
# Creating a VM for EPC and installing SW
|
||||||
EPC_VM_NAME=`echo $VM_NAME | sed -e "s#rf-sim#epc#"`
|
EPC_VM_NAME=`echo $VM_NAME | sed -e "s#rf-sim#epc#"`
|
||||||
EPC_VM_CMDS=${EPC_VM_NAME}_cmds.txt
|
EPC_VM_CMDS=${EPC_VM_NAME}_cmds.txt
|
||||||
LTEBOX=0
|
LTEBOX=0
|
||||||
install_epc_on_vm $EPC_VM_NAME $EPC_VM_CMDS
|
install_epc_on_vm $EPC_VM_NAME $EPC_VM_CMDS
|
||||||
EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
|
EPC_VM_IP_ADDR=`uvt-kvm ip $EPC_VM_NAME`
|
||||||
|
fi
|
||||||
# withS1 configuration is not working
|
# withS1 configuration is not working
|
||||||
#EPC_CONFIGS=("wS1" "noS1")
|
#EPC_CONFIGS=("wS1" "noS1")
|
||||||
#TRANS_MODES=("fdd" "tdd")
|
#TRANS_MODES=("fdd" "tdd")
|
||||||
#BW_CASES=(05 10 20)
|
#BW_CASES=(05 10 20)
|
||||||
EPC_CONFIGS=("noS1")
|
EPC_CONFIGS=("noS1" "wS1")
|
||||||
TRANS_MODES=("fdd")
|
TRANS_MODES=("fdd")
|
||||||
BW_CASES=(05)
|
BW_CASES=(05)
|
||||||
for CN_CONFIG in ${EPC_CONFIGS[@]}
|
for CN_CONFIG in ${EPC_CONFIGS[@]}
|
||||||
do
|
do
|
||||||
if [[ $CN_CONFIG =~ .*wS1.* ]]
|
if [[ $CN_CONFIG =~ .*wS1.* ]]
|
||||||
then
|
then
|
||||||
echo "############################################################"
|
if [[ "$EPC_IPADDR" == "" ]]
|
||||||
echo "Start EPC for the wS1 configuration"
|
then
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
start_epc $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
echo "Start EPC for the wS1 configuration"
|
||||||
|
echo "############################################################"
|
||||||
# Retrieve EPC real IP address
|
start_epc $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
||||||
retrieve_real_epc_ip_addr $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
# Retrieve EPC real IP address
|
||||||
S1_NOS1_CFG=1
|
retrieve_real_epc_ip_addr $EPC_VM_NAME $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
||||||
|
S1_NOS1_CFG=1
|
||||||
|
else
|
||||||
|
echo "############################################################"
|
||||||
|
echo "Using external EPC " $EPC_IPADDR
|
||||||
|
echo "############################################################"
|
||||||
|
$EPC_VM_IP_ADDR=$EPC_IPADDR
|
||||||
|
S1_NOS1_CFG=1
|
||||||
|
LTEBOX=0
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "############################################################"
|
if [[ "$EPC_IPADDR" == "" ]]
|
||||||
echo "Terminate EPC"
|
then
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
echo "Terminate EPC"
|
||||||
|
echo "############################################################"
|
||||||
|
terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
||||||
|
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "Running now in a no-S1 configuration"
|
echo "Running now in a no-S1 "
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
S1_NOS1_CFG=0
|
S1_NOS1_CFG=0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
for TMODE in ${TRANS_MODES[@]}
|
for TMODE in ${TRANS_MODES[@]}
|
||||||
do
|
do
|
||||||
@@ -1539,7 +1541,7 @@ function run_test_on_vm {
|
|||||||
echo "${CN_CONFIG} : Starting the eNB in ${TMODE}-${BW}MHz mode"
|
echo "${CN_CONFIG} : Starting the eNB in ${TMODE}-${BW}MHz mode"
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
CURRENT_ENB_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_enb.log
|
CURRENT_ENB_LOG_FILE=${TMODE}_${BW}MHz_${CN_CONFIG}_enb.log
|
||||||
start_rf_sim_enb $ENB_VM_CMDS $ENB_VM_IP_ADDR $EPC_VM_IP_ADDR $CURRENT_ENB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG
|
start_rf_sim_enb $ENB_VM_CMDS "$ENB_VM_IP_ADDR" "$EPC_VM_IP_ADDR" $CURRENT_ENB_LOG_FILE $PRB $CONF_FILE $S1_NOS1_CFG
|
||||||
|
|
||||||
echo "############################################################"
|
echo "############################################################"
|
||||||
echo "${CN_CONFIG} : Starting the UE"
|
echo "${CN_CONFIG} : Starting the UE"
|
||||||
@@ -1739,14 +1741,8 @@ function run_test_on_vm {
|
|||||||
terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR 2
|
terminate_enb_ue_basic_sim $UE_VM_CMDS $UE_VM_IP_ADDR 2
|
||||||
scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
|
scp -o StrictHostKeyChecking=no ubuntu@$ENB_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC
|
||||||
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
|
scp -o StrictHostKeyChecking=no ubuntu@$UE_VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC
|
||||||
if [ $S1_NOS1_CFG -eq 1 ]
|
|
||||||
then
|
|
||||||
terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR
|
|
||||||
fi
|
|
||||||
full_l2_sim_destroy
|
|
||||||
echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log
|
|
||||||
STATUS=-1
|
STATUS=-1
|
||||||
return
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $S1_NOS1_CFG -eq 1 ]
|
if [ $S1_NOS1_CFG -eq 1 ]
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ function wait_usage {
|
|||||||
echo " Original Author: Raphael Defosseux"
|
echo " Original Author: Raphael Defosseux"
|
||||||
echo " Requirements:"
|
echo " Requirements:"
|
||||||
echo " -- uvtool uvtool-libvirt apt-cacher"
|
echo " -- uvtool uvtool-libvirt apt-cacher"
|
||||||
echo " -- xenial image already synced"
|
echo " -- $VM_OSREL image already synced"
|
||||||
echo " Default:"
|
echo " Default:"
|
||||||
echo " -- eNB with USRP"
|
echo " -- eNB with USRP"
|
||||||
echo ""
|
echo ""
|
||||||
@@ -33,28 +33,7 @@ function wait_usage {
|
|||||||
echo "------"
|
echo "------"
|
||||||
echo " oai-ci-vm-tool wait [OPTIONS]"
|
echo " oai-ci-vm-tool wait [OPTIONS]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Mandatory Options:"
|
command_options_usage
|
||||||
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 ""
|
|
||||||
variant_usage
|
|
||||||
echo " Specify the variant to build."
|
|
||||||
echo ""
|
|
||||||
echo "Options:"
|
|
||||||
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 wait_on_vm_build {
|
function wait_on_vm_build {
|
||||||
|
|||||||
@@ -29,10 +29,10 @@
|
|||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList></TestCaseExclusionList>
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
<testCase id="050101">
|
<testCase id="050101">
|
||||||
<class>Initialize_HSS</class>
|
<class>Initialize_HSS</class>
|
||||||
<desc>Initialize HSS</desc>
|
<desc>Initialize HSS</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="060101">
|
<testCase id="060101">
|
||||||
<class>Initialize_MME</class>
|
<class>Initialize_MME</class>
|
||||||
|
|||||||
@@ -26,32 +26,32 @@
|
|||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201 090109
|
030201 090109
|
||||||
030101 000001 090101 000002 040501 040502 000001 040601 040641 040642 000001 090109 030201
|
030101 000001 090101 000002 040501 040502 000001 040601 040602 040641 040642 000001 090109 030201
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList></TestCaseExclusionList>
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
<testCase id="000001">
|
<testCase id="000001">
|
||||||
<class>IdleSleep</class>
|
<class>IdleSleep</class>
|
||||||
<desc>Sleep</desc>
|
<desc>Sleep</desc>
|
||||||
<idle_sleep_time_in_sec>10</idle_sleep_time_in_sec>
|
<idle_sleep_time_in_sec>10</idle_sleep_time_in_sec>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000002">
|
<testCase id="000002">
|
||||||
<class>IdleSleep</class>
|
<class>IdleSleep</class>
|
||||||
<desc>Sleep</desc>
|
<desc>Sleep</desc>
|
||||||
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000003">
|
<testCase id="000003">
|
||||||
<class>IdleSleep</class>
|
<class>IdleSleep</class>
|
||||||
<desc>Sleep</desc>
|
<desc>Sleep</desc>
|
||||||
<idle_sleep_time_in_sec>60</idle_sleep_time_in_sec>
|
<idle_sleep_time_in_sec>60</idle_sleep_time_in_sec>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030101">
|
<testCase id="030101">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
|
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
|
||||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --noS1</Initialize_eNB_args>
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --noS1 --eNBs.[0].rrc_inactivity_threshold 0</Initialize_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030201">
|
<testCase id="030201">
|
||||||
@@ -59,44 +59,44 @@
|
|||||||
<desc>Terminate eNB</desc>
|
<desc>Terminate eNB</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="090101">
|
<testCase id="090101">
|
||||||
<class>Initialize_OAI_UE</class>
|
<class>Initialize_OAI_UE</class>
|
||||||
<desc>Initialize OAI UE (FDD/Band7/5MHz)</desc>
|
<desc>Initialize OAI UE (FDD/Band7/5MHz)</desc>
|
||||||
<Initialize_OAI_UE_args>-C 2680000000 -r 25 --ue-rxgain 120 --ue-txgain 0 --ue-max-power 0 --ue-scan-carrier --nokrnmod 1 --noS1</Initialize_OAI_UE_args>
|
<Initialize_OAI_UE_args>-C 2680000000 -r 25 --ue-rxgain 120 --ue-txgain 0 --ue-max-power 0 --ue-scan-carrier --nokrnmod 1 --noS1</Initialize_OAI_UE_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="090109">
|
<testCase id="090109">
|
||||||
<class>Terminate_OAI_UE</class>
|
<class>Terminate_OAI_UE</class>
|
||||||
<desc>Terminate OAI UE</desc>
|
<desc>Terminate OAI UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040501">
|
<testCase id="040501">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (5MHz - 20 sec)(from eNB to OAI UE)</desc>
|
<desc>ping (5MHz - 20 sec)(from eNB to OAI UE)</desc>
|
||||||
<ping_args>-I oaitun_enb1 -c 20 10.0.1.2</ping_args>
|
<ping_args>-I oaitun_enb1 -c 20 10.0.1.2</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040502">
|
<testCase id="040502">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (5MHz - 20 sec)(from OAI UE to eNB)</desc>
|
<desc>ping (5MHz - 20 sec)(from OAI UE to eNB)</desc>
|
||||||
<ping_args>-I oaitun_ue1 -c 20 10.0.1.1</ping_args>
|
<ping_args>-I oaitun_ue1 -c 20 10.0.1.1</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040601">
|
<testCase id="040601">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/1Mbps/UDP)(30 sec)</desc>
|
<desc>iperf (5MHz - DL/1Mbps/UDP)(30 sec)</desc>
|
||||||
<iperf_args>-c 10.0.1.2 -u -b 1M -t 30 -i 1 -fm -B 10.0.1.1</iperf_args>
|
<iperf_args>-c 10.0.1.2 -u -b 1M -t 30 -i 1 -fm -B 10.0.1.1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040602">
|
<testCase id="040602">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/1.2Mbps/UDP)(30 sec)</desc>
|
<desc>iperf (5MHz - DL/14Mbps/UDP)(30 sec)</desc>
|
||||||
<iperf_args>-c 10.0.1.2 -u -b 1.2M -t 30 -i 1 -fm -B 10.0.1.1</iperf_args>
|
<iperf_args>-c 10.0.1.2 -u -b 14M -t 30 -i 1 -fm -B 10.0.1.1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040641">
|
<testCase id="040641">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -26,26 +26,26 @@
|
|||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201 090109
|
030201 090109
|
||||||
030102 000001 090102 000002 040503 000001 040603 040643 040644 000001 090109 030201
|
030102 000001 090102 000002 040503 000001 040603 040604 040643 040644 000001 090109 030201
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList></TestCaseExclusionList>
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
<testCase id="000001">
|
<testCase id="000001">
|
||||||
<class>IdleSleep</class>
|
<class>IdleSleep</class>
|
||||||
<desc>Sleep</desc>
|
<desc>Sleep</desc>
|
||||||
<idle_sleep_time_in_sec>10</idle_sleep_time_in_sec>
|
<idle_sleep_time_in_sec>10</idle_sleep_time_in_sec>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="000002">
|
<testCase id="000002">
|
||||||
<class>IdleSleep</class>
|
<class>IdleSleep</class>
|
||||||
<desc>Sleep</desc>
|
<desc>Sleep</desc>
|
||||||
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030102">
|
<testCase id="030102">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
|
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
|
||||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf --eNBs.[0].rrc_inactivity_threshold 0</Initialize_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030201">
|
<testCase id="030201">
|
||||||
@@ -53,37 +53,37 @@
|
|||||||
<desc>Terminate eNB</desc>
|
<desc>Terminate eNB</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="090102">
|
<testCase id="090102">
|
||||||
<class>Initialize_OAI_UE</class>
|
<class>Initialize_OAI_UE</class>
|
||||||
<desc>Initialize OAI UE (FDD/Band7/5MHz)</desc>
|
<desc>Initialize OAI UE (FDD/Band7/5MHz)</desc>
|
||||||
<Initialize_OAI_UE_args>-C 2680000000 -r 25 --ue-rxgain 120 --ue-txgain 0 --ue-max-power 0 --ue-scan-carrier --nokrnmod 1</Initialize_OAI_UE_args>
|
<Initialize_OAI_UE_args>-C 2680000000 -r 25 --ue-rxgain 120 --ue-txgain 0 --ue-max-power 0 --ue-scan-carrier --nokrnmod 1</Initialize_OAI_UE_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="090109">
|
<testCase id="090109">
|
||||||
<class>Terminate_OAI_UE</class>
|
<class>Terminate_OAI_UE</class>
|
||||||
<desc>Terminate OAI UE</desc>
|
<desc>Terminate OAI UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040503">
|
<testCase id="040503">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (5MHz - 20 sec)</desc>
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040603">
|
<testCase id="040603">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/1Mbps/UDP)(30 sec)</desc>
|
<desc>iperf (5MHz - DL/1Mbps/UDP)(30 sec)</desc>
|
||||||
<iperf_args>-u -b 1M -t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-u -b 1M -t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040604">
|
<testCase id="040604">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/1.2Mbps/UDP)(30 sec)</desc>
|
<desc>iperf (5MHz - DL/14Mbps/UDP)(30 sec)</desc>
|
||||||
<iperf_args>-b 1.2M -t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-u -b 14M -t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040643">
|
<testCase id="040643">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -37,10 +37,10 @@
|
|||||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="050101">
|
<testCase id="050101">
|
||||||
<class>Initialize_HSS</class>
|
<class>Initialize_HSS</class>
|
||||||
<desc>Initialize HSS</desc>
|
<desc>Initialize HSS</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="060101">
|
<testCase id="060101">
|
||||||
<class>Initialize_MME</class>
|
<class>Initialize_MME</class>
|
||||||
|
|||||||
@@ -32,11 +32,11 @@
|
|||||||
<TestCaseExclusionList>
|
<TestCaseExclusionList>
|
||||||
</TestCaseExclusionList>
|
</TestCaseExclusionList>
|
||||||
|
|
||||||
<testCase id="000001">
|
<testCase id="000001">
|
||||||
<class>IdleSleep</class>
|
<class>IdleSleep</class>
|
||||||
<desc>Waiting for a moment...</desc>
|
<desc>Waiting for a moment...</desc>
|
||||||
<idle_sleep_time_in_sec>15</idle_sleep_time_in_sec>
|
<idle_sleep_time_in_sec>15</idle_sleep_time_in_sec>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030121">
|
<testCase id="030121">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
@@ -49,31 +49,31 @@
|
|||||||
<desc>Terminate eNB</desc>
|
<desc>Terminate eNB</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040102">
|
<testCase id="040102">
|
||||||
<class>Initialize_CatM_module</class>
|
<class>Initialize_CatM_module</class>
|
||||||
<desc>Initialize CAT-M Module</desc>
|
<desc>Initialize CAT-M Module</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040202">
|
<testCase id="040202">
|
||||||
<class>Terminate_CatM_module</class>
|
<class>Terminate_CatM_module</class>
|
||||||
<desc>Terminate CAT-M Module</desc>
|
<desc>Terminate CAT-M Module</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040302">
|
<testCase id="040302">
|
||||||
<class>Attach_CatM_module</class>
|
<class>Attach_CatM_module</class>
|
||||||
<desc>Attach CAT-M Module</desc>
|
<desc>Attach CAT-M Module</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040402">
|
<testCase id="040402">
|
||||||
<class>Detach_CatM_module</class>
|
<class>Detach_CatM_module</class>
|
||||||
<desc>Detach CAT-M Module</desc>
|
<desc>Detach CAT-M Module</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040502">
|
<testCase id="040502">
|
||||||
<class>Ping_CatM_module</class>
|
<class>Ping_CatM_module</class>
|
||||||
<desc>ping (10MHz - 20 sec)</desc>
|
<desc>ping (10MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>build-tab</htmlTabRef>
|
<htmlTabRef>build-tab</htmlTabRef>
|
||||||
<htmlTabName>Build</htmlTabName>
|
<htmlTabName>Build</htmlTabName>
|
||||||
<htmlTabIcon>wrench</htmlTabIcon>
|
<htmlTabIcon>wrench</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
010101
|
010101
|
||||||
050101 060101 070101
|
050101 060101 070101
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
@@ -36,10 +36,10 @@
|
|||||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="050101">
|
<testCase id="050101">
|
||||||
<class>Initialize_HSS</class>
|
<class>Initialize_HSS</class>
|
||||||
<desc>Initialize HSS</desc>
|
<desc>Initialize HSS</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="060101">
|
<testCase id="060101">
|
||||||
<class>Initialize_MME</class>
|
<class>Initialize_MME</class>
|
||||||
|
|||||||
@@ -24,24 +24,24 @@
|
|||||||
<htmlTabRef>epc-closure</htmlTabRef>
|
<htmlTabRef>epc-closure</htmlTabRef>
|
||||||
<htmlTabName>EPC-Closure</htmlTabName>
|
<htmlTabName>EPC-Closure</htmlTabName>
|
||||||
<htmlTabIcon>log-out</htmlTabIcon>
|
<htmlTabIcon>log-out</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
050201 060201 070201
|
050201 060201 070201
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList></TestCaseExclusionList>
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
<testCase id="050201">
|
<testCase id="050201">
|
||||||
<class>Terminate_HSS</class>
|
<class>Terminate_HSS</class>
|
||||||
<desc>Terminate HSS</desc>
|
<desc>Terminate HSS</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="060201">
|
<testCase id="060201">
|
||||||
<class>Terminate_MME</class>
|
<class>Terminate_MME</class>
|
||||||
<desc>Terminate MME</desc>
|
<desc>Terminate MME</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="070201">
|
<testCase id="070201">
|
||||||
<class>Terminate_SPGW</class>
|
<class>Terminate_SPGW</class>
|
||||||
<desc>Terminate SPGW</desc>
|
<desc>Terminate SPGW</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>test-05-tm1</htmlTabRef>
|
<htmlTabRef>test-05-tm1</htmlTabRef>
|
||||||
<htmlTabName>Test-05MHz-TM1</htmlTabName>
|
<htmlTabName>Test-05MHz-TM1</htmlTabName>
|
||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030104 040301 040501 040602 040601 040603 040604 040605 040642 040641 040643 040644 040645 040401 040201 030201
|
030104 040301 040501 040602 040601 040603 040604 040605 040642 040641 040643 040644 040645 040401 040201 030201
|
||||||
@@ -52,61 +52,61 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040501">
|
<testCase id="040501">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (5MHz - 20 sec)</desc>
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040601">
|
<testCase id="040601">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(balanced)</desc>
|
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(balanced)</desc>
|
||||||
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040602">
|
<testCase id="040602">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
||||||
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040603">
|
<testCase id="040603">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(unbalanced)</desc>
|
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(unbalanced)</desc>
|
||||||
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>unbalanced</iperf_profile>
|
<iperf_profile>unbalanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040604">
|
<testCase id="040604">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040605">
|
<testCase id="040605">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/TCP)(30 sec)</desc>
|
<desc>iperf (5MHz - DL/TCP)(30 sec)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040641">
|
<testCase id="040641">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -0,0 +1,151 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
030105 040301 040502 040606 040601 040603 040608 040605 040646 040641 040643 040648 040645 040401 040201 030201
|
||||||
|
-->
|
||||||
|
<testCaseList>
|
||||||
|
<htmlTabRef>test-05-tm2</htmlTabRef>
|
||||||
|
<htmlTabName>Test-05MHz-TM2</htmlTabName>
|
||||||
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
030201
|
||||||
|
040101
|
||||||
|
030105 040301 040502 040606 040608 040646 040648 040401 040201 030201
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="030105">
|
||||||
|
<class>Initialize_eNB</class>
|
||||||
|
<desc>Initialize eNB (TDD/Band40/5MHz)</desc>
|
||||||
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band40.tm2.25PRB.FairScheduler.usrpb210.conf</Initialize_eNB_args>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="030201">
|
||||||
|
<class>Terminate_eNB</class>
|
||||||
|
<desc>Terminate eNB</desc>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040101">
|
||||||
|
<class>Initialize_UE</class>
|
||||||
|
<desc>Initialize UE</desc>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040201">
|
||||||
|
<class>Terminate_UE</class>
|
||||||
|
<desc>Terminate UE</desc>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040301">
|
||||||
|
<class>Attach_UE</class>
|
||||||
|
<desc>Attach UE</desc>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040401">
|
||||||
|
<class>Detach_UE</class>
|
||||||
|
<desc>Detach UE</desc>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040502">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
|
<ping_args>-c 20</ping_args>
|
||||||
|
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040601">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(balanced)</desc>
|
||||||
|
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>balanced</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040606">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
||||||
|
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040603">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(unbalanced)</desc>
|
||||||
|
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>unbalanced</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040608">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
||||||
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040605">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - DL/TCP)(30 sec)</desc>
|
||||||
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040641">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - UL/2Mbps/UDP)(30 sec)(balanced)</desc>
|
||||||
|
<iperf_args>-u -b 2M -t 30 -i 1 -R</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>balanced</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040646">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - UL/2Mbps/UDP)(30 sec)(single-ue)</desc>
|
||||||
|
<iperf_args>-u -b 2M -t 30 -i 1 -R</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040643">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - UL/2Mbps/UDP)(30 sec)(unbalanced)</desc>
|
||||||
|
<iperf_args>-u -b 2M -t 30 -i 1 -R</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>unbalanced</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040648">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - UL/TCP)(30 sec)(single-ue)</desc>
|
||||||
|
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040645">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (5MHz - UL/TCP)(30 sec)</desc>
|
||||||
|
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>test-10-tm1</htmlTabRef>
|
<htmlTabRef>test-10-tm1</htmlTabRef>
|
||||||
<htmlTabName>Test-10MHz-TM1</htmlTabName>
|
<htmlTabName>Test-10MHz-TM1</htmlTabName>
|
||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030114 040301 040511 040612 040611 040613 040614 040615 040652 040651 040653 040654 040655 040401 040201 030201
|
030114 040301 040511 040612 040611 040613 040614 040615 040652 040651 040653 040654 040655 040401 040201 030201
|
||||||
@@ -32,10 +32,10 @@
|
|||||||
<TestCaseExclusionList></TestCaseExclusionList>
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
<testCase id="030114">
|
<testCase id="030114">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize eNB (TDD/Band40/10MHz/info)</desc>
|
<desc>Initialize eNB (TDD/Band40/10MHz/info)</desc>
|
||||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band40.tm1.50PRB.FairScheduler.usrpb210.conf</Initialize_eNB_args>
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band40.tm1.50PRB.FairScheduler.usrpb210.conf</Initialize_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030201">
|
<testCase id="030201">
|
||||||
<class>Terminate_eNB</class>
|
<class>Terminate_eNB</class>
|
||||||
@@ -52,38 +52,38 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040511">
|
<testCase id="040511">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (10MHz - 20 sec)</desc>
|
<desc>ping (10MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040611">
|
<testCase id="040611">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/13.5Mbps/UDP)(30 sec)(balanced)</desc>
|
<desc>iperf (10MHz - DL/13.5Mbps/UDP)(30 sec)(balanced)</desc>
|
||||||
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040612">
|
<testCase id="040612">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/13.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
<desc>iperf (10MHz - DL/13.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
||||||
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040613">
|
<testCase id="040613">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
@@ -93,20 +93,20 @@
|
|||||||
<iperf_profile>unbalanced</iperf_profile>
|
<iperf_profile>unbalanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040614">
|
<testCase id="040614">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/TCP)(30 sec)(single-ue)</desc>
|
<desc>iperf (10MHz - DL/TCP)(30 sec)(single-ue)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040615">
|
<testCase id="040615">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/TCP)(30 sec)</desc>
|
<desc>iperf (10MHz - DL/TCP)(30 sec)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040651">
|
<testCase id="040651">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>test-20-tm1</htmlTabRef>
|
<htmlTabRef>test-20-tm1</htmlTabRef>
|
||||||
<htmlTabName>Test-20MHz-TM1</htmlTabName>
|
<htmlTabName>Test-20MHz-TM1</htmlTabName>
|
||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030124 040301 040521 040622 040621 040623 040624 040625 040662 040661 040663 040664 040665 040401 040201 030201
|
030124 040301 040521 040622 040621 040623 040624 040625 040662 040661 040663 040664 040665 040401 040201 030201
|
||||||
@@ -32,10 +32,10 @@
|
|||||||
<TestCaseExclusionList></TestCaseExclusionList>
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
<testCase id="030124">
|
<testCase id="030124">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize eNB (TDD/Band40/20MHz/info)</desc>
|
<desc>Initialize eNB (TDD/Band40/20MHz/info)</desc>
|
||||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band40.tm1.100PRB.FairScheduler.usrpb210.conf</Initialize_eNB_args>
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band40.tm1.100PRB.FairScheduler.usrpb210.conf</Initialize_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030201">
|
<testCase id="030201">
|
||||||
<class>Terminate_eNB</class>
|
<class>Terminate_eNB</class>
|
||||||
@@ -52,38 +52,38 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040521">
|
<testCase id="040521">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (20MHz - 20 sec)</desc>
|
<desc>ping (20MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040621">
|
<testCase id="040621">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/13.5Mbps/UDP)(30 sec)(balanced)</desc>
|
<desc>iperf (20MHz - DL/13.5Mbps/UDP)(30 sec)(balanced)</desc>
|
||||||
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040622">
|
<testCase id="040622">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/13.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
<desc>iperf (20MHz - DL/13.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
||||||
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040623">
|
<testCase id="040623">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
@@ -93,20 +93,20 @@
|
|||||||
<iperf_profile>unbalanced</iperf_profile>
|
<iperf_profile>unbalanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040624">
|
<testCase id="040624">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/TCP)(30 sec)(single-ue)</desc>
|
<desc>iperf (20MHz - DL/TCP)(30 sec)(single-ue)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040625">
|
<testCase id="040625">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/TCP)(30 sec)</desc>
|
<desc>iperf (20MHz - DL/TCP)(30 sec)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040661">
|
<testCase id="040661">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>tracer-test</htmlTabRef>
|
<htmlTabRef>tracer-test</htmlTabRef>
|
||||||
<htmlTabName>T-Tracer</htmlTabName>
|
<htmlTabName>T-Tracer</htmlTabName>
|
||||||
<htmlTabIcon>duplicate</htmlTabIcon>
|
<htmlTabIcon>duplicate</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
040101
|
040101
|
||||||
030100 040300 040401 040201 030201
|
030100 040300 040401 040201 030201
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
@@ -51,15 +51,15 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040300">
|
<testCase id="040300">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach single UE</desc>
|
<desc>Attach single UE</desc>
|
||||||
<nbMaxUEtoAttach>1</nbMaxUEtoAttach>
|
<nbMaxUEtoAttach>1</nbMaxUEtoAttach>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -36,10 +36,10 @@
|
|||||||
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="050101">
|
<testCase id="050101">
|
||||||
<class>Initialize_HSS</class>
|
<class>Initialize_HSS</class>
|
||||||
<desc>Initialize HSS</desc>
|
<desc>Initialize HSS</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="060101">
|
<testCase id="060101">
|
||||||
<class>Initialize_MME</class>
|
<class>Initialize_MME</class>
|
||||||
|
|||||||
@@ -28,15 +28,101 @@
|
|||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030101 040301 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201 030201
|
030101 040301 040501 040603 040604 040605 040606 040607 040641 040642 040643 040644 040401 040201 030201
|
||||||
|
030102 000010 040301 040502 000011 040302 000001 000012 040303 000002 000013 040503 040401 040201 030201
|
||||||
|
050102
|
||||||
|
030102 000020 040301 040504 000021 040302 000001 000022 040303 000002 040504 000023 040401 040201 030201
|
||||||
|
050202
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList></TestCaseExclusionList>
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="000001">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Waiting for 35 seconds</desc>
|
||||||
|
<idle_sleep_time_in_sec>35</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Waiting for 10 seconds</desc>
|
||||||
|
<idle_sleep_time_in_sec>10</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000010">
|
||||||
|
<class>CheckStatusUE</class>
|
||||||
|
<desc>Check UE(s) status before attachment</desc>
|
||||||
|
<expectedNbOfConnectedUEs>0</expectedNbOfConnectedUEs>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000011">
|
||||||
|
<class>CheckStatusUE</class>
|
||||||
|
<desc>Check UE(s) status before data disabling</desc>
|
||||||
|
<expectedNbOfConnectedUEs>2</expectedNbOfConnectedUEs>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000012">
|
||||||
|
<class>CheckStatusUE</class>
|
||||||
|
<desc>Check UE(s) status after data disabling</desc>
|
||||||
|
<expectedNbOfConnectedUEs>0</expectedNbOfConnectedUEs>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000013">
|
||||||
|
<class>CheckStatusUE</class>
|
||||||
|
<desc>Check UE(s) status after data re-enabling</desc>
|
||||||
|
<expectedNbOfConnectedUEs>2</expectedNbOfConnectedUEs>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000020">
|
||||||
|
<class>CheckStatusUE</class>
|
||||||
|
<desc>Check UE(s) status before attachment</desc>
|
||||||
|
<expectedNbOfConnectedUEs>0</expectedNbOfConnectedUEs>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000021">
|
||||||
|
<class>CheckStatusUE</class>
|
||||||
|
<desc>Check UE(s) status before data disabling</desc>
|
||||||
|
<expectedNbOfConnectedUEs>2</expectedNbOfConnectedUEs>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000022">
|
||||||
|
<class>CheckStatusUE</class>
|
||||||
|
<desc>Check UE(s) status after data disabling</desc>
|
||||||
|
<expectedNbOfConnectedUEs>0</expectedNbOfConnectedUEs>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000023">
|
||||||
|
<class>CheckStatusUE</class>
|
||||||
|
<desc>Check UE(s) status after data re-enabling</desc>
|
||||||
|
<expectedNbOfConnectedUEs>2</expectedNbOfConnectedUEs>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="050102">
|
||||||
|
<class>Initialize_FlexranCtrl</class>
|
||||||
|
<desc>Starting Flexran Controller</desc>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="050202">
|
||||||
|
<class>Terminate_FlexranCtrl</class>
|
||||||
|
<desc>Stopping Flexran Controller</desc>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030101">
|
<testCase id="030101">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
|
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
|
||||||
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="030102">
|
||||||
|
<class>Initialize_eNB</class>
|
||||||
|
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
|
||||||
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="030103">
|
||||||
|
<class>Initialize_eNB</class>
|
||||||
|
<desc>Initialize eNB (FDD/Band7/5MHz)</desc>
|
||||||
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band7.tm1.25PRB.usrpb210.conf</Initialize_eNB_args>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030201">
|
<testCase id="030201">
|
||||||
<class>Terminate_eNB</class>
|
<class>Terminate_eNB</class>
|
||||||
<desc>Terminate eNB</desc>
|
<desc>Terminate eNB</desc>
|
||||||
@@ -52,62 +138,100 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040501">
|
<testCase id="040302">
|
||||||
<class>Ping</class>
|
<class>DataDisable_UE</class>
|
||||||
<desc>ping (5MHz - 20 sec)</desc>
|
<desc>Disabling Data Service on UE</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
</testCase>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
|
||||||
</testCase>
|
|
||||||
|
|
||||||
<testCase id="040603">
|
<testCase id="040303">
|
||||||
|
<class>DataEnable_UE</class>
|
||||||
|
<desc>Enabling Data Service on UE</desc>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040501">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
|
<ping_args>-c 20</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040502">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
|
<ping_args>-c 20</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040503">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
|
<ping_args>-c 20</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040504">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
|
<ping_args>-c 20</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040505">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
|
<ping_args>-c 20</ping_args>
|
||||||
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="040603">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040604">
|
<testCase id="040604">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040605">
|
<testCase id="040605">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(unbalanced profile)</desc>
|
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(unbalanced profile)</desc>
|
||||||
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>unbalanced</iperf_profile>
|
<iperf_profile>unbalanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040606">
|
<testCase id="040606">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (5MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040607">
|
<testCase id="040607">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/TCP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (5MHz - DL/TCP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040641">
|
<testCase id="040641">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
@@ -125,20 +249,20 @@
|
|||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040643">
|
<testCase id="040643">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (5MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040644">
|
<testCase id="040644">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - UL/TCP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (5MHz - UL/TCP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -52,62 +52,62 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040511">
|
<testCase id="040511">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (10MHz - 20 sec)</desc>
|
<desc>ping (10MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040613">
|
<testCase id="040613">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/30Mbps/UDP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (10MHz - DL/30Mbps/UDP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-u -b 30M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 30M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040614">
|
<testCase id="040614">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/30Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (10MHz - DL/30Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 30M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 30M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040615">
|
<testCase id="040615">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/30Mbps/UDP)(30 sec)(unbalanced profile)</desc>
|
<desc>iperf (10MHz - DL/30Mbps/UDP)(30 sec)(unbalanced profile)</desc>
|
||||||
<iperf_args>-u -b 30M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 30M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>unbalanced</iperf_profile>
|
<iperf_profile>unbalanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040616">
|
<testCase id="040616">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (10MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040617">
|
<testCase id="040617">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/TCP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (10MHz - DL/TCP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040651">
|
<testCase id="040651">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
@@ -125,20 +125,20 @@
|
|||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040653">
|
<testCase id="040653">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (10MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040654">
|
<testCase id="040654">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - UL/TCP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (10MHz - UL/TCP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -52,62 +52,62 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040521">
|
<testCase id="040521">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (20MHz - 20 sec)</desc>
|
<desc>ping (20MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040623">
|
<testCase id="040623">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/70Mbps/UDP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (20MHz - DL/70Mbps/UDP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-u -b 70M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 70M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040624">
|
<testCase id="040624">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/70Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (20MHz - DL/70Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 70M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 70M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040625">
|
<testCase id="040625">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/70Mbps/UDP)(30 sec)(unbalanced profile)</desc>
|
<desc>iperf (20MHz - DL/70Mbps/UDP)(30 sec)(unbalanced profile)</desc>
|
||||||
<iperf_args>-u -b 70M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 70M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>unbalanced</iperf_profile>
|
<iperf_profile>unbalanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040626">
|
<testCase id="040626">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (20MHz - DL/TCP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040627">
|
<testCase id="040627">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/TCP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (20MHz - DL/TCP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040661">
|
<testCase id="040661">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
@@ -125,20 +125,20 @@
|
|||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040663">
|
<testCase id="040663">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (20MHz - UL/TCP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040664">
|
<testCase id="040664">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - UL/TCP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (20MHz - UL/TCP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
<iperf_args>-t 30 -i 1 -fm -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -51,15 +51,15 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040300">
|
<testCase id="040300">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach single UE</desc>
|
<desc>Attach single UE</desc>
|
||||||
<nbMaxUEtoAttach>1</nbMaxUEtoAttach>
|
<nbMaxUEtoAttach>1</nbMaxUEtoAttach>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -27,11 +27,17 @@
|
|||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030142 030141 040301 040541 040601 040641 040401 040201 030201 030202
|
030142 030141 000002 040301 000002 040541 040601 040641 040401 040201 030201 030202
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList>
|
<TestCaseExclusionList>
|
||||||
</TestCaseExclusionList>
|
</TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030141">
|
<testCase id="030141">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize DU (FDD/Band7/5MHz)</desc>
|
<desc>Initialize DU (FDD/Band7/5MHz)</desc>
|
||||||
@@ -68,30 +74,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040541">
|
<testCase id="040541">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (5MHz - 20 sec)</desc>
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040601">
|
<testCase id="040601">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040641">
|
<testCase id="040641">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -27,11 +27,17 @@
|
|||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030152 030151 040301 040551 040611 040651 040401 040201 030201 030202
|
030152 030151 000002 040301 000002 040551 040611 040651 040401 040201 030201 030202
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList>
|
<TestCaseExclusionList>
|
||||||
</TestCaseExclusionList>
|
</TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030151">
|
<testCase id="030151">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize DU (FDD/Band7/10MHz)</desc>
|
<desc>Initialize DU (FDD/Band7/10MHz)</desc>
|
||||||
@@ -68,30 +74,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040551">
|
<testCase id="040551">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (10MHz - 20 sec)</desc>
|
<desc>ping (10MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040611">
|
<testCase id="040611">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/32Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (10MHz - DL/32Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 32M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 32M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040651">
|
<testCase id="040651">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -27,11 +27,17 @@
|
|||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030162 030161 040301 040561 040621 040661 040401 040201 030201 030202
|
030162 030161 000002 040301 000002 040561 040621 040661 040401 040201 030201 030202
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList>
|
<TestCaseExclusionList>
|
||||||
</TestCaseExclusionList>
|
</TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030161">
|
<testCase id="030161">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize DU (FDD/Band7/20MHz)</desc>
|
<desc>Initialize DU (FDD/Band7/20MHz)</desc>
|
||||||
@@ -68,30 +74,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040561">
|
<testCase id="040561">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (20MHz - 20 sec)</desc>
|
<desc>ping (20MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040621">
|
<testCase id="040621">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/70Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (20MHz - DL/70Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 70M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 70M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040661">
|
<testCase id="040661">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>build-tab</htmlTabRef>
|
<htmlTabRef>build-tab</htmlTabRef>
|
||||||
<htmlTabName>Build</htmlTabName>
|
<htmlTabName>Build</htmlTabName>
|
||||||
<htmlTabIcon>wrench</htmlTabIcon>
|
<htmlTabIcon>wrench</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
010101
|
010101
|
||||||
050101 060101 070101
|
050101 060101 070101
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
@@ -34,13 +34,13 @@
|
|||||||
<testCase id="010101">
|
<testCase id="010101">
|
||||||
<class>Build_eNB</class>
|
<class>Build_eNB</class>
|
||||||
<desc>Build eNB (USRP -- Ethernet Fronthaul)</desc>
|
<desc>Build eNB (USRP -- Ethernet Fronthaul)</desc>
|
||||||
<Build_eNB_args>-t ETHERNET -w USRP -c --eNB</Build_eNB_args>
|
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="050101">
|
<testCase id="050101">
|
||||||
<class>Initialize_HSS</class>
|
<class>Initialize_HSS</class>
|
||||||
<desc>Initialize HSS</desc>
|
<desc>Initialize HSS</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="060101">
|
<testCase id="060101">
|
||||||
<class>Initialize_MME</class>
|
<class>Initialize_MME</class>
|
||||||
|
|||||||
@@ -24,25 +24,25 @@
|
|||||||
<htmlTabRef>epc-closure</htmlTabRef>
|
<htmlTabRef>epc-closure</htmlTabRef>
|
||||||
<htmlTabName>EPC-Closure</htmlTabName>
|
<htmlTabName>EPC-Closure</htmlTabName>
|
||||||
<htmlTabIcon>log-out</htmlTabIcon>
|
<htmlTabIcon>log-out</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
050201 060201 070201
|
050201 060201 070201
|
||||||
</TestCaseRequestedList>
|
</TestCaseRequestedList>
|
||||||
<TestCaseExclusionList>
|
<TestCaseExclusionList>
|
||||||
</TestCaseExclusionList>
|
</TestCaseExclusionList>
|
||||||
|
|
||||||
<testCase id="050201">
|
<testCase id="050201">
|
||||||
<class>Terminate_HSS</class>
|
<class>Terminate_HSS</class>
|
||||||
<desc>Terminate HSS</desc>
|
<desc>Terminate HSS</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="060201">
|
<testCase id="060201">
|
||||||
<class>Terminate_MME</class>
|
<class>Terminate_MME</class>
|
||||||
<desc>Terminate MME</desc>
|
<desc>Terminate MME</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="070201">
|
<testCase id="070201">
|
||||||
<class>Terminate_SPGW</class>
|
<class>Terminate_SPGW</class>
|
||||||
<desc>Terminate SPGW</desc>
|
<desc>Terminate SPGW</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>test-05</htmlTabRef>
|
<htmlTabRef>test-05</htmlTabRef>
|
||||||
<htmlTabName>Test-05MHz</htmlTabName>
|
<htmlTabName>Test-05MHz</htmlTabName>
|
||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030104 030105 040301 040501 040602 040642 040401 040201 030201 030202
|
030104 030105 040301 040501 040602 040642 040401 040201 030201 030202
|
||||||
@@ -68,30 +68,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040501">
|
<testCase id="040501">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (5MHz - 20 sec)</desc>
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040602">
|
<testCase id="040602">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
<desc>iperf (5MHz - DL/6.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
||||||
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 6.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040642">
|
<testCase id="040642">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>test-10</htmlTabRef>
|
<htmlTabRef>test-10</htmlTabRef>
|
||||||
<htmlTabName>Test-10MHz</htmlTabName>
|
<htmlTabName>Test-10MHz</htmlTabName>
|
||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030114 030115 040301 040511 040612 040652 040401 040201 030201 030202
|
030114 030115 040301 040511 040612 040652 040401 040201 030201 030202
|
||||||
@@ -40,11 +40,11 @@
|
|||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030115">
|
<testCase id="030115">
|
||||||
<class>Initialize_eNB</class>
|
<class>Initialize_eNB</class>
|
||||||
<desc>Initialize RCC (TDD/Band40/10MHz/info)</desc>
|
<desc>Initialize RCC (TDD/Band40/10MHz/info)</desc>
|
||||||
<Initialize_eNB_args>-O ci-scripts/conf_files/rcc.band40.tm1.50PRB.FairScheduler.usrpb210.conf</Initialize_eNB_args>
|
<Initialize_eNB_args>-O ci-scripts/conf_files/rcc.band40.tm1.50PRB.FairScheduler.usrpb210.conf</Initialize_eNB_args>
|
||||||
<eNB_instance>1</eNB_instance>
|
<eNB_instance>1</eNB_instance>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="030201">
|
<testCase id="030201">
|
||||||
<class>Terminate_eNB</class>
|
<class>Terminate_eNB</class>
|
||||||
@@ -68,30 +68,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040511">
|
<testCase id="040511">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (10MHz - 20 sec)</desc>
|
<desc>ping (10MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040612">
|
<testCase id="040612">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/13.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
<desc>iperf (10MHz - DL/13.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
||||||
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040652">
|
<testCase id="040652">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<htmlTabRef>test-20</htmlTabRef>
|
<htmlTabRef>test-20</htmlTabRef>
|
||||||
<htmlTabName>Test-20MHz</htmlTabName>
|
<htmlTabName>Test-20MHz</htmlTabName>
|
||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
030201
|
030201
|
||||||
040101
|
040101
|
||||||
030124 030125 040301 040521 040622 040662 040401 040201 030201 030202
|
030124 030125 040301 040521 040622 040662 040401 040201 030201 030202
|
||||||
@@ -68,30 +68,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040521">
|
<testCase id="040521">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (20MHz - 20 sec)</desc>
|
<desc>ping (20MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
<ping_packetloss_threshold>25</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040622">
|
<testCase id="040622">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/13.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
<desc>iperf (20MHz - DL/13.5Mbps/UDP)(30 sec)(single-ue)</desc>
|
||||||
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 13.5M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040662">
|
<testCase id="040662">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -34,13 +34,13 @@
|
|||||||
<testCase id="010101">
|
<testCase id="010101">
|
||||||
<class>Build_eNB</class>
|
<class>Build_eNB</class>
|
||||||
<desc>Build eNB (USRP -- Ethernet Fronthaul)</desc>
|
<desc>Build eNB (USRP -- Ethernet Fronthaul)</desc>
|
||||||
<Build_eNB_args>-t ETHERNET -w USRP -c --eNB</Build_eNB_args>
|
<Build_eNB_args>-w USRP -c --eNB</Build_eNB_args>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="050101">
|
<testCase id="050101">
|
||||||
<class>Initialize_HSS</class>
|
<class>Initialize_HSS</class>
|
||||||
<desc>Initialize HSS</desc>
|
<desc>Initialize HSS</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="060101">
|
<testCase id="060101">
|
||||||
<class>Initialize_MME</class>
|
<class>Initialize_MME</class>
|
||||||
|
|||||||
@@ -68,30 +68,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040501">
|
<testCase id="040501">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (5MHz - 20 sec)</desc>
|
<desc>ping (5MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040604">
|
<testCase id="040604">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (5MHz - DL/15Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 15M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040642">
|
<testCase id="040642">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -68,30 +68,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040511">
|
<testCase id="040511">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (10MHz - 20 sec)</desc>
|
<desc>ping (10MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040614">
|
<testCase id="040614">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - DL/32Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (10MHz - DL/32Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 32M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 32M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040652">
|
<testCase id="040652">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -68,30 +68,30 @@
|
|||||||
<desc>Terminate UE</desc>
|
<desc>Terminate UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040301">
|
<testCase id="040301">
|
||||||
<class>Attach_UE</class>
|
<class>Attach_UE</class>
|
||||||
<desc>Attach UE</desc>
|
<desc>Attach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040401">
|
<testCase id="040401">
|
||||||
<class>Detach_UE</class>
|
<class>Detach_UE</class>
|
||||||
<desc>Detach UE</desc>
|
<desc>Detach UE</desc>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040521">
|
<testCase id="040521">
|
||||||
<class>Ping</class>
|
<class>Ping</class>
|
||||||
<desc>ping (20MHz - 20 sec)</desc>
|
<desc>ping (20MHz - 20 sec)</desc>
|
||||||
<ping_args>-c 20</ping_args>
|
<ping_args>-c 20</ping_args>
|
||||||
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040624">
|
<testCase id="040624">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (20MHz - DL/50Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (20MHz - DL/50Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 50M -t 30 -i 1</iperf_args>
|
<iperf_args>-u -b 50M -t 30 -i 1</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040662">
|
<testCase id="040662">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
|
|||||||
@@ -21,9 +21,9 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
<testCaseList>
|
<testCaseList>
|
||||||
<htmlTabRef>test-10mhz-orange</htmlTabRef>
|
<htmlTabRef>test-10mhz-orange</htmlTabRef>
|
||||||
<htmlTabName>Test-10Mhz-Orange</htmlTabName>
|
<htmlTabName>Test-10Mhz-Orange</htmlTabName>
|
||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
090109
|
090109
|
||||||
090110 000001 090109
|
090110 000001 090109
|
||||||
|
|||||||
@@ -21,9 +21,9 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
<testCaseList>
|
<testCaseList>
|
||||||
<htmlTabRef>test-10mHz-sfr</htmlTabRef>
|
<htmlTabRef>test-10mHz-sfr</htmlTabRef>
|
||||||
<htmlTabName>Test-10MHz-SFR</htmlTabName>
|
<htmlTabName>Test-10MHz-SFR</htmlTabName>
|
||||||
<htmlTabIcon>tasks</htmlTabIcon>
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
<TestCaseRequestedList>
|
<TestCaseRequestedList>
|
||||||
090109
|
090109
|
||||||
090111 000001 090109
|
090111 000001 090109
|
||||||
|
|||||||
+41
-160
@@ -241,16 +241,12 @@ add_boolean_option(DEBUG_MAC_INTERFACE False "print MAC-RLC PDU exchange to stdo
|
|||||||
add_boolean_option(TRACE_RLC_PAYLOAD False "print RLC PDU to stdout") # if true, make sure that global and PDCP log levels are trace
|
add_boolean_option(TRACE_RLC_PAYLOAD False "print RLC PDU to stdout") # if true, make sure that global and PDCP log levels are trace
|
||||||
add_boolean_option(TEST_OMG False "???")
|
add_boolean_option(TEST_OMG False "???")
|
||||||
add_boolean_option(DEBUG_OMG False "???")
|
add_boolean_option(DEBUG_OMG False "???")
|
||||||
add_boolean_option(XFORMS False "This adds the possibility to see the signal oscilloscope")
|
|
||||||
add_boolean_option(PRINT_STATS False "This adds the possibility to see the status")
|
add_boolean_option(PRINT_STATS False "This adds the possibility to see the status")
|
||||||
add_boolean_option(T_TRACER True "Activate the T tracer, a debugging/monitoring framework" )
|
add_boolean_option(T_TRACER True "Activate the T tracer, a debugging/monitoring framework" )
|
||||||
add_boolean_option(UE_AUTOTEST_TRACE False "Activate UE autotest specific logs")
|
add_boolean_option(UE_AUTOTEST_TRACE False "Activate UE autotest specific logs")
|
||||||
add_boolean_option(UE_DEBUG_TRACE False "Activate UE debug trace")
|
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(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(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")
|
add_boolean_option(DEBUG_CONSOLE False "makes debugging easier, disables stdout/stderr buffering")
|
||||||
|
|
||||||
@@ -522,7 +518,7 @@ add_library(F1AP
|
|||||||
add_list1_option(NB_ANTENNAS_RX "2" "Number of antennas in reception" "1" "2" "4")
|
add_list1_option(NB_ANTENNAS_RX "2" "Number of antennas in reception" "1" "2" "4")
|
||||||
add_list1_option(NB_ANTENNAS_TX "4" "Number of antennas in transmission" "1" "2" "4")
|
add_list1_option(NB_ANTENNAS_TX "4" "Number of antennas in transmission" "1" "2" "4")
|
||||||
|
|
||||||
add_list2_option(RF_BOARD "EXMIMO" "RF head type" "None" "EXMIMO" "OAI_USRP" "OAI_BLADERF" "CPRIGW" "OAI_LMSSDR" "OAI_SIMU")
|
add_list2_option(RF_BOARD "RF head type" "None" "OAI_USRP" "OAI_BLADERF" "CPRIGW" "OAI_LMSSDR" "OAI_SIMU")
|
||||||
|
|
||||||
|
|
||||||
add_list2_option(TRANSP_PRO "None" "Transport protocol type" "None" "ETHERNET")
|
add_list2_option(TRANSP_PRO "None" "Transport protocol type" "None" "ETHERNET")
|
||||||
@@ -547,15 +543,6 @@ set (SHLIB_LOADER_SOURCES
|
|||||||
# include RF devices / transport protocols library modules
|
# include RF devices / transport protocols library modules
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
include_directories("${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/")
|
|
||||||
include_directories ("${OPENAIR_TARGETS}/ARCH/EXMIMO/DEFS/")
|
|
||||||
#set (option_HWEXMIMOLIB_lib "-l ")
|
|
||||||
set(HWLIB_EXMIMO_SOURCE
|
|
||||||
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
|
|
||||||
# ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c
|
|
||||||
)
|
|
||||||
add_library(oai_exmimodevif MODULE ${HWLIB_EXMIMO_SOURCE} )
|
|
||||||
|
|
||||||
include_directories("${OPENAIR_TARGETS}/ARCH/USRP/USERSPACE/LIB/")
|
include_directories("${OPENAIR_TARGETS}/ARCH/USRP/USERSPACE/LIB/")
|
||||||
set(HWLIB_USRP_SOURCE
|
set(HWLIB_USRP_SOURCE
|
||||||
${OPENAIR_TARGETS}/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
|
${OPENAIR_TARGETS}/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
|
||||||
@@ -596,20 +583,6 @@ add_library(oai_irisdevif MODULE ${HWLIB_IRIS_SOURCE})
|
|||||||
target_include_directories(oai_irisdevif PRIVATE /usr/local/lib/SoapySDR/modules0.7/)
|
target_include_directories(oai_irisdevif PRIVATE /usr/local/lib/SoapySDR/modules0.7/)
|
||||||
target_link_libraries(oai_irisdevif SoapySDR)
|
target_link_libraries(oai_irisdevif SoapySDR)
|
||||||
|
|
||||||
include_directories("${OPENAIR_TARGETS}/ARCH/mobipass/")
|
|
||||||
set(TPLIB_MOBIPASS_SOURCE
|
|
||||||
${OPENAIR_TARGETS}/ARCH/mobipass/interface.c
|
|
||||||
${OPENAIR_TARGETS}/ARCH/mobipass/mobipass.c
|
|
||||||
${OPENAIR_TARGETS}/ARCH/mobipass/queues.c
|
|
||||||
)
|
|
||||||
add_library(oai_mobipass MODULE ${TPLIB_MOBIPASS_SOURCE} )
|
|
||||||
|
|
||||||
# Hide all functions/variables in the mobipass library.
|
|
||||||
# Use __attribute__((__visibility__("default")))
|
|
||||||
# in the source code to unhide a function/variable.
|
|
||||||
get_target_property(mobipas_cflags oai_mobipass COMPILE_FLAGS)
|
|
||||||
set_target_properties(oai_mobipass PROPERTIES COMPILE_FLAGS "${mobipass_cflags} -fvisibility=hidden")
|
|
||||||
|
|
||||||
# TCP bridge libraries
|
# TCP bridge libraries
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@@ -819,8 +792,6 @@ include_directories("${OPENAIR3_DIR}/UDP")
|
|||||||
include_directories("${OPENAIR3_DIR}/GTPV1-U")
|
include_directories("${OPENAIR3_DIR}/GTPV1-U")
|
||||||
include_directories("${OPENAIR_DIR}/targets/COMMON")
|
include_directories("${OPENAIR_DIR}/targets/COMMON")
|
||||||
include_directories("${OPENAIR_DIR}/targets/ARCH/COMMON")
|
include_directories("${OPENAIR_DIR}/targets/ARCH/COMMON")
|
||||||
include_directories("${OPENAIR_DIR}/targets/ARCH/EXMIMO/USERSPACE/LIB/")
|
|
||||||
include_directories("${OPENAIR_DIR}/targets/ARCH/EXMIMO/DEFS")
|
|
||||||
include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/PHY")
|
include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/PHY")
|
||||||
include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC")
|
include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/MAC")
|
||||||
include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/RRC")
|
include_directories("${OPENAIR2_DIR}/ENB_APP/CONTROL_MODULES/RRC")
|
||||||
@@ -1240,13 +1211,13 @@ set(PHY_SRC
|
|||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pcfich.c
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pcfich.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch.c
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pucch.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch.c
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/pmch.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_demodulation.c
|
# ${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_demodulation.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_decoding.c
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_decoding.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/rar_tools.c
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/rar_tools.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/uci_tools.c
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/uci_tools.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/freq_equalization.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_adjust_sync_eNB.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
|
# ${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
|
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_eNB_measurements.c
|
||||||
${OPENAIR1_DIR}/PHY/INIT/lte_init.c
|
${OPENAIR1_DIR}/PHY/INIT/lte_init.c
|
||||||
)
|
)
|
||||||
@@ -1254,6 +1225,11 @@ set(PHY_SRC
|
|||||||
set(PHY_SRC_RU
|
set(PHY_SRC_RU
|
||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if4_tools.c
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if4_tools.c
|
||||||
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if5_tools.c
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/if5_tools.c
|
||||||
|
${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/drs_modulation.c
|
||||||
|
${OPENAIR1_DIR}/PHY/LTE_TRANSPORT/ulsch_demodulation.c
|
||||||
|
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
|
||||||
|
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/lte_adjust_sync_eNB.c
|
||||||
|
${OPENAIR1_DIR}/PHY/LTE_ESTIMATION/freq_equalization.c
|
||||||
${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_ul.c
|
${OPENAIR1_DIR}/PHY/MODULATION/slot_fep_ul.c
|
||||||
${OPENAIR1_DIR}/PHY/MODULATION/ul_7_5_kHz.c
|
${OPENAIR1_DIR}/PHY/MODULATION/ul_7_5_kHz.c
|
||||||
${OPENAIR1_DIR}/PHY/MODULATION/gen_75KHz.cpp
|
${OPENAIR1_DIR}/PHY/MODULATION/gen_75KHz.cpp
|
||||||
@@ -1870,10 +1846,6 @@ ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c
|
|||||||
#${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/emu_transport.c
|
#${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/emu_transport.c
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(OPENAIR0_LIB
|
|
||||||
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c
|
|
||||||
)
|
|
||||||
|
|
||||||
include_directories("${NFAPI_DIR}/nfapi/public_inc")
|
include_directories("${NFAPI_DIR}/nfapi/public_inc")
|
||||||
include_directories("${NFAPI_DIR}/common/public_inc")
|
include_directories("${NFAPI_DIR}/common/public_inc")
|
||||||
include_directories("${NFAPI_DIR}/pnf/public_inc")
|
include_directories("${NFAPI_DIR}/pnf/public_inc")
|
||||||
@@ -1991,16 +1963,28 @@ endif()
|
|||||||
|
|
||||||
list(APPEND ATLAS_LIBRARIES lapack lapacke)
|
list(APPEND ATLAS_LIBRARIES lapack lapacke)
|
||||||
|
|
||||||
if (${XFORMS})
|
set(XFORMS_SOURCE
|
||||||
include_directories ("/usr/include/X11")
|
${OPENAIR1_DIR}/PHY/TOOLS/lte_phy_scope.c
|
||||||
set(XFORMS_SOURCE
|
)
|
||||||
${OPENAIR1_DIR}/PHY/TOOLS/lte_phy_scope.c
|
set(XFORMS_ENB_SOURCE
|
||||||
)
|
${OPENAIR1_DIR}/PHY/TOOLS/lte_enb_scope.c
|
||||||
set(XFORMS_SOURCE_SOFTMODEM
|
)
|
||||||
${OPENAIR_TARGETS}/RT/USER/stats.c
|
set(XFORMS_UE_SOURCE
|
||||||
)
|
${OPENAIR1_DIR}/PHY/TOOLS/lte_ue_scope.c
|
||||||
set(XFORMS_LIBRARIES "forms")
|
)
|
||||||
endif (${XFORMS})
|
set(XFORMS_SOURCE_SOFTMODEM
|
||||||
|
${OPENAIR_TARGETS}/RT/USER/stats.c
|
||||||
|
)
|
||||||
|
set(XFORMS_LIBRARIES "forms")
|
||||||
|
|
||||||
|
|
||||||
|
set (XFORMSINTERFACE_SOURCE
|
||||||
|
${OPENAIR1_DIR}/PHY/TOOLS/phy_scope_interface.c
|
||||||
|
)
|
||||||
|
add_library(enbscope MODULE ${XFORMS_SOURCE} ${XFORMS_SOURCE_SOFTMODEM} ${XFORMS_ENB_SOURCE})
|
||||||
|
add_library(uescope MODULE ${XFORMS_SOURCE} ${XFORMS_SOURCE_SOFTMODEM} ${XFORMS_UE_SOURCE})
|
||||||
|
target_link_libraries(enbscope ${XFORMS_LIBRARIES})
|
||||||
|
target_link_libraries(uescope ${XFORMS_LIBRARIES})
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${OPENAIR_DIR}/cmake_targets/tools/MODULES" "${CMAKE_MODULE_PATH}")
|
set(CMAKE_MODULE_PATH "${OPENAIR_DIR}/cmake_targets/tools/MODULES" "${CMAKE_MODULE_PATH}")
|
||||||
|
|
||||||
@@ -2053,6 +2037,7 @@ add_executable(lte-softmodem
|
|||||||
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
|
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
|
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
|
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
|
||||||
|
${OPENAIR_TARGETS}/RT/USER/ru_control.c
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
|
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-softmodem-common.c
|
${OPENAIR_TARGETS}/RT/USER/lte-softmodem-common.c
|
||||||
${OPENAIR2_DIR}/ENB_APP/NB_IoT_interface.c
|
${OPENAIR2_DIR}/ENB_APP/NB_IoT_interface.c
|
||||||
@@ -2068,8 +2053,7 @@ add_executable(lte-softmodem
|
|||||||
${OPENAIR_DIR}/common/utils/utils.c
|
${OPENAIR_DIR}/common/utils/utils.c
|
||||||
${OPENAIR_DIR}/common/utils/system.c
|
${OPENAIR_DIR}/common/utils/system.c
|
||||||
${GTPU_need_ITTI}
|
${GTPU_need_ITTI}
|
||||||
${XFORMS_SOURCE}
|
${XFORMSINTERFACE_SOURCE}
|
||||||
${XFORMS_SOURCE_SOFTMODEM}
|
|
||||||
${T_SOURCE}
|
${T_SOURCE}
|
||||||
${CONFIG_SOURCES}
|
${CONFIG_SOURCES}
|
||||||
${SHLIB_LOADER_SOURCES}
|
${SHLIB_LOADER_SOURCES}
|
||||||
@@ -2112,50 +2096,10 @@ target_link_libraries(du_test
|
|||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries (lte-softmodem ${LIBXML2_LIBRARIES})
|
target_link_libraries (lte-softmodem ${LIBXML2_LIBRARIES})
|
||||||
target_link_libraries (lte-softmodem 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 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES})
|
||||||
target_link_libraries (lte-softmodem ${LIB_LMS_LIBRARIES})
|
target_link_libraries (lte-softmodem ${LIB_LMS_LIBRARIES})
|
||||||
target_link_libraries (lte-softmodem ${T_LIB})
|
target_link_libraries (lte-softmodem ${T_LIB})
|
||||||
|
|
||||||
# lte-softmodem-nos1 is both eNB and UE implementation
|
|
||||||
###################################################
|
|
||||||
add_executable(lte-softmodem-nos1
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-enb.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-softmodem.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-softmodem-common.c
|
|
||||||
${OPENAIR2_DIR}/ENB_APP/NB_IoT_interface.c
|
|
||||||
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.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/utils.c
|
|
||||||
${OPENAIR_DIR}/common/utils/system.c
|
|
||||||
${GTPU_need_ITTI}
|
|
||||||
${XFORMS_SOURCE}
|
|
||||||
${XFORMS_SOURCE_SOFTMODEM}
|
|
||||||
${T_SOURCE}
|
|
||||||
${CONFIG_SOURCES}
|
|
||||||
${SHLIB_LOADER_SOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(lte-softmodem-nos1 rrc_flag s1ap_flag x2_flag)
|
|
||||||
|
|
||||||
target_link_libraries (lte-softmodem-nos1
|
|
||||||
-Wl,--start-group
|
|
||||||
RRC_LIB F1AP F1AP_LIB S1AP_LIB S1AP_ENB X2AP_LIB X2AP_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)
|
|
||||||
|
|
||||||
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 ${LIB_LMS_LIBRARIES})
|
|
||||||
target_link_libraries (lte-softmodem-nos1 ${T_LIB})
|
|
||||||
# lte-uesoftmodem is UE implementation
|
# lte-uesoftmodem is UE implementation
|
||||||
#######################################
|
#######################################
|
||||||
|
|
||||||
@@ -2165,6 +2109,7 @@ add_executable(lte-uesoftmodem
|
|||||||
${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c
|
${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-softmodem-common.c
|
${OPENAIR_TARGETS}/RT/USER/lte-softmodem-common.c
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
|
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
|
||||||
|
${OPENAIR_TARGETS}/RT/USER/ru_control.c
|
||||||
${OPENAIR_TARGETS}/RT/USER/rfsim.c
|
${OPENAIR_TARGETS}/RT/USER/rfsim.c
|
||||||
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
|
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.c
|
||||||
${OPENAIR_TARGETS}/COMMON/create_tasks_ue.c
|
${OPENAIR_TARGETS}/COMMON/create_tasks_ue.c
|
||||||
@@ -2177,8 +2122,7 @@ add_executable(lte-uesoftmodem
|
|||||||
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
|
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
|
||||||
${OPENAIR_DIR}/common/utils/utils.c
|
${OPENAIR_DIR}/common/utils/utils.c
|
||||||
${OPENAIR_DIR}/common/utils/system.c
|
${OPENAIR_DIR}/common/utils/system.c
|
||||||
${XFORMS_SOURCE}
|
${XFORMSINTERFACE_SOURCE}
|
||||||
${XFORMS_SOURCE_SOFTMODEM}
|
|
||||||
${T_SOURCE}
|
${T_SOURCE}
|
||||||
${CONFIG_SOURCES}
|
${CONFIG_SOURCES}
|
||||||
${SHLIB_LOADER_SOURCES}
|
${SHLIB_LOADER_SOURCES}
|
||||||
@@ -2193,50 +2137,11 @@ target_link_libraries (lte-uesoftmodem
|
|||||||
-Wl,--end-group z dl)
|
-Wl,--end-group z dl)
|
||||||
|
|
||||||
target_link_libraries (lte-uesoftmodem ${LIBXML2_LIBRARIES})
|
target_link_libraries (lte-uesoftmodem ${LIBXML2_LIBRARIES})
|
||||||
target_link_libraries (lte-uesoftmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES} ${ATLAS_LIBRARIES})
|
target_link_libraries (lte-uesoftmodem pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES} ${ATLAS_LIBRARIES})
|
||||||
target_link_libraries (lte-uesoftmodem ${LIB_LMS_LIBRARIES})
|
target_link_libraries (lte-uesoftmodem ${LIB_LMS_LIBRARIES})
|
||||||
target_link_libraries (lte-uesoftmodem ${T_LIB})
|
target_link_libraries (lte-uesoftmodem ${T_LIB})
|
||||||
|
|
||||||
# lte-uesoftmodem-nos1 is UE implementation
|
|
||||||
###################################################
|
|
||||||
add_executable(lte-uesoftmodem-nos1
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/rt_wrapper.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-ue.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-uesoftmodem.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-softmodem-common.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/lte-ru.c
|
|
||||||
${OPENAIR_TARGETS}/RT/USER/rfsim.c
|
|
||||||
${OPENAIR1_DIR}/SIMULATION/TOOLS/taus.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
|
|
||||||
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
|
|
||||||
${OPENAIR_DIR}/common/utils/utils.c
|
|
||||||
${OPENAIR_DIR}/common/utils/system.c
|
|
||||||
${XFORMS_SOURCE}
|
|
||||||
${XFORMS_SOURCE_SOFTMODEM}
|
|
||||||
${T_SOURCE}
|
|
||||||
${CONFIG_SOURCES}
|
|
||||||
${SHLIB_LOADER_SOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(lte-uesoftmodem-nos1 rrc_flag s1ap_flag x2_flag)
|
|
||||||
|
|
||||||
target_link_libraries (lte-uesoftmodem-nos1
|
|
||||||
-Wl,--start-group
|
|
||||||
RRC_LIB S1AP_LIB S1AP_ENB X2AP_LIB X2AP_ENB F1AP F1AP_LIB 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 SIMU
|
|
||||||
${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} LFDS7 ${ATLAS_LIBRARIES}
|
|
||||||
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
|
|
||||||
-Wl,--end-group z dl)
|
|
||||||
|
|
||||||
target_link_libraries (lte-uesoftmodem-nos1 ${LIBXML2_LIBRARIES})
|
|
||||||
target_link_libraries (lte-uesoftmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${XFORMS_LIBRARIES} ${PROTOBUF_LIB} ${CMAKE_DL_LIBS} ${LIBYAML_LIBRARIES} ${ATLAS_LIBRARIES})
|
|
||||||
target_link_libraries (lte-uesoftmodem-nos1 ${LIB_LMS_LIBRARIES})
|
|
||||||
target_link_libraries (lte-uesoftmodem-nos1 ${T_LIB})
|
|
||||||
# USIM process
|
# USIM process
|
||||||
#################
|
#################
|
||||||
#add_executable(usim
|
#add_executable(usim
|
||||||
@@ -2276,7 +2181,7 @@ add_executable(dlsim_tm4
|
|||||||
)
|
)
|
||||||
target_link_libraries (dlsim_tm4
|
target_link_libraries (dlsim_tm4
|
||||||
-Wl,--start-group SIMU UTIL SCHED_LIB SCHED_RU_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}
|
pthread m rt ${CONFIG_LIBRARIES} ${ATLAS_LIBRARIES} ${T_LIB}
|
||||||
)
|
)
|
||||||
|
|
||||||
foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
|
foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
|
||||||
@@ -2292,7 +2197,7 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr
|
|||||||
target_link_libraries (${myExe}
|
target_link_libraries (${myExe}
|
||||||
|
|
||||||
-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
|
-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
|
pthread m rt ${CONFIG_LIBRARIES} ${ATLAS_LIBRARIES} ${XFORMS_LIBRARIES} ${T_LIB} dl
|
||||||
)
|
)
|
||||||
endforeach(myExe)
|
endforeach(myExe)
|
||||||
|
|
||||||
@@ -2356,7 +2261,7 @@ endforeach(myExe)
|
|||||||
if (${T_TRACER})
|
if (${T_TRACER})
|
||||||
foreach(i
|
foreach(i
|
||||||
#all "add_executable" definitions (except tests, rb_tool, updatefw)
|
#all "add_executable" definitions (except tests, rb_tool, updatefw)
|
||||||
lte-softmodem lte-softmodem-nos1 lte-uesoftmodem lte-uesoftmodem-nos1
|
lte-softmodem lte-uesoftmodem
|
||||||
dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim
|
dlsim_tm4 dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim
|
||||||
pdcchsim pucchsim prachsim syncsim ulsim cu_test du_test
|
pdcchsim pucchsim prachsim syncsim ulsim cu_test du_test
|
||||||
#all "add_library" definitions
|
#all "add_library" definitions
|
||||||
@@ -2447,14 +2352,6 @@ if(OAI_NW_DRIVER_USE_NETLINK)
|
|||||||
endif()
|
endif()
|
||||||
make_driver(oai_nw_drv ${OPENAIR2_DIR}/NETWORK_DRIVER/LTE ${oai_nw_drv_src})
|
make_driver(oai_nw_drv ${OPENAIR2_DIR}/NETWORK_DRIVER/LTE ${oai_nw_drv_src})
|
||||||
|
|
||||||
# Exmimo board drivers
|
|
||||||
#########################
|
|
||||||
list(APPEND openair_rf_src module_main.c irq.c fileops.c exmimo_fw.c)
|
|
||||||
make_driver(openair_rf ${OPENAIR_TARGETS}/ARCH/EXMIMO/DRIVER/eurecom ${openair_rf_src})
|
|
||||||
|
|
||||||
add_executable(updatefw
|
|
||||||
${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c
|
|
||||||
)
|
|
||||||
|
|
||||||
# ue_ip: purpose ???
|
# ue_ip: purpose ???
|
||||||
###############
|
###############
|
||||||
@@ -2465,22 +2362,6 @@ endif()
|
|||||||
make_driver(ue_ip ${OPENAIR2_DIR}/NETWORK_DRIVER/UE_IP ${ue_ip_src})
|
make_driver(ue_ip ${OPENAIR2_DIR}/NETWORK_DRIVER/UE_IP ${ue_ip_src})
|
||||||
|
|
||||||
|
|
||||||
# OCTAVE tools
|
|
||||||
###############
|
|
||||||
set(OCT_INCL -I${OPENAIR_TARGETS}/ARCH/EXMIMO/DEFS -I${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/LIB -I${OPENAIR_TARGETS}/ARCH/COMMON)
|
|
||||||
set(OCT_LIBS -L${CMAKE_CURRENT_BINARY_DIR} -lm -lOPENAIR0_LIB)
|
|
||||||
set(OCT_FLAGS -DEXMIMO)
|
|
||||||
set(OCT_DIR ${OPENAIR_TARGETS}/ARCH/EXMIMO/USERSPACE/OCTAVE)
|
|
||||||
set(OCT_FILES
|
|
||||||
oarf_config_exmimo.oct
|
|
||||||
oarf_config_exmimo.oct
|
|
||||||
oarf_get_frame.oct
|
|
||||||
oarf_stop.oct
|
|
||||||
oarf_send_frame.oct
|
|
||||||
oarf_get_num_detected_cards.oct
|
|
||||||
oarf_stop_without_reset.oct
|
|
||||||
)
|
|
||||||
|
|
||||||
foreach(file IN ITEMS ${OCT_FILES})
|
foreach(file IN ITEMS ${OCT_FILES})
|
||||||
string(REGEX REPLACE "oct *$" "cc" src ${file})
|
string(REGEX REPLACE "oct *$" "cc" src ${file})
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -141,6 +141,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
+89
-274
@@ -52,13 +52,13 @@ CPU_AFFINITY_FLAG_USER="False" #Only valid when lowlatecy flag is set to False
|
|||||||
REL="Rel14"
|
REL="Rel14"
|
||||||
HW="None"
|
HW="None"
|
||||||
TP="None"
|
TP="None"
|
||||||
NOS1=0
|
|
||||||
EPC=0
|
EPC=0
|
||||||
VERBOSE_COMPILE=0
|
VERBOSE_COMPILE=0
|
||||||
CFLAGS_PROCESSOR_USER=""
|
CFLAGS_PROCESSOR_USER=""
|
||||||
RUN_GROUP=0
|
RUN_GROUP=0
|
||||||
TEST_CASE_GROUP=""
|
TEST_CASE_GROUP=""
|
||||||
BUILD_DOXYGEN=0
|
BUILD_DOXYGEN=0
|
||||||
|
BUILD_COVERITY_SCAN=0
|
||||||
T_TRACER="True"
|
T_TRACER="True"
|
||||||
DISABLE_HARDWARE_DEPENDENCY="False"
|
DISABLE_HARDWARE_DEPENDENCY="False"
|
||||||
CMAKE_BUILD_TYPE=""
|
CMAKE_BUILD_TYPE=""
|
||||||
@@ -66,11 +66,9 @@ CMAKE_CMD="$CMAKE"
|
|||||||
UE_AUTOTEST_TRACE="False"
|
UE_AUTOTEST_TRACE="False"
|
||||||
UE_DEBUG_TRACE="False"
|
UE_DEBUG_TRACE="False"
|
||||||
UE_TIMING_TRACE="False"
|
UE_TIMING_TRACE="False"
|
||||||
DISABLE_LOG_X="False"
|
|
||||||
USRP_REC_PLAY="False"
|
USRP_REC_PLAY="False"
|
||||||
BUILD_ECLIPSE=0
|
BUILD_ECLIPSE=0
|
||||||
UE_NAS_USE_TUN="False"
|
OPTIONAL_LIBRARIES="telnetsrv enbscope uescope msc"
|
||||||
BASIC_SIMULATOR=0
|
|
||||||
trap handle_ctrl_c INT
|
trap handle_ctrl_c INT
|
||||||
|
|
||||||
function print_help() {
|
function print_help() {
|
||||||
@@ -110,11 +108,8 @@ Options
|
|||||||
Rel8 limits the implementation to 3GPP Release 8 version
|
Rel8 limits the implementation to 3GPP Release 8 version
|
||||||
Rel10 limits the implementation to 3GPP Release 10 version
|
Rel10 limits the implementation to 3GPP Release 10 version
|
||||||
-w | --hardware
|
-w | --hardware
|
||||||
EXMIMO, USRP, BLADERF, ETHERNET, LMSSDR, IRIS, None (Default)
|
EXMIMO, USRP, BLADERF, LMSSDR, IRIS, None (Default)
|
||||||
Adds this RF board support (in external packages installation and in compilation)
|
Adds this RF board support (in external packages installation and in compilation)
|
||||||
-t | --transport protocol
|
|
||||||
ETHERNET , None
|
|
||||||
Adds this trasport protocol support in compilation
|
|
||||||
--phy_simulators
|
--phy_simulators
|
||||||
Makes the unitary tests Layer 1 simulators
|
Makes the unitary tests Layer 1 simulators
|
||||||
--core_simulators
|
--core_simulators
|
||||||
@@ -125,19 +120,17 @@ Options
|
|||||||
runs only specified test cases specified here. This flag is only valid with -s
|
runs only specified test cases specified here. This flag is only valid with -s
|
||||||
-V | --vcd
|
-V | --vcd
|
||||||
Adds a debgging facility to the binary files: GUI with major internal synchronization events
|
Adds a debgging facility to the binary files: GUI with major internal synchronization events
|
||||||
-x | --xforms
|
|
||||||
Adds a software oscilloscope feature to the produced binaries.
|
|
||||||
--install-system-files
|
--install-system-files
|
||||||
Install OpenArInterface required files in Linux system
|
Install OpenArInterface required files in Linux system
|
||||||
(will ask root password)
|
(will ask root password)
|
||||||
--noS1
|
|
||||||
Compiles lte-softmodem without S1 interface, using direct link to IP instead
|
|
||||||
--verbose-compile
|
--verbose-compile
|
||||||
Shows detailed compilation instructions in makefile
|
Shows detailed compilation instructions in makefile
|
||||||
--cflags_processor
|
--cflags_processor
|
||||||
Manually Add CFLAGS of processor if they are not detected correctly by script. Only add these flags if you know your processor supports them. Example flags: -msse3 -msse4.1 -msse4.2 -mavx2
|
Manually Add CFLAGS of processor if they are not detected correctly by script. Only add these flags if you know your processor supports them. Example flags: -msse3 -msse4.1 -msse4.2 -mavx2
|
||||||
--build-doxygen
|
--build-doxygen
|
||||||
Builds doxygen based documentation.
|
Builds doxygen based documentation.
|
||||||
|
--build-coverity-scan
|
||||||
|
Builds Coverity-Scan objects for upload
|
||||||
--disable-deadline
|
--disable-deadline
|
||||||
Disables deadline scheduler of Linux kernel (>=3.14.x).
|
Disables deadline scheduler of Linux kernel (>=3.14.x).
|
||||||
--enable-deadline
|
--enable-deadline
|
||||||
@@ -154,29 +147,18 @@ Options
|
|||||||
Enable traces for UE debugging
|
Enable traces for UE debugging
|
||||||
--ue-timing
|
--ue-timing
|
||||||
Enable traces for timing
|
Enable traces for timing
|
||||||
--disable-log
|
|
||||||
Disable all LOG_* macros
|
|
||||||
--build-eclipse
|
--build-eclipse
|
||||||
Build eclipse project files. Paths are auto corrected by fixprj.sh
|
Build eclipse project files. Paths are auto corrected by fixprj.sh
|
||||||
--build-telnet
|
--build-lib <libraries>
|
||||||
Build telnet server, specify --telnetsrv on command line to start it (eNB only)
|
Build optional shared library, <libraries> can be one or several of $OPTIONAL_LIBRARIES
|
||||||
--build-msc
|
|
||||||
Build MSC tracing utility, specify --msc on command line to start it (eNB and UE)
|
|
||||||
--usrp-recplay
|
--usrp-recplay
|
||||||
Build for I/Q record-playback modes
|
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.
|
|
||||||
--rfsimulator
|
|
||||||
Generate virtual RF driver
|
|
||||||
to use it, set the environement variable RFSIMULATOR to \"enb\" in the eNB and to the eNB IP address in the UEs
|
|
||||||
Usage (first build):
|
Usage (first build):
|
||||||
NI/ETTUS B201 + COTS UE : ./build_oai -I --eNB -x --install-system-files -w USRP
|
NI/ETTUS B201 + COTS UE : ./build_oai -I --eNB --install-system-files -w USRP
|
||||||
Usage (Regular):
|
Usage (Regular):
|
||||||
Eurecom EXMIMO + OAI ENB : ./build_oai --eNB -x
|
Eurecom EXMIMO + OAI ENB : ./build_oai --eNB
|
||||||
NI/ETTUS B201 + OAI ENB : ./build_oai --eNB -x -w USRP"
|
NI/ETTUS B201 + OAI ENB : ./build_oai --eNB -w USRP"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -241,9 +223,6 @@ function main() {
|
|||||||
-w | --hardware)
|
-w | --hardware)
|
||||||
# Use OAI_USRP as the key word USRP is used inside UHD driver
|
# Use OAI_USRP as the key word USRP is used inside UHD driver
|
||||||
case "$2" in
|
case "$2" in
|
||||||
"EXMIMO")
|
|
||||||
HW="EXMIMO"
|
|
||||||
;;
|
|
||||||
"USRP" | "BLADERF" | "LMSSDR" | "IRIS" | "SIMU")
|
"USRP" | "BLADERF" | "LMSSDR" | "IRIS" | "SIMU")
|
||||||
HW="OAI_"$2
|
HW="OAI_"$2
|
||||||
;;
|
;;
|
||||||
@@ -255,14 +234,6 @@ function main() {
|
|||||||
esac
|
esac
|
||||||
echo_info "Setting hardware to: $HW"
|
echo_info "Setting hardware to: $HW"
|
||||||
shift 2;;
|
shift 2;;
|
||||||
-t | --transport_protocol)
|
|
||||||
TP="$2" #"${i#*=}"
|
|
||||||
if [ "$TP" != "ETHERNET" -a "$TP" != "None" ] ; then
|
|
||||||
echo_fatal "Unknown TP type $TP will exit..."
|
|
||||||
else
|
|
||||||
echo_info "Setting transport protocol to: $TP"
|
|
||||||
fi
|
|
||||||
shift 2;;
|
|
||||||
--phy_simulators)
|
--phy_simulators)
|
||||||
SIMUS_PHY=1
|
SIMUS_PHY=1
|
||||||
echo_info "Will compile dlsim, ulsim, ..."
|
echo_info "Will compile dlsim, ulsim, ..."
|
||||||
@@ -286,7 +257,7 @@ function main() {
|
|||||||
EXE_ARGUMENTS="$EXE_ARGUMENTS -V"
|
EXE_ARGUMENTS="$EXE_ARGUMENTS -V"
|
||||||
shift;;
|
shift;;
|
||||||
-x | --xforms)
|
-x | --xforms)
|
||||||
XFORMS="True"
|
XFORMS=1
|
||||||
EXE_ARGUMENTS="$EXE_ARGUMENTS -d"
|
EXE_ARGUMENTS="$EXE_ARGUMENTS -d"
|
||||||
echo_info "Will generate the software oscilloscope features"
|
echo_info "Will generate the software oscilloscope features"
|
||||||
shift;;
|
shift;;
|
||||||
@@ -294,10 +265,6 @@ function main() {
|
|||||||
INSTALL_SYSTEM_FILES=1
|
INSTALL_SYSTEM_FILES=1
|
||||||
echo_info "Will copy OpenAirInterface files in Linux directories"
|
echo_info "Will copy OpenAirInterface files in Linux directories"
|
||||||
shift;;
|
shift;;
|
||||||
--noS1)
|
|
||||||
NOS1=1
|
|
||||||
echo_info "Will compile without S1 interface"
|
|
||||||
shift;;
|
|
||||||
--verbose-compile)
|
--verbose-compile)
|
||||||
VERBOSE_COMPILE=1
|
VERBOSE_COMPILE=1
|
||||||
echo_info "Will compile with verbose instructions"
|
echo_info "Will compile with verbose instructions"
|
||||||
@@ -310,6 +277,10 @@ function main() {
|
|||||||
BUILD_DOXYGEN=1
|
BUILD_DOXYGEN=1
|
||||||
echo_info "Will build doxygen support"
|
echo_info "Will build doxygen support"
|
||||||
shift;;
|
shift;;
|
||||||
|
--build-coverity-scan)
|
||||||
|
BUILD_COVERITY_SCAN=1
|
||||||
|
echo_info "Will build Coverity-Scan objects for upload"
|
||||||
|
shift;;
|
||||||
--disable-deadline)
|
--disable-deadline)
|
||||||
FORCE_DEADLINE_SCHEDULER_FLAG_USER="False"
|
FORCE_DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
echo_info "Disabling the usage of deadline scheduler"
|
echo_info "Disabling the usage of deadline scheduler"
|
||||||
@@ -342,10 +313,6 @@ function main() {
|
|||||||
UE_TIMING_TRACE="True"
|
UE_TIMING_TRACE="True"
|
||||||
echo_info "Enabling UE timing trace"
|
echo_info "Enabling UE timing trace"
|
||||||
shift 1;;
|
shift 1;;
|
||||||
--disable-log)
|
|
||||||
DISABLE_LOG_X="True"
|
|
||||||
echo_info "Disabling all LOG_* traces"
|
|
||||||
shift 1;;
|
|
||||||
--uhd-images-dir)
|
--uhd-images-dir)
|
||||||
UHD_IMAGES_DIR=$2
|
UHD_IMAGES_DIR=$2
|
||||||
echo_info "Downloading UHD images in the indicated location"
|
echo_info "Downloading UHD images in the indicated location"
|
||||||
@@ -355,30 +322,24 @@ function main() {
|
|||||||
CMAKE_CMD="$CMAKE_CMD"' -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE -G"Eclipse CDT4 - Unix Makefiles"'
|
CMAKE_CMD="$CMAKE_CMD"' -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE -G"Eclipse CDT4 - Unix Makefiles"'
|
||||||
echo_info "Enabling build eclipse project support"
|
echo_info "Enabling build eclipse project support"
|
||||||
shift 1;;
|
shift 1;;
|
||||||
--build-telnetsrv)
|
--build-lib)
|
||||||
BUILD_TELNETSRV=1
|
BUILD_OPTLIB=""
|
||||||
echo_info "Build embedded telnet server"
|
for alib in $2 ; do
|
||||||
shift ;;
|
for oklib in $OPTIONAL_LIBRARIES ; do
|
||||||
--build-msc)
|
if [ "$alib" = "$oklib" ] ; then
|
||||||
MSC_GEN=1
|
BUILD_OPTLIB="$BUILD_OPTLIB $alib"
|
||||||
echo_info "Build MSC tracing utility"
|
echo_info "Enabling build of lib${alib}.so"
|
||||||
shift ;;
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
if [ "${BUILD_OPTLIB## }" != "$2" ] ; then
|
||||||
|
echo_fatal "Unknown optional library in $2, valid libraries are $OPTIONAL_LIBRARIES"
|
||||||
|
fi
|
||||||
|
shift 2;;
|
||||||
--usrp-recplay)
|
--usrp-recplay)
|
||||||
USRP_REC_PLAY="True"
|
USRP_REC_PLAY="True"
|
||||||
echo_info "Enabling USRP record playback mode"
|
echo_info "Enabling USRP record playback mode"
|
||||||
shift 1;;
|
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;;
|
|
||||||
--rfsimulator)
|
|
||||||
RFSIMULATOR=true
|
|
||||||
echo_info "Compiling the RF simulator"
|
|
||||||
shift 1;;
|
|
||||||
-h | --help)
|
-h | --help)
|
||||||
print_help
|
print_help
|
||||||
exit 1;;
|
exit 1;;
|
||||||
@@ -388,7 +349,20 @@ function main() {
|
|||||||
break;;
|
break;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
#########################################################
|
||||||
|
# check if cov-build is installed
|
||||||
|
#########################################################
|
||||||
|
if [ "$BUILD_COVERITY_SCAN" == "1" ] ; then
|
||||||
|
echo_info "Checking cov-build is installed"
|
||||||
|
IS_INSTALLED=`which cov-build | grep -c cov-build || true`
|
||||||
|
if [ $IS_INSTALLED -eq 1 ] ; then
|
||||||
|
echo_info "Found cov-build"
|
||||||
|
else
|
||||||
|
echo_fatal "Did NOT find cov-build in PATH!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
CMAKE_CMD="$CMAKE_CMD .."
|
CMAKE_CMD="$CMAKE_CMD .."
|
||||||
echo_info "CMAKE_CMD=$CMAKE_CMD"
|
echo_info "CMAKE_CMD=$CMAKE_CMD"
|
||||||
#########################################################
|
#########################################################
|
||||||
@@ -398,7 +372,7 @@ function main() {
|
|||||||
|
|
||||||
if [ "$eNB" = "1" ] ; then
|
if [ "$eNB" = "1" ] ; then
|
||||||
if [ "$HW" = "None" -a "$TP" = "None" ] ; then
|
if [ "$HW" = "None" -a "$TP" = "None" ] ; then
|
||||||
echo_fatal "Define a local radio head (e.g. -w EXMIMO) or a transport protocol (e.g. -t ETHERNET) to communicate with a remote radio head!"
|
echo_info "No local radio head and no transport protocol selected"
|
||||||
fi
|
fi
|
||||||
if [ "$HW" = "None" ] ; then
|
if [ "$HW" = "None" ] ; then
|
||||||
echo_info "No radio head has been selected (HW set to $HW)"
|
echo_info "No radio head has been selected (HW set to $HW)"
|
||||||
@@ -411,14 +385,7 @@ function main() {
|
|||||||
echo_info "RF HW set to $HW"
|
echo_info "RF HW set to $HW"
|
||||||
# If the user doesn't specify the Linux scheduler to use, we set a value
|
# If the user doesn't specify the Linux scheduler to use, we set a value
|
||||||
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "" ]; then
|
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "" ]; then
|
||||||
case "$HW" in
|
|
||||||
"EXMIMO")
|
|
||||||
DEADLINE_SCHEDULER_FLAG_USER="True"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
#Disable CPU Affinity for deadline scheduler
|
#Disable CPU Affinity for deadline scheduler
|
||||||
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "True" ] ; then
|
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "True" ] ; then
|
||||||
@@ -504,32 +471,23 @@ function main() {
|
|||||||
if [ "$T_TRACER" = "False" ] ; then
|
if [ "$T_TRACER" = "False" ] ; then
|
||||||
noLOGDirsuffix="_noLOG"
|
noLOGDirsuffix="_noLOG"
|
||||||
fi
|
fi
|
||||||
if [ "$NOS1" = "1" ] ; then
|
lte_build_dir=lte_build_oai
|
||||||
noS1Dir="_noS1"
|
bin_suffix=""
|
||||||
bin_suffix="-nos1"
|
|
||||||
else
|
|
||||||
lte_build_dir=lte_build_oai
|
|
||||||
bin_suffix=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
lte_build_dir="lte${noS1Dir}_build_oai${noLOGDirsuffix}"
|
lte_build_dir="lte_build_oai${noLOGDirsuffix}"
|
||||||
# configuration module libraries, one currently available, using libconfig
|
# configuration module libraries, one currently available, using libconfig
|
||||||
config_libconfig_shlib=params_libconfig
|
config_libconfig_shlib=params_libconfig
|
||||||
|
|
||||||
# first generate the CMakefile in the right directory
|
# first generate the CMakefile in the right directory
|
||||||
if [ "$eNB" = "1" -o "$UE" = "1" -o "$HW" = "EXMIMO" ] ; then
|
if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
|
||||||
|
|
||||||
# LTE softmodem compilation
|
# LTE softmodem compilation
|
||||||
[ "$CLEAN" = "1" ] && rm -rf $DIR/$lte_build_dir/build
|
[ "$CLEAN" = "1" ] && rm -rf $DIR/$lte_build_dir/build
|
||||||
mkdir -p $DIR/$lte_build_dir/build
|
mkdir -p $DIR/$lte_build_dir/build
|
||||||
cmake_file=$DIR/$lte_build_dir/CMakeLists.txt
|
cmake_file=$DIR/$lte_build_dir/CMakeLists.txt
|
||||||
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
|
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
|
||||||
# if [ "$NOS1" = "1" ] ; then
|
|
||||||
# cat $DIR/$lte_build_dir/CMakeLists.template >> $cmake_file
|
|
||||||
# fi
|
|
||||||
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
|
echo "set ( CMAKE_BUILD_TYPE $CMAKE_BUILD_TYPE )" >> $cmake_file
|
||||||
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
|
echo "set ( CFLAGS_PROCESSOR_USER \"$CFLAGS_PROCESSOR_USER\" )" >> $cmake_file
|
||||||
echo "set ( XFORMS $XFORMS )" >> $cmake_file
|
|
||||||
echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file
|
echo "set ( UE_EXPANSION $UE_EXPANSION )" >> $cmake_file
|
||||||
# echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
|
# echo "set ( PHY_TX_THREAD $UE_EXPANSION )" >> $cmake_file
|
||||||
echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file
|
echo "set ( PRE_SCD_THREAD $UE_EXPANSION )" >> $cmake_file
|
||||||
@@ -545,13 +503,7 @@ function main() {
|
|||||||
echo "set (UE_AUTOTEST_TRACE $UE_AUTOTEST_TRACE)" >> $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_DEBUG_TRACE $UE_DEBUG_TRACE)" >> $cmake_file
|
||||||
echo "set (UE_TIMING_TRACE $UE_TIMING_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 (USRP_REC_PLAY $USRP_REC_PLAY)" >> $cmake_file
|
||||||
if [ "$UE" = 1 -a "$NOS1" = "0" ] ; then
|
|
||||||
echo_info "Compiling UE S1 build : enabling Linux and NETLINK"
|
|
||||||
echo "set (LINUX True )" >> $cmake_file
|
|
||||||
echo "set (PDCP_USE_NETLINK True )" >> $cmake_file
|
|
||||||
fi
|
|
||||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||||
cd $DIR/$lte_build_dir/build
|
cd $DIR/$lte_build_dir/build
|
||||||
eval $CMAKE_CMD
|
eval $CMAKE_CMD
|
||||||
@@ -570,46 +522,41 @@ function main() {
|
|||||||
compilations \
|
compilations \
|
||||||
$lte_build_dir coding \
|
$lte_build_dir coding \
|
||||||
libcoding.so $dbin/libcoding.so
|
libcoding.so $dbin/libcoding.so
|
||||||
|
# optional libs (used when noS1 with kernel modules
|
||||||
if [ "$NOS1" = "1" ] ; then
|
compilations \
|
||||||
compilations \
|
$lte_build_dir nasmesh \
|
||||||
$lte_build_dir nasmesh \
|
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
|
||||||
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
|
compilations \
|
||||||
compilations \
|
$lte_build_dir rb_tool \
|
||||||
$lte_build_dir rb_tool \
|
rb_tool $dbin/rb_tool
|
||||||
rb_tool $dbin/rb_tool
|
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
|
||||||
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$UE" = 1 ] ; then
|
if [ "$UE" = 1 ] ; then
|
||||||
lte_exec=lte-uesoftmodem${bin_suffix}
|
lte_exec=lte-uesoftmodem${bin_suffix}
|
||||||
compilations \
|
|
||||||
$lte_build_dir $lte_exec \
|
|
||||||
$lte_exec $dbin/$lte_exec.$REL
|
|
||||||
|
|
||||||
# mandatory shared lib
|
|
||||||
compilations \
|
|
||||||
$lte_build_dir $config_libconfig_shlib \
|
|
||||||
lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so
|
|
||||||
compilations \
|
|
||||||
$lte_build_dir coding \
|
|
||||||
libcoding.so $dbin/libcoding.so
|
|
||||||
|
|
||||||
if [ "$NOS1" = "1" ] ; then
|
|
||||||
compilations \
|
|
||||||
$lte_build_dir nasmesh \
|
|
||||||
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
|
|
||||||
compilations \
|
|
||||||
$lte_build_dir rb_tool \
|
|
||||||
rb_tool $dbin/rb_tool
|
|
||||||
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
|
|
||||||
else
|
|
||||||
# ue_ip driver compilation
|
|
||||||
echo_info "Compiling UE specific part"
|
|
||||||
compilations \
|
compilations \
|
||||||
$lte_build_dir ue_ip \
|
$lte_build_dir $lte_exec \
|
||||||
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
|
$lte_exec $dbin/$lte_exec.$REL
|
||||||
|
|
||||||
|
# mandatory shared lib
|
||||||
|
compilations \
|
||||||
|
$lte_build_dir $config_libconfig_shlib \
|
||||||
|
lib$config_libconfig_shlib.so $dbin/lib$config_libconfig_shlib.so
|
||||||
|
compilations \
|
||||||
|
$lte_build_dir coding \
|
||||||
|
libcoding.so $dbin/libcoding.so
|
||||||
|
# optional libs (used when noS1 with kernel modules
|
||||||
|
compilations \
|
||||||
|
$lte_build_dir nasmesh \
|
||||||
|
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
|
||||||
|
compilations \
|
||||||
|
$lte_build_dir rb_tool \
|
||||||
|
rb_tool $dbin/rb_tool
|
||||||
|
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
|
||||||
|
# ue_ip driver compilation
|
||||||
|
compilations \
|
||||||
|
$lte_build_dir ue_ip \
|
||||||
|
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
|
||||||
|
|
||||||
# mkdir -p $DIR/at_commands/build
|
# mkdir -p $DIR/at_commands/build
|
||||||
# cd $DIR/at_commands/build
|
# cd $DIR/at_commands/build
|
||||||
@@ -644,7 +591,6 @@ function main() {
|
|||||||
echo_warning "not generated UE NAS files: binaries not found"
|
echo_warning "not generated UE NAS files: binaries not found"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$SIMUS_PHY" = "1" -o "$SIMUS_CORE" = "1" ] ; then
|
if [ "$SIMUS_PHY" = "1" -o "$SIMUS_CORE" = "1" ] ; then
|
||||||
cd $OPENAIR_DIR/cmake_targets/lte-simulators
|
cd $OPENAIR_DIR/cmake_targets/lte-simulators
|
||||||
@@ -708,23 +654,17 @@ function main() {
|
|||||||
fi
|
fi
|
||||||
cp $OPENAIR_DIR/cmake_targets/tools/init_exmimo2 $dbin
|
cp $OPENAIR_DIR/cmake_targets/tools/init_exmimo2 $dbin
|
||||||
fi
|
fi
|
||||||
|
# optional libraries
|
||||||
# Telnet server compilation
|
|
||||||
#####################
|
#####################
|
||||||
if [ "$BUILD_TELNETSRV" = "1" ] ; then
|
if [ ! -z "$BUILD_OPTLIB" ] ; then
|
||||||
compilations \
|
for oklib in $BUILD_OPTLIB ; do
|
||||||
$lte_build_dir telnetsrv \
|
compilations \
|
||||||
libtelnetsrv.so $dbin/libtelnetsrv.so
|
$lte_build_dir $oklib \
|
||||||
|
lib${oklib}.so $dbin/lib${oklib}.so
|
||||||
|
done
|
||||||
|
|
||||||
fi
|
fi
|
||||||
# msc library compilation
|
|
||||||
#####################
|
|
||||||
if [ "$MSC_GEN" = "1" ] ; then
|
|
||||||
compilations \
|
|
||||||
$lte_build_dir msc \
|
|
||||||
libmsc.so $dbin/libmsc.so
|
|
||||||
|
|
||||||
fi
|
|
||||||
# build RF device and transport protocol libraries
|
# build RF device and transport protocol libraries
|
||||||
#####################################
|
#####################################
|
||||||
if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
|
if [ "$eNB" = "1" -o "$UE" = "1" ] ; then
|
||||||
@@ -735,15 +675,7 @@ function main() {
|
|||||||
rm -f $dbin/liboai_device.so
|
rm -f $dbin/liboai_device.so
|
||||||
|
|
||||||
# link liboai_device.so with the selected RF device library
|
# link liboai_device.so with the selected RF device library
|
||||||
if [ "$HW" == "EXMIMO" ] ; then
|
if [ "$HW" == "OAI_USRP" ] ; then
|
||||||
compilations \
|
|
||||||
$lte_build_dir oai_exmimodevif \
|
|
||||||
liboai_exmimodevif.so $dbin/liboai_exmimodevif.so.$REL
|
|
||||||
|
|
||||||
ln -sf liboai_exmimodevif.so liboai_device.so
|
|
||||||
ln -sf $dbin/liboai_exmimodevif.so.$REL $dbin/liboai_device.so
|
|
||||||
echo_info "liboai_device.so is linked to EXMIMO device library"
|
|
||||||
elif [ "$HW" == "OAI_USRP" ] ; then
|
|
||||||
compilations \
|
compilations \
|
||||||
$lte_build_dir oai_usrpdevif \
|
$lte_build_dir oai_usrpdevif \
|
||||||
liboai_usrpdevif.so $dbin/liboai_usrpdevif.so.$REL
|
liboai_usrpdevif.so $dbin/liboai_usrpdevif.so.$REL
|
||||||
@@ -854,123 +786,6 @@ function main() {
|
|||||||
echo_info "10. Bypassing the Tests ..."
|
echo_info "10. Bypassing the Tests ..."
|
||||||
fi
|
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 \"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 (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 "$@"
|
main "$@"
|
||||||
|
|||||||
@@ -7,3 +7,4 @@ set(PDCP_USE_NETLINK_QUEUES False)
|
|||||||
set(LINUX True)
|
set(LINUX True)
|
||||||
set(SECU False)
|
set(SECU False)
|
||||||
set(NAS_UE False)
|
set(NAS_UE False)
|
||||||
|
|
||||||
|
|||||||
@@ -177,10 +177,15 @@ compilations() {
|
|||||||
set +e
|
set +e
|
||||||
{
|
{
|
||||||
rm -f $3
|
rm -f $3
|
||||||
if [ "$VERBOSE_COMPILE" == "1" ]; then
|
if [ "$BUILD_COVERITY_SCAN" == "1" ]; then
|
||||||
make -j`nproc` $2 VERBOSE=$VERBOSE_COMPILE
|
COV_SCAN_PREFIX="cov-build --dir cov-int"
|
||||||
else
|
else
|
||||||
make -j`nproc` $2
|
COV_SCAN_PREFIX=""
|
||||||
|
fi
|
||||||
|
if [ "$VERBOSE_COMPILE" == "1" ]; then
|
||||||
|
$COV_SCAN_PREFIX make -j`nproc` $2 VERBOSE=$VERBOSE_COMPILE
|
||||||
|
else
|
||||||
|
$COV_SCAN_PREFIX make -j`nproc` $2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
} > $dlog/$2.$REL.txt 2>&1
|
} > $dlog/$2.$REL.txt 2>&1
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
int parse_stringlist(paramdef_t *cfgoptions, char *val) {
|
int parse_stringlist(paramdef_t *cfgoptions, char *val) {
|
||||||
char *atoken;
|
char *atoken;
|
||||||
char *tokctx;
|
char *tokctx = NULL;
|
||||||
char *tmpval=strdup(val);
|
char *tmpval=strdup(val);
|
||||||
int numelt=0;
|
int numelt=0;
|
||||||
cfgoptions->numelt=0;
|
cfgoptions->numelt=0;
|
||||||
@@ -214,7 +214,7 @@ int config_process_cmdline(paramdef_t *cfgoptions,int numoptions, char *prefix)
|
|||||||
|
|
||||||
/* first check help options, either --help, -h or --help_<section> */
|
/* first check help options, either --help, -h or --help_<section> */
|
||||||
if (strncmp(oneargv, "-h",2) == 0 || strncmp(oneargv, "--help",6) == 0 ) {
|
if (strncmp(oneargv, "-h",2) == 0 || strncmp(oneargv, "--help",6) == 0 ) {
|
||||||
char *tokctx;
|
char *tokctx = NULL;
|
||||||
pp=strtok_r(oneargv, "_",&tokctx);
|
pp=strtok_r(oneargv, "_",&tokctx);
|
||||||
config_get_if()->argv_info[i] |= CONFIG_CMDLINEOPT_PROCESSED;
|
config_get_if()->argv_info[i] |= CONFIG_CMDLINEOPT_PROCESSED;
|
||||||
|
|
||||||
|
|||||||
@@ -496,10 +496,10 @@ static inline void printMeas(char *txt, Meas *M, int period) {
|
|||||||
M->iterations,
|
M->iterations,
|
||||||
M->maxArray[1],M->maxArray[2], M->maxArray[3],M->maxArray[4], M->maxArray[5],
|
M->maxArray[1],M->maxArray[2], M->maxArray[3],M->maxArray[4], M->maxArray[5],
|
||||||
M->maxArray[6],M->maxArray[7], M->maxArray[8],M->maxArray[9],M->maxArray[10]);
|
M->maxArray[6],M->maxArray[7], M->maxArray[8],M->maxArray[9],M->maxArray[10]);
|
||||||
#if DISABLE_LOG_X
|
#if T_TRACER
|
||||||
printf("%s",txt2);
|
LOG_W(PHY,"%s",txt2);
|
||||||
#else
|
#else
|
||||||
LOG_W(PHY, "%s",txt2);
|
printf("%s",txt2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ struct vcd_module_s {
|
|||||||
|
|
||||||
const char* eurecomVariablesNames[] = {
|
const char* eurecomVariablesNames[] = {
|
||||||
"frame_number_TX0_eNB",
|
"frame_number_TX0_eNB",
|
||||||
|
"mask_ru",
|
||||||
|
"mask_tx_ru",
|
||||||
"frame_number_TX1_eNB",
|
"frame_number_TX1_eNB",
|
||||||
"frame_number_RX0_eNB",
|
"frame_number_RX0_eNB",
|
||||||
"frame_number_RX1_eNB",
|
"frame_number_RX1_eNB",
|
||||||
@@ -78,6 +80,45 @@ const char* eurecomVariablesNames[] = {
|
|||||||
"subframe_number_TX1_RU",
|
"subframe_number_TX1_RU",
|
||||||
"subframe_number_RX0_RU",
|
"subframe_number_RX0_RU",
|
||||||
"subframe_number_RX1_RU",
|
"subframe_number_RX1_RU",
|
||||||
|
"subframe_number_if4p5_north_out",
|
||||||
|
"frame_number_if4p5_north_out",
|
||||||
|
"subframe_number_if4p5_north_asynch_in",
|
||||||
|
"frame_number_if4p5_north_asynch_in",
|
||||||
|
"subframe_number_if4p5_south_out_ru",
|
||||||
|
"subframe_number_if4p5_south_out_ru1",
|
||||||
|
"subframe_number_if4p5_south_out_ru2",
|
||||||
|
"frame_number_if4p5_south_out_ru",
|
||||||
|
"frame_number_if4p5_south_out_ru1",
|
||||||
|
"frame_number_if4p5_south_out_ru2",
|
||||||
|
"subframe_number_if4p5_south_in_ru",
|
||||||
|
"subframe_number_if4p5_south_in_ru1",
|
||||||
|
"subframe_number_if4p5_south_in_ru2",
|
||||||
|
"frame_number_if4p5_south_in_ru",
|
||||||
|
"frame_number_if4p5_south_in_ru1",
|
||||||
|
"frame_number_if4p5_south_in_ru2",
|
||||||
|
"subframe_number_wakeup_l1s_ru",
|
||||||
|
"subframe_number_wakeup_l1s_ru1",
|
||||||
|
"subframe_number_wakeup_l1s_ru2",
|
||||||
|
"frame_number_wakeup_l1s_ru",
|
||||||
|
"frame_number_wakeup_l1s_ru1",
|
||||||
|
"frame_number_wakeup_l1s_ru2",
|
||||||
|
"subframe_number_wakeup_rxtx_rx_ru",
|
||||||
|
"subframe_number_wakeup_rxtx_rx_ru1",
|
||||||
|
"subframe_number_wakeup_rxtx_rx_ru2",
|
||||||
|
"frame_number_wakeup_rxtx_rx_ru",
|
||||||
|
"frame_number_wakeup_rxtx_rx_ru1",
|
||||||
|
"frame_number_wakeup_rxtx_rx_ru2",
|
||||||
|
"subframe_number_wakeup_rxtx_tx_ru",
|
||||||
|
"subframe_number_wakeup_rxtx_tx_ru1",
|
||||||
|
"subframe_number_wakeup_rxtx_tx_ru2",
|
||||||
|
"frame_number_wakeup_rxtx_tx_ru",
|
||||||
|
"frame_number_wakeup_rxtx_tx_ru1",
|
||||||
|
"frame_number_wakeup_rxtx_tx_ru2",
|
||||||
|
"ic_enb",
|
||||||
|
"ic_enb1",
|
||||||
|
"ic_enb2",
|
||||||
|
"l1_proc_ic",
|
||||||
|
"l1_proc_tx_ic",
|
||||||
"runtime_TX_eNB",
|
"runtime_TX_eNB",
|
||||||
"runtime_RX_eNB",
|
"runtime_RX_eNB",
|
||||||
"frame_number_TX0_UE",
|
"frame_number_TX0_UE",
|
||||||
@@ -207,8 +248,10 @@ const char* eurecomFunctionsNames[] = {
|
|||||||
"trx_write",
|
"trx_write",
|
||||||
"trx_read_ue",
|
"trx_read_ue",
|
||||||
"trx_write_ue",
|
"trx_write_ue",
|
||||||
"trx_read_if",
|
"trx_read_if0",
|
||||||
"trx_write_if",
|
"trx_read_if1",
|
||||||
|
"trx_write_if0",
|
||||||
|
"trx_write_if1",
|
||||||
"eNB_thread_rxtx0",
|
"eNB_thread_rxtx0",
|
||||||
"eNB_thread_rxtx1",
|
"eNB_thread_rxtx1",
|
||||||
"ue_thread_synch",
|
"ue_thread_synch",
|
||||||
@@ -226,6 +269,9 @@ const char* eurecomFunctionsNames[] = {
|
|||||||
"ue_lock_mutex_rxtx_for_cnt_decrement1",
|
"ue_lock_mutex_rxtx_for_cnt_decrement1",
|
||||||
"ue_lock_mutex_rxtx_for_cnt_increment0",
|
"ue_lock_mutex_rxtx_for_cnt_increment0",
|
||||||
"ue_lock_mutex_rxtx_for_cnt_increment1",
|
"ue_lock_mutex_rxtx_for_cnt_increment1",
|
||||||
|
"lock_mutex_ru",
|
||||||
|
"lock_mutex_ru1",
|
||||||
|
"lock_mutex_ru2",
|
||||||
/* simulation signals */
|
/* simulation signals */
|
||||||
"do_DL_sig",
|
"do_DL_sig",
|
||||||
"do_UL_sig",
|
"do_UL_sig",
|
||||||
@@ -244,6 +290,8 @@ const char* eurecomFunctionsNames[] = {
|
|||||||
/* PHY signals */
|
/* PHY signals */
|
||||||
"ue_synch",
|
"ue_synch",
|
||||||
"ue_slot_fep",
|
"ue_slot_fep",
|
||||||
|
"ue_slot_fep_mbsfn",
|
||||||
|
"ue_slot_fep_mbsfn_khz_1dot25",
|
||||||
"ue_rrc_measurements",
|
"ue_rrc_measurements",
|
||||||
"ue_gain_control",
|
"ue_gain_control",
|
||||||
"ue_adjust_synch",
|
"ue_adjust_synch",
|
||||||
@@ -254,10 +302,34 @@ const char* eurecomFunctionsNames[] = {
|
|||||||
"phy_procedures_eNb_tx1",
|
"phy_procedures_eNb_tx1",
|
||||||
"phy_procedures_ru_feprx0",
|
"phy_procedures_ru_feprx0",
|
||||||
"phy_procedures_ru_feprx1",
|
"phy_procedures_ru_feprx1",
|
||||||
|
"phy_procedures_ru_feprx2",
|
||||||
|
"phy_procedures_ru_feprx3",
|
||||||
|
"phy_procedures_ru_feprx4",
|
||||||
|
"phy_procedures_ru_feprx5",
|
||||||
|
"phy_procedures_ru_feprx6",
|
||||||
|
"phy_procedures_ru_feprx7",
|
||||||
|
"phy_procedures_ru_feprx8",
|
||||||
|
"phy_procedures_ru_feprx9",
|
||||||
"phy_procedures_ru_feptx_ofdm0",
|
"phy_procedures_ru_feptx_ofdm0",
|
||||||
"phy_procedures_ru_feptx_ofdm1",
|
"phy_procedures_ru_feptx_ofdm1",
|
||||||
|
"phy_procedures_ru_feptx_ofdm2",
|
||||||
|
"phy_procedures_ru_feptx_ofdm3",
|
||||||
|
"phy_procedures_ru_feptx_ofdm4",
|
||||||
|
"phy_procedures_ru_feptx_ofdm5",
|
||||||
|
"phy_procedures_ru_feptx_ofdm6",
|
||||||
|
"phy_procedures_ru_feptx_ofdm7",
|
||||||
|
"phy_procedures_ru_feptx_ofdm8",
|
||||||
|
"phy_procedures_ru_feptx_ofdm9",
|
||||||
"phy_procedures_ru_feptx_prec0",
|
"phy_procedures_ru_feptx_prec0",
|
||||||
"phy_procedures_ru_feptx_prec1",
|
"phy_procedures_ru_feptx_prec1",
|
||||||
|
"phy_procedures_ru_feptx_prec2",
|
||||||
|
"phy_procedures_ru_feptx_prec3",
|
||||||
|
"phy_procedures_ru_feptx_prec4",
|
||||||
|
"phy_procedures_ru_feptx_prec5",
|
||||||
|
"phy_procedures_ru_feptx_prec6",
|
||||||
|
"phy_procedures_ru_feptx_prec7",
|
||||||
|
"phy_procedures_ru_feptx_prec8",
|
||||||
|
"phy_procedures_ru_feptx_prec9",
|
||||||
"phy_procedures_eNb_rx_uespec0",
|
"phy_procedures_eNb_rx_uespec0",
|
||||||
"phy_procedures_eNb_rx_uespec1",
|
"phy_procedures_eNb_rx_uespec1",
|
||||||
"phy_procedures_ue_tx",
|
"phy_procedures_ue_tx",
|
||||||
@@ -286,9 +358,12 @@ const char* eurecomFunctionsNames[] = {
|
|||||||
"dlsch_decoding5",
|
"dlsch_decoding5",
|
||||||
"dlsch_decoding6",
|
"dlsch_decoding6",
|
||||||
"dlsch_decoding7",
|
"dlsch_decoding7",
|
||||||
|
"dlsch_pmch_decoding",
|
||||||
"rx_pdcch",
|
"rx_pdcch",
|
||||||
"dci_decoding",
|
"dci_decoding",
|
||||||
"rx_phich",
|
"rx_phich",
|
||||||
|
"rx_pmch",
|
||||||
|
"rx_pmch_khz_1dot25",
|
||||||
"pdsch_procedures",
|
"pdsch_procedures",
|
||||||
"pdsch_procedures_si",
|
"pdsch_procedures_si",
|
||||||
"pdsch_procedures_p",
|
"pdsch_procedures_p",
|
||||||
@@ -398,8 +473,12 @@ const char* eurecomFunctionsNames[] = {
|
|||||||
"test",
|
"test",
|
||||||
|
|
||||||
/* IF4/IF5 signals */
|
/* IF4/IF5 signals */
|
||||||
"send_if4",
|
"send_if4_ru",
|
||||||
"recv_if4",
|
"send_if4_ru1",
|
||||||
|
"send_if4_ru2",
|
||||||
|
"recv_if4_ru",
|
||||||
|
"recv_if4_ru1",
|
||||||
|
"recv_if4_ru2",
|
||||||
"send_if5",
|
"send_if5",
|
||||||
"recv_if5",
|
"recv_if5",
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,8 @@
|
|||||||
/* WARNING: if you edit the enums below, update also string definitions in vcd_signal_dumper.c */
|
/* WARNING: if you edit the enums below, update also string definitions in vcd_signal_dumper.c */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_ENB=0,
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_ENB=0,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_MASK_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_MASK_TX_RU,
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX1_ENB,
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX1_ENB,
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_ENB,
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX0_ENB,
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX1_ENB,
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_RX1_ENB,
|
||||||
@@ -55,6 +57,45 @@ typedef enum {
|
|||||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX1_RU,
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_TX1_RU,
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX0_RU,
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX0_RU,
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX1_RU,
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_RX1_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_NORTH_OUT,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_NORTH_OUT,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_IN_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_IN_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_SOUTH_IN_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_L1S_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_L1S_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_L1S_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_L1S_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_L1S_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_L1S_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_RX_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_RX_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_RX_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_TX_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_TX_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_WAKEUP_RXTX_TX_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_IC_ENB,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_IC_ENB1,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_IC_ENB2,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_L1_PROC_IC,
|
||||||
|
VCD_SIGNAL_DUMPER_VARIABLES_L1_PROC_TX_IC,
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_TX_ENB,
|
VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_TX_ENB,
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_RX_ENB,
|
VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_RX_ENB,
|
||||||
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_UE,
|
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_UE,
|
||||||
@@ -185,8 +226,10 @@ typedef enum {
|
|||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_UE,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_UE,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_UE,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_UE,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF0,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_READ_IF1,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF1,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RXTX0,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RXTX0,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RXTX1,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_eNB_PROC_RXTX1,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_SYNCH,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_THREAD_SYNCH,
|
||||||
@@ -204,6 +247,9 @@ typedef enum {
|
|||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_DECREMENT1,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT0,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_LOCK_MUTEX_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_LOCK_MUTEX_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_LOCK_MUTEX_RU2,
|
||||||
/* SIMULATION signals */
|
/* SIMULATION signals */
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_DL_SIGNAL,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_SIM_DO_UL_SIGNAL,
|
||||||
@@ -222,6 +268,8 @@ typedef enum {
|
|||||||
/* PHY signals */
|
/* PHY signals */
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SYNCH,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SYNCH,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP_MBSFN,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SLOT_FEP_MBSFN_KHZ_1DOT25,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_RRC_MEASUREMENTS,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_RRC_MEASUREMENTS,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GAIN_CONTROL,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_GAIN_CONTROL,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ADJUST_SYNCH,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_ADJUST_SYNCH,
|
||||||
@@ -232,10 +280,34 @@ typedef enum {
|
|||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX1,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX1,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX1,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX1,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX2,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX3,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX4,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX5,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX6,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX7,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX8,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPRX9,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM1,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM1,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM2,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM3,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM4,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM5,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM6,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM7,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM8,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_OFDM9,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC1,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC1,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC2,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC3,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC4,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC5,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC6,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC7,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC8,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_RU_FEPTX_PREC9,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC1,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC1,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX,
|
||||||
@@ -264,9 +336,12 @@ typedef enum {
|
|||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING5,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING5,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING6,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING6,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING7,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING7,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PMCH_DECODING,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PDCCH,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PDCCH,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_DCI_DECODING,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_DCI_DECODING,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PHICH,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PHICH,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PMCH,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PMCH_KHZ_1DOT25,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_SI,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_P,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_PDSCH_PROC_P,
|
||||||
@@ -336,7 +411,6 @@ typedef enum {
|
|||||||
|
|
||||||
/* RLC signals */
|
/* RLC signals */
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,
|
||||||
// VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_IND,
|
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_MAC_RLC_STATUS_IND,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_MAC_RLC_STATUS_IND,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_MAC_RLC_DATA_REQ,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_MAC_RLC_DATA_REQ,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_MAC_RLC_DATA_IND,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_MAC_RLC_DATA_IND,
|
||||||
@@ -379,8 +453,12 @@ typedef enum {
|
|||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_TEST,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_TEST,
|
||||||
|
|
||||||
/* IF4/IF5 signals */
|
/* IF4/IF5 signals */
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4_RU2,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU1,
|
||||||
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4_RU2,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF5,
|
||||||
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF5,
|
VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF5,
|
||||||
|
|
||||||
|
|||||||
@@ -41,10 +41,10 @@ typedef struct {
|
|||||||
} T_cache_t;
|
} T_cache_t;
|
||||||
|
|
||||||
/* number of VCD functions (to be kept up to date! see in T_messages.txt) */
|
/* number of VCD functions (to be kept up to date! see in T_messages.txt) */
|
||||||
#define VCD_NUM_FUNCTIONS 190
|
#define VCD_NUM_FUNCTIONS (228)
|
||||||
|
|
||||||
/* number of VCD variables (to be kept up to date! see in T_messages.txt) */
|
/* number of VCD variables (to be kept up to date! see in T_messages.txt) */
|
||||||
#define VCD_NUM_VARIABLES 136
|
#define VCD_NUM_VARIABLES (177)
|
||||||
|
|
||||||
/* first VCD function (to be kept up to date! see in T_messages.txt) */
|
/* first VCD function (to be kept up to date! see in T_messages.txt) */
|
||||||
#define VCD_FIRST_FUNCTION ((uintptr_t)T_VCD_FUNCTION_RT_SLEEP)
|
#define VCD_FIRST_FUNCTION ((uintptr_t)T_VCD_FUNCTION_RT_SLEEP)
|
||||||
|
|||||||
+407
-18
@@ -1035,12 +1035,21 @@ ID = buf_test
|
|||||||
#to check that everything is correct you can run: make _check_vcd
|
#to check that everything is correct you can run: make _check_vcd
|
||||||
|
|
||||||
#variables
|
#variables
|
||||||
|
|
||||||
ID = VCD_VARIABLE_FRAME_NUMBER_TX0_ENB
|
ID = VCD_VARIABLE_FRAME_NUMBER_TX0_ENB
|
||||||
DESC = VCD variable FRAME_NUMBER_TX0_ENB
|
DESC = VCD variable FRAME_NUMBER_TX0_ENB
|
||||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
FORMAT = ulong,value
|
FORMAT = ulong,value
|
||||||
VCD_NAME = frame_number_TX0_eNB
|
VCD_NAME = frame_number_TX0_eNB
|
||||||
|
ID = VCD_VARIABLE_MASK_RU
|
||||||
|
DESC = VCD variable MASK_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = mask_ru
|
||||||
|
ID = VCD_VARIABLE_MASK_TX_RU
|
||||||
|
DESC = VCD variable MASK_TX_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = mask_tx_ru
|
||||||
ID = VCD_VARIABLE_FRAME_NUMBER_TX1_ENB
|
ID = VCD_VARIABLE_FRAME_NUMBER_TX1_ENB
|
||||||
DESC = VCD variable FRAME_NUMBER_TX1_ENB
|
DESC = VCD variable FRAME_NUMBER_TX1_ENB
|
||||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
@@ -1116,6 +1125,201 @@ ID = VCD_VARIABLE_SUBFRAME_NUMBER_RX1_RU
|
|||||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
FORMAT = ulong,value
|
FORMAT = ulong,value
|
||||||
VCD_NAME = subframe_number_RX1_RU
|
VCD_NAME = subframe_number_RX1_RU
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_NORTH_OUT
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_NORTH_OUT
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_if4p5_north_out
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_NORTH_OUT
|
||||||
|
DESC = VCD variable FRAME_NUMBER_IF4P5_NORTH_OUT
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_if4p5_north_out
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_if4p5_north_asynch_in
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN
|
||||||
|
DESC = VCD variable FRAME_NUMBER_IF4P5_NORTH_ASYNCH_IN
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_if4p5_north_asynch_in
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_if4p5_south_out_ru
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU1
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_if4p5_south_out_ru1
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU2
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_OUT_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_if4p5_south_out_ru2
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU
|
||||||
|
DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_OUT_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_if4p5_south_out_ru
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU1
|
||||||
|
DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_OUT_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_if4p5_south_out_ru1
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_OUT_RU2
|
||||||
|
DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_OUT_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_if4p5_south_out_ru2
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_if4p5_south_in_ru
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU1
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_if4p5_south_in_ru1
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU2
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_IF4P5_SOUTH_IN_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_if4p5_south_in_ru2
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_IN_RU
|
||||||
|
DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_IN_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_if4p5_south_in_ru
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_IN_RU1
|
||||||
|
DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_IN_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_if4p5_south_in_ru1
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_IF4P5_SOUTH_IN_RU2
|
||||||
|
DESC = VCD variable FRAME_NUMBER_IF4P5_SOUTH_IN_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_if4p5_south_in_ru2
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_L1S_RU
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_L1S_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_l1s_ru
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_L1S_RU1
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_L1S_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_l1s_ru1
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_L1S_RU2
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_L1S_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_l1s_ru2
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_L1S_RU
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_L1S_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_l1s_ru
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_L1S_RU1
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_L1S_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_l1s_ru1
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_L1S_RU2
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_L1S_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_l1s_ru2
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_rxtx_rx_ru
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU1
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_rxtx_rx_ru1
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU2
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_RX_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_rxtx_rx_ru2
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_RX_RU
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_RX_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_rxtx_rx_ru
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_RX_RU1
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_RX_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_rxtx_rx_ru1
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_RX_RU2
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_RX_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_rxtx_rx_ru2
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_rxtx_tx_ru
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU1
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_rxtx_tx_ru1
|
||||||
|
ID = VCD_VARIABLE_SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU2
|
||||||
|
DESC = VCD variable SUBFRAME_NUMBER_WAKEUP_RXTX_TX_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = subframe_number_wakeup_rxtx_tx_ru2
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_TX_RU
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_TX_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_rxtx_tx_ru
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_TX_RU1
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_TX_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_rxtx_tx_ru1
|
||||||
|
ID = VCD_VARIABLE_FRAME_NUMBER_WAKEUP_RXTX_TX_RU2
|
||||||
|
DESC = VCD variable FRAME_NUMBER_WAKEUP_RXTX_TX_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = frame_number_wakeup_rxtx_tx_ru2
|
||||||
|
ID = VCD_VARIABLE_IC_ENB
|
||||||
|
DESC = VCD variable IC_ENB
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = ic_enb
|
||||||
|
ID = VCD_VARIABLE_IC_ENB1
|
||||||
|
DESC = VCD variable IC_ENB1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = ic_enb1
|
||||||
|
ID = VCD_VARIABLE_IC_ENB2
|
||||||
|
DESC = VCD variable IC_ENB2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = ic_enb2
|
||||||
|
ID = VCD_VARIABLE_L1_PROC_IC
|
||||||
|
DESC = VCD variable L1_PROC_IC
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = l1_proc_ic
|
||||||
|
ID = VCD_VARIABLE_L1_PROC_TX_IC
|
||||||
|
DESC = VCD variable L1_PROC_TX_IC
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
|
FORMAT = ulong,value
|
||||||
|
VCD_NAME = l1_proc_tx_ic
|
||||||
ID = VCD_VARIABLE_RUNTIME_TX_ENB
|
ID = VCD_VARIABLE_RUNTIME_TX_ENB
|
||||||
DESC = VCD variable RUNTIME_TX_ENB
|
DESC = VCD variable RUNTIME_TX_ENB
|
||||||
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
GROUP = ALL:VCD:ENB:VCD_VARIABLE
|
||||||
@@ -1744,16 +1948,26 @@ ID = VCD_FUNCTION_TRX_WRITE_UE
|
|||||||
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = trx_write_ue
|
VCD_NAME = trx_write_ue
|
||||||
ID = VCD_FUNCTION_TRX_READ_IF
|
ID = VCD_FUNCTION_TRX_READ_IF0
|
||||||
DESC = VCD function TRX_READ_IF
|
DESC = VCD function TRX_READ_IF0
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = trx_read_if
|
VCD_NAME = trx_read_if0
|
||||||
ID = VCD_FUNCTION_TRX_WRITE_IF
|
ID = VCD_FUNCTION_TRX_READ_IF1
|
||||||
DESC = VCD function TRX_WRITE_IF
|
DESC = VCD function TRX_READ_IF1
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = trx_write_if
|
VCD_NAME = trx_read_if1
|
||||||
|
ID = VCD_FUNCTION_TRX_WRITE_IF0
|
||||||
|
DESC = VCD function TRX_WRITE_IF0
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = trx_write_if0
|
||||||
|
ID = VCD_FUNCTION_TRX_WRITE_IF1
|
||||||
|
DESC = VCD function TRX_WRITE_IF1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = trx_write_if1
|
||||||
ID = VCD_FUNCTION_eNB_PROC_RXTX0
|
ID = VCD_FUNCTION_eNB_PROC_RXTX0
|
||||||
DESC = VCD function eNB_PROC_RXTX0
|
DESC = VCD function eNB_PROC_RXTX0
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
@@ -1839,6 +2053,21 @@ ID = VCD_FUNCTION_UE_LOCK_MUTEX_RXTX_FOR_CNT_INCREMENT1
|
|||||||
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = ue_lock_mutex_rxtx_for_cnt_increment1
|
VCD_NAME = ue_lock_mutex_rxtx_for_cnt_increment1
|
||||||
|
ID = VCD_FUNCTION_LOCK_MUTEX_RU
|
||||||
|
DESC = VCD function LOCK_MUTEX_RU
|
||||||
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = lock_mutex_ru
|
||||||
|
ID = VCD_FUNCTION_LOCK_MUTEX_RU1
|
||||||
|
DESC = VCD function LOCK_MUTEX_RU1
|
||||||
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = lock_mutex_ru1
|
||||||
|
ID = VCD_FUNCTION_LOCK_MUTEX_RU2
|
||||||
|
DESC = VCD function LOCK_MUTEX_RU2
|
||||||
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = lock_mutex_ru2
|
||||||
ID = VCD_FUNCTION_SIM_DO_DL_SIGNAL
|
ID = VCD_FUNCTION_SIM_DO_DL_SIGNAL
|
||||||
DESC = VCD function SIM_DO_DL_SIGNAL
|
DESC = VCD function SIM_DO_DL_SIGNAL
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
@@ -1909,6 +2138,16 @@ ID = VCD_FUNCTION_UE_SLOT_FEP
|
|||||||
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = ue_slot_fep
|
VCD_NAME = ue_slot_fep
|
||||||
|
ID = VCD_FUNCTION_UE_SLOT_FEP_MBSFN
|
||||||
|
DESC = VCD function UE_SLOT_FEP_MBSFN
|
||||||
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = ue_slot_fep_mbsfn
|
||||||
|
ID = VCD_FUNCTION_UE_SLOT_FEP_MBSFN_KHZ_1DOT25
|
||||||
|
DESC = VCD function UE_SLOT_FEP_MBSFN_KHZ_1DOT25
|
||||||
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = ue_slot_fep_mbsfn_khz_1dot25
|
||||||
ID = VCD_FUNCTION_UE_RRC_MEASUREMENTS
|
ID = VCD_FUNCTION_UE_RRC_MEASUREMENTS
|
||||||
DESC = VCD function UE_RRC_MEASUREMENTS
|
DESC = VCD function UE_RRC_MEASUREMENTS
|
||||||
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
@@ -1959,6 +2198,46 @@ ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX1
|
|||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = phy_procedures_ru_feprx1
|
VCD_NAME = phy_procedures_ru_feprx1
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX2
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPRX2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feprx2
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX3
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPRX3
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feprx3
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX4
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPRX4
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feprx4
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX5
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPRX5
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feprx5
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX6
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPRX6
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feprx6
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX7
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPRX7
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feprx7
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX8
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPRX8
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feprx8
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPRX9
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPRX9
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feprx9
|
||||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM
|
||||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
@@ -1969,6 +2248,46 @@ ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM1
|
|||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = phy_procedures_ru_feptx_ofdm1
|
VCD_NAME = phy_procedures_ru_feptx_ofdm1
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM2
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_ofdm2
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM3
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM3
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_ofdm3
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM4
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM4
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_ofdm4
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM5
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM5
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_ofdm5
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM6
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM6
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_ofdm6
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM7
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM7
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_ofdm7
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM8
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM8
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_ofdm8
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_OFDM9
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_OFDM9
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_ofdm9
|
||||||
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC
|
||||||
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
@@ -1979,6 +2298,46 @@ ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC1
|
|||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = phy_procedures_ru_feptx_prec1
|
VCD_NAME = phy_procedures_ru_feptx_prec1
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC2
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_prec2
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC3
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC3
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_prec3
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC4
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC4
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_prec4
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC5
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC5
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_prec5
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC6
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC6
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_prec6
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC7
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC7
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_prec7
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC8
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC8
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_prec8
|
||||||
|
ID = VCD_FUNCTION_PHY_PROCEDURES_RU_FEPTX_PREC9
|
||||||
|
DESC = VCD function PHY_PROCEDURES_RU_FEPTX_PREC9
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = phy_procedures_ru_feptx_prec9
|
||||||
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_UESPEC
|
ID = VCD_FUNCTION_PHY_PROCEDURES_ENB_RX_UESPEC
|
||||||
DESC = VCD function PHY_PROCEDURES_ENB_RX_UESPEC
|
DESC = VCD function PHY_PROCEDURES_ENB_RX_UESPEC
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
@@ -2119,6 +2478,11 @@ ID = VCD_FUNCTION_DLSCH_DECODING7
|
|||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = dlsch_decoding7
|
VCD_NAME = dlsch_decoding7
|
||||||
|
ID = VCD_FUNCTION_DLSCH_PMCH_DECODING
|
||||||
|
DESC = VCD function DLSCH_PMCH_DECODING
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = dlsch_pmch_decoding
|
||||||
ID = VCD_FUNCTION_RX_PDCCH
|
ID = VCD_FUNCTION_RX_PDCCH
|
||||||
DESC = VCD function RX_PDCCH
|
DESC = VCD function RX_PDCCH
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
@@ -2134,6 +2498,16 @@ ID = VCD_FUNCTION_RX_PHICH
|
|||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = rx_phich
|
VCD_NAME = rx_phich
|
||||||
|
ID = VCD_FUNCTION_RX_PMCH
|
||||||
|
DESC = VCD function RX_PMCH
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = rx_pmch
|
||||||
|
ID = VCD_FUNCTION_RX_PMCH_KHZ_1DOT25
|
||||||
|
DESC = VCD function RX_PMCH_KHZ_1DOT25
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = rx_pmch_khz_1dot25
|
||||||
ID = VCD_FUNCTION_PDSCH_PROC
|
ID = VCD_FUNCTION_PDSCH_PROC
|
||||||
DESC = VCD function PDSCH_PROC
|
DESC = VCD function PDSCH_PROC
|
||||||
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
GROUP = ALL:VCD:UE:VCD_FUNCTION
|
||||||
@@ -2444,11 +2818,6 @@ ID = VCD_FUNCTION_RLC_DATA_REQ
|
|||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = rlc_data_req
|
VCD_NAME = rlc_data_req
|
||||||
#ID = VCD_FUNCTION_RLC_DATA_IND
|
|
||||||
# DESC = VCD function RLC_DATA_IND
|
|
||||||
# GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
|
||||||
# FORMAT = int,value
|
|
||||||
# VCD_NAME = rlc_data_ind
|
|
||||||
ID = VCD_FUNCTION_MAC_RLC_STATUS_IND
|
ID = VCD_FUNCTION_MAC_RLC_STATUS_IND
|
||||||
DESC = VCD function MAC_RLC_STATUS_IND
|
DESC = VCD function MAC_RLC_STATUS_IND
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
@@ -2599,16 +2968,36 @@ ID = VCD_FUNCTION_TEST
|
|||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = test
|
VCD_NAME = test
|
||||||
ID = VCD_FUNCTION_SEND_IF4
|
ID = VCD_FUNCTION_SEND_IF4_RU
|
||||||
DESC = VCD function SEND_IF4
|
DESC = VCD function SEND_IF4_RU
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = send_if4
|
VCD_NAME = send_if4_ru
|
||||||
ID = VCD_FUNCTION_RECV_IF4
|
ID = VCD_FUNCTION_SEND_IF4_RU1
|
||||||
DESC = VCD function RECV_IF4
|
DESC = VCD function SEND_IF4_RU1
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
FORMAT = int,value
|
FORMAT = int,value
|
||||||
VCD_NAME = recv_if4
|
VCD_NAME = send_if4_ru1
|
||||||
|
ID = VCD_FUNCTION_SEND_IF4_RU2
|
||||||
|
DESC = VCD function SEND_IF4_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = send_if4_ru2
|
||||||
|
ID = VCD_FUNCTION_RECV_IF4_RU
|
||||||
|
DESC = VCD function RECV_IF4_RU
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = recv_if4_ru
|
||||||
|
ID = VCD_FUNCTION_RECV_IF4_RU1
|
||||||
|
DESC = VCD function RECV_IF4_RU1
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = recv_if4_ru1
|
||||||
|
ID = VCD_FUNCTION_RECV_IF4_RU2
|
||||||
|
DESC = VCD function RECV_IF4_RU2
|
||||||
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
FORMAT = int,value
|
||||||
|
VCD_NAME = recv_if4_ru2
|
||||||
ID = VCD_FUNCTION_SEND_IF5
|
ID = VCD_FUNCTION_SEND_IF5
|
||||||
DESC = VCD function SEND_IF5
|
DESC = VCD function SEND_IF5
|
||||||
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
GROUP = ALL:VCD:ENB:VCD_FUNCTION
|
||||||
|
|||||||
@@ -358,6 +358,7 @@ hashtable_rc_t hashtable_resize(hash_table_t *const hashtblP, const hash_size_t
|
|||||||
|
|
||||||
newtbl.size = sizeP;
|
newtbl.size = sizeP;
|
||||||
newtbl.hashfunc = hashtblP->hashfunc;
|
newtbl.hashfunc = hashtblP->hashfunc;
|
||||||
|
newtbl.num_elements = 0;
|
||||||
|
|
||||||
if(!(newtbl.nodes=calloc(sizeP, sizeof(hash_node_t *)))) return -1;
|
if(!(newtbl.nodes=calloc(sizeP, sizeof(hash_node_t *)))) return -1;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
measur command can be used to get cpu usage or signal processing statistics from a running eNB instance.
|
||||||
|
|
||||||
|
|
||||||
|
Measurments can be displayed by groups, the list of available groups can be retrieved using the `measur show groups` command.
|
||||||
|
```bash
|
||||||
|
softmodem> measur show groups
|
||||||
|
name type
|
||||||
|
00 enb ltestats
|
||||||
|
01 enbues ltestats
|
||||||
|
02 rlc ltestats
|
||||||
|
03 phycpu cpustats
|
||||||
|
04 maccpu cpustats
|
||||||
|
05 pdcpcpu cpustats
|
||||||
|
softmodem>
|
||||||
|
```
|
||||||
|
By default the oai softmodem doesn't compute cpu usage measurments, a specific command allows to enable them.
|
||||||
|
```bash
|
||||||
|
softmodem> measur cpustats enable
|
||||||
|
softmodem> measur show phycpu
|
||||||
|
--------------------------------- cpu (4 GHz) measurements: PHY (cpustats enabled) ---------------------------------
|
||||||
|
00 phy_proc_tx: 40.217 us; 178 | 01 phy_proc_rx: 0.000 us; 0 |
|
||||||
|
02 rx_prach: 40.123 us; 9 | 03 ofdm_mod: 0.000 us; 0 |
|
||||||
|
04 dlsch_common_and_dci: 39.311 us; 178 | 05 dlsch_ue_specific: 0.878 us; 178 |
|
||||||
|
06 dlsch_encoding: 5.667 us; 11 | 07 dlsch_modulation: 5.398 us; 11 |
|
||||||
|
08 dlsch_scrambling: 1.398 us; 11 | 09 dlsch_rate_matching: 1.367 us; 11 |
|
||||||
|
10 dlsch_turbo_encod_prep: 0.000 us; 0 | 11 dlsch_turbo_encod_segm: 0.000 us; 0 |
|
||||||
|
12 dlsch_turbo_encod: 2.408 us; 11 | 13 dlsch_turbo_encod_waiting: 0.000 us; 0 |
|
||||||
|
14 dlsch_turbo_encod_signal: 0.000 us; 0 | 15 dlsch_turbo_encod_main: 0.000 us; 0 |
|
||||||
|
16 dlsch_turbo_encod_wakeup0: 0.000 us; 0 | 17 dlsch_turbo_encod_wakeup1: 0.000 us; 0 |
|
||||||
|
18 dlsch_interleaving: 0.503 us; 11 | 19 rx_dft: 0.000 us; 0 |
|
||||||
|
20 ulsch_channel_estimation: 0.000 us; 0 | 21 ulsch_freq_offset_estimation: 0.000 us; 0 |
|
||||||
|
22 ulsch_decoding: 0.000 us; 0 | 23 ulsch_demodulation: 0.000 us; 0 |
|
||||||
|
24 ulsch_rate_unmatching: 0.000 us; 0 | 25 ulsch_turbo_decoding: 0.000 us; 0 |
|
||||||
|
26 ulsch_deinterleaving: 0.000 us; 0 | 27 ulsch_demultiplexing: 0.000 us; 0 |
|
||||||
|
softmodem> measur cpustats disable
|
||||||
|
```
|
||||||
|
|
||||||
|
signal processing statistics are always available.
|
||||||
|
```bash
|
||||||
|
softmodem> measur show enb
|
||||||
|
--------------------------------- eNB 0 mac stats CC 0 frame 68 ---------------------------------
|
||||||
|
total_num_bcch_pdu = 44 bcch_buffer = 17 total_bcch_buffer = 937
|
||||||
|
bcch_mcs = 2 total_num_ccch_pdu = 0 ccch_buffer = 0
|
||||||
|
total_ccch_buffer = 0 ccch_mcs = 0 total_num_pcch_pdu = 0
|
||||||
|
pcch_buffer = 0 total_pcch_buffer = 0 pcch_mcs = 0
|
||||||
|
num_dlactive_UEs = 0 available_prbs = 25 total_available_prbs = 16924
|
||||||
|
available_ncces = 0 dlsch_bitrate = 0 dlsch_bytes_tx = 0
|
||||||
|
dlsch_pdus_tx = 0 total_dlsch_bitrate = 0 total_dlsch_bytes_tx = 0
|
||||||
|
total_dlsch_pdus_tx = 0 ulsch_bitrate = 0 ulsch_bytes_rx = 0
|
||||||
|
ulsch_pdus_rx = 0 total_ulsch_bitrate = 0 total_ulsch_bytes_rx = 0
|
||||||
|
total_ulsch_pdus_rx = 0 sched_decisions = 0 missed_deadlines = 0
|
||||||
|
```
|
||||||
|
[oai telnetserver home](telnetsrv.md)
|
||||||
|
[oai telnetserver usage home](telnetusage.md)
|
||||||
@@ -5,7 +5,7 @@ By default the embedded telnet server, which is implemented in a shared library,
|
|||||||
cd \<oai repository\>/openairinterface5g
|
cd \<oai repository\>/openairinterface5g
|
||||||
source oaienv
|
source oaienv
|
||||||
cd cmake_targets
|
cd cmake_targets
|
||||||
./build_oai --build-telnetsrv
|
./build_oai --build-lib telnetsrv
|
||||||
```
|
```
|
||||||
|
|
||||||
This will create the `libtelnetsrv.so` file in the `targets/bin` and `cmake_targets/lte_build_oai/build` sub directories of the oai repository.
|
This will create the `libtelnetsrv.so` file in the `targets/bin` and `cmake_targets/lte_build_oai/build` sub directories of the oai repository.
|
||||||
@@ -23,6 +23,7 @@ Below are examples of telnet sessions:
|
|||||||
* [using the loop command](telnetloop.md)
|
* [using the loop command](telnetloop.md)
|
||||||
* [loader command](telnetloader.md)
|
* [loader command](telnetloader.md)
|
||||||
* [log command](telnetlog.md)
|
* [log command](telnetlog.md)
|
||||||
|
* [measur command](telnetmeasur.md)
|
||||||
|
|
||||||
# telnet server parameters
|
# telnet server parameters
|
||||||
The telnet server is using the [oai configuration module](Config/Rtusage). Telnet parameters must be specified in the `telnetsrv` section. Some parameters can be modified via the telnet telnet server command, as specified in the last column of the following table.
|
The telnet server is using the [oai configuration module](Config/Rtusage). Telnet parameters must be specified in the `telnetsrv` section. Some parameters can be modified via the telnet telnet server command, as specified in the last column of the following table.
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ eNBs =
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
///X2
|
///X2
|
||||||
enable_x2 = "no";
|
enable_x2 = "no";
|
||||||
t_reloc_prep = 1000; /* unit: millisecond */
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
|||||||
+43
-19
@@ -36,11 +36,7 @@ The oai softmodem supports many use cases, and new ones are regularly added. Mos
|
|||||||
- all simulators, with exception of PHY simulators, which are distinct executables.
|
- all simulators, with exception of PHY simulators, which are distinct executables.
|
||||||
|
|
||||||
|
|
||||||
Calling the `build_oai` script with the -h option gives the list of all available options, but a process to simplify and check the requirements of all these options is on-going. Check the
|
Calling the `build_oai` script with the -h option gives the list of all available options, but a process to simplify and check the requirements of all these options is on-going. Check the [table](BUILD.md "# `build_oai` options") At the end of this page to know the status of `buid_oai` options which are not described hereafter.
|
||||||
|
|
||||||
[table]: BUILD.md "`build_oai` options"
|
|
||||||
|
|
||||||
At the end of this page to know the status of `buid_oai` options which are not described hereafter.
|
|
||||||
|
|
||||||
# Building PHY Simulators
|
# Building PHY Simulators
|
||||||
|
|
||||||
@@ -53,7 +49,7 @@ After downloading the source files, a single build command can be used to get th
|
|||||||
```
|
```
|
||||||
cd <your oai installation directory>/openairinterface5g/
|
cd <your oai installation directory>/openairinterface5g/
|
||||||
source oaienv
|
source oaienv
|
||||||
cd ../cmake_targets/
|
cd cmake_targets/
|
||||||
./build_oai -I -w USRP --eNB --UE
|
./build_oai -I -w USRP --eNB --UE
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -66,22 +62,58 @@ You can build the eNodeB and the UE separately, you may not need both of them de
|
|||||||
|
|
||||||
After completing the build, the binaries are available in the `cmake_targets/lte_build_oai/build` directory. A copy is also available in the `target/bin` directory, with all binaries suffixed by the 3GPP release number, today .Rel14 by default. It must be noticed that the option for building for a specific 3GPP release number is not tested by the CI and may be removed in the future.
|
After completing the build, the binaries are available in the `cmake_targets/lte_build_oai/build` directory. A copy is also available in the `target/bin` directory, with all binaries suffixed by the 3GPP release number, today .Rel14 by default. It must be noticed that the option for building for a specific 3GPP release number is not tested by the CI and may be removed in the future.
|
||||||
|
|
||||||
|
## Issue when building `nasmeh` module ##
|
||||||
|
|
||||||
|
A lot of users and contributors have faced the issue: `nasmesh` module does not build.
|
||||||
|
|
||||||
|
The reason is that the linux headers are not properly installed. For example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ uname -r
|
||||||
|
4.4.0-145-lowlatency
|
||||||
|
$ dpkg --list | grep 4.4.0-145-lowlatency | grep headers
|
||||||
|
ii linux-headers-4.4.0-145-lowlatency 4.4.0-145.171
|
||||||
|
```
|
||||||
|
|
||||||
|
In my example it is properly installed.
|
||||||
|
|
||||||
|
Check on your environment:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ uname -r
|
||||||
|
your-version
|
||||||
|
$ dpkg --list | grep your-version | grep headers
|
||||||
|
$
|
||||||
|
```
|
||||||
|
|
||||||
|
Install it:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ sudo apt-get install --yes linux-headers-your-version
|
||||||
|
```
|
||||||
|
|
||||||
# Building Optional Binaries
|
# Building Optional Binaries
|
||||||
|
|
||||||
## Telnet Server
|
## Telnet Server
|
||||||
|
|
||||||
The telnet server can be built with the --build-telnet option, after building the softmodem or while building it.
|
The telnet server can be built with the `--build-lib telnetsrv` option, after building the softmodem or while building it.
|
||||||
|
|
||||||
`./build_oai -I -w USRP --eNB --UE --build-telnetsrv`
|
`./build_oai -I -w USRP --eNB --UE --build-lib telnetsrv`
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
`./build_oai --build-telnetsrv`
|
`./build_oai --build-lib telnetsrv`
|
||||||
|
|
||||||
|
You can get documentation about the telnet server [here](common/utils/telnetsrv/DOC/telnetsrv.md)
|
||||||
|
|
||||||
## USRP record player
|
## USRP record player
|
||||||
|
|
||||||
The USRP record player today needs a specific build. Work to make it available as a run time option is under consideration
|
The USRP record player today needs a specific build. Work to make it available as a run time option is under consideration
|
||||||
|
|
||||||
|
## Other optional libraries
|
||||||
|
|
||||||
|
Using the help option of the build script you can get the list of available optional libraries. Those which haven't been mentioned above are known to need more tests and documentation
|
||||||
|
|
||||||
# `build_oai` options
|
# `build_oai` options
|
||||||
|
|
||||||
| Option | Status | Description |
|
| Option | Status | Description |
|
||||||
@@ -89,12 +121,11 @@ The USRP record player today needs a specific build. Work to make it available a
|
|||||||
| -h | maintained | get help |
|
| -h | maintained | get help |
|
||||||
| -c | maintained | erase all previously built files for this target before starting the new build. |
|
| -c | maintained | erase all previously built files for this target before starting the new build. |
|
||||||
| -C | maintained, needs improvement | erase all previously built files for any target before starting the new build. |
|
| -C | maintained, needs improvement | erase all previously built files for any target before starting the new build. |
|
||||||
| --verbose-compile | maintained | |
|
| --verbose-compile | maintained | get compilation messages, as when running `make` or `gcc` directly. |
|
||||||
| --cflags_processor | maintained | used to pass options to the compiler |
|
| --cflags_processor | maintained | used to pass options to the compiler |
|
||||||
| --clean-kernel | unknown | no code in the script corresponding to this option |
|
| --clean-kernel | unknown | no code in the script corresponding to this option |
|
||||||
| --install-system-files | maintained | install oai built binaries in linux system files repositories |
|
| --install-system-files | maintained | install oai built binaries in linux system files repositories |
|
||||||
| -w | maintained and tested in CI for USRP device | build corresponding oai device and create the soft link to enforce this device usage at run-time |
|
| -w | maintained and tested in CI for USRP device | build corresponding oai device and create the soft link to enforce this device usage at run-time |
|
||||||
| -t | maintained | build the specified transport library, which is used in some simulators and in non monolithic eNodeB deployments. Now of little interest as transport library build is enforced when building the eNodeB. |
|
|
||||||
| --phy_simulators | maintained, tested in CI | build all PHY simulators, a set of executables allowing unitary tests of LTE channel implementation within oai. |
|
| --phy_simulators | maintained, tested in CI | build all PHY simulators, a set of executables allowing unitary tests of LTE channel implementation within oai. |
|
||||||
| --core_simulators | | |
|
| --core_simulators | | |
|
||||||
| -s | | |
|
| -s | | |
|
||||||
@@ -106,24 +137,17 @@ The USRP record player today needs a specific build. Work to make it available a
|
|||||||
| --eNB | maintained and tested in CI | build `lte-softmodem` the LTE eNodeB |
|
| --eNB | maintained and tested in CI | build `lte-softmodem` the LTE eNodeB |
|
||||||
| --UE | maintained and tested in CI | build `lte-uesoftmodem` the LTE UE |
|
| --UE | maintained and tested in CI | build `lte-uesoftmodem` the LTE UE |
|
||||||
| --usrp-recplay | maintained | build with support for the record player. Implementation will be soon reviewed to switch to a run-time option. |
|
| --usrp-recplay | maintained | build with support for the record player. Implementation will be soon reviewed to switch to a run-time option. |
|
||||||
| --build-telnet | maintained | build the telnet server shared library, which can then be loaded at run time via the --telnetsrv command line option. |
|
| --build-lib | maintained | build optional shared library(ies), which can then be loaded at run time via command line option. Use the --help option to get the list of supported optional libraries. |
|
||||||
| --build-msc | unknown | build the msc shared library, which can then be loaded at run time via the --msc command line option. msc is a tracing utility which status is unknown. |
|
|
||||||
| --UE-conf-nvram | | |
|
| --UE-conf-nvram | | |
|
||||||
| --UE-gen-nvram | | |
|
| --UE-gen-nvram | | |
|
||||||
| -r | unknown, to be removed | specifies which 3GPP release to build for. Only the default (today rel14) is tested in CI and it is likely that future oai release will remove this option |
|
| -r | unknown, to be removed | specifies which 3GPP release to build for. Only the default (today rel14) is tested in CI and it is likely that future oai release will remove this option |
|
||||||
| -V | deprecated | Used to build with support for synchronization diagram utility. This is now available via the T-Tracer and is included if T-Tracer is not disabled. |
|
| -V | deprecated | Used to build with support for synchronization diagram utility. This is now available via the T-Tracer and is included if T-Tracer is not disabled. |
|
||||||
| -x | deprecated | Used to build with support for embedded signal analyzer. This is now available via the T-Tracer and is included if T-Tracer is not disabled. |
|
|
||||||
| --noS1 | deprecated, to be removed | build noS1 version of oai softmodem binaries. noS1 allows running oai eNodeB and UE without an LTE core network (EPC). This functionality is now available via a run-time option. |
|
|
||||||
| --build-doxygen | unknown | build doxygen documentation, many oai source files do not include doxygen comments |
|
| --build-doxygen | unknown | build doxygen documentation, many oai source files do not include doxygen comments |
|
||||||
| --disable-deadline --enable-deadline --disable-cpu-affinity | deprecated | These options were used to activate or de-activate specific code depending on the choice of a specific linux scheduling mode. This has not been tested for a while and should be implemented as configuration options |
|
| --disable-deadline --enable-deadline --disable-cpu-affinity | deprecated | These options were used to activate or de-activate specific code depending on the choice of a specific linux scheduling mode. This has not been tested for a while and should be implemented as configuration options |
|
||||||
| --disable-T-Tracer | maintained, to be tested | Remove T_Tracer and console LOG messages except error messages. |
|
| --disable-T-Tracer | maintained, to be tested | Remove T_Tracer and console LOG messages except error messages. |
|
||||||
| --disable-hardware-dependency | | |
|
| --disable-hardware-dependency | | |
|
||||||
| --ue-autotest-trace --ue-timing --ue-trace | deprecated | Were used to enable conditional code implementing debugging messages or debugging statistics. These functionalities are now either available from run-time options or not maintained. |
|
| --ue-autotest-trace --ue-timing --ue-trace | deprecated | Were used to enable conditional code implementing debugging messages or debugging statistics. These functionalities are now either available from run-time options or not maintained. |
|
||||||
| --disable-log | deprecated, to be removed | Was used to disable LOG messages, replaced by `--disable-T-Tracer` build option to remove tracing code from the build or `--T-stdout 0` run time option to redirect LOG messages to T-Tracer client interface. |
|
|
||||||
| --ue-nas-use-tun | deprecated to be removed | Usage of tun in place of specific kernel modules is now a run time option. `--nokrnmod 0` option disable the default behavior which is to use tun to send or receive ip packets to/from the linux ip stack. |
|
|
||||||
| --build-eclipse | unknown | |
|
| --build-eclipse | unknown | |
|
||||||
| --basic-simulator | deprecated tested in CI | builds the basic simulator device. Now of little interest as this device build is enforced when building the eNodeB and it can be used at run time with the `--basicsim` option. More over the rf simulator is an enhanced basic simulator. |
|
|
||||||
| --rfsimulator | maintained | builds the rf simulator device. Now of little interest as this device build is enforced when building the eNodeB and it can be used at run time with the `--rfsim` option. |
|
|
||||||
| | | |
|
| | | |
|
||||||
|
|
||||||
[oai wiki home](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home)
|
[oai wiki home](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home)
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ The RRC layer is based on **3GPP 36.331** v14.3.0 and implements the following f
|
|||||||
- eMBMS for multicast and broadcast (experimental)
|
- eMBMS for multicast and broadcast (experimental)
|
||||||
- Handover (experimental)
|
- Handover (experimental)
|
||||||
- Paging (soon)
|
- Paging (soon)
|
||||||
|
- RRC inactivity timer (release of UE after a period of data inactivity)
|
||||||
|
|
||||||
## eNB X2AP ##
|
## eNB X2AP ##
|
||||||
|
|
||||||
@@ -167,6 +168,9 @@ The Physical layer implements **3GPP 36.211**, **36.212**, **36.213** and provid
|
|||||||
- PRACH preamble format 0
|
- PRACH preamble format 0
|
||||||
- All downlink (DL) channels are supported: PSS, SSS, PBCH, PCFICH, PHICH, PDCCH, PDSCH, PMCH
|
- All downlink (DL) channels are supported: PSS, SSS, PBCH, PCFICH, PHICH, PDCCH, PDSCH, PMCH
|
||||||
- All uplink (UL) channels are supported: PRACH, PUSCH, PUCCH (format 1/1a/1b), SRS, DRS
|
- All uplink (UL) channels are supported: PRACH, PUSCH, PUCCH (format 1/1a/1b), SRS, DRS
|
||||||
|
- LTE MBMS-dedicated cell (feMBMS) procedures subset for LTE release 14 (experimental)
|
||||||
|
- LTE non-MBSFN subframe (feMBMS) Carrier Adquistion Subframe-CAS procedures (PSS/SSS/PBCH/PDSH) (experimental)
|
||||||
|
- LTE MBSFN MBSFN subframe channel (feMBMS): PMCH (CS@1.25KHz) (channel estimation for 25MHz bandwidth) (experimental)
|
||||||
|
|
||||||
## LTE UE MAC Layer ##
|
## LTE UE MAC Layer ##
|
||||||
|
|
||||||
@@ -178,6 +182,8 @@ The MAC layer implements a subset of the **3GPP 36.321** release v8.6 in support
|
|||||||
- RLC interface (AM, UM)
|
- RLC interface (AM, UM)
|
||||||
- UL power control
|
- UL power control
|
||||||
- Link adaptation
|
- Link adaptation
|
||||||
|
- MBMS-dedicated cell (feMBMS) RRC interface for BCCH
|
||||||
|
- eMBMS and MBMS-dedicated cell (feMBMS) RRC interface for MCCH, MTCH
|
||||||
|
|
||||||
## LTE UE RLC Layer ##
|
## LTE UE RLC Layer ##
|
||||||
|
|
||||||
@@ -193,6 +199,7 @@ The RRC layer is based on **3GPP 36.331** v14.3.0 and implements the following f
|
|||||||
|
|
||||||
- System Information decoding
|
- System Information decoding
|
||||||
- RRC connection establishment
|
- RRC connection establishment
|
||||||
|
- MBMS-dedicated cell (feMBMS) SI-MBMS/SIB1-MBMS management
|
||||||
|
|
||||||
## LTE UE NAS Layer ##
|
## LTE UE NAS Layer ##
|
||||||
|
|
||||||
|
|||||||
@@ -704,6 +704,18 @@ typedef struct {
|
|||||||
#define NFAPI_PUCCH_CONFIG_N_AN_CS_TAG 0x003E
|
#define NFAPI_PUCCH_CONFIG_N_AN_CS_TAG 0x003E
|
||||||
#define NFAPI_PUCCH_CONFIG_N1_PUCCH_AN_TAG 0x003F
|
#define NFAPI_PUCCH_CONFIG_N1_PUCCH_AN_TAG 0x003F
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
nfapi_uint8_tlv_t radioframe_allocation_period;
|
||||||
|
nfapi_uint8_tlv_t radioframe_allocation_offset;
|
||||||
|
nfapi_uint8_tlv_t non_mbsfn_config_flag;
|
||||||
|
nfapi_uint16_tlv_t non_mbsfn_subframeconfig;
|
||||||
|
} nfapi_fembms_config_t;
|
||||||
|
|
||||||
|
#define NFAPI_FEMBMS_CONFIG_RADIOFRAME_ALLOCATION_PERIOD_TAG 0x0042
|
||||||
|
#define NFAPI_FEMBMS_CONFIG_RADIOFRAME_ALLOCATION_OFFSET_TAG 0x0043
|
||||||
|
#define NFAPI_FEMBMS_CONFIG_NON_MBSFN_FLAG_TAG 0x0044
|
||||||
|
#define NFAPI_FEMBMS_CONFIG_NON_MBSFN_SUBFRAMECONFIG_TAG 0x0045
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
nfapi_uint16_tlv_t bandwidth_configuration;
|
nfapi_uint16_tlv_t bandwidth_configuration;
|
||||||
nfapi_uint16_tlv_t max_up_pts;
|
nfapi_uint16_tlv_t max_up_pts;
|
||||||
@@ -1099,6 +1111,7 @@ typedef struct {
|
|||||||
nfapi_prach_config_t prach_config;
|
nfapi_prach_config_t prach_config;
|
||||||
nfapi_pusch_config_t pusch_config;
|
nfapi_pusch_config_t pusch_config;
|
||||||
nfapi_pucch_config_t pucch_config;
|
nfapi_pucch_config_t pucch_config;
|
||||||
|
nfapi_fembms_config_t fembms_config;
|
||||||
nfapi_srs_config_t srs_config;
|
nfapi_srs_config_t srs_config;
|
||||||
nfapi_uplink_reference_signal_config_t uplink_reference_signal_config;
|
nfapi_uplink_reference_signal_config_t uplink_reference_signal_config;
|
||||||
nfapi_tdd_frame_structure_t tdd_frame_structure_config;
|
nfapi_tdd_frame_structure_t tdd_frame_structure_config;
|
||||||
@@ -1120,6 +1133,7 @@ typedef struct {
|
|||||||
nfapi_prach_config_t prach_config;
|
nfapi_prach_config_t prach_config;
|
||||||
nfapi_pusch_config_t pusch_config;
|
nfapi_pusch_config_t pusch_config;
|
||||||
nfapi_pucch_config_t pucch_config;
|
nfapi_pucch_config_t pucch_config;
|
||||||
|
nfapi_fembms_config_t fembms_config;
|
||||||
nfapi_srs_config_t srs_config;
|
nfapi_srs_config_t srs_config;
|
||||||
nfapi_uplink_reference_signal_config_t uplink_reference_signal_config;
|
nfapi_uplink_reference_signal_config_t uplink_reference_signal_config;
|
||||||
nfapi_laa_config_t laa_config;
|
nfapi_laa_config_t laa_config;
|
||||||
|
|||||||
@@ -461,6 +461,12 @@ static uint8_t pack_param_response(void *msg, uint8_t **ppWritePackedMsg, uint8_
|
|||||||
pack_tlv(NFAPI_PUCCH_CONFIG_N_AN_CS_TAG, &(pNfapiMsg->pucch_config.n_an_cs), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
pack_tlv(NFAPI_PUCCH_CONFIG_N_AN_CS_TAG, &(pNfapiMsg->pucch_config.n_an_cs), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
||||||
pack_tlv(NFAPI_PUCCH_CONFIG_N1_PUCCH_AN_TAG, &(pNfapiMsg->pucch_config.n1_pucch_an), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
pack_tlv(NFAPI_PUCCH_CONFIG_N1_PUCCH_AN_TAG, &(pNfapiMsg->pucch_config.n1_pucch_an), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
||||||
|
|
||||||
|
pack_tlv(NFAPI_FEMBMS_CONFIG_RADIOFRAME_ALLOCATION_PERIOD_TAG, &(pNfapiMsg->fembms_config.radioframe_allocation_period), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
|
||||||
|
pack_tlv(NFAPI_FEMBMS_CONFIG_RADIOFRAME_ALLOCATION_OFFSET_TAG, &(pNfapiMsg->fembms_config.radioframe_allocation_offset), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
|
||||||
|
pack_tlv(NFAPI_FEMBMS_CONFIG_NON_MBSFN_FLAG_TAG, &(pNfapiMsg->fembms_config.non_mbsfn_config_flag), ppWritePackedMsg, end, &pack_uint8_tlv_value) &&
|
||||||
|
pack_tlv(NFAPI_FEMBMS_CONFIG_NON_MBSFN_SUBFRAMECONFIG_TAG, &(pNfapiMsg->fembms_config.non_mbsfn_subframeconfig), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
||||||
|
|
||||||
|
|
||||||
pack_tlv(NFAPI_SRS_CONFIG_BANDWIDTH_CONFIGURATION_TAG, &(pNfapiMsg->srs_config.bandwidth_configuration), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
pack_tlv(NFAPI_SRS_CONFIG_BANDWIDTH_CONFIGURATION_TAG, &(pNfapiMsg->srs_config.bandwidth_configuration), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
||||||
pack_tlv(NFAPI_SRS_CONFIG_MAX_UP_PTS_TAG, &(pNfapiMsg->srs_config.max_up_pts), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
pack_tlv(NFAPI_SRS_CONFIG_MAX_UP_PTS_TAG, &(pNfapiMsg->srs_config.max_up_pts), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
||||||
pack_tlv(NFAPI_SRS_CONFIG_SRS_SUBFRAME_CONFIGURATION_TAG, &(pNfapiMsg->srs_config.srs_subframe_configuration), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
pack_tlv(NFAPI_SRS_CONFIG_SRS_SUBFRAME_CONFIGURATION_TAG, &(pNfapiMsg->srs_config.srs_subframe_configuration), ppWritePackedMsg, end, &pack_uint16_tlv_value) &&
|
||||||
|
|||||||
+12
-379
@@ -311,6 +311,12 @@ void phy_config_request(PHY_Config_t *phy_config) {
|
|||||||
|
|
||||||
fp->num_MBSFN_config = 0;
|
fp->num_MBSFN_config = 0;
|
||||||
|
|
||||||
|
fp->NonMBSFN_config_flag =cfg->fembms_config.non_mbsfn_config_flag.value;
|
||||||
|
fp->NonMBSFN_config.non_mbsfn_SubframeConfig = cfg->fembms_config.non_mbsfn_subframeconfig.value;
|
||||||
|
fp->NonMBSFN_config.radioframeAllocationPeriod = cfg->fembms_config.radioframe_allocation_period.value;
|
||||||
|
fp->NonMBSFN_config.radioframeAllocationOffset = cfg->fembms_config.radioframe_allocation_offset.value;
|
||||||
|
LOG_D(PHY,"eNB %d/%d frame NonMBSFN configured: %d (%x) %d/%d\n",Mod_id,CC_id,fp->NonMBSFN_config_flag,fp->NonMBSFN_config.non_mbsfn_SubframeConfig,fp->NonMBSFN_config.radioframeAllocationPeriod,fp->NonMBSFN_config.radioframeAllocationOffset);
|
||||||
|
|
||||||
init_ncs_cell (fp, RC.eNB[Mod_id][CC_id]->ncs_cell);
|
init_ncs_cell (fp, RC.eNB[Mod_id][CC_id]->ncs_cell);
|
||||||
|
|
||||||
|
|
||||||
@@ -320,148 +326,6 @@ void phy_config_request(PHY_Config_t *phy_config) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
void phy_config_sib2_eNB(uint8_t Mod_id,
|
|
||||||
int CC_id,
|
|
||||||
RadioResourceConfigCommonSIB_t *radioResourceConfigCommon,
|
|
||||||
ARFCN_ValueEUTRA_t *ul_CArrierFreq,
|
|
||||||
long *ul_Bandwidth,
|
|
||||||
AdditionalSpectrumEmission_t *additionalSpectrumEmission,
|
|
||||||
struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList)
|
|
||||||
{
|
|
||||||
|
|
||||||
LTE_DL_FRAME_PARMS *fp = &RC.eNB[Mod_id][CC_id]->frame_parms;
|
|
||||||
//LTE_eNB_UE_stats *eNB_UE_stats = RC.eNB[Mod_id][CC_id].eNB_UE_stats;
|
|
||||||
//int32_t rx_total_gain_eNB_dB = RC.eNB[Mod_id][CC_id].rx_total_gain_eNB_dB;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
LOG_I(PHY,"[eNB%d] CCid %d: Applying radioResourceConfigCommon\n",Mod_id,CC_id);
|
|
||||||
|
|
||||||
|
|
||||||
fp->prach_config_common.rootSequenceIndex = radioResourceConfigCommon->prach_Config.rootSequenceIndex;
|
|
||||||
LOG_D(PHY,"prach_config_common.rootSequenceIndex = %d\n",fp->prach_config_common.rootSequenceIndex );
|
|
||||||
|
|
||||||
fp->prach_config_common.prach_Config_enabled=1;
|
|
||||||
|
|
||||||
fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.prach_ConfigIndex;
|
|
||||||
LOG_D(PHY,"prach_config_common.prach_ConfigInfo.prach_ConfigIndex = %d\n",fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex);
|
|
||||||
|
|
||||||
fp->prach_config_common.prach_ConfigInfo.highSpeedFlag =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.highSpeedFlag;
|
|
||||||
LOG_D(PHY,"prach_config_common.prach_ConfigInfo.highSpeedFlag = %d\n",fp->prach_config_common.prach_ConfigInfo.highSpeedFlag);
|
|
||||||
fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig;
|
|
||||||
LOG_D(PHY,"prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = %d\n",fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig);
|
|
||||||
fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.prach_FreqOffset;
|
|
||||||
LOG_D(PHY,"prach_config_common.prach_ConfigInfo.prach_FreqOffset = %d\n",fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset);
|
|
||||||
|
|
||||||
init_prach_tables(839);
|
|
||||||
compute_prach_seq(&fp->prach_config_common,fp->frame_type,
|
|
||||||
RC.eNB[Mod_id][CC_id]->X_u);
|
|
||||||
|
|
||||||
fp->pucch_config_common.deltaPUCCH_Shift = 1+radioResourceConfigCommon->pucch_ConfigCommon.deltaPUCCH_Shift;
|
|
||||||
fp->pucch_config_common.nRB_CQI = radioResourceConfigCommon->pucch_ConfigCommon.nRB_CQI;
|
|
||||||
fp->pucch_config_common.nCS_AN = radioResourceConfigCommon->pucch_ConfigCommon.nCS_AN;
|
|
||||||
fp->pucch_config_common.n1PUCCH_AN = radioResourceConfigCommon->pucch_ConfigCommon.n1PUCCH_AN;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fp->pdsch_config_common.referenceSignalPower = radioResourceConfigCommon->pdsch_ConfigCommon.referenceSignalPower;
|
|
||||||
fp->pdsch_config_common.p_b = radioResourceConfigCommon->pdsch_ConfigCommon.p_b;
|
|
||||||
|
|
||||||
|
|
||||||
fp->pusch_config_common.n_SB = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.n_SB;
|
|
||||||
LOG_D(PHY,"pusch_config_common.n_SB = %d\n",fp->pusch_config_common.n_SB );
|
|
||||||
|
|
||||||
fp->pusch_config_common.hoppingMode = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode;
|
|
||||||
LOG_D(PHY,"pusch_config_common.hoppingMode = %d\n",fp->pusch_config_common.hoppingMode);
|
|
||||||
|
|
||||||
fp->pusch_config_common.pusch_HoppingOffset = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset;
|
|
||||||
LOG_D(PHY,"pusch_config_common.pusch_HoppingOffset = %d\n",fp->pusch_config_common.pusch_HoppingOffset);
|
|
||||||
|
|
||||||
fp->pusch_config_common.enable64QAM = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM;
|
|
||||||
LOG_D(PHY,"pusch_config_common.enable64QAM = %d\n",fp->pusch_config_common.enable64QAM );
|
|
||||||
|
|
||||||
fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled;
|
|
||||||
LOG_D(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled);
|
|
||||||
|
|
||||||
fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH;
|
|
||||||
LOG_D(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH);
|
|
||||||
|
|
||||||
fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled;
|
|
||||||
LOG_D(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled);
|
|
||||||
|
|
||||||
fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = dmrs1_tab[radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift];
|
|
||||||
LOG_D(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift);
|
|
||||||
|
|
||||||
init_ul_hopping(fp);
|
|
||||||
|
|
||||||
fp->soundingrs_ul_config_common.enabled_flag = 0;
|
|
||||||
|
|
||||||
if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon.present==SoundingRS_UL_ConfigCommon_PR_setup) {
|
|
||||||
fp->soundingrs_ul_config_common.enabled_flag = 1;
|
|
||||||
fp->soundingrs_ul_config_common.srs_BandwidthConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_BandwidthConfig;
|
|
||||||
fp->soundingrs_ul_config_common.srs_SubframeConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig;
|
|
||||||
fp->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission;
|
|
||||||
|
|
||||||
if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts)
|
|
||||||
fp->soundingrs_ul_config_common.srs_MaxUpPts = 1;
|
|
||||||
else
|
|
||||||
fp->soundingrs_ul_config_common.srs_MaxUpPts = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fp->ul_power_control_config_common.p0_NominalPUSCH = radioResourceConfigCommon->uplinkPowerControlCommon.p0_NominalPUSCH;
|
|
||||||
fp->ul_power_control_config_common.alpha = radioResourceConfigCommon->uplinkPowerControlCommon.alpha;
|
|
||||||
fp->ul_power_control_config_common.p0_NominalPUCCH = radioResourceConfigCommon->uplinkPowerControlCommon.p0_NominalPUCCH;
|
|
||||||
fp->ul_power_control_config_common.deltaPreambleMsg3 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaPreambleMsg3;
|
|
||||||
fp->ul_power_control_config_common.deltaF_PUCCH_Format1 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1;
|
|
||||||
fp->ul_power_control_config_common.deltaF_PUCCH_Format1b = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b;
|
|
||||||
fp->ul_power_control_config_common.deltaF_PUCCH_Format2 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2;
|
|
||||||
fp->ul_power_control_config_common.deltaF_PUCCH_Format2a = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a;
|
|
||||||
fp->ul_power_control_config_common.deltaF_PUCCH_Format2b = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b;
|
|
||||||
|
|
||||||
fp->maxHARQ_Msg3Tx = radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx;
|
|
||||||
|
|
||||||
|
|
||||||
// Now configure some of the Physical Channels
|
|
||||||
|
|
||||||
// PUCCH
|
|
||||||
|
|
||||||
init_ncs_cell(fp,RC.eNB[Mod_id][CC_id]->ncs_cell);
|
|
||||||
|
|
||||||
init_ul_hopping(fp);
|
|
||||||
|
|
||||||
// MBSFN
|
|
||||||
if (mbsfn_SubframeConfigList != NULL) {
|
|
||||||
fp->num_MBSFN_config = mbsfn_SubframeConfigList->list.count;
|
|
||||||
|
|
||||||
for (i = 0; i < mbsfn_SubframeConfigList->list.count; i++) {
|
|
||||||
fp->MBSFN_config[i].radioframeAllocationPeriod = mbsfn_SubframeConfigList->list.array[i]->radioframeAllocationPeriod;
|
|
||||||
fp->MBSFN_config[i].radioframeAllocationOffset = mbsfn_SubframeConfigList->list.array[i]->radioframeAllocationOffset;
|
|
||||||
|
|
||||||
if (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.present == MBSFN_SubframeConfig__subframeAllocation_PR_oneFrame) {
|
|
||||||
fp->MBSFN_config[i].fourFrames_flag = 0;
|
|
||||||
fp->MBSFN_config[i].mbsfn_SubframeConfig = mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[0]; // 6-bit subframe configuration
|
|
||||||
LOG_I (PHY, "[CONFIG] MBSFN_SubframeConfig[%d] pattern is %d\n", i, fp->MBSFN_config[i].mbsfn_SubframeConfig);
|
|
||||||
} else if (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.present == MBSFN_SubframeConfig__subframeAllocation_PR_fourFrames) { // 24-bit subframe configuration
|
|
||||||
fp->MBSFN_config[i].fourFrames_flag = 1;
|
|
||||||
fp->MBSFN_config[i].mbsfn_SubframeConfig =
|
|
||||||
mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[2]|
|
|
||||||
(mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[1]<<8)|
|
|
||||||
(mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[0]<<16);
|
|
||||||
|
|
||||||
LOG_I(PHY, "[CONFIG] MBSFN_SubframeConfig[%d] pattern is %x\n", i,
|
|
||||||
fp->MBSFN_config[i].mbsfn_SubframeConfig);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else
|
|
||||||
fp->num_MBSFN_config = 0;
|
|
||||||
|
|
||||||
//
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
void phy_config_sib13_eNB(module_id_t Mod_id,int CC_id,int mbsfn_Area_idx,
|
void phy_config_sib13_eNB(module_id_t Mod_id,int CC_id,int mbsfn_Area_idx,
|
||||||
long mbsfn_AreaId_r9)
|
long mbsfn_AreaId_r9)
|
||||||
@@ -478,244 +342,13 @@ void phy_config_sib13_eNB(module_id_t Mod_id,int CC_id,int mbsfn_Area_idx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
lte_gold_mbsfn (fp, RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_table, fp->Nid_cell_mbsfn);
|
lte_gold_mbsfn (fp, RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_table, fp->Nid_cell_mbsfn);
|
||||||
|
|
||||||
|
#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0))
|
||||||
|
lte_gold_mbsfn_khz_1dot25 (fp, RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_khz_1dot25_table, fp->Nid_cell_mbsfn);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
phy_config_dedicated_eNB_step2 (PHY_VARS_eNB * eNB)
|
|
||||||
{
|
|
||||||
uint16_t UE_id;
|
|
||||||
|
|
||||||
struct LTE_PhysicalConfigDedicated *physicalConfigDedicated;
|
|
||||||
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
|
|
||||||
|
|
||||||
for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) {
|
|
||||||
physicalConfigDedicated = eNB->physicalConfigDedicated[UE_id];
|
|
||||||
|
|
||||||
if (physicalConfigDedicated != NULL) {
|
|
||||||
LOG_I (PHY, "[eNB %d] Sent physicalConfigDedicated=%p for UE %d\n", eNB->Mod_id, physicalConfigDedicated, UE_id);
|
|
||||||
LOG_D (PHY, "------------------------------------------------------------------------\n");
|
|
||||||
|
|
||||||
if (physicalConfigDedicated->pdsch_ConfigDedicated) {
|
|
||||||
eNB->pdsch_config_dedicated[UE_id].p_a = physicalConfigDedicated->pdsch_ConfigDedicated->p_a;
|
|
||||||
LOG_D (PHY, "pdsch_config_dedicated.p_a %d\n", eNB->pdsch_config_dedicated[UE_id].p_a);
|
|
||||||
LOG_D (PHY, "\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (physicalConfigDedicated->pucch_ConfigDedicated) {
|
|
||||||
if (physicalConfigDedicated->pucch_ConfigDedicated->ackNackRepetition.present==LTE_PUCCH_ConfigDedicated__ackNackRepetition_PR_release)
|
|
||||||
eNB->pucch_config_dedicated[UE_id].ackNackRepetition=0;
|
|
||||||
else {
|
|
||||||
eNB->pucch_config_dedicated[UE_id].ackNackRepetition = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fp->frame_type == FDD) {
|
|
||||||
eNB->pucch_config_dedicated[UE_id].tdd_AckNackFeedbackMode = multiplexing;
|
|
||||||
} else {
|
|
||||||
if (physicalConfigDedicated->pucch_ConfigDedicated->tdd_AckNackFeedbackMode)
|
|
||||||
eNB->pucch_config_dedicated[UE_id].tdd_AckNackFeedbackMode = *physicalConfigDedicated->pucch_ConfigDedicated->tdd_AckNackFeedbackMode;
|
|
||||||
else
|
|
||||||
eNB->pucch_config_dedicated[UE_id].tdd_AckNackFeedbackMode = bundling;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (eNB->pucch_config_dedicated[UE_id].tdd_AckNackFeedbackMode == multiplexing)
|
|
||||||
LOG_D (PHY, "pucch_config_dedicated.tdd_AckNackFeedbackMode = multiplexing\n");
|
|
||||||
else
|
|
||||||
LOG_D (PHY, "pucch_config_dedicated.tdd_AckNackFeedbackMode = bundling\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (physicalConfigDedicated->pusch_ConfigDedicated) {
|
|
||||||
eNB->pusch_config_dedicated[UE_id].betaOffset_ACK_Index = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_ACK_Index;
|
|
||||||
eNB->pusch_config_dedicated[UE_id].betaOffset_RI_Index = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_RI_Index;
|
|
||||||
eNB->pusch_config_dedicated[UE_id].betaOffset_CQI_Index = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_CQI_Index;
|
|
||||||
|
|
||||||
LOG_E(PHY,"pusch_config_dedicated.betaOffset_ACK_Index %d\n",eNB->pusch_config_dedicated[UE_id].betaOffset_ACK_Index);
|
|
||||||
LOG_E(PHY,"pusch_config_dedicated.betaOffset_RI_Index %d\n",eNB->pusch_config_dedicated[UE_id].betaOffset_RI_Index);
|
|
||||||
LOG_E(PHY,"pusch_config_dedicated.betaOffset_CQI_Index %d\n",eNB->pusch_config_dedicated[UE_id].betaOffset_CQI_Index);
|
|
||||||
LOG_D(PHY,"\n");
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (physicalConfigDedicated->uplinkPowerControlDedicated) {
|
|
||||||
|
|
||||||
eNB->ul_power_control_dedicated[UE_id].p0_UE_PUSCH = physicalConfigDedicated->uplinkPowerControlDedicated->p0_UE_PUSCH;
|
|
||||||
eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled = physicalConfigDedicated->uplinkPowerControlDedicated->deltaMCS_Enabled;
|
|
||||||
eNB->ul_power_control_dedicated[UE_id].accumulationEnabled = physicalConfigDedicated->uplinkPowerControlDedicated->accumulationEnabled;
|
|
||||||
eNB->ul_power_control_dedicated[UE_id].p0_UE_PUCCH = physicalConfigDedicated->uplinkPowerControlDedicated->p0_UE_PUCCH;
|
|
||||||
eNB->ul_power_control_dedicated[UE_id].pSRS_Offset = physicalConfigDedicated->uplinkPowerControlDedicated->pSRS_Offset;
|
|
||||||
eNB->ul_power_control_dedicated[UE_id].filterCoefficient = *physicalConfigDedicated->uplinkPowerControlDedicated->filterCoefficient;
|
|
||||||
LOG_D (PHY, "ul_power_control_dedicated.p0_UE_PUSCH %d\n", eNB->ul_power_control_dedicated[UE_id].p0_UE_PUSCH);
|
|
||||||
LOG_D (PHY, "ul_power_control_dedicated.deltaMCS_Enabled %d\n", eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled);
|
|
||||||
LOG_D (PHY, "ul_power_control_dedicated.accumulationEnabled %d\n", eNB->ul_power_control_dedicated[UE_id].accumulationEnabled);
|
|
||||||
LOG_D (PHY, "ul_power_control_dedicated.p0_UE_PUCCH %d\n", eNB->ul_power_control_dedicated[UE_id].p0_UE_PUCCH);
|
|
||||||
LOG_D (PHY, "ul_power_control_dedicated.pSRS_Offset %d\n", eNB->ul_power_control_dedicated[UE_id].pSRS_Offset);
|
|
||||||
LOG_D (PHY, "ul_power_control_dedicated.filterCoefficient %d\n", eNB->ul_power_control_dedicated[UE_id].filterCoefficient);
|
|
||||||
LOG_D (PHY, "\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (physicalConfigDedicated->antennaInfo) {
|
|
||||||
eNB->transmission_mode[UE_id] = 1 + (physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode);
|
|
||||||
LOG_D (PHY, "Transmission Mode (phy_config_dedicated_eNB_step2) %d\n", eNB->transmission_mode[UE_id]);
|
|
||||||
LOG_D (PHY, "\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (physicalConfigDedicated->schedulingRequestConfig) {
|
|
||||||
if (physicalConfigDedicated->schedulingRequestConfig->present == LTE_SchedulingRequestConfig_PR_setup) {
|
|
||||||
eNB->scheduling_request_config[UE_id].sr_PUCCH_ResourceIndex = physicalConfigDedicated->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex;
|
|
||||||
eNB->scheduling_request_config[UE_id].sr_ConfigIndex = physicalConfigDedicated->schedulingRequestConfig->choice.setup.sr_ConfigIndex;
|
|
||||||
eNB->scheduling_request_config[UE_id].dsr_TransMax = physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax;
|
|
||||||
|
|
||||||
LOG_D (PHY, "scheduling_request_config.sr_PUCCH_ResourceIndex %d\n", eNB->scheduling_request_config[UE_id].sr_PUCCH_ResourceIndex);
|
|
||||||
LOG_D (PHY, "scheduling_request_config.sr_ConfigIndex %d\n", eNB->scheduling_request_config[UE_id].sr_ConfigIndex);
|
|
||||||
LOG_D (PHY, "scheduling_request_config.dsr_TransMax %d\n", eNB->scheduling_request_config[UE_id].dsr_TransMax);
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG_D (PHY, "------------------------------------------------------------\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated) {
|
|
||||||
if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated->present == LTE_SoundingRS_UL_ConfigDedicated_PR_setup) {
|
|
||||||
|
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].srsConfigDedicatedSetup = 1;
|
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].duration = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.duration;
|
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].cyclicShift = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift;
|
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].freqDomainPosition = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition;
|
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].srs_Bandwidth = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth;
|
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex;
|
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].srs_HoppingBandwidth = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth;
|
|
||||||
eNB->soundingrs_ul_config_dedicated[UE_id].transmissionComb = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb;
|
|
||||||
|
|
||||||
|
|
||||||
LOG_D (PHY, "soundingrs_ul_config_dedicated.srs_ConfigIndex %d\n", eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG_D (PHY, "------------------------------------------------------------\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
eNB->physicalConfigDedicated[UE_id] = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
void phy_config_dedicated_eNB(uint8_t Mod_id,
|
|
||||||
int CC_id,
|
|
||||||
uint16_t rnti,
|
|
||||||
struct PhysicalConfigDedicated *physicalConfigDedicated)
|
|
||||||
{
|
|
||||||
|
|
||||||
PHY_VARS_eNB *eNB = RC.eNB[Mod_id][CC_id];
|
|
||||||
int8_t UE_id = find_ue(rnti,eNB);
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (UE_id == -1) {
|
|
||||||
LOG_E( PHY, "[eNB %"PRIu8"] find_ue() returns -1\n", Mod_id);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (physicalConfigDedicated) {
|
|
||||||
eNB->physicalConfigDedicated[UE_id] = physicalConfigDedicated;
|
|
||||||
LOG_I(PHY,"phy_config_dedicated_eNB: physicalConfigDedicated=%p\n",physicalConfigDedicated);
|
|
||||||
|
|
||||||
if (physicalConfigDedicated->antennaInfo) {
|
|
||||||
switch(physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode) {
|
|
||||||
case AntennaInfoDedicated__transmissionMode_tm1:
|
|
||||||
eNB->transmission_mode[UE_id] = 1;
|
|
||||||
break;
|
|
||||||
case AntennaInfoDedicated__transmissionMode_tm2:
|
|
||||||
eNB->transmission_mode[UE_id] = 2;
|
|
||||||
break;
|
|
||||||
case AntennaInfoDedicated__transmissionMode_tm3:
|
|
||||||
eNB->transmission_mode[UE_id] = 3;
|
|
||||||
break;
|
|
||||||
case AntennaInfoDedicated__transmissionMode_tm4:
|
|
||||||
eNB->transmission_mode[UE_id] = 4;
|
|
||||||
break;
|
|
||||||
case AntennaInfoDedicated__transmissionMode_tm5:
|
|
||||||
eNB->transmission_mode[UE_id] = 5;
|
|
||||||
break;
|
|
||||||
case AntennaInfoDedicated__transmissionMode_tm6:
|
|
||||||
eNB->transmission_mode[UE_id] = 6;
|
|
||||||
break;
|
|
||||||
case AntennaInfoDedicated__transmissionMode_tm7:
|
|
||||||
lte_gold_ue_spec_port5(eNB->lte_gold_uespec_port5_table[0],eNB->frame_parms.Nid_cell,rnti);
|
|
||||||
|
|
||||||
for (i=0;i<eNB->num_RU;i++) eNB->RU_list[i]->do_precoding=1;
|
|
||||||
eNB->transmission_mode[UE_id] = 7;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
LOG_E (PHY, "Unknown transmission mode!\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
LOG_I(PHY,"Transmission Mode (phy_config_dedicated_eNB) %d\n",eNB->transmission_mode[UE_id]);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
LOG_D(PHY,"[eNB %d] : Received NULL radioResourceConfigDedicated->antennaInfo from eNB %d\n",Mod_id,UE_id);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
LOG_E(PHY,"[eNB %d] Received NULL radioResourceConfigDedicated from eNB %d\n",Mod_id, UE_id);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
void phy_config_dedicated_scell_eNB(uint8_t Mod_id,
|
|
||||||
uint16_t rnti,
|
|
||||||
SCellToAddMod_r10_t *sCellToAddMod_r10,
|
|
||||||
int CC_id)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
uint8_t UE_id = find_ue(rnti,RC.eNB[Mod_id][0]);
|
|
||||||
struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10 = sCellToAddMod_r10->radioResourceConfigDedicatedSCell_r10->physicalConfigDedicatedSCell_r10;
|
|
||||||
//struct RadioResourceConfigCommonSCell_r10 *physicalConfigCommonSCell_r10 = sCellToAddMod_r10->radioResourceConfigCommonSCell_r10;
|
|
||||||
//PhysCellId_t physCellId_r10 = sCellToAddMod_r10->cellIdentification_r10->physCellId_r10;
|
|
||||||
ARFCN_ValueEUTRA_t dl_CarrierFreq_r10 = sCellToAddMod_r10->cellIdentification_r10->dl_CarrierFreq_r10;
|
|
||||||
uint32_t carrier_freq_local;
|
|
||||||
|
|
||||||
if ((dl_CarrierFreq_r10>=36000) && (dl_CarrierFreq_r10<=36199)) {
|
|
||||||
carrier_freq_local = 1900000000 + (dl_CarrierFreq_r10-36000)*100000; //band 33 from 3GPP 36.101 v 10.9 Table 5.7.3-1
|
|
||||||
LOG_I(PHY,"[eNB %d] Frame %d: Configured SCell %d to frequency %d (ARFCN %ld) for UE %d\n",Mod_id,
|
|
||||||
//eNB->frame
|
|
||||||
0,
|
|
||||||
CC_id,carrier_freq_local,dl_CarrierFreq_r10,UE_id);
|
|
||||||
} else if ((dl_CarrierFreq_r10>=6150) && (dl_CarrierFreq_r10<=6449)) {
|
|
||||||
carrier_freq_local = 832000000 + (dl_CarrierFreq_r10-6150)*100000; //band 20 from 3GPP 36.101 v 10.9 Table 5.7.3-1
|
|
||||||
// this is actually for the UL only, but we use it for DL too, since there is no TDD mode for this band
|
|
||||||
LOG_I(PHY,"[eNB %d] Frame %d: Configured SCell %d to frequency %d (ARFCN %ld) for UE %d\n",Mod_id,
|
|
||||||
//eNB->frame
|
|
||||||
0,CC_id,carrier_freq_local,dl_CarrierFreq_r10,UE_id);
|
|
||||||
} else {
|
|
||||||
LOG_E(PHY,"[eNB %d] Frame %d: ARFCN %ld of SCell %d for UE %d not supported\n",Mod_id,
|
|
||||||
//eNB->frame
|
|
||||||
0,dl_CarrierFreq_r10,CC_id,UE_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (physicalConfigDedicatedSCell_r10) {
|
|
||||||
//#warning " eNB->physicalConfigDedicatedSCell_r10 does not exist in eNB"
|
|
||||||
// eNB->physicalConfigDedicatedSCell_r10[UE_id] = physicalConfigDedicatedSCell_r10;
|
|
||||||
LOG_I(PHY,"[eNB %d] Frame %d: Configured phyConfigDedicatedSCell with CC_id %d for UE %d\n",Mod_id,
|
|
||||||
//eNB->frame
|
|
||||||
0,CC_id,UE_id);
|
|
||||||
} else {
|
|
||||||
LOG_E(PHY,"[eNB %d] Frame %d: Received NULL radioResourceConfigDedicated (CC_id %d, UE %d)\n",Mod_id,
|
|
||||||
//eNB->frame
|
|
||||||
0,CC_id,UE_id);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
int phy_init_lte_eNB(PHY_VARS_eNB *eNB,
|
int phy_init_lte_eNB(PHY_VARS_eNB *eNB,
|
||||||
unsigned char is_secondary_eNB,
|
unsigned char is_secondary_eNB,
|
||||||
unsigned char abstraction_flag)
|
unsigned char abstraction_flag)
|
||||||
@@ -781,13 +414,13 @@ int phy_init_lte_eNB(PHY_VARS_eNB *eNB,
|
|||||||
common_vars->txdataF = (int32_t **)malloc16(NB_ANTENNA_PORTS_ENB*sizeof(int32_t*));
|
common_vars->txdataF = (int32_t **)malloc16(NB_ANTENNA_PORTS_ENB*sizeof(int32_t*));
|
||||||
common_vars->rxdataF = (int32_t **)malloc16(64*sizeof(int32_t*));
|
common_vars->rxdataF = (int32_t **)malloc16(64*sizeof(int32_t*));
|
||||||
|
|
||||||
LOG_D(PHY,"[INIT] NB_ANTENNA_PORTS_ENB:%d fp->nb_antenna_ports_eNB:%d\n", NB_ANTENNA_PORTS_ENB, fp->nb_antenna_ports_eNB);
|
LOG_I(PHY,"[INIT] NB_ANTENNA_PORTS_ENB:%d fp->nb_antenna_ports_eNB:%d\n", NB_ANTENNA_PORTS_ENB, fp->nb_antenna_ports_eNB);
|
||||||
|
|
||||||
for (i=0; i<NB_ANTENNA_PORTS_ENB; i++) {
|
for (i=0; i<NB_ANTENNA_PORTS_ENB; i++) {
|
||||||
if (i<fp->nb_antenna_ports_eNB || i==5) {
|
if (i<fp->nb_antenna_ports_eNB || i==5) {
|
||||||
common_vars->txdataF[i] = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*fp->symbols_per_tti*10*sizeof(int32_t) );
|
common_vars->txdataF[i] = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*fp->symbols_per_tti*10*sizeof(int32_t) );
|
||||||
|
|
||||||
LOG_D(PHY,"[INIT] common_vars->txdataF[%d] = %p (%lu bytes)\n",
|
LOG_I(PHY,"[INIT] common_vars->txdataF[%d] = %p (%lu bytes)\n",
|
||||||
i,common_vars->txdataF[i],
|
i,common_vars->txdataF[i],
|
||||||
fp->ofdm_symbol_size*fp->symbols_per_tti*10*sizeof(int32_t));
|
fp->ofdm_symbol_size*fp->symbols_per_tti*10*sizeof(int32_t));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#include "phy_init.h"
|
#include "phy_init.h"
|
||||||
#include "SCHED/sched_eNB.h"
|
#include "SCHED/sched_eNB.h"
|
||||||
#include "PHY/phy_extern.h"
|
#include "PHY/phy_extern.h"
|
||||||
|
#include "PHY/LTE_REFSIG/lte_refsig.h"
|
||||||
#include "SIMULATION/TOOLS/sim.h"
|
#include "SIMULATION/TOOLS/sim.h"
|
||||||
#include "LTE_RadioResourceConfigCommonSIB.h"
|
#include "LTE_RadioResourceConfigCommonSIB.h"
|
||||||
#include "LTE_RadioResourceConfigDedicated.h"
|
#include "LTE_RadioResourceConfigDedicated.h"
|
||||||
@@ -36,26 +37,39 @@ void init_7_5KHz(void);
|
|||||||
int phy_init_RU(RU_t *ru) {
|
int phy_init_RU(RU_t *ru) {
|
||||||
|
|
||||||
LTE_DL_FRAME_PARMS *fp = &ru->frame_parms;
|
LTE_DL_FRAME_PARMS *fp = &ru->frame_parms;
|
||||||
|
RU_CALIBRATION *calibration = &ru->calibration;
|
||||||
int i,j;
|
int i,j;
|
||||||
int p;
|
int p;
|
||||||
int re;
|
int re;
|
||||||
|
|
||||||
|
init_dfts();
|
||||||
|
|
||||||
LOG_I(PHY,"Initializing RU signal buffers (if_south %s) nb_tx %d\n",ru_if_types[ru->if_south],ru->nb_tx);
|
LOG_I(PHY,"Initializing RU signal buffers (if_south %s) nb_tx %d\n",ru_if_types[ru->if_south],ru->nb_tx);
|
||||||
|
|
||||||
|
if (ru->is_slave == 1) {
|
||||||
|
generate_ul_ref_sigs_rx();
|
||||||
|
}
|
||||||
|
|
||||||
if (ru->if_south <= REMOTE_IF5) { // this means REMOTE_IF5 or LOCAL_RF, so allocate memory for time-domain signals
|
if (ru->if_south <= REMOTE_IF5) { // this means REMOTE_IF5 or LOCAL_RF, so allocate memory for time-domain signals
|
||||||
// Time-domain signals
|
// Time-domain signals
|
||||||
ru->common.txdata = (int32_t**)malloc16(ru->nb_tx*sizeof(int32_t*));
|
ru->common.txdata = (int32_t**)malloc16(ru->nb_tx*sizeof(int32_t*));
|
||||||
ru->common.rxdata = (int32_t**)malloc16(ru->nb_rx*sizeof(int32_t*) );
|
ru->common.rxdata = (int32_t**)malloc16(ru->nb_rx*sizeof(int32_t*) );
|
||||||
|
|
||||||
|
|
||||||
for (i=0; i<ru->nb_tx; i++) {
|
for (i=0; i<ru->nb_tx; i++) {
|
||||||
// Allocate 10 subframes of I/Q TX signal data (time) if not
|
// Allocate 10 subframes of I/Q TX signal data (time) if not
|
||||||
ru->common.txdata[i] = (int32_t*)malloc16_clear( fp->samples_per_tti*10*sizeof(int32_t) );
|
ru->common.txdata[i] = (int32_t*)malloc16_clear( fp->samples_per_tti*10*sizeof(int32_t) );
|
||||||
|
|
||||||
LOG_I(PHY,"[INIT] common.txdata[%d] = %p (%lu bytes)\n",i,ru->common.txdata[i],
|
LOG_I(PHY,"[INIT] common.txdata[%d] = %p (%lu bytes)\n",i,ru->common.txdata[i],
|
||||||
fp->samples_per_tti*10*sizeof(int32_t));
|
fp->samples_per_tti*10*sizeof(int32_t));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ru->is_slave == 1) {
|
||||||
|
calibration->drs_ch_estimates_time = (int32_t**)malloc16_clear(ru->nb_rx*sizeof(int32_t*));
|
||||||
|
for (i=0; i<ru->nb_rx; i++) {
|
||||||
|
calibration->drs_ch_estimates_time[i] = (int32_t*)malloc16_clear(2*sizeof(int32_t)*fp->ofdm_symbol_size);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for (i=0;i<ru->nb_rx;i++) {
|
for (i=0;i<ru->nb_rx;i++) {
|
||||||
ru->common.rxdata[i] = (int32_t*)malloc16_clear( fp->samples_per_tti*10*sizeof(int32_t) );
|
ru->common.rxdata[i] = (int32_t*)malloc16_clear( fp->samples_per_tti*10*sizeof(int32_t) );
|
||||||
}
|
}
|
||||||
@@ -92,10 +106,22 @@ int phy_init_RU(RU_t *ru) {
|
|||||||
ru->common.rxdataF[i] = (int32_t*)malloc16_clear(sizeof(int32_t)*(2*fp->ofdm_symbol_size*fp->symbols_per_tti) );
|
ru->common.rxdataF[i] = (int32_t*)malloc16_clear(sizeof(int32_t)*(2*fp->ofdm_symbol_size*fp->symbols_per_tti) );
|
||||||
LOG_I(PHY,"rxdataF[%d] %p for RU %d\n",i,ru->common.rxdataF[i],ru->idx);
|
LOG_I(PHY,"rxdataF[%d] %p for RU %d\n",i,ru->common.rxdataF[i],ru->idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ru->is_slave == 1) {
|
||||||
|
// allocate FFT output buffers after extraction (RX)
|
||||||
|
calibration->rxdataF_ext = (int32_t**)malloc16(2*sizeof(int32_t*));
|
||||||
|
calibration->drs_ch_estimates = (int32_t**)malloc16(2*sizeof(int32_t*));
|
||||||
|
for (i=0; i<ru->nb_rx; i++) {
|
||||||
|
// allocate 2 subframes of I/Q signal data (frequency)
|
||||||
|
calibration->rxdataF_ext[i] = (int32_t*)malloc16_clear(sizeof(int32_t)*fp->N_RB_UL*12*fp->symbols_per_tti );
|
||||||
|
LOG_I(PHY,"rxdataF_ext[%d] %p for RU %d\n",i,calibration->rxdataF_ext[i],ru->idx);
|
||||||
|
calibration->drs_ch_estimates[i] = (int32_t*)malloc16_clear(sizeof(int32_t)*fp->N_RB_UL*12*fp->symbols_per_tti);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* number of elements of an array X is computed as sizeof(X) / sizeof(X[0]) */
|
/* number of elements of an array X is computed as sizeof(X) / sizeof(X[0]) */
|
||||||
// AssertFatal(ru->nb_rx <= sizeof(ru->prach_rxsigF) / sizeof(ru->prach_rxsigF[0]),
|
//AssertFatal(ru->nb_rx <= sizeof(ru->prach_rxsigF) / sizeof(ru->prach_rxsigF[0]),
|
||||||
// "nb_antennas_rx too large");
|
//"nb_antennas_rx too large");
|
||||||
ru->prach_rxsigF = (int16_t**)malloc(ru->nb_rx * sizeof(int16_t*));
|
ru->prach_rxsigF = (int16_t**)malloc(ru->nb_rx * sizeof(int16_t*));
|
||||||
for (j=0;j<4;j++) ru->prach_rxsigF_br[j] = (int16_t**)malloc(ru->nb_rx * sizeof(int16_t*));
|
for (j=0;j<4;j++) ru->prach_rxsigF_br[j] = (int16_t**)malloc(ru->nb_rx * sizeof(int16_t*));
|
||||||
|
|
||||||
@@ -115,6 +141,9 @@ int phy_init_RU(RU_t *ru) {
|
|||||||
|
|
||||||
LOG_D(PHY,"[INIT] %s() RC.nb_L1_inst:%d \n", __FUNCTION__, RC.nb_L1_inst);
|
LOG_D(PHY,"[INIT] %s() RC.nb_L1_inst:%d \n", __FUNCTION__, RC.nb_L1_inst);
|
||||||
|
|
||||||
|
int starting_antenna_index=0;
|
||||||
|
for (i=0; i<ru->idx;i++) starting_antenna_index+=ru->nb_tx;
|
||||||
|
|
||||||
for (i=0; i<RC.nb_L1_inst; i++) {
|
for (i=0; i<RC.nb_L1_inst; i++) {
|
||||||
for (p=0;p<15;p++) {
|
for (p=0;p<15;p++) {
|
||||||
LOG_D(PHY,"[INIT] %s() nb_antenna_ports_eNB:%d \n", __FUNCTION__, ru->eNB_list[i]->frame_parms.nb_antenna_ports_eNB);
|
LOG_D(PHY,"[INIT] %s() nb_antenna_ports_eNB:%d \n", __FUNCTION__, ru->eNB_list[i]->frame_parms.nb_antenna_ports_eNB);
|
||||||
@@ -123,10 +152,14 @@ int phy_init_RU(RU_t *ru) {
|
|||||||
ru->beam_weights[i][p] = (int32_t **)malloc16_clear(ru->nb_tx*sizeof(int32_t*));
|
ru->beam_weights[i][p] = (int32_t **)malloc16_clear(ru->nb_tx*sizeof(int32_t*));
|
||||||
for (j=0; j<ru->nb_tx; j++) {
|
for (j=0; j<ru->nb_tx; j++) {
|
||||||
ru->beam_weights[i][p][j] = (int32_t *)malloc16_clear(fp->ofdm_symbol_size*sizeof(int32_t));
|
ru->beam_weights[i][p][j] = (int32_t *)malloc16_clear(fp->ofdm_symbol_size*sizeof(int32_t));
|
||||||
// antenna ports 0-3 are mapped on antennas 0-3
|
// antenna ports 0-3 are mapped on antennas 0-3 as follows
|
||||||
|
// - antenna port p is mapped to antenna j on ru->idx as: p = (starting_antenna_index+j)%nb_anntena_ports_eNB
|
||||||
// antenna port 4 is mapped on antenna 0
|
// antenna port 4 is mapped on antenna 0
|
||||||
// antenna ports 5-14 are mapped on all antennas
|
// antenna ports 5-14 are mapped on all antennas
|
||||||
if (((p<4) && (p==j)) || ((p==4) && (j==0))) {
|
|
||||||
|
if (((p<4) &&
|
||||||
|
(p==((starting_antenna_index+j)%ru->eNB_list[i]->frame_parms.nb_antenna_ports_eNB))) ||
|
||||||
|
((p==4) && (j==0))) {
|
||||||
for (re=0; re<fp->ofdm_symbol_size; re++)
|
for (re=0; re<fp->ofdm_symbol_size; re++)
|
||||||
{
|
{
|
||||||
ru->beam_weights[i][p][j][re] = 0x00007fff;
|
ru->beam_weights[i][p][j][re] = 0x00007fff;
|
||||||
@@ -156,12 +189,19 @@ void phy_free_RU(RU_t *ru)
|
|||||||
{
|
{
|
||||||
int i,j;
|
int i,j;
|
||||||
int p;
|
int p;
|
||||||
|
RU_CALIBRATION *calibration = &ru->calibration;
|
||||||
|
|
||||||
LOG_I(PHY, "Feeing RU signal buffers (if_south %s) nb_tx %d\n", ru_if_types[ru->if_south], ru->nb_tx);
|
LOG_I(PHY, "Feeing RU signal buffers (if_south %s) nb_tx %d\n", ru_if_types[ru->if_south], ru->nb_tx);
|
||||||
|
|
||||||
if (ru->if_south <= REMOTE_IF5) { // this means REMOTE_IF5 or LOCAL_RF, so free memory for time-domain signals
|
if (ru->if_south <= REMOTE_IF5) { // this means REMOTE_IF5 or LOCAL_RF, so free memory for time-domain signals
|
||||||
for (i = 0; i < ru->nb_tx; i++) free_and_zero(ru->common.txdata[i]);
|
for (i = 0; i < ru->nb_tx; i++) free_and_zero(ru->common.txdata[i]);
|
||||||
for (i = 0; i < ru->nb_rx; i++) free_and_zero(ru->common.rxdata[i]);
|
for (i = 0; i < ru->nb_rx; i++) free_and_zero(ru->common.rxdata[i]);
|
||||||
|
if (ru->is_slave == 1) {
|
||||||
|
for (i = 0; i < ru->nb_rx; i++) {
|
||||||
|
free_and_zero(calibration->drs_ch_estimates_time[i]);
|
||||||
|
}
|
||||||
|
free_and_zero(calibration->drs_ch_estimates_time);
|
||||||
|
}
|
||||||
free_and_zero(ru->common.txdata);
|
free_and_zero(ru->common.txdata);
|
||||||
free_and_zero(ru->common.rxdata);
|
free_and_zero(ru->common.rxdata);
|
||||||
} // else: IF5 or local RF -> nothing to free()
|
} // else: IF5 or local RF -> nothing to free()
|
||||||
@@ -177,6 +217,14 @@ void phy_free_RU(RU_t *ru)
|
|||||||
// free FFT output buffers (RX)
|
// free FFT output buffers (RX)
|
||||||
for (i = 0; i < ru->nb_rx; i++) free_and_zero(ru->common.rxdataF[i]);
|
for (i = 0; i < ru->nb_rx; i++) free_and_zero(ru->common.rxdataF[i]);
|
||||||
free_and_zero(ru->common.rxdataF);
|
free_and_zero(ru->common.rxdataF);
|
||||||
|
if (ru->is_slave == 1) {
|
||||||
|
for (i = 0; i < ru->nb_rx; i++) {
|
||||||
|
free_and_zero(calibration->rxdataF_ext[i]);
|
||||||
|
free_and_zero(calibration->drs_ch_estimates[i]);
|
||||||
|
}
|
||||||
|
free_and_zero(calibration->rxdataF_ext);
|
||||||
|
free_and_zero(calibration->drs_ch_estimates);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < ru->nb_rx; i++) {
|
for (i = 0; i < ru->nb_rx; i++) {
|
||||||
free_and_zero(ru->prach_rxsigF[i]);
|
free_and_zero(ru->prach_rxsigF[i]);
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user