Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-UPF
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-UPF
Commits
0ad68c28
Unverified
Commit
0ad68c28
authored
Jun 02, 2021
by
kharade
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Features added and build scripts updated
parent
ffd8794a
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
64 additions
and
362 deletions
+64
-362
build/scripts/build_helper
build/scripts/build_helper
+7
-127
build/scripts/build_helper.upf
build/scripts/build_helper.upf
+8
-7
build/scripts/build_vpp_upf
build/scripts/build_vpp_upf
+1
-2
ci-scripts/checkCodingFormattingRules.sh
ci-scripts/checkCodingFormattingRules.sh
+0
-198
ci-scripts/fail.sh
ci-scripts/fail.sh
+0
-24
docs/FEATURE_SET.md
docs/FEATURE_SET.md
+39
-0
docs/INSTALL_ON_HOST.md
docs/INSTALL_ON_HOST.md
+9
-4
No files found.
build/scripts/build_helper
View file @
0ad68c28
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
# author Laurent Thomas, Lionel GAUTHIER, Rohan KHARADE
# author Laurent Thomas, Lionel GAUTHIER, Rohan KHARADE
#
#
#######################################
#######################################
SUPPORTED_DISTRO="Ubuntu 18.04, Ubuntu 20.04
, CentOS 7, RHEL 7
"
SUPPORTED_DISTRO="Ubuntu 18.04, Ubuntu 20.04"
#SUPPORTED_DISTRO="Ubuntu 18.04, Ubuntu 20.04, CentOS 7, RHEL 7"
#SUPPORTED_DISTRO="Ubuntu 18.04, Ubuntu 20.04, CentOS 7, RHEL 7"
#SUPPORTED_DISTRO="Ubuntu 18.04"
#SUPPORTED_DISTRO="Ubuntu 18.04"
if [ ! -f /etc/os-release ]; then
if [ ! -f /etc/os-release ]; then
...
@@ -137,43 +137,6 @@ check_supported_distribution() {
...
@@ -137,43 +137,6 @@ check_supported_distribution() {
return 1
return 1
}
}
###########################
# Cleaners
###########################
#-------------------------------------------------------------------------------
clean_kernel() {
$SUDO modprobe ip_tables
$SUDO modprobe x_tables
$SUDO iptables -P INPUT ACCEPT
$SUDO iptables -F INPUT
$SUDO iptables -P OUTPUT ACCEPT
$SUDO iptables -F OUTPUT
$SUDO iptables -P FORWARD ACCEPT
$SUDO iptables -F FORWARD
$SUDO iptables -t nat -F
$SUDO iptables -t mangle -F
$SUDO iptables -t filter -F
$SUDO iptables -t raw -F
echo_info "Flushed iptables"
}
#-------------------------------------------------------------------------------
disable_ipv6() {
$SUDO sysctl -w net.ipv6.conf.all.disable_ipv6=1
}
#-------------------------------------------------------------------------------
# Compare two versions of software. Returns true if $version is greater than $req_version
# arg1 = version
# arg2 = req_version
#
function version_gt() {
test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1";
}
###################################
###################################
# Compilers
# Compilers
...
@@ -202,99 +165,16 @@ function list_include_item {
...
@@ -202,99 +165,16 @@ function list_include_item {
compilations() {
compilations() {
echo_info "Compilation log for $1 is here: $dlog/$2.txt"
echo_info "Compilation log for $1 is here: $dlog/$2.txt"
cd $OPENAIRCN_DIR/$1/
cd $OPENAIRCN_DIR/$1/
if [ "a$4" == "a1" ]; then
set -o pipefail
{
rm -f $1
make $make_args build $4
} | tee $dlog/$2.txt
else
{
{
rm -f $1
make build
make $make_args build $4
if grep -q "@@ Installing vpp @@" "/home/rohan/gitrepo/oai-cn5g-upf-vpp/build/log/vpp.txt" ; then
} > $dlog/$2.txt 2>&1
echo_success "##### VPP Compiled Successfully #####"
fi
if [ $? == 0 -a -s $1 ] ; then
echo_success "$2 compiled"
return 0
else
else
echo_error "$2 compilation failed"
echo_error "##### VPP not compiled #####"
return 1
fi
fi
}
###################################
# make test
###################################
# arg 1 Build directory OPENAIRCN_DIR/build/?/build
# arg 2 Executable target name
# arg 3 Executable name (no path)
# arg 4 Verbose (1 or 0)
make_test() {
echo_success "unit tests start"
cd $OPENAIRCN_DIR/build/$1/build
if [ "a$4" == "a1" ]; then
{
make test ARGS="-V"
} | tee $dlog/$2_test.txt
else
{
make test
} > $dlog/$2_test.txt 2>&1
fi
echo_success "unit tests end"
}
#-------------------------------------------------------------------------------
# arg1 is package name
test_install_package() {
# usage: test_install_package package_name
if [ $# -eq 1 ]; then
dpkg -s "$1" > /dev/null 2>&1 && {
echo "$1 is installed."
} || {
echo "$1 is not installed."
$SUDO apt-get install --force-yes $1
}
}
fi
}
}
#-------------------------------------------------------------------------------
update_package_db() {
if [ ! -f /tmp/no_more_update_package_db ]; then
$SUDO $INSTALLER update
[[ $? -ne 0 ]] && return $?
touch /tmp/no_more_update_package_db
[[ $? -ne 0 ]] && return $?
else
let elapsed_time=$(expr `date +%s` - `stat -c %Y /tmp/no_more_update_package_db`)
if [ $elapsed_time -gt 3600 ]; then
$SUDO $INSTALLER update
[[ $? -ne 0 ]] && return $?
touch /tmp/no_more_update_package_db
[[ $? -ne 0 ]] && return $?
fi
fi
return 0
}
#-------------------------------------------------------------------------------
check_enable_epel_repos() {
# on Enterprise Linuxes, ensure EPEL repos are installed
# (provides: libidn2-devel, vconfig, iperf, phpMyAdmin, dkms, ...)
if [[ "$OS_DISTRO" == "rhel" ]] || [[ "$OS_DISTRO" == "centos" ]]; then
if rpm -q epel-release > /dev/null; then
echo "EPEL repos already present. Good."
else
echo "EPEL repos not present. Installing them."
$SUDO $INSTALLER install $OPTION https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
fi
fi
}
################################
################################
# set_openair_env
# set_openair_env
###############################
###############################
...
...
build/scripts/build_helper.upf
View file @
0ad68c28
...
@@ -106,9 +106,9 @@ install_dep(){
...
@@ -106,9 +106,9 @@ install_dep(){
GIT_BRANCH=stable/2101
GIT_BRANCH=stable/2101
pushd $OPENAIRCN_DIR/
pushd $OPENAIRCN_DIR/
git clone -b $GIT_BRANCH $GIT_URL
git clone -b $GIT_BRANCH $GIT_URL
echo "APT::Get::Assume-Yes "true";" >> /etc/apt/apt.conf.d/90forceyes
#
echo "APT::Get::Assume-Yes "true";" >> /etc/apt/apt.conf.d/90forceyes
echo "APT::Get::force-yes "true";" >> /etc/apt/apt.conf.d/90forceyes
#
echo "APT::Get::force-yes "true";" >> /etc/apt/apt.conf.d/90forceyes
cd vpp &&
git checkout -b downstream &&
make install-ext-dep
cd vpp && make install-ext-dep
return 0
return 0
}
}
...
@@ -134,7 +134,7 @@ add_Travelping_upf_plugin(){
...
@@ -134,7 +134,7 @@ add_Travelping_upf_plugin(){
apply_patches(){
apply_patches(){
echo_info "Applying patches to VPP UPG"
echo_info "Applying patches to VPP UPG"
cp -r $OPENAIRCN_DIR/
docker
/patches/* $OPENAIRCN_DIR/vpp/patches
cp -r $OPENAIRCN_DIR/
scripts
/patches/* $OPENAIRCN_DIR/vpp/patches
cd $OPENAIRCN_DIR/vpp/patches
cd $OPENAIRCN_DIR/vpp/patches
find . -iname '*.patch' -execdir sh -c 'patch -p1 -N -d $OPENAIRCN_DIR/vpp/ < $0' {} \;
find . -iname '*.patch' -execdir sh -c 'patch -p1 -N -d $OPENAIRCN_DIR/vpp/ < $0' {} \;
}
}
...
@@ -142,7 +142,8 @@ apply_patches(){
...
@@ -142,7 +142,8 @@ apply_patches(){
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
vpp_upf_init(){
vpp_upf_init(){
echo_info "VPP UPG initializing"
echo_info "VPP UPG initializing"
cp $OPENAIRCN_DIR/docker/configs/startup_debug.conf $OPENAIRCN_DIR/vpp
cp $OPENAIRCN_DIR/scripts/upf_conf/* $OPENAIRCN_DIR/vpp
cp $OPENAIRCN_DIR/docker/configs/run.sh $OPENAIRCN_DIR/vpp
cp $OPENAIRCN_DIR/scripts/run.sh $OPENAIRCN_DIR/vpp
cp $OPENAIRCN_DIR/vpp/build-root/install-vpp_debug-native/vpp/lib/ /usr/lib/x86_64-linux-gnu/vpp_plugins/
echo_info "Installing VPP"
sudo cp -rf $OPENAIRCN_DIR/vpp/build-root/install-vpp_debug-native/vpp/lib/ /usr/lib/x86_64-linux-gnu/vpp_plugins/
}
}
build/scripts/build_vpp_upf
View file @
0ad68c28
...
@@ -44,7 +44,7 @@ function help()
...
@@ -44,7 +44,7 @@ function help()
echo_error
" "
echo_error
" "
echo_error
"Options:"
echo_error
"Options:"
echo_error
"Mandatory arguments to long options are mandatory for short options too."
echo_error
"Mandatory arguments to long options are mandatory for short options too."
echo_error
" -b, --build-type Build type as defined in Makefile, allowed values are: Debug Release RelWithDebInfo MinSizeRel
"
# echo_error " -b, --build-type Build type as defined in Makefile, allowed values are: Debug Release
"
echo_error
" -c, --clean Clean the build generated files: config, object, executable files (build from scratch)"
echo_error
" -c, --clean Clean the build generated files: config, object, executable files (build from scratch)"
echo_error
" -f, --force No interactive script for installation of software packages."
echo_error
" -f, --force No interactive script for installation of software packages."
echo_error
" -h, --help Print this help."
echo_error
" -h, --help Print this help."
...
@@ -183,7 +183,6 @@ function main()
...
@@ -183,7 +183,6 @@ function main()
cd
./vpp
cd
./vpp
add_Travelping_upf_plugin
add_Travelping_upf_plugin
vpp_upf_init
compilations vpp vpp
$OPENAIRCN_DIR
/vpp
$verbose
compilations vpp vpp
$OPENAIRCN_DIR
/vpp
$verbose
vpp_upf_init
vpp_upf_init
ret
=
$?
;
[[
$ret
-ne
0
]]
&&
return
$ret
ret
=
$?
;
[[
$ret
-ne
0
]]
&&
return
$ret
...
...
ci-scripts/checkCodingFormattingRules.sh
deleted
100755 → 0
View file @
ffd8794a
#!/bin/bash
#/*
# * 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
# */
function
usage
{
echo
"OAI Coding / Formatting Guideline Check script"
echo
" Original Author: Raphael Defosseux"
echo
""
echo
" Requirement: clang-format / git shall be installed"
echo
""
echo
" By default (no options) the complete repository will be checked"
echo
" In case of merge/pull request, provided source and target branch,"
echo
" the script will check only the modified files"
echo
""
echo
"Usage:"
echo
"------"
echo
" checkCodingFormattingRules.sh [OPTIONS]"
echo
""
echo
"Options:"
echo
"--------"
echo
" --src-branch #### OR -sb ####"
echo
" Specify the source branch of the merge request."
echo
""
echo
" --target-branch #### OR -tb ####"
echo
" Specify the target branch of the merge request (usually develop)."
echo
""
echo
" --help OR -h"
echo
" Print this help message."
echo
""
}
if
[
$#
-ne
4
]
&&
[
$#
-ne
1
]
&&
[
$#
-ne
0
]
then
echo
"Syntax Error: not the correct number of arguments"
echo
""
usage
exit
1
fi
cd
src
if
[
$#
-eq
0
]
then
echo
" ---- Checking the whole repository ----"
echo
""
if
[
-f
oai_rules_result.txt
]
then
rm
-f
oai_rules_result.txt
fi
if
[
-f
oai_rules_result_list.txt
]
then
rm
-f
oai_rules_result_list.txt
fi
EXTENSION_LIST
=(
"h"
"hpp"
"c"
"cpp"
)
NB_TO_FORMAT
=
0
NB_TOTAL
=
0
for
EXTENSION
in
${
EXTENSION_LIST
[@]
}
do
echo
"Checking for all files with .
${
EXTENSION
}
extension"
FILE_LIST
=
`
tree
-n
--noreport
-i
-f
-P
*
.
${
EXTENSION
}
|
sed
-e
's#^\./##'
|
grep
"
\.
${
EXTENSION
}
"
`
for
FILE_TO_CHECK
in
${
FILE_LIST
[@]
}
do
TO_FORMAT
=
`
clang-format
-output-replacements-xml
${
FILE_TO_CHECK
}
2>&1 |
grep
-v
replacements |
grep
-c
replacement
`
NB_TOTAL
=
$((
NB_TOTAL
+
1
))
if
[
$TO_FORMAT
-ne
0
]
then
NB_TO_FORMAT
=
$((
NB_TO_FORMAT
+
1
))
# In case of full repo, being silent
#echo "src/$FILE_TO_CHECK"
echo
"src/
$FILE_TO_CHECK
"
>>
./oai_rules_result_list.txt
fi
done
done
echo
"Nb Files that do NOT follow OAI rules:
$NB_TO_FORMAT
over
$NB_TOTAL
checked!"
echo
"NB_FILES_FAILING_CHECK=
$NB_TO_FORMAT
"
>
./oai_rules_result.txt
echo
"NB_FILES_CHECKED=
$NB_TOTAL
"
>>
./oai_rules_result.txt
exit
0
fi
checker
=
0
while
[[
$#
-gt
0
]]
do
key
=
"
$1
"
case
$key
in
-h
|
--help
)
shift
usage
exit
0
;;
-sb
|
--src-branch
)
SOURCE_BRANCH
=
"
$2
"
let
"checker|=0x1"
shift
shift
;;
-tb
|
--target-branch
)
TARGET_BRANCH
=
"
$2
"
let
"checker|=0x2"
shift
shift
;;
*
)
echo
"Syntax Error: unknown option:
$key
"
echo
""
usage
exit
1
esac
done
if
[
$checker
-ne
3
]
then
echo
"Source Branch is :
$SOURCE_BRANCH
"
echo
"Target Branch is :
$TARGET_BRANCH
"
echo
""
echo
"Syntax Error: missing option"
echo
""
usage
exit
1
fi
# Merge request scenario
MERGE_COMMMIT
=
`
git log
-n1
--pretty
=
format:%H
`
if
[
-f
.git/refs/remotes/origin/
$TARGET_BRANCH
]
then
TARGET_INIT_COMMIT
=
`
cat
.git/refs/remotes/origin/
$TARGET_BRANCH
`
else
TARGET_INIT_COMMIT
=
`
git log
-n1
--pretty
=
format:%H origin/
$TARGET_BRANCH
`
fi
echo
" ---- Checking the modified files by the merge request ----"
echo
""
echo
"Source Branch is :
$SOURCE_BRANCH
"
echo
"Target Branch is :
$TARGET_BRANCH
"
echo
"Merged Commit is :
$MERGE_COMMMIT
"
echo
"Target Init is :
$TARGET_INIT_COMMIT
"
echo
""
echo
" ----------------------------------------------------------"
echo
""
# Retrieve the list of modified files since the latest develop commit
MODIFIED_FILES
=
`
git log
$TARGET_INIT_COMMIT
..
$MERGE_COMMMIT
--oneline
--name-status
| egrep
"^M|^A"
|
sed
-e
"s@^M
\t
*@@"
-e
"s@^A
\t
*@@"
|
sort
|
uniq
`
NB_TO_FORMAT
=
0
NB_TOTAL
=
0
if
[
-f
oai_rules_result.txt
]
then
rm
-f
oai_rules_result.txt
fi
if
[
-f
oai_rules_result_list.txt
]
then
rm
-f
oai_rules_result_list.txt
fi
for
FULLFILE
in
$MODIFIED_FILES
do
filename
=
$(
basename
--
"
$FULLFILE
"
)
EXT
=
"
${
filename
##*.
}
"
if
[
$EXT
=
"c"
]
||
[
$EXT
=
"h"
]
||
[
$EXT
=
"cpp"
]
||
[
$EXT
=
"hpp"
]
then
SRC_FILE
=
`
echo
$FULLFILE
|
sed
-e
"s#src/##"
`
TO_FORMAT
=
`
clang-format
-output-replacements-xml
${
SRC_FILE
}
2>&1 |
grep
-v
replacements |
grep
-c
replacement
`
NB_TOTAL
=
$((
NB_TOTAL
+
1
))
if
[
$TO_FORMAT
-ne
0
]
then
NB_TO_FORMAT
=
$((
NB_TO_FORMAT
+
1
))
echo
$FULLFILE
echo
$FULLFILE
>>
./oai_rules_result_list.txt
fi
fi
done
echo
""
echo
" ----------------------------------------------------------"
echo
"Nb Files that do NOT follow OAI rules:
$NB_TO_FORMAT
over
$NB_TOTAL
checked!"
echo
"NB_FILES_FAILING_CHECK=
$NB_TO_FORMAT
"
>
./oai_rules_result.txt
echo
"NB_FILES_CHECKED=
$NB_TOTAL
"
>>
./oai_rules_result.txt
exit
0
ci-scripts/fail.sh
deleted
100644 → 0
View file @
ffd8794a
#!/bin/bash
#/*
# * 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
# */
exit
-1
docs/FEATURE_SET.md
View file @
0ad68c28
User Plane Gateway (UPG) based on VPP
=====================================
UPG implements a GTP-U user plane based on
[
3GPP TS 23.214
][
TS23214
]
and
[
3GPP TS 29.244
][
TS29244
]
Release 15 & 16. It is implemented as an
out-of-tree plugin for
[
FD.io VPP
][
VPP
]
.
UPG is project by Travelping GmbH and more official information please visit
[
UPG github page
](
https://github.com/travelping/upg-vpp
)
*
VPP_BRANCH = stable/2101
*
VPP_RELEASE = v21.01
#### Supported Features
*
PFCP protocol
*
en/decoding of most IEs
*
heartbeat
*
node related messages
*
session related messages
*
Uplink and Downlink Packet Detection Rules (PDR) and
Forward Action Rules (FAR) -- (some parts)
*
IPv4 -- inner and outer
*
IPv6 -- inner and outer
*
Usage Reporting Rules (URR)
*
PFCP Session Reports
*
Linked Usage Reports
*
GTP Extension Header (partial)
No yet working
--------------
*
Buffer Action Rules (BAR)
*
QoS Enforcement Rule (QER)
Limitations
-----------
*
FAR action with destination LI are not implemented
*
Ethernet bearer support
docs/INSTALL_ON_HOST.md
View file @
0ad68c28
...
@@ -18,13 +18,18 @@ $ git checkout vpp-upf
...
@@ -18,13 +18,18 @@ $ git checkout vpp-upf
### Install VPP-UPF software dependencies
### Install VPP-UPF software dependencies
```
bash
```
bash
ubuntu@test-upf:~
$
cd
oai-cn5g-upf-vpp/
$
cd
oai-cn5g-upf-vpp/
ubuntu@test-upf:~
/oai-cn5g-upf-vpp
$
cd
./build/scripts
/oai-cn5g-upf-vpp
$
cd
./build/scripts
ubuntu@test-upf:~
/oai-cn5g-upf-vpp/build/scripts
$
./build_vpp_upf
-I
-f
/oai-cn5g-upf-vpp/build/scripts
$
./build_vpp_upf
-I
-f
```
```
### Build VPP-UPF
### Build VPP-UPF
```
bash
```
bash
ubuntu@test-upf:~/oai-cn5g-upf-vpp/build/scripts
$
./build_vpp_upf
-c
-V
-b
Debug
/oai-cn5g-upf-vpp/build/scripts
$
./build_vpp_upf
-c
-V
```
### Wipe VPP source
```
bash
/oai-cn5g-upf-vpp/build/scripts
$
./build_vpp_upf
-w
```
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment