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
a958c891
Commit
a958c891
authored
Jul 19, 2021
by
wangyongshou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify build,config,install,add new_run_upf.sh
parent
6120295b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
271 additions
and
44 deletions
+271
-44
scripts/build_upf.sh
scripts/build_upf.sh
+19
-18
scripts/config_upf.sh
scripts/config_upf.sh
+5
-8
scripts/install_upf.sh
scripts/install_upf.sh
+28
-18
scripts/new_run_upf.sh
scripts/new_run_upf.sh
+219
-0
No files found.
scripts/build_upf.sh
View file @
a958c891
#!/bin/bash
###########################
#Project name: build_upf.conf
#Author: bupt
#Date: 2020-07-16
###########################
current
=
"
$PWD
"
base
=
$(
dirname
"
$PWD
"
)
VPPPATH
=
"
$base
/src/vppe"
...
...
@@ -68,6 +64,7 @@ function config_file(){
}
function
make_pkg
(){
cd
$base
/install
;
tar
-zcvf
$UPF_PKG
upf/
*
>
/dev/null 2>&1
;
cd
..
...
...
@@ -97,7 +94,7 @@ function vpp(){
function
make_vpp_package
()
{
PKG_NAME
=
"bupt
vppe.tar.gz"
VPPE_NAME
=
"bupt_
vppe.tar.gz"
#2 steps
...
...
@@ -128,23 +125,23 @@ function make_vpp_package()
cd
$VPPPATH
#vpp_install,tmp
mkdir
-p
vpp_install
mv
${
BUILD_ROOT
}
/
*
.deb vpp_install
sudo tar
-zcvf
$
PKG_NAME
vpp
_install/
*
.deb
>
/dev/null 2>&1
;
mkdir
-p
vpp
e
_install
mv
${
BUILD_ROOT
}
/
*
.deb vpp
e
_install
sudo tar
-zcvf
$
VPPE_NAME
vppe
_install/
*
.deb
>
/dev/null 2>&1
;
sudo mv
$VPPPATH
/
$
PKG
_NAME
$VPPINSTALL
sudo mv
$VPPPATH
/
$
VPPE
_NAME
$VPPINSTALL
if
[
-f
$UPFINSTALL
/pkg/
$
PKG
_NAME
]
;
then
rm
-f
$UPFINSTALL
/pkg/
$
PKG
_NAME
if
[
-f
$UPFINSTALL
/pkg/
$
VPPE
_NAME
]
;
then
rm
-f
$UPFINSTALL
/pkg/
$
VPPE
_NAME
fi
if
[
-d
$UPFINSTALL
/pkg/vpp_install
]
;
then
rm
-rf
$UPFINSTALL
/pkg/vpp_install
if
[
-d
$UPFINSTALL
/pkg/vpp
e
_install
]
;
then
rm
-rf
$UPFINSTALL
/pkg/vpp
e
_install
fi
cp
-f
$VPPINSTALL
/
$
PKG
_NAME
$UPFINSTALL
/pkg
cp
-f
$VPPINSTALL
/
$
VPPE
_NAME
$UPFINSTALL
/pkg
echo
"pkg buptvppe.tar.gz"
echo
"pkg bupt
_
vppe.tar.gz"
#clear
find
$VPPPATH
/
${
BUILD_ROOT
}
/
-name
'*.c'
-type
f
-print
-exec
rm
-rf
{}
\
>
/dev/null 2>&1
;
...
...
@@ -175,7 +172,7 @@ function n4(){
function
make_n4_package
()
{
N4_NAME
=
"buptn4.tar.gz"
N4_NAME
=
"bupt
_
n4.tar.gz"
echo
"start build 5GN4"
cd
$N4SRC
...
...
@@ -195,7 +192,7 @@ function make_n4_package()
rm
-rf
n4
cd
..
;
echo
"pkg bupt
n4.tar.gz finished!!!
"
echo
"pkg bupt
_n4.tar.gz finished
"
}
function
clear_all
()
...
...
@@ -219,7 +216,11 @@ function help()
echo
"--pre_install Pre-installation of dependencies required by UPF"
echo
"--vpp Build vpp"
echo
"--n4 Build N4"
echo
"--c Remove files generated by previous compilation "
echo
"--c Remove files generated by previous compilation
\n
"
echo
"--all-dp Build n4 and vppe,make pkg"
echo
"--vppe-dp Build vppe, make pkg"
echo
"--vppe-rp Release vppe, make pkg"
echo
"--n4-dp Build n4, make pkg"
}
function
main
()
{
...
...
scripts/config_upf.sh
View file @
a958c891
...
...
@@ -11,9 +11,9 @@
current
=
"
$PWD
"
base
=
$(
dirname
"
$PWD
"
)
UPF_CONFIG
=
/opt/5gc/upf.txt
VPP_CONFIG
=
/opt/5g
c/vppe.conf
VPP_N4
=
/opt/5g
c/n4_config.yaml
UPF_CONFIG
=
$base
/etc/upf.conf
VPP_CONFIG
=
$base
/et
c/vppe.conf
VPP_N4
=
$base
/et
c/n4_config.yaml
#vpp config
UPF_N3_NAME
=
""
...
...
@@ -47,16 +47,13 @@ function get_inter_ip(){
function
get_inter_pci
()
{
INTER_NAME
=
$1
UPF_INTER_PCI
=
$(
echo
`
ethtool
-i
${
INTER_NAME
}
|
grep
"bus-info"
|
awk
'{print $2}'
`
)
UPF_INTER_PCI
=
$(
echo
`
$base
/tools/
ethtool
-i
${
INTER_NAME
}
|
grep
"bus-info"
|
awk
'{print $2}'
`
)
#UPF_INTER_PCI=$(echo ` ./dpdk-devbind.py --status | grep "if=${INTER_NAME}" | awk '{print $1}'`)
}
function
generate_instance
(){
cp
-f
./vppe.conf /opt/5gc
cp
-f
./n4_config.yaml /opt/5gc
CPUCORES
=
$(
echo
`
cat
/proc/cpuinfo|
grep
"processor"
|
wc
-l
`
)
UPF_MAINCORE
=
`
expr
$CPUCORES
- 3
`
...
...
@@ -148,7 +145,7 @@ function read_config() {
function
main
()
{
if
[
!
-f
$UPF_CONFIG
]
;
then
if
[
!
-f
$UPF_CONFIG
]
;
then
echo
"no exist
$UPF_CONFIG
"
return
fi
...
...
scripts/install_upf.sh
View file @
a958c891
...
...
@@ -23,37 +23,47 @@ function pre_install()
cp
-rf
$base
/scripts
$ROOT_PATH
cp
-rf
$base
/etc
$ROOT_PATH
cp
-rf
$base
/tools
$ROOT_PATH
#cp -rf $base/tools/ethtool /sbin/
}
function
install_n4
()
function
install_
bupt_
n4
()
{
tar
-zxvf
$base
/pkg/buptn4.tar.gz
-C
$base
/pkg
>
/dev/null 2>&1
;
#delete n4 process
echo
"install bupt_n4 start..."
tar
-zxvf
$base
/pkg/bupt_n4.tar.gz
-C
$base
/pkg
>
/dev/null 2>&1
;
mv
$base
/pkg/n4/main /
$ROOT_PATH
/bin
;
rm
-rf
$base
/pkg/n4
;
rm
-rf
$base
/pkg/bupt_n4.tar.gz
;
echo
"install bupt_n4 finished"
}
function
install_buptvppe
()
function
install_bupt
_
vppe
()
{
killall vpp_main
#delete vppe process
#unpack
sudo tar
-zxvf
$base
/pkg/buptvppe.tar.gz
-C
$base
/pkg
>
/dev/null 2>&1
;
sudo tar
-zxvf
$base
/pkg/bupt
_
vppe.tar.gz
-C
$base
/pkg
>
/dev/null 2>&1
;
sleep
1
;
#install
echo
"install buptvppe start..."
sudo
dpkg
-i
$base
/pkg/vpp_install/
*
.deb
>
/dev/null 2>&1
;
echo
"install bupt
_
vppe start..."
sudo
dpkg
-i
$base
/pkg/vpp
e
_install/
*
.deb
>
/dev/null 2>&1
;
sudo
systemctl stop vpp
;
sudo
systemctl disable vpp
;
#rm install package
sudo rm
-rf
$base
/pkg/vpp_install
;
sudo rm
-rf
$base
/pkg/buptvppe.tar.gz
;
sudo rm
-rf
$base
/pkg/vpp
e
_install
;
sudo rm
-rf
$base
/pkg/bupt
_
vppe.tar.gz
;
cp
-f
/usr/bin/vpp /
$ROOT_PATH
/bin
;
sleep
1
;
echo
"install bupt
vppe finished!!!
"
echo
"install bupt
_vppe finished
"
return
0
}
...
...
@@ -62,9 +72,9 @@ function help()
{
echo
"help---"
echo
"Usage: install_upf [OPTION]..."
echo
"--all
(vpp and n4) install vpp
n4"
echo
"--vpp
path(buptvpp
.tar.gz) install vpp"
echo
"--n4
path(main)
install N4"
echo
"--all
pkg(bupt_vppe.tar.gz, bupt_n4.tar.gz) install vppe
n4"
echo
"--vpp
e pkg(bupt_vppe
.tar.gz) install vpp"
echo
"--n4
pkg(bupt_n4.tar.gz)
install N4"
}
function
main
()
{
...
...
@@ -78,18 +88,18 @@ function main() {
case
"
$1
"
in
--all
)
pre_install
install_bupt
vppe
install_
n4
install_bupt
_n4
install_
bupt_vppe
shift
;;
--vpp
)
pre_install
install_buptvppe
install_bupt
_
vppe
shift
;;
--n4
)
pre_install
install_n4
install_
bupt_
n4
shift
;;
esac
...
...
scripts/new_run_upf.sh
0 → 100755
View file @
a958c891
#!/bin/bash
current
=
"
$PWD
"
base
=
$(
dirname
"
$PWD
"
)
VPPPATH
=
"
$base
/src/vppe"
VPPINSTALL
=
"
$base
/upf/vpp"
BUILD_ROOT
=
"build-root"
configure
=
"
$base
/etc"
arp
=
"
$base
/src/setuniarp"
config_system
=
""
VPPPROCESS
=
"vpp"
VPPCMD
=
"/usr/bin/vpp -c /opt/5gc/startup_debug.conf"
N4PROCESS
=
"main"
N4PATH
=
"
$base
/install/n4"
UEIP
=
""
PREFIX
=
""
INTER
=
""
MAC
=
""
VPPEXPORT
=
""
ARPPROCESS
=
"setuniarp"
UE_IP
=
""
UE_IP_PREFIX
=
""
SNAT_INTER
=
""
SNAT_IP
=
""
VPPHOST
=
""
DPDK_EXPORT
=
""
DPDK_ENTRY
=
""
N3_GW
=
""
DPDK_ENTRY_PCI
=
""
DPDK_EXPORT_PCI
=
""
DRIVE
=
""
CPUNUMBER
=
""
function
init_configure
(){
yaml
=
"
$1
"
# vpp
mkdir
-p
/opt/5gc
cp
-r
$configure
/template /opt/5gc
$base
/plugin/configure
-i
$yaml
-o
/opt/5gc
cp
$base
/plugin/yq
$current
# nat
SNAT_IP
=
$(
$current
/yq r
$yaml
vpp.ip_link.snatIP
)
N3_GW_IP
=
$(
$current
/yq r
$yaml
vpp.ip_link.N3_GW
)
VPPHOST
=
$(
$current
/yq r
$yaml
vpp.ip_link.vppHost
)
DPDK_EXPORT
=
$(
$current
/yq r
$yaml
vpp.ip_link.gtpu_export
)
DPDK_ENTRY
=
$(
$current
/yq r
$yaml
vpp.ip_link.gtpu_entry
)
CPUNUMBER
=
$(
$current
/yq r
$yaml
vpp.ip_link.cpu
)
sed
's/@N3_GW@/${N3_GW_IP}/'
/opt/5gc/startup_debug.conf
>
/dev/null 2>&1 &
rm
-rf
$current
/yq
}
function
start_vpp
()
{
cmd
=
"
$VPPCMD
"
install_dpdk_kmod
$base
/plugin/interreput
-i
$CPUNUMBER
echo
Y |
sudo tee
/sys/module/vfio/parameters/enable_unsafe_noiommu_mode
$cmd
>
/dev/null 2>&1 &
sleep
1s
pid
=
$(
pidof
$VPPPROCESS
)
if
test
-z
"
$pid
"
;
then
echo
"vpp startup failed"
else
echo
"vpp
$pid
startup success"
fi
}
function
start_n4
()
{
$N4PATH
/main
-c
/opt/5gc/n4_config.yaml
>
/dev/null 2>&1 &
sleep
1s
pid2
=
$(
pidof
$N4PROCESS
)
if
test
-z
"
$pid2
"
;
then
echo
"n4 startup failed"
else
echo
"n4
$pid2
startup success"
fi
exit
0
}
:<<
!
function
start_arp
()
{
echo
"start arp"
echo
"
$arp
"
/setuniarp
$INTER
$MAC
"
$UEIP
/
$PREFIX
"
$VPPEXPORT
"
$arp
"
/setuniarp
$INTER
$MAC
"
$UEIP
/
$PREFIX
"
$VPPEXPORT
>
/dev/null 2>&1 &
sleep
1s
pid2
=
$(
pidof
$ARPPROCESS
)
if
test
-z
"
$pid2
"
;
then
echo
"arp startup failed"
else
echo
"arp
$pid2
startup success"
fi
exit
0
}
!
function
close_vpp
()
{
pid
=
$(
pidof
$VPPPROCESS
)
if
test
-z
"
$pid
"
;
then
echo
"vpp
$pid
is not startup"
else
echo
"kill vpp
$pid
"
kill
-9
${
pid
}
fi
}
function
close_n4
()
{
pid
=
$(
pidof
$N4PROCESS
)
if
test
-z
"
$pid
"
;
then
echo
"n4
$pid
is not startup"
else
echo
"kill n4
$pid
"
kill
-9
${
pid
}
fi
exit
0
}
:<<
!
function
close_arp
()
{
pid
=
$(
pidof
$ARPPROCESS
)
if
test
-z
"
$pid
"
;
then
echo
"arp
$pid
is not startup"
else
echo
"kill arp
$pid
"
kill
-9
${
pid
}
fi
}
!
function
install_dpdk_kmod
()
{
sudo
modprobe vfio-pci
;
insmod_result
=
$?
exec_result
$insmod_result
return
0
;
}
function
exec_result
()
{
if
[
$1
-ne
0
]
;
then
echo
"insmod vfio-pci.ko false"
fi
echo
"insmod vfio-pci.ko success!!!"
}
function
help
()
{
echo
" "
echo
"Usage: build_upf [OPTION]..."
echo
"--start Start UPF"
echo
"--close Close UPF"
}
function
install_depence
(){
cp
$base
/plugin/yq
$current
>
/dev/null 2>&1
cp
$base
/plugin/replace/replace
$current
>
/dev/null 2>&1
}
function
unbind
(){
python3
$current
/dpdk-devbind.py
-u
0000:
$DPDK_EXPORT_PCI
;
python3
$current
/dpdk-devbind.py
-u
0000:
$DPDK_EXPORT_PCI
;
python3
$current
/dpdk-devbind.py
-b
$DRIVE
$DPDK_EXPORT_PCI
sleep
1
python3
$current
/dpdk-devbind.py
-b
$DRIVE
$DPDK_EXPORT_PCI
sleep
1
ifconfig
$DPDK_EXPORT
down
;
sleep
1
ifconfig
$DPDK_ENTRY
down
;
sleep
1
}
function
main
()
{
install_depence
if
[
$#
-eq
0
]
;
then
help
exit
fi
until
[
-z
"
$1
"
]
;
do
case
"
$1
"
in
-o
)
init_configure
$2
start_vpp
sleep
20s
start_n4
shift
;;
--close
)
close_vpp
close_n4
shift
;;
esac
done
return
0
}
main
"
$@
"
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