diff --git a/.gitmodules b/.gitmodules index ca90588770a82157f85630d2b5083dded841ea7c..fe521efc68bff3e1a1bcd10987ca17d9b5fd1129 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "component/oai-upf-equivalent"] path = component/oai-upf-equivalent url = https://github.com/OPENAIRINTERFACE/openair-spgwu-tiny.git +[submodule "component/oai-nrf"] + path = component/oai-nrf + url = https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-nrf.git diff --git a/ci-scripts/Jenkinsfile-GitLab-Docker b/ci-scripts/Jenkinsfile-GitLab-Docker index 4b2a8e7aa9aaa5d4e0635809f30a39507418fb6f..7803482f7c67d57c17a2fb81d635f05f5e6263ce 100644 --- a/ci-scripts/Jenkinsfile-GitLab-Docker +++ b/ci-scripts/Jenkinsfile-GitLab-Docker @@ -38,6 +38,9 @@ def cn_ci_host = params.Host_CN_CI_Server def cn_ci_resource = params.DockerContainers def ds_tester_ci_resource = params.DsTester +// Location of the DsTester workspace +def dsTestFrameworkLocation = params.dsTestFrameworkLocation + // When triggered by upstream, specify which tag to use def upstreamTagToUse = params.upstreamTagToUse @@ -57,6 +60,8 @@ def scmEvent = false def upstreamEvent = false // Default tags / branches --> could be passed on by upstream job or by PR content +def nrfTag = 'develop' +def nrfBranch = 'dockerfile' def amfTag = 'develop' def amfBranch = 'develop' def smfTag = 'develop' @@ -136,6 +141,14 @@ pipeline { } if (upstreamEvent) { + if (params.NRF_TAG != null) { + nrfTag = params.NRF_TAG + echo "Upstream Job passed NRF_TAG to use: ${nrfTag}" + } + if (params.NRF_BRANCH != null) { + nrfBranch = params.NRF_BRANCH + echo "Upstream Job passed NRF_BRANCH to use: ${nrfBranch}" + } if (params.AMF_TAG != null) { amfTag = params.AMF_TAG echo "Upstream Job passed AMF_TAG to use: ${amfTag}" @@ -157,13 +170,13 @@ pipeline { sh 'git checkout -f ' + upstreamTagToUse sh "zip -r -qq oai-cn5g-fed.zip .git" sh "mkdir -p archives DS-TEST-RESULTS" - sh './scripts/syncComponents.sh --amf-branch ' + amfBranch + ' --smf-branch ' + smfBranch + ' --spgwu-tiny-branch ' + spgwuBranch + sh './scripts/syncComponents.sh --nrf-branch ' + nrfBranch + ' --amf-branch ' + amfBranch + ' --smf-branch ' + smfBranch + ' --spgwu-tiny-branch ' + spgwuBranch if (new_host_flag) { // Prepare the workspace in remote server copyTo2ndServer('oai-cn5g-fed.zip', new_host_flag, new_host_user, new_host) myShCmd('git clean -x -d -f > /dev/null 2>&1', new_host_flag, new_host_user, new_host) myShCmd('mkdir -p archives DS-TEST-RESULTS', new_host_flag, new_host_user, new_host) - myShCmd('./scripts/syncComponents.sh --amf-branch ' + amfBranch + ' --smf-branch ' + smfBranch, new_host_flag, new_host_user, new_host) + myShCmd('./scripts/syncComponents.sh --nrf-branch ' + nrfBranch + ' --amf-branch ' + amfBranch + ' --smf-branch ' + smfBranch, new_host_flag, new_host_user, new_host) } } if (scmEvent) { @@ -187,41 +200,112 @@ pipeline { } if ((!upstreamEvent) && (!scmEvent)) { sh "git clean -x -d -f > /dev/null 2>&1" - sh './scripts/syncComponents.sh --amf-branch ' + amfBranch + ' --smf-branch ' + smfBranch + ' --spgwu-tiny-branch ' + spgwuBranch + sh './scripts/syncComponents.sh --nrf-branch ' + nrfBranch + ' --amf-branch ' + amfBranch + ' --smf-branch ' + smfBranch + ' --spgwu-tiny-branch ' + spgwuBranch sh "mkdir -p archives DS-TEST-RESULTS" } + // Verify that the images are available + try { + sh 'echo "OAI_NRF_TAG: oai-nrf:' + nrfTag +'" > archives/oai_nrf_image_info.log' + sh 'docker image inspect --format=\'Size = {{.Size}} bytes\' oai-nrf:' + nrfTag + ' >> archives/oai_nrf_image_info.log' + sh 'docker image inspect --format=\'Date = {{.Created}}\' oai-nrf:' + nrfTag + ' >> archives/oai_nrf_image_info.log' + } catch (Exception e) { + error "OAI NRF Image tag to test does not exist!" + } + try { + sh 'echo "OAI_AMF_TAG: oai-amf:' + amfTag +'" > archives/oai_amf_image_info.log' + sh 'docker image inspect --format=\'Size = {{.Size}} bytes\' oai-amf:' + amfTag + ' >> archives/oai_amf_image_info.log' + sh 'docker image inspect --format=\'Date = {{.Created}}\' oai-amf:' + amfTag + ' >> archives/oai_amf_image_info.log' + } catch (Exception e) { + error "OAI AMF Image tag to test does not exist!" + } + try { + sh 'echo "OAI_SMF_TAG: oai-smf:' + smfTag +'" > archives/oai_smf_image_info.log' + sh 'docker image inspect --format=\'Size = {{.Size}} bytes\' oai-smf:' + smfTag + ' >> archives/oai_smf_image_info.log' + sh 'docker image inspect --format=\'Date = {{.Created}}\' oai-smf:' + smfTag + ' >> archives/oai_smf_image_info.log' + } catch (Exception e) { + error "OAI SMF Image tag to test does not exist!" + } + try { + sh 'echo "OAI_SPGWU_TAG: oai-spgwu-tiny:' + spgwuTag +'" > archives/oai_spgwu_image_info.log' + sh 'docker image inspect --format=\'Size = {{.Size}} bytes\' oai-spgwu-tiny:' + spgwuTag + ' >> archives/oai_spgwu_image_info.log' + sh 'docker image inspect --format=\'Date = {{.Created}}\' oai-spgwu-tiny:' + spgwuTag + ' >> archives/oai_spgwu_image_info.log' + } catch (Exception e) { + error "OAI SPGW-U-Tiny Image tag to test does not exist!" + } } } } - stage ('Deploy Whole EPC') { - stages { - stage ('Create Public Network') { - steps { - script { - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=CreateNetworks', new_host_flag, new_host_user, new_host) - } + stage ('Deploy Whole 5G Core Network') { + steps { + script { + echo '\u2705 \u001B[32mDeploy CN5G in idle mode\u001B[0m' + // Prepare all needed files for docker-compose + // First put all correct tags to test + sh 'sed -e "s#NRF_IMAGE_TAG#' + nrfTag + '#" -e "s#AMF_IMAGE_TAG#' + amfTag + '#" -e "s#SMF_IMAGE_TAG#' + smfTag + '#" ci-scripts/dsTesterDockerCompose/docker-compose.tplt > ci-scripts/dsTesterDockerCompose/docker-compose.yml' + // Entrypoints are modified to be inactive for dsTester framework + sh 'sed -e "s@exec.*@sleep infinity@" component/oai-nrf/scripts/entrypoint.sh > ci-scripts/dsTesterDockerCompose/nrf-entrypoint-sleep.sh' + sh 'sed -e "s@exec.*@sleep infinity@" component/oai-amf/scripts/entrypoint.sh > ci-scripts/dsTesterDockerCompose/amf-entrypoint-sleep.sh' + sh 'sed -e "s@exec.*@sleep infinity@" component/oai-smf/scripts/entrypoint.sh > ci-scripts/dsTesterDockerCompose/smf-entrypoint-sleep.sh' + sh 'sed -e "s@exec.*@sleep infinity@" component/oai-upf-equivalent/scripts/entrypoint.sh > ci-scripts/dsTesterDockerCompose/upf-entrypoint-sleep.sh' + sh 'chmod 775 ci-scripts/dsTesterDockerCompose/*entrypoint-sleep.sh' + dir('ci-scripts/dsTesterDockerCompose') { + sh 'docker-compose up -d > ../../archives/compose_5gcn_up.log 2>&1' + sh 'sleep 100' + // Do a check on number of healthy containers + // 5 == mysql + nrf + amf + smf + upf(spgwu-tiny) + ret = sh returnStdout: true, script: 'docker-compose ps -a | grep -v unhealthy | grep -c healthy || true' + ret = ret.trim() + if (ret != '5') { + error "Deployment went wrong!" + } } } - stage ('Deploy Containers') { - steps { - script { - // Deploy and configure MySQL Server - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=DeployMySqlServer', new_host_flag, new_host_user, new_host) - // Deploy and configure AMF - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=DeployAMF --tag=' + amfTag, new_host_flag, new_host_user, new_host) - // Deploy and configure SMF - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=DeploySMF --tag=' + smfTag, new_host_flag, new_host_user, new_host) - // Deploy and configure UPF - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=DeployUPF --tag=' + spgwuTag, new_host_flag, new_host_user, new_host) + } + post { + always { + script { + // Check status on mysql. + try { + sh 'docker exec cicd-mysql-svr /bin/bash -c "mysqladmin -u root --password=linux ping" > archives/mysql_status.log 2>&1' + sh 'docker inspect --format=\'STATUS: {{.State.Health.Status}}\' cicd-mysql-svr >> archives/mysql_status.log' + } catch (Exception e) { + sh 'echo "STATUS: KO" >> archives/mysql_status.log' } - } - post { - always { - script { - copyFrom2ndServer('archives/*_config.log', 'archives', new_host_flag, new_host_user, new_host) - sh 'python3 ./ci-scripts/generateHtmlReportDeployment.py --job_name=' + JOB_NAME + ' --job_id=' + BUILD_ID + ' --job_url=' + BUILD_URL - } + // Do docker logs to recover the configuration results + try { + sh 'docker logs cicd-oai-nrf > archives/nrf_config.log 2>&1' + sh 'docker inspect --format=\'STATUS: {{.State.Health.Status}}\' cicd-oai-nrf >> archives/nrf_config.log' + } catch (Exception e) { + sh 'echo "STATUS: KO" >> archives/nrf_config.log' + } + try { + sh 'docker logs cicd-oai-amf > archives/amf_config.log 2>&1' + sh 'docker inspect --format=\'STATUS: {{.State.Health.Status}}\' cicd-oai-amf >> archives/amf_config.log' + } catch (Exception e) { + sh 'echo "STATUS: KO" >> archives/amf_config.log' + } + try { + sh 'docker logs cicd-oai-smf > archives/smf_config.log 2>&1' + sh 'docker inspect --format=\'STATUS: {{.State.Health.Status}}\' cicd-oai-smf >> archives/smf_config.log' + } catch (Exception e) { + sh 'echo "STATUS: OK" >> archives/smf_config.log' } + try { + sh 'docker logs cicd-oai-upf > archives/spgwu_config.log 2>&1' + sh 'docker inspect --format=\'STATUS: {{.State.Health.Status}}\' cicd-oai-upf >> archives/spgwu_config.log' + } catch (Exception e) { + sh 'echo "STATUS: KO" >> archives/spgwu_config.log' + } + } + } + success { + script { + sh 'echo "DEPLOYMENT: OK" > archives/deployment_status.log' + } + } + unsuccessful { + script { + sh 'echo "DEPLOYMENT: KO" > archives/deployment_status.log' } } } @@ -231,32 +315,20 @@ pipeline { steps { lock (ds_tester_ci_resource) { script { -// myShCmd('cd /home/oaici/CI-dev-ops-cn5g && git clean -x -d -f > /dev/null', new_host_flag, new_host_user, new_host) -// myShCmdWithLog('cd /home/oaici/CI-dev-ops-cn5g/scripts && CI_ENV=True SRC_BASE_DIR=/tmp/CI-CN5G-FED ./run-5gc.bash -pt --shark --detach --get-results --5g', 'archives/run-5g-dstester.log', new_host_flag, new_host_user, new_host) -// copyFrom2ndServer('DS-TEST-RESULTS/status.txt', 'DS-TEST-RESULTS', new_host_flag, new_host_user, new_host) -// copyFrom2ndServer('DS-TEST-RESULTS/*.tar', 'DS-TEST-RESULTS', new_host_flag, new_host_user, new_host) - sh 'cd /home/oaici/CI-dev-ops-cn5g && git clean -x -d -f > /dev/null' - sh 'cd /home/oaici/CI-dev-ops-cn5g/scripts && export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:.:/usr/local/devsol/bin && CI_ENV=True SRC_BASE_DIR=' + WORKSPACE + ' ./run-5gc.bash -pt --shark --detach --get-results --5g > ' + WORKSPACE + '/archives/run-5g-dstester.log 2>&1' - sh 'python3 ./ci-scripts/dsTestGenerateHTMLReport.py --job_name=' + JOB_NAME + ' --job_id=' + BUILD_ID + ' --job_url=' + BUILD_URL + sh 'cd ' + dsTestFrameworkLocation + ' && git clean -x -d -f > /dev/null' + sh 'cd ' + dsTestFrameworkLocation + '/scripts && export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:.:/usr/local/devsol/bin && CI_ENV=True SRC_BASE_DIR=' + WORKSPACE + ' ./run-5gc.bash -pt --shark --detach --get-results --5g > ' + WORKSPACE + '/archives/run-5g-dstester.log 2>&1' + sh 'cd ' + dsTestFrameworkLocation + ' && git stash > /dev/null' + sh 'cd ' + dsTestFrameworkLocation + ' && git stash clear > /dev/null' } } } } - stage ('Undeploy EPC') { - stages { - stage ('Undeploy Containers') { - steps { - script { - // Remove the containers - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=RemoveAllContainers', new_host_flag, new_host_user, new_host) - } - } - } - stage ('Delete Public Network') { - steps { - script { - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=RemoveNetworks', new_host_flag, new_host_user, new_host) - } + stage ('Undeploy 5G-CN') { + steps { + script { + echo '\u2705 \u001B[32mUn-Deploy CN5G\u001B[0m' + dir('ci-scripts/dsTesterDockerCompose') { + sh 'docker-compose down > ../../archives/compose_normal_down.log 2>&1' } } } @@ -265,20 +337,20 @@ pipeline { post { always { script { - // Removing all containers - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=RemoveAllContainers', new_host_flag, new_host_user, new_host) - // Removing the network - myShCmd('python3 ./ci-scripts/dsTestDeployTools.py --action=RemoveNetworks', new_host_flag, new_host_user, new_host) + // Remove any leftover containers/networks + dir('ci-scripts/dsTesterDockerCompose') { + sh 'docker-compose down > ../../archives/compose_l_down.log 2>&1' + } + // Generating the HTML report + sh 'python3 ./ci-scripts/dsTestGenerateHTMLReport.py --job_name=' + JOB_NAME + ' --job_id=' + BUILD_ID + ' --job_url=' + BUILD_URL + // Zipping all archived log files sh "zip -r -qq cn5g_fed_docker_logs.zip archives DS-TEST-RESULTS/*.tar DS-TEST-RESULTS/status.txt" if (fileExists('cn5g_fed_docker_logs.zip')) { archiveArtifacts artifacts: 'cn5g_fed_docker_logs.zip' } - if (fileExists('deploy_results_oai_cn5g.html')) { - archiveArtifacts artifacts: 'deploy_results_oai_cn5g.html' - } - if (fileExists('ds_tester_results_oai_cn5g.html')) { - archiveArtifacts artifacts: 'ds_tester_results_oai_cn5g.html' + if (fileExists('test_results_oai_cn5g.html')) { + archiveArtifacts artifacts: 'test_results_oai_cn5g.html' } } } diff --git a/ci-scripts/dsTestGenerateHTMLReport.py b/ci-scripts/dsTestGenerateHTMLReport.py index 06e54574ea69d787729ec639e8034ebb840eb6cc..7b0defb8968f64205b6f092406f5fd189c3bf613 100644 --- a/ci-scripts/dsTestGenerateHTMLReport.py +++ b/ci-scripts/dsTestGenerateHTMLReport.py @@ -34,9 +34,9 @@ class HtmlReport(): def generate(self): cwd = os.getcwd() - self.file = open(cwd + '/ds_tester_results_oai_cn5g.html', 'w') + self.file = open(cwd + '/test_results_oai_cn5g.html', 'w') self.generateHeader() - + self.deploymentSummaryHeader() finalStatus = self.testSummaryHeader() self.testSummaryDetails() self.testSummaryFooter() @@ -44,10 +44,11 @@ class HtmlReport(): self.generateFooter() self.file.close() - if finalStatus: - sys.exit(0) - else: - sys.exit(-1) + try: + if finalStatus: + sys.exit(0) + except: + print("DS-TESTER testing FAILED") def generateHeader(self): # HTML Header @@ -81,9 +82,138 @@ class HtmlReport(): self.file.write('</div></body>\n') self.file.write('</html>\n') + def deploymentSummaryHeader(self): + self.file.write(' <h2>Deployment Summary</h2>\n') + cwd = os.getcwd() + if os.path.isfile(cwd + '/archives/deployment_status.log'): + cmd = 'egrep -c "DEPLOYMENT: OK" archives/deployment_status.log || true' + status = False + ret = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, encoding='utf-8') + if ret.stdout is not None: + if ret.stdout.strip() == '1': + status = True + if status: + self.file.write(' <div class="alert alert-success">\n') + self.file.write(' <strong>Successful Deployment! <span class="glyphicon glyphicon-warning-sign"></span></strong>\n') + self.file.write(' </div>\n') + else: + self.file.write(' <div class="alert alert-danger">\n') + self.file.write(' <strong>Failed Deployment! <span class="glyphicon glyphicon-warning-sign"></span></strong>\n') + self.file.write(' </div>\n') + else: + self.file.write(' <div class="alert alert-warning">\n') + self.file.write(' <strong>LogFile not available! <span class="glyphicon glyphicon-warning-sign"></span></strong>\n') + self.file.write(' </div>\n') + self.file.write(' <br>\n') + self.file.write(' <button data-toggle="collapse" data-target="#deployment-details">More details on Deployment</button>\n') + self.file.write(' <br>\n') + self.file.write(' <div id="deployment-details" class="collapse">\n') + self.file.write(' <br>\n') + self.file.write(' <table class="table-bordered" width = "80%" align = "center" border = 1>\n') + self.file.write(' <tr bgcolor = "#33CCFF" >\n') + self.file.write(' <th>Container Name</th>\n') + self.file.write(' <th>Used Image Tag</th>\n') + self.file.write(' <th>Image Creation Date</th>\n') + self.file.write(' <th>Used Image Size</th>\n') + self.file.write(' <th>Configuration Status</th>\n') + self.file.write(' </tr>\n') + self.addImageRow('mysql') + self.addImageRow('oai_nrf') + self.addImageRow('oai_amf') + self.addImageRow('oai_smf') + self.addImageRow('oai_spgwu') + self.file.write(' </table>\n') + self.file.write(' </div>\n') + + def addImageRow(self, imageInfoPrefix): + cwd = os.getcwd() + if imageInfoPrefix == 'oai_amf': + containerName = 'oai-amf' + tagPattern = 'OAI_AMF_TAG' + statusPrefix = 'amf' + if imageInfoPrefix == 'oai_smf': + containerName = 'oai-smf' + tagPattern = 'OAI_SMF_TAG' + statusPrefix = 'smf' + if imageInfoPrefix == 'oai_nrf': + containerName = 'oai-nrf' + tagPattern = 'OAI_NRF_TAG' + statusPrefix = 'nrf' + if imageInfoPrefix == 'oai_spgwu': + containerName = 'oai-spgwu-tiny' + tagPattern = 'OAI_SPGWU_TAG' + statusPrefix = 'spgwu' + if imageInfoPrefix == 'mysql': + containerName = imageInfoPrefix + tagPattern = 'N/A' + if os.path.isfile(cwd + '/archives/' + imageInfoPrefix + '_image_info.log'): + usedTag = '' + createDate = '' + size = '' + with open(cwd + '/archives/' + imageInfoPrefix + '_image_info.log') as imageLog: + for line in imageLog: + line = line.strip() + result = re.search(tagPattern + ': (?P<tag>[a-zA-Z0-9\-\_:]+)', line) + if result is not None: + usedTag = result.group('tag') + result = re.search('Date = (?P<date>[a-zA-Z0-9\-\_:]+)', line) + if result is not None: + createDate = result.group('date') + result = re.search('Size = (?P<size>[0-9]+) bytes', line) + if result is not None: + sizeInt = int(result.group('size')) + if sizeInt < 1000000: + sizeInt = int(sizeInt / 1000) + size = str(sizeInt) + ' kB' + else: + sizeInt = int(sizeInt / 1000000) + size = str(sizeInt) + ' MB' + imageLog.close() + configState = 'KO' + cmd = 'egrep -c "STATUS: healthy" archives/' + statusPrefix + '_config.log || true' + ret = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, encoding='utf-8') + if ret.stdout is not None: + if ret.stdout.strip() == '1': + configState = 'OK' + self.file.write(' <tr>\n') + self.file.write(' <td>' + containerName + '</td>\n') + self.file.write(' <td>' + usedTag + '</td>\n') + self.file.write(' <td>' + createDate + '</td>\n') + self.file.write(' <td>' + size + '</td>\n') + if configState == 'OK': + self.file.write(' <td bgcolor = "DarkGreen"><b><font color="white">' + configState + '</font></b></td>\n') + else: + self.file.write(' <td bgcolor = "Red"><b><font color="white">' + configState + '</font></b></td>\n') + self.file.write(' </tr>\n') + else: + if imageInfoPrefix == 'mysql': + self.file.write(' <tr>\n') + self.file.write(' <td>' + containerName + '</td>\n') + self.file.write(' <td>mysql:5.7</td>\n') + self.file.write(' <td>N/A</td>\n') + self.file.write(' <td>449MB</td>\n') + configState = 'KO' + cmd = 'egrep -c "STATUS: healthy" archives/mysql_status.log || true' + ret = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, encoding='utf-8') + if ret.stdout is not None: + if ret.stdout.strip() == '1': + configState = 'OK' + if configState == 'OK': + self.file.write(' <td bgcolor = "DarkGreen"><b><font color="white">OK</font></b></td>\n') + else: + self.file.write(' <td bgcolor = "Red"><b><font color="white">KO</font></b></td>\n') + self.file.write(' </tr>\n') + else: + self.file.write(' <tr>\n') + self.file.write(' <td>' + containerName + '</td>\n') + self.file.write(' <td>UNKNOWN</td>\n') + self.file.write(' <td>N/A</td>\n') + self.file.write(' <td>N/A</td>\n') + self.file.write(' <td bgcolor = "DarkOrange"><b><font color="white">UNKNOW</font></b></td>\n') + self.file.write(' </tr>\n') + def testSummaryHeader(self): self.file.write(' <h2>DS Tester Summary</h2>\n') - finalDsTesterSummaryFile = 'DS-TEST-RESULTS/status.txt' cwd = os.getcwd() if os.path.isfile(cwd + '/' + finalDsTesterSummaryFile): diff --git a/ci-scripts/dsTesterDockerCompose/amf-healthy-check.sh b/ci-scripts/dsTesterDockerCompose/amf-healthy-check.sh new file mode 100755 index 0000000000000000000000000000000000000000..95792ef89711d190b474dbec28d2f361bf38ce2e --- /dev/null +++ b/ci-scripts/dsTesterDockerCompose/amf-healthy-check.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +STATUS=0 +NB_UNREPLACED_AT=`cat /openair-amf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true` +NOT_FOUND=`ldd /openair-amf/bin/oai_amf | grep -c "not found" || true` +if [[ $NB_UNREPLACED_AT -ne 0 || $NOT_FOUND -ne 0 ]] +then + STATUS=-1 +fi + +exit $STATUS diff --git a/ci-scripts/dsTesterDockerCompose/docker-compose.tplt b/ci-scripts/dsTesterDockerCompose/docker-compose.tplt new file mode 100644 index 0000000000000000000000000000000000000000..f00ab826c8ae096f55af41fdc1edc3ac21cd9523 --- /dev/null +++ b/ci-scripts/dsTesterDockerCompose/docker-compose.tplt @@ -0,0 +1,209 @@ +version: '3.8' +services: + cicd_mysql: + container_name: cicd-mysql-svr + image: mysql:5.7 + ports: + - 3306 + command: --init-file /docker-entrypoint-initdb.d/oai_db.sql + volumes: + - ../../docker-compose/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql:rw + environment: + - MYSQL_DATABASE=oai_db + - MYSQL_USER=test + - MYSQL_PASSWORD=test + - MYSQL_ROOT_PASSWORD=linux + healthcheck: + test: "/usr/bin/mysql --user=root --password=linux -e 'show databases;'" + interval: 10s + timeout: 5s + retries: 5 + networks: + cicd_public_net: + ipv4_address: 192.168.61.194 + + cicd_oai_nrf: + container_name: cicd-oai-nrf + image: oai-nrf:NRF_IMAGE_TAG + ports: + - 80 + - 9090 + environment: + - NRF_INTERFACE_NAME_FOR_SBI=eth0 + - NRF_INTERFACE_PORT_FOR_SBI=80 + - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 + - NRF_API_VERSION=v1 + - INSTANCE=0 + - PID_DIRECTORY=/var/run + networks: + cicd_public_net: + ipv4_address: 192.168.61.195 + volumes: + - ./nrf-entrypoint-sleep.sh:/openair-nrf/bin/nrf-entrypoint-sleep.sh + - ./nrf-healthy-check.sh:/openair-nrf/bin/nrf-healthy-check.sh + entrypoint: /bin/bash -c "/openair-nrf/bin/nrf-entrypoint-sleep.sh" + healthcheck: + test: /bin/bash -c "/openair-nrf/bin/nrf-healthy-check.sh" + interval: 10s + timeout: 5s + retries: 5 + + cicd_oai_amf: + container_name: cicd-oai-amf + image: oai-amf:AMF_IMAGE_TAG + ports: + - 38412 + - 80 + environment: + - INSTANCE=1 + - PID_DIRECTORY=/var/run + - MCC=208 + - MNC=95 + - REGION_ID=128 + - AMF_SET_ID=1 + - SERVED_GUAMI_MCC_0=208 + - SERVED_GUAMI_MNC_0=95 + - SERVED_GUAMI_REGION_ID_0=128 + - SERVED_GUAMI_AMF_SET_ID_0=1 + - SERVED_GUAMI_MCC_1=460 + - SERVED_GUAMI_MNC_1=11 + - SERVED_GUAMI_REGION_ID_1=10 + - SERVED_GUAMI_AMF_SET_ID_1=1 + - PLMN_SUPPORT_MCC=208 + - PLMN_SUPPORT_MNC=95 + - PLMN_SUPPORT_TAC=0xa000 + - SST_0=222 + - SD_0=123 + - SST_1=1 + - SD_1=12 + - AMF_INTERFACE_NAME_FOR_NGAP=eth0 + - AMF_INTERFACE_NAME_FOR_N11=eth0 + - SMF_INSTANCE_ID_0=1 + - SMF_IPV4_ADDR_0=192.168.61.197 + - SMF_HTTP_VERSION_0=v1 + - SMF_INSTANCE_ID_1=2 + - SMF_IPV4_ADDR_1=192.168.61.197 + - SMF_HTTP_VERSION_1=v1 + - MYSQL_SERVER=cicd-mysql-svr + - MYSQL_USER=root + - MYSQL_PASS=linux + - MYSQL_DB=oai_db + - OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d + - NRF_IPV4_ADDRESS=192.168.61.195 + - NRF_PORT=80 + - NRF_API_VERSION=v1 + - AUSF_IPV4_ADDRESS=192.168.61.210 + - AUSF_PORT=80 + - AUSF_API_VERSION=v1 + depends_on: + - cicd_mysql + - cicd_oai_nrf + networks: + cicd_public_net: + ipv4_address: 192.168.61.196 + volumes: + - ./amf-entrypoint-sleep.sh:/openair-amf/bin/amf-entrypoint-sleep.sh + - ./amf-healthy-check.sh:/openair-amf/bin/amf-healthy-check.sh + entrypoint: /bin/bash -c "/openair-amf/bin/amf-entrypoint-sleep.sh" + healthcheck: + test: /bin/bash -c "/openair-amf/bin/amf-healthy-check.sh" + interval: 10s + timeout: 5s + retries: 5 + + cicd_oai_smf: + container_name: cicd-oai-smf + image: oai-smf:SMF_IMAGE_TAG + ports: + - 80 + environment: + - INSTANCE=1 + - PID_DIRECTORY=/var/run + - SMF_INTERFACE_NAME_FOR_N4=eth0 + - SMF_INTERFACE_NAME_FOR_SBI=eth0 + - SMF_INTERFACE_PORT_FOR_SBI=80 + - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 + - SMF_API_VERSION=v1 + - DEFAULT_DNS_IPV4_ADDRESS=192.168.18.129 + - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4 + - AMF_IPV4_ADDRESS=192.168.61.196 + - AMF_PORT=80 + - AMF_API_VERSION=v1 + - UDM_IPV4_ADDRESS=127.0.0.1 + - UDM_PORT=80 + - UDM_API_VERSION=v1 + - UPF_IPV4_ADDRESS=192.168.61.198 + - NRF_IPV4_ADDRESS=192.168.61.195 + - NRF_PORT=80 + - NRF_API_VERSION=v1 + depends_on: + - cicd_oai_nrf + - cicd_oai_amf + networks: + cicd_public_net: + ipv4_address: 192.168.61.197 + volumes: + - ./smf-entrypoint-sleep.sh:/oai-cn5g-smf/bin/smf-entrypoint-sleep.sh + - ./smf-healthy-check.sh:/oai-cn5g-smf/bin/smf-healthy-check.sh + entrypoint: /bin/bash -c "/oai-cn5g-smf/bin/smf-entrypoint-sleep.sh" + healthcheck: + test: /bin/bash -c "/oai-cn5g-smf/bin/smf-healthy-check.sh" + interval: 10s + timeout: 5s + retries: 5 + + cicd_oai_upf: + container_name: cicd-oai-upf + image: oai-spgwu-tiny:v1.1.0 + ports: + - 2152 + - 8805 + environment: + - PID_DIRECTORY=/var/run + - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 + - SGW_INTERFACE_NAME_FOR_SX=eth0 + - PGW_INTERFACE_NAME_FOR_SGI=eth0 + - NETWORK_UE_NAT_OPTION=yes + - NETWORK_UE_IP=12.0.0.0/24 + - THREAD_S1U_PRIO=9090 + - S1U_THREADS=16 + - THREAD_SX_PRIO=64 + - SX_THREADS=1 + - THREAD_SGI_PRIO=64 + - SGI_THREADS=16 + - SPGWC0_IP_ADDRESS=192.168.61.197 + - BYPASS_UL_PFCP_RULES=no + - MCC=208 + - MNC=95 + - MNC03=095 + - TAC=40960 + - GW_ID=1 + - REALM=openairinterface.org + depends_on: + - cicd_oai_smf + cap_add: + - NET_ADMIN + - SYS_ADMIN + cap_drop: + - ALL + privileged: true + networks: + cicd_public_net: + ipv4_address: 192.168.61.198 + volumes: + - ./upf-entrypoint-sleep.sh:/openair-spgwu-tiny/bin/upf-entrypoint-sleep.sh + - ./upf-healthy-check.sh:/openair-spgwu-tiny/bin/upf-healthy-check.sh + entrypoint: /bin/bash -c "/openair-spgwu-tiny/bin/upf-entrypoint-sleep.sh" + healthcheck: + test: /bin/bash -c "/openair-spgwu-tiny/bin/upf-healthy-check.sh" + interval: 10s + timeout: 5s + retries: 5 + +networks: + cicd_public_net: + name: cicd-oai-public-net + driver: bridge + ipam: + config: + - subnet: 192.168.61.192/26 diff --git a/ci-scripts/dsTesterDockerCompose/nrf-healthy-check.sh b/ci-scripts/dsTesterDockerCompose/nrf-healthy-check.sh new file mode 100755 index 0000000000000000000000000000000000000000..3e18ed44fd33853a036365b8c9a474e63f5f3b0a --- /dev/null +++ b/ci-scripts/dsTesterDockerCompose/nrf-healthy-check.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +STATUS=0 +NB_UNREPLACED_AT=`cat /openair-nrf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true` +NOT_FOUND=`ldd /openair-nrf/bin/oai_nrf | grep -c "not found" || true` +if [[ $NB_UNREPLACED_AT -ne 0 || $NOT_FOUND -ne 0 ]] +then + STATUS=-1 +fi + +exit $STATUS diff --git a/ci-scripts/dsTesterDockerCompose/smf-healthy-check.sh b/ci-scripts/dsTesterDockerCompose/smf-healthy-check.sh new file mode 100755 index 0000000000000000000000000000000000000000..7298b14c862b7afeb8e859f70d1d6dcdca9fd5bf --- /dev/null +++ b/ci-scripts/dsTesterDockerCompose/smf-healthy-check.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +STATUS=0 +NB_UNREPLACED_AT=`cat /openair-smf/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true` +NOT_FOUND=`ldd /openair-smf/bin/oai_smf | grep -c "not found" || true` +if [[ $NB_UNREPLACED_AT -ne 0 || $NOT_FOUND -ne 0 ]] +then + STATUS=-1 +fi + +exit $STATUS diff --git a/ci-scripts/dsTesterDockerCompose/upf-healthy-check.sh b/ci-scripts/dsTesterDockerCompose/upf-healthy-check.sh new file mode 100755 index 0000000000000000000000000000000000000000..f53ec204f98ebf77db9b34c7c2e357aa61ef27e9 --- /dev/null +++ b/ci-scripts/dsTesterDockerCompose/upf-healthy-check.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +STATUS=0 +NB_UNREPLACED_AT=`cat /openair-spgwc/etc/*.conf | grep -v contact@openairinterface.org | grep -c @ || true` +NOT_FOUND=`ldd /openair-spgwu-tiny/bin/oai_spgwu | grep -c "not found" || true` +if [[ $NB_UNREPLACED_AT -ne 0 || $NOT_FOUND -ne 0 ]] +then + STATUS=-1 +fi + +exit $STATUS diff --git a/component/oai-nrf b/component/oai-nrf new file mode 160000 index 0000000000000000000000000000000000000000..738473e2d16d78569acb8ded41a363bac8c0deeb --- /dev/null +++ b/component/oai-nrf @@ -0,0 +1 @@ +Subproject commit 738473e2d16d78569acb8ded41a363bac8c0deeb diff --git a/docker-compose/docker-compose-with-nrf.yaml b/docker-compose/docker-compose-with-nrf.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1b0b0639203afd1321fad081d2b7e02c089aec25 --- /dev/null +++ b/docker-compose/docker-compose-with-nrf.yaml @@ -0,0 +1,156 @@ +version: '3.8' +services: + mysql: + container_name: "mysql" + image: mysql:5.7 + ports: + - 3306 + command: --init-file /tmp/oai_db.sql + volumes: + - ./oai_db.sql:/tmp/oai_db.sql:rw + environment: + - MYSQL_DATABASE=oai_db + - MYSQL_USER=test + - MYSQL_PASSWORD=test + - MYSQL_ROOT_PASSWORD=linux + networks: + 5gcore: + ipv4_address: 192.168.68.6 + oai_amf: + container_name: "oai_amf" + image: oai_amf:1.0 + ports: + - 38412 + - 80 + environment: + - INSTANCE=0 + - PID_DIRECTORY=/var/run + - MCC=208 + - MNC=95 + - REGION_ID=128 + - AMF_SET_ID=1 + - SERVED_GUAMI_MCC_0=208 + - SERVED_GUAMI_MNC_0=95 + - SERVED_GUAMI_REGION_ID_0=128 + - SERVED_GUAMI_AMF_SET_ID_0=1 + - SERVED_GUAMI_MCC_1=460 + - SERVED_GUAMI_MNC_1=11 + - SERVED_GUAMI_REGION_ID_1=10 + - SERVED_GUAMI_AMF_SET_ID_1=1 + - PLMN_SUPPORT_MCC=208 + - PLMN_SUPPORT_MNC=95 + - PLMN_SUPPORT_TAC=0xa000 + - SST_0=222 + - SD_0=123 + - SST_1=1 + - SD_1=12 + - AMF_INTERFACE_NAME_FOR_NGAP=eth0 + - AMF_INTERFACE_NAME_FOR_N11=eth0 + - SMF_INSTANCE_ID_0=1 + - SMF_IPV4_ADDR_0=192.168.68.3 + - SMF_HTTP_VERSION_0=v1 + - SMF_INSTANCE_ID_1=2 + - SMF_IPV4_ADDR_1=192.168.68.3 + - SMF_HTTP_VERSION_1=v1 + - MYSQL_SERVER=mysql + - MYSQL_USER=root + - MYSQL_PASS=linux + - MYSQL_DB=oai_db + - OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d + - NRF_IPV4_ADDRESS=192.168.68.4 + - NRF_PORT=80 + - NRF_API_VERSION=v1 + - AUSF_IPV4_ADDRESS=192.168.68.10 + - AUSF_PORT=80 + - AUSF_API_VERSION=v1 + depends_on: + - mysql + - oai_nrf + networks: + 5gcore: + ipv4_address: 192.168.68.2 + oai_smf: + container_name: "oai_smf" + image: oai_smf:1.0 + ports: + - 80 + environment: + - INSTANCE=0 + - PID_DIRECTORY=/var/run + - SMF_INTERFACE_NAME_FOR_N4=eth0 + - SMF_INTERFACE_NAME_FOR_SBI=eth0 + - SMF_INTERFACE_PORT_FOR_SBI=8080 + - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=8081 + - SMF_API_VERSION=v1 + - DEFAULT_DNS_IPV4_ADDRESS=192.168.106.12 + - DEFAULT_DNS_SEC_IPV4_ADDRESS=192.168.106.10 + - AMF_IPV4_ADDRESS=192.168.68.2 + - AMF_PORT=8082 + - AMF_API_VERSION=v1 + - UDM_IPV4_ADDRESS=127.0.0.1 + - UDM_PORT=8083 + - UDM_API_VERSION=v1 + - UPF_IPV4_ADDRESS=192.168.68.5 + - NRF_IPV4_ADDRESS=192.168.68.4 + - NRF_PORT=80 + - NRF_API_VERSION=v1 + depends_on: + - oai_nrf + - oai_amf + networks: + 5gcore: + ipv4_address: 192.168.68.3 + oai_nrf: + container_name: "oai_nrf" + image: oai_nrf:1.0 + ports: + - 80 + - 9090 + environment: + - NRF_INTERFACE_NAME_FOR_SBI=eth0 + - NRF_INTERFACE_PORT_FOR_SBI=80 + - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 + - NRF_API_VERSION=v1 + - INSTANCE=0 + - PID_DIRECTORY=/var/run + networks: + 5gcore: + ipv4_address: 192.168.68.4 + oai_spgwu: + container_name: "oai_spgwu" + image: oai_sgpwu:1.0 + ports: + - 2152 + - 8805 + environment: + - PID_DIRECTORY=/var/run + - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 + - SGW_INTERFACE_NAME_FOR_SX=eth0 + - PGW_INTERFACE_NAME_FOR_SGI=eth0 + - NETWORK_UE_NAT_OPTION=yes + - NETWORK_UE_IP=192.168.22.0/24 + - THREAD_S1U_PRIO=9090 + - S1U_THREADS=16 + - THREAD_SX_PRIO=64 + - SX_THREADS=1 + - THREAD_SGI_PRIO=64 + - SGI_THREADS=16 + - SPGWC0_IP_ADDRESS=192.168.68.3 + - BYPASS_UL_PFCP_RULES=no + depends_on: + - oai_smf + cap_add: + - NET_ADMIN + - SYS_ADMIN + cap_drop: + - ALL + privileged: true + networks: + 5gcore: + ipv4_address: 192.168.68.5 +networks: + 5gcore: + driver: bridge + ipam: + config: + - subnet: 192.168.68.0/24 \ No newline at end of file diff --git a/docker-compose/docker-compose-without-nrf.yaml b/docker-compose/docker-compose-without-nrf.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2be47ddba88ae81b11b883421fb4041dc10c0010 --- /dev/null +++ b/docker-compose/docker-compose-without-nrf.yaml @@ -0,0 +1,138 @@ +version: '3.8' +services: + mysql: + container_name: "mysql" + image: mysql:5.7 + ports: + - 3306 + command: --init-file /tmp/oai_db.sql + volumes: + - ./oai_db.sql:/tmp/oai_db.sql:rw + environment: + - MYSQL_DATABASE=oai_db + - MYSQL_USER=test + - MYSQL_PASSWORD=test + - MYSQL_ROOT_PASSWORD=linux + networks: + 5gcore: + ipv4_address: 192.168.68.6 + oai_amf: + container_name: "oai_amf" + image: oai_amf:1.0 + ports: + - 38412 + - 80 + environment: + - INSTANCE=0 + - PID_DIRECTORY=/var/run + - MCC=208 + - MNC=95 + - REGION_ID=128 + - AMF_SET_ID=1 + - SERVED_GUAMI_MCC_0=208 + - SERVED_GUAMI_MNC_0=95 + - SERVED_GUAMI_REGION_ID_0=128 + - SERVED_GUAMI_AMF_SET_ID_0=1 + - SERVED_GUAMI_MCC_1=460 + - SERVED_GUAMI_MNC_1=11 + - SERVED_GUAMI_REGION_ID_1=10 + - SERVED_GUAMI_AMF_SET_ID_1=1 + - PLMN_SUPPORT_MCC=208 + - PLMN_SUPPORT_MNC=95 + - PLMN_SUPPORT_TAC=0xa000 + - SST_0=222 + - SD_0=123 + - SST_1=1 + - SD_1=12 + - AMF_INTERFACE_NAME_FOR_NGAP=eth0 + - AMF_INTERFACE_NAME_FOR_N11=eth0 + - SMF_INSTANCE_ID_0=1 + - SMF_IPV4_ADDR_0=192.168.68.3 + - SMF_HTTP_VERSION_0=v1 + - SMF_INSTANCE_ID_1=2 + - SMF_IPV4_ADDR_1=192.168.68.3 + - SMF_HTTP_VERSION_1=v1 + - MYSQL_SERVER=mysql + - MYSQL_USER=root + - MYSQL_PASS=linux + - MYSQL_DB=oai_db + - OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d + - NRF_IPV4_ADDRESS=192.168.68.4 + - NRF_PORT=80 + - NRF_API_VERSION=v1 + - AUSF_IPV4_ADDRESS=192.168.68.10 + - AUSF_PORT=80 + - AUSF_API_VERSION=v1 + depends_on: + - mysql + networks: + 5gcore: + ipv4_address: 192.168.68.2 + oai_smf: + container_name: "oai_smf" + image: oai_smf:1.0 + ports: + - 80 + environment: + - INSTANCE=0 + - PID_DIRECTORY=/var/run + - SMF_INTERFACE_NAME_FOR_N4=eth0 + - SMF_INTERFACE_NAME_FOR_SBI=eth0 + - SMF_INTERFACE_PORT_FOR_SBI=8080 + - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=8081 + - SMF_API_VERSION=v1 + - DEFAULT_DNS_IPV4_ADDRESS=192.168.106.12 + - DEFAULT_DNS_SEC_IPV4_ADDRESS=192.168.106.10 + - AMF_IPV4_ADDRESS=192.168.68.2 + - AMF_PORT=8082 + - AMF_API_VERSION=v1 + - UDM_IPV4_ADDRESS=127.0.0.1 + - UDM_PORT=8083 + - UDM_API_VERSION=v1 + - UPF_IPV4_ADDRESS=192.168.68.5 + - NRF_IPV4_ADDRESS=192.168.68.4 + - NRF_PORT=80 + - NRF_API_VERSION=v1 + depends_on: + - oai_amf + networks: + 5gcore: + ipv4_address: 192.168.68.3 + oai_spgwu: + container_name: "oai_spgwu" + image: oai_sgpwu:1.0 + ports: + - 2152 + - 8805 + environment: + - PID_DIRECTORY=/var/run + - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0 + - SGW_INTERFACE_NAME_FOR_SX=eth0 + - PGW_INTERFACE_NAME_FOR_SGI=eth0 + - NETWORK_UE_NAT_OPTION=yes + - NETWORK_UE_IP=192.168.22.0/24 + - THREAD_S1U_PRIO=9090 + - S1U_THREADS=16 + - THREAD_SX_PRIO=64 + - SX_THREADS=1 + - THREAD_SGI_PRIO=64 + - SGI_THREADS=16 + - SPGWC0_IP_ADDRESS=192.168.68.3 + - BYPASS_UL_PFCP_RULES=no + depends_on: + - oai_smf + cap_add: + - NET_ADMIN + - SYS_ADMIN + cap_drop: + - ALL + privileged: true + networks: + 5gcore: + ipv4_address: 192.168.68.5 +networks: + 5gcore: + driver: bridge + ipam: + config: + - subnet: 192.168.68.0/24 \ No newline at end of file diff --git a/docker-compose/oai_db.sql b/docker-compose/oai_db.sql new file mode 100644 index 0000000000000000000000000000000000000000..15bc9bdf2d1c36488a541a0ab478175f734bad52 --- /dev/null +++ b/docker-compose/oai_db.sql @@ -0,0 +1,207 @@ +-- MySQL dump 10.13 Distrib 5.5.46, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: oai_db +-- ------------------------------------------------------ +-- Server version 5.5.46-0ubuntu0.14.04.2 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `apn` +-- + +DROP TABLE IF EXISTS `apn`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `apn` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `apn-name` varchar(60) NOT NULL, + `pdn-type` enum('IPv4','IPv6','IPv4v6','IPv4_or_IPv6') NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `apn-name` (`apn-name`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `apn` +-- + +LOCK TABLES `apn` WRITE; +/*!40000 ALTER TABLE `apn` DISABLE KEYS */; +/*!40000 ALTER TABLE `apn` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `mmeidentity` +-- + +DROP TABLE IF EXISTS `mmeidentity`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mmeidentity` ( + `idmmeidentity` int(11) NOT NULL AUTO_INCREMENT, + `mmehost` varchar(255) DEFAULT NULL, + `mmerealm` varchar(200) DEFAULT NULL, + `UE-Reachability` tinyint(1) NOT NULL COMMENT 'Indicates whether the MME supports UE Reachability Notifcation', + PRIMARY KEY (`idmmeidentity`) +) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mmeidentity` +-- + +LOCK TABLES `mmeidentity` WRITE; +/*!40000 ALTER TABLE `mmeidentity` DISABLE KEYS */; +INSERT INTO `mmeidentity` VALUES (2,'mme2.openair4G.eur','openair4G.eur',0),(1,'nano.openair4G.eur','openair4G.eur',0),(5,'abeille.openair4G.eur','openair4G.eur',0),(4,'yang.openair4G.eur','openair4G.eur',0),(3,'mme3.openair4G.eur','openair4G.eur',0),(6,'calisson.openair4G.eur','openair4G.eur',0); +/*!40000 ALTER TABLE `mmeidentity` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pdn` +-- + +DROP TABLE IF EXISTS `pdn`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `pdn` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `apn` varchar(60) NOT NULL, + `pdn_type` enum('IPv4','IPv6','IPv4v6','IPv4_or_IPv6') NOT NULL DEFAULT 'IPv4', + `pdn_ipv4` varchar(15) DEFAULT '0.0.0.0', + `pdn_ipv6` varchar(45) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT '0:0:0:0:0:0:0:0', + `aggregate_ambr_ul` int(10) unsigned DEFAULT '50000000', + `aggregate_ambr_dl` int(10) unsigned DEFAULT '100000000', + `pgw_id` int(11) NOT NULL, + `users_imsi` varchar(15) NOT NULL, + `qci` tinyint(3) unsigned NOT NULL DEFAULT '9', + `priority_level` tinyint(3) unsigned NOT NULL DEFAULT '15', + `pre_emp_cap` enum('ENABLED','DISABLED') DEFAULT 'DISABLED', + `pre_emp_vul` enum('ENABLED','DISABLED') DEFAULT 'DISABLED', + `LIPA-Permissions` enum('LIPA-prohibited','LIPA-only','LIPA-conditional') NOT NULL DEFAULT 'LIPA-only', + PRIMARY KEY (`id`,`pgw_id`,`users_imsi`), + KEY `fk_pdn_pgw1_idx` (`pgw_id`), + KEY `fk_pdn_users1_idx` (`users_imsi`) +) ENGINE=MyISAM AUTO_INCREMENT=60 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `pdn` +-- + +LOCK TABLES `pdn` WRITE; +/*!40000 ALTER TABLE `pdn` DISABLE KEYS */; +INSERT INTO `pdn` VALUES (1,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000001',9,15,'DISABLED','ENABLED','LIPA-only'),(41,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'20834123456789',9,15,'DISABLED','ENABLED','LIPA-only'),(40,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'20810000001234',9,15,'DISABLED','ENABLED','LIPA-only'),(42,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'31002890832150',9,15,'DISABLED','ENABLED','LIPA-only'),(16,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000002',9,15,'DISABLED','ENABLED','LIPA-only'),(43,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'001010123456789',9,15,'DISABLED','ENABLED','LIPA-only'),(2,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000002',9,15,'DISABLED','ENABLED','LIPA-only'),(3,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000003',9,15,'DISABLED','ENABLED','LIPA-only'),(4,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000004',9,15,'DISABLED','ENABLED','LIPA-only'),(5,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000005',9,15,'DISABLED','ENABLED','LIPA-only'),(6,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000006',9,15,'DISABLED','ENABLED','LIPA-only'),(7,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930000000007',9,15,'DISABLED','ENABLED','LIPA-only'),(8,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000001',9,15,'DISABLED','ENABLED','LIPA-only'),(9,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000002',9,15,'DISABLED','ENABLED','LIPA-only'),(10,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000003',9,15,'DISABLED','ENABLED','LIPA-only'),(11,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000004',9,15,'DISABLED','ENABLED','LIPA-only'),(12,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000005',9,15,'DISABLED','ENABLED','LIPA-only'),(13,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000006',9,15,'DISABLED','ENABLED','LIPA-only'),(14,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208940000000007',9,15,'DISABLED','ENABLED','LIPA-only'),(15,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000001',9,15,'DISABLED','ENABLED','LIPA-only'),(17,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000003',9,15,'DISABLED','ENABLED','LIPA-only'),(18,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000004',9,15,'DISABLED','ENABLED','LIPA-only'),(19,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000005',9,15,'DISABLED','ENABLED','LIPA-only'),(20,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000006',9,15,'DISABLED','ENABLED','LIPA-only'),(21,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000007',9,15,'DISABLED','ENABLED','LIPA-only'),(22,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001100',9,15,'DISABLED','ENABLED','LIPA-only'),(23,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001101',9,15,'DISABLED','ENABLED','LIPA-only'),(24,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001102',9,15,'DISABLED','ENABLED','LIPA-only'),(25,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001103',9,15,'DISABLED','ENABLED','LIPA-only'),(26,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001104',9,15,'DISABLED','ENABLED','LIPA-only'),(27,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001105',9,15,'DISABLED','ENABLED','LIPA-only'),(28,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001106',9,15,'DISABLED','ENABLED','LIPA-only'),(29,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001107',9,15,'DISABLED','ENABLED','LIPA-only'),(30,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001108',9,15,'DISABLED','ENABLED','LIPA-only'),(31,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001109',9,15,'DISABLED','ENABLED','LIPA-only'),(32,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001110',9,15,'DISABLED','ENABLED','LIPA-only'),(33,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001111',9,15,'DISABLED','ENABLED','LIPA-only'),(34,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001112',9,15,'DISABLED','ENABLED','LIPA-only'),(35,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001113',9,15,'DISABLED','ENABLED','LIPA-only'),(44,'operator','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001113',9,15,'DISABLED','ENABLED','LIPA-only'),(45,'operator','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001112',9,15,'DISABLED','ENABLED','LIPA-only'),(46,'operator','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208930100001111',9,15,'DISABLED','ENABLED','LIPA-only'),(47,'operator','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000002',9,15,'DISABLED','ENABLED','LIPA-only'),(48,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000008',9,15,'DISABLED','ENABLED','LIPA-only'),(49,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000009',9,15,'DISABLED','ENABLED','LIPA-only'),(50,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000010',9,15,'DISABLED','ENABLED','LIPA-only'),(51,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000011',9,15,'DISABLED','ENABLED','LIPA-only'),(52,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000012',9,15,'DISABLED','ENABLED','LIPA-only'),(53,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000013',9,15,'DISABLED','ENABLED','LIPA-only'),(54,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000014',9,15,'DISABLED','ENABLED','LIPA-only'),(55,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208950000000015',9,15,'DISABLED','ENABLED','LIPA-only'),(56,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001118',9,15,'DISABLED','ENABLED','LIPA-only'),(57,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001121',9,15,'DISABLED','ENABLED','LIPA-only'),(58,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001120',9,15,'DISABLED','ENABLED','LIPA-only'),(59,'oai.ipv4','IPv4','0.0.0.0','0:0:0:0:0:0:0:0',50000000,100000000,3,'208920100001119',9,15,'DISABLED','ENABLED','LIPA-only'); +/*!40000 ALTER TABLE `pdn` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pgw` +-- + +DROP TABLE IF EXISTS `pgw`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `pgw` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ipv4` varchar(15) NOT NULL, + `ipv6` varchar(39) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `ipv4` (`ipv4`), + UNIQUE KEY `ipv6` (`ipv6`) +) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `pgw` +-- + +LOCK TABLES `pgw` WRITE; +/*!40000 ALTER TABLE `pgw` DISABLE KEYS */; +INSERT INTO `pgw` VALUES (1,'127.0.0.1','0:0:0:0:0:0:0:1'),(2,'192.168.56.101',''),(3,'10.0.0.2','0'); +/*!40000 ALTER TABLE `pgw` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `terminal-info` +-- + +DROP TABLE IF EXISTS `terminal-info`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `terminal-info` ( + `imei` varchar(15) NOT NULL, + `sv` varchar(2) NOT NULL, + UNIQUE KEY `imei` (`imei`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `terminal-info` +-- + +LOCK TABLES `terminal-info` WRITE; +/*!40000 ALTER TABLE `terminal-info` DISABLE KEYS */; +/*!40000 ALTER TABLE `terminal-info` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `users` +-- + +DROP TABLE IF EXISTS `users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `users` ( + `imsi` varchar(15) NOT NULL COMMENT 'IMSI is the main reference key.', + `msisdn` varchar(46) DEFAULT NULL COMMENT 'The basic MSISDN of the UE (Presence of MSISDN is optional).', + `imei` varchar(15) DEFAULT NULL COMMENT 'International Mobile Equipment Identity', + `imei_sv` varchar(2) DEFAULT NULL COMMENT 'International Mobile Equipment Identity Software Version Number', + `ms_ps_status` enum('PURGED','NOT_PURGED') DEFAULT 'PURGED' COMMENT 'Indicates that ESM and EMM status are purged from MME', + `rau_tau_timer` int(10) unsigned DEFAULT '120', + `ue_ambr_ul` bigint(20) unsigned DEFAULT '50000000' COMMENT 'The Maximum Aggregated uplink MBRs to be shared across all Non-GBR bearers according to the subscription of the user.', + `ue_ambr_dl` bigint(20) unsigned DEFAULT '100000000' COMMENT 'The Maximum Aggregated downlink MBRs to be shared across all Non-GBR bearers according to the subscription of the user.', + `access_restriction` int(10) unsigned DEFAULT '60' COMMENT 'Indicates the access restriction subscription information. 3GPP TS.29272 #7.3.31', + `mme_cap` int(10) unsigned zerofill DEFAULT NULL COMMENT 'Indicates the capabilities of the MME with respect to core functionality e.g. regional access restrictions.', + `mmeidentity_idmmeidentity` int(11) NOT NULL DEFAULT '0', + `key` varbinary(16) NOT NULL DEFAULT '0' COMMENT 'UE security key', + `RFSP-Index` smallint(5) unsigned NOT NULL DEFAULT '1' COMMENT 'An index to specific RRM configuration in the E-UTRAN. Possible values from 1 to 256', + `urrp_mme` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'UE Reachability Request Parameter indicating that UE activity notification from MME has been requested by the HSS.', + `sqn` bigint(20) unsigned zerofill NOT NULL, + `rand` varbinary(16) NOT NULL, + `OPc` varbinary(16) DEFAULT NULL COMMENT 'Can be computed by HSS', + PRIMARY KEY (`imsi`,`mmeidentity_idmmeidentity`), + KEY `fk_users_mmeidentity_idx1` (`mmeidentity_idmmeidentity`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `users` +-- + +LOCK TABLES `users` WRITE; +/*!40000 ALTER TABLE `users` DISABLE KEYS */; +INSERT INTO `users` VALUES ('20834123456789','380561234567','35609204079300',NULL,'PURGED',50,40000000,100000000,47,0000000000,1,'+Eų\0,IHH',0,0,00000000000000000096,'PxX \Z1x','^KFeU'),('20810000001234','33611123456','35609204079299',NULL,'PURGED',120,40000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000281454575616225,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','4s@z~'),('31002890832150','33638060059','35611302209414',NULL,'PURGED',120,40000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012416,'`F݆DÏ›','4s@z~'),('001010123456789','33600101789','35609204079298',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'\0 \n\r',1,0,00000000000000000351,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0','L*\\^] '),('208930000000001','33638030001','35609204079301',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208950000000002','33638050002','35609204079502',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000020471,'\0 \n\r','4s@z~'),('208950000000003','33638050003','35609204079503',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012343,'\0 \n\r','4s@z~'),('208950000000004','33638050004','35609204079504',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000005','33638050005','35609204079505',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000001','33638050001','35609204079501',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208950000000006','33638050006','35609204079506',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000007','33638050007','35609204079507',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208930000000002','33638030002','35609204079302',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208930000000003','33638030003','35609204079303',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208930000000004','33638030004','35609204079304',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208930000000005','33638030005','35609204079305',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208930000000006','33638030006','35609204079306',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208930000000007','33638030007','35609204079307',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208940000000007','33638040007','35609204079407',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208940000000006','33638040006','35609204079406',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208940000000005','33638040005','35609204079405',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208940000000004','33638040004','35609204079404',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208940000000003','33638040003','35609204079403',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208940000000002','33638040002','35609204079402',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208940000000001','33638040001','35609204079401',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'wqgzWÐZ]','4s@z~'),('208920100001100','33638020001','35609204079201',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001101','33638020001','35609204079201',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204937234,'\0 \n\r','$I6;+fku|'),('208920100001102','33638020002','35609204079202',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001103','33638020003','35609204079203',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001104','33638020004','35609204079204',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001105','33638020005','35609204079205',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001106','33638020006','35609204079206',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000000000000006103,'ebd07771ace8677a','$I6;+fku|'),('208920100001107','33638020007','35609204079207',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001108','33638020008','35609204079208',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001109','33638020009','35609204079209',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208920100001110','33638020010','35609204079210',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208930100001111','33638030011','35609304079211',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208930100001112','33638030012','35609304079212',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006103,'ebd07771ace8677a','4s@z~'),('208930100001113','33638030013','35609304079213',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000006263,'SNÜ’Ive6','4s@z~'),('208950000000008','33638050008','35609204079508',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000009','33638050009','35609204079509',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000010','33638050010','35609204079510',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000011','33638050011','35609204079511',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000012','33638050012','35609204079512',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000013','33638050013','35609204079513',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000014','33638050014','35609204079514',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000012215,'56f0261d9d051063','4s@z~'),('208950000000015','33638050015','35609204079515',NULL,'PURGED',120,50000000,100000000,47,0000000000,1,'G?/Д |hb',1,0,00000000000000000000,'3536663032363164','4s@z~'),('208920100001118','33638020010','35609204079210',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204934762,'~?03u-%eyy','$I6;+fku|'),('208920100001121','33638020010','35609204079210',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204935293,'&@xg]\nVp','$I6;+fku|'),('208920100001119','33638020010','35609204079210',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204935293,'269482407867805d','$I6;+fku|'),('208920100001120','33638020010','35609204079210',NULL,'NOT_PURGED',120,50000000,100000000,47,0000000000,1,'kp~Љu{K',1,0,00000281044204935293,'3236393438323430','$I6;+fku|'); +INSERT INTO `users` VALUES ('208950000000031','380561234567','55000000000001',NULL,'PURGED',50,40000000,100000000,47,0000000000,1,0x0C0A34601D4F07677303652C0462535B,0,0,0x40,'ebd07771ace8677a',0x63bfa50ee6523365ff14c1f45f88737d); +/*!40000 ALTER TABLE `users` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2016-06-28 11:41:40 diff --git a/scripts/syncComponents.sh b/scripts/syncComponents.sh index d146956d82ed9c90ba70f004e3cbfbe11672f63e..72685d56945c73500503681837fa27744e76e2bc 100755 --- a/scripts/syncComponents.sh +++ b/scripts/syncComponents.sh @@ -36,6 +36,9 @@ function usage { echo "" echo "Options:" echo "--------" + echo " --nrf-branch ####" + echo " Specify the source branch for the OAI-NRF component" + echo "" echo " --amf-branch ####" echo " Specify the source branch for the OAI-AMF component" echo "" @@ -50,6 +53,7 @@ function usage { echo "" } +NRF_BRANCH='develop' AMF_BRANCH='develop' SMF_BRANCH='develop' SPGWU_BRANCH='master' @@ -66,6 +70,12 @@ case $key in usage exit 0 ;; + --nrf-branch) + NRF_BRANCH="$2" + doDefault=0 + shift + shift + ;; --amf-branch) AMF_BRANCH="$2" doDefault=0 @@ -94,6 +104,7 @@ esac done echo "---------------------------------------------------------" +echo "OAI-NRF component branch : ${NRF_BRANCH}" echo "OAI-AMF component branch : ${AMF_BRANCH}" echo "OAI-SMF component branch : ${SMF_BRANCH}" echo "OAI-SPGW-U component branch : ${SPGWU_BRANCH}" @@ -112,6 +123,11 @@ if [ $doDefault -eq 1 ] then git submodule foreach 'git fetch --prune && git checkout develop && git pull origin develop' > /dev/null 2>&1 else + pushd component/oai-nrf + git fetch --prune > /dev/null 2>&1 + git checkout $NRF_BRANCH > /dev/null 2>&1 + git pull origin $NRF_BRANCH > /dev/null 2>&1 + popd pushd component/oai-amf git fetch --prune > /dev/null 2>&1 git checkout $AMF_BRANCH > /dev/null 2>&1