Commit e4f48b6d authored by Raphael Defosseux's avatar Raphael Defosseux

Merge branch 'publish-u20-image' into 'develop'

chore(ci): switching to U20 for published images

See merge request oai/cn5g/oai-cn5g-smf!199
parents 1db0f8ce 22a02702
# RELEASE NOTES: # # RELEASE NOTES: #
## v1.5.1 -- May 2023 ##
* Fix N1N2 Content message
* Remove ranInfo field in n2infocontainer
* Fix encoding NAS header
* Resolved QoS Flow info missing in N2 Handover Preparation
* Fix SUPI format: Use IMSI as SUPI
* Fix: Send PDU Session Reject when PDU session fails before SMF procedure is started
* Fix HTTP header
* Fixing config parameter read
* Fix for IE Redirect Information
* Fix: Associate node id based on node id type
* Use N3 ip address from NF profile if provided
* Fix: UL TEID for multiple created PDR
* Fix for encode/decode of create QER IE
* Support for DL PDR in session establishment
* Use NWI from config file when no UPF profile is associated
* Fix HTTP/2 issue with PCF
* Code Refactoring for:
* Logging mechanism (runtime log level selection)
* Installation / build scripts
* Continuous Integration scripts
* Published image on Docker-Hub is using now Ubuntu-20 as base image
* We will soon obsolete the build system for Ubuntu18.04
## v1.5.0 -- January 2023 ## ## v1.5.0 -- January 2023 ##
* Feature improvements: * Feature improvements:
......
...@@ -15,6 +15,20 @@ Please refer to the steps described on our website: [How to contribute to OAI](h ...@@ -15,6 +15,20 @@ Please refer to the steps described on our website: [How to contribute to OAI](h
* The Continuous Integration will reject your pull request. * The Continuous Integration will reject your pull request.
- All pull requests SHALL have **`develop`** branch as target branch. - All pull requests SHALL have **`develop`** branch as target branch.
## Synchronizing GIT sub-modules ##
We are using nested GIT submodules. To synchronize them, the 2 most important commands to know are :
1. `git submodule deinit --force .`
2. `git submodule update --init --recursive`
If you have non-tracked files or modified files within git submodules, these commands may not work.
Use the `--verbose` option to see the execution of each command.
If the synchronization fails, you may need to go into the path of the failing git-submodule(s) and clean the workspace from non-tracked/modified files.
## Coding Styles ## ## Coding Styles ##
We are using `clang-format` as formatting tool on the C/C++ code. We are using `clang-format` as formatting tool on the C/C++ code.
......
...@@ -212,7 +212,7 @@ pipeline { ...@@ -212,7 +212,7 @@ pipeline {
script { script {
sh "sudo podman image prune --force" sh "sudo podman image prune --force"
sh "rm -Rf ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca" sh "rm -Rf ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca"
stash includes: 'archives/smf_podman_image_build.log', name: 'podmanBuildLog' stash allowEmpty: true, includes: 'archives/smf_podman_image_build.log', name: 'podmanBuildLog'
} }
} }
} }
...@@ -247,7 +247,7 @@ pipeline { ...@@ -247,7 +247,7 @@ pipeline {
} }
cleanup { cleanup {
script { script {
stash includes: 'archives/cppcheck*.*', name: 'cppcheckLogs' stash allowEmpty: true, includes: 'archives/cppcheck*.*', name: 'cppcheckLogs'
// no need to keep the cppcheck container // no need to keep the cppcheck container
sh 'docker rm -f smf-ci-cppcheck || true' sh 'docker rm -f smf-ci-cppcheck || true'
sh 'docker rmi smf-cppcheck:test || true' sh 'docker rmi smf-cppcheck:test || true'
...@@ -284,7 +284,7 @@ pipeline { ...@@ -284,7 +284,7 @@ pipeline {
post { post {
cleanup { cleanup {
script { script {
stash includes: 'src/oai_rules_result*.txt', name: 'formatCheckLogs' stash allowEmpty: true, includes: 'src/oai_rules_result*.txt, archives/clang_format_install.log', name: 'formatCheckLogs'
sh 'docker rm -f smf-ci-clang-format || true' sh 'docker rm -f smf-ci-clang-format || true'
sh 'docker rmi smf-clang-format-check:test || true' sh 'docker rmi smf-clang-format-check:test || true'
} }
......
common @ b9ca1e67
Subproject commit d18a067dcf7acb8a7075216f44d36174d77a7b65 Subproject commit b9ca1e67d3e4b4fee5075d90e98015698ab1f0a1
...@@ -58,7 +58,7 @@ class HtmlReport(): ...@@ -58,7 +58,7 @@ class HtmlReport():
with open(os.path.join(cwd, REPORT_NAME), 'w') as wfile: with open(os.path.join(cwd, REPORT_NAME), 'w') as wfile:
wfile.write(generate_header(args)) wfile.write(generate_header(args))
wfile.write(generate_git_info(args)) wfile.write(generate_git_info(args))
wfile.write(build_summary(args, 'smf', '18', '8')) wfile.write(build_summary(args, 'smf', '20', '8'))
wfile.write(coding_formatting_log_check(args)) wfile.write(coding_formatting_log_check(args))
wfile.write(analyze_sca_log_check()) wfile.write(analyze_sca_log_check())
wfile.write(generate_footer()) wfile.write(generate_footer())
......
#/*
# * 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
# */
#---------------------------------------------------------------------
#
---
kind: BuildConfig
apiVersion: build.openshift.io/v1
metadata:
name: "oai-smf"
namespace: oaicicd-core
spec:
runPolicy: "Serial"
source:
type: "Binary"
secrets:
- secret:
name: etc-pki-entitlement
destinationDir: etc-pki-entitlement
configMaps:
- configMap:
name: rhsm-conf
destinationDir: rhsm-conf
- configMap:
name: rhsm-ca
destinationDir: rhsm-ca
strategy:
dockerStrategy:
dockerfilePath: "docker/Dockerfile.smf.rhel8"
output:
to:
kind: "ImageStreamTag"
name: "oai-smf:develop"
#/*
# * 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
# */
#---------------------------------------------------------------------
#
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: oai-smf
namespace: oaicicd-core
spec:
lookupPolicy:
local: true
status:
tag: develop
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# BASE IMAGE # BASE IMAGE
#--------------------------------------------------------------------- #---------------------------------------------------------------------
ARG BASE_IMAGE=ubuntu:bionic ARG BASE_IMAGE=ubuntu:focal
FROM $BASE_IMAGE as oai-smf-base FROM $BASE_IMAGE as oai-smf-base
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
......
...@@ -725,7 +725,8 @@ void smf_app::handle_itti_msg( ...@@ -725,7 +725,8 @@ void smf_app::handle_itti_msg(
} break; } break;
default: { default: {
Logger::smf_app().warn("Unknown procedure type %d", (int) m.procedure_type); Logger::smf_app().warn(
"Unknown procedure type %d", (int) m.procedure_type);
} }
} }
} }
......
...@@ -178,23 +178,21 @@ bool edge::serves_network( ...@@ -178,23 +178,21 @@ bool edge::serves_network(
return serves_network(dnn, snssai, set, s); return serves_network(dnn, snssai, set, s);
} }
//--------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------
bool edge::get_qos_flows(std::vector<std::shared_ptr<smf_qos_flow>>& flows){ bool edge::get_qos_flows(std::vector<std::shared_ptr<smf_qos_flow>>& flows) {
flows.clear(); flows.clear();
for(const auto& flow : this->qos_flows){ for (const auto& flow : this->qos_flows) {
flows.push_back(flow); flows.push_back(flow);
} }
return flows.size() > 0; return flows.size() > 0;
} }
//--------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------
bool edge::get_qos_flows(pdu_session_id_t pid, std::vector<std::shared_ptr<smf_qos_flow>>& flows){ bool edge::get_qos_flows(
pdu_session_id_t pid, std::vector<std::shared_ptr<smf_qos_flow>>& flows) {
flows.clear(); flows.clear();
for(const auto& flow : this->qos_flows){ for (const auto& flow : this->qos_flows) {
if(flow->pdu_session_id == pid) if (flow->pdu_session_id == pid) flows.push_back(flow);
flows.push_back(flow);
} }
return flows.size() > 0; return flows.size() > 0;
} }
......
...@@ -315,7 +315,8 @@ struct edge { ...@@ -315,7 +315,8 @@ struct edge {
std::string& found_dnai) const; std::string& found_dnai) const;
bool get_qos_flows(std::vector<std::shared_ptr<smf_qos_flow>>& flows); bool get_qos_flows(std::vector<std::shared_ptr<smf_qos_flow>>& flows);
bool get_qos_flows(pdu_session_id_t pid, std::vector<std::shared_ptr<smf_qos_flow>>& flows); bool get_qos_flows(
pdu_session_id_t pid, std::vector<std::shared_ptr<smf_qos_flow>>& flows);
std::shared_ptr<smf_qos_flow> get_qos_flow(const pfcp::pdr_id_t& pdr_id); std::shared_ptr<smf_qos_flow> get_qos_flow(const pfcp::pdr_id_t& pdr_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment