Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
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
Michael Black
OpenXG UE
Commits
e137483c
Commit
e137483c
authored
Jun 18, 2014
by
Lionel Gauthier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@5410
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
d474ad2e
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
334 deletions
+56
-334
targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash
targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash
+26
-27
targets/PROJECTS/GENERIC-LTE-EPC/networks.bash
targets/PROJECTS/GENERIC-LTE-EPC/networks.bash
+26
-298
targets/PROJECTS/GENERIC-LTE-EPC/start_epc.bash
targets/PROJECTS/GENERIC-LTE-EPC/start_epc.bash
+3
-5
targets/PROJECTS/GENERIC-LTE-EPC/utils.bash
targets/PROJECTS/GENERIC-LTE-EPC/utils.bash
+1
-4
No files found.
targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash
View file @
e137483c
...
@@ -163,23 +163,13 @@ is_openvswitch_interface() {
...
@@ -163,23 +163,13 @@ is_openvswitch_interface() {
if
[
"a
$var
"
==
"a"
]
;
then
if
[
"a
$var
"
==
"a"
]
;
then
return
0
return
0
fi
fi
if
[
"a
${
var
:0:3
}
"
==
"aeth"
]
;
then
if
[
"a
${
var
:0:3
}
"
!=
"aeth"
]
;
then
return
0
;
if
[
"a
${
var
:0:4
}
"
!=
"awlan"
]
;
then
else
if
[
"a
${
var
:0:4
}
"
!=
"awifi"
]
;
then
if
[
"a
${
var
:0:4
}
"
==
"awlan"
]
;
then
if
[
"a
${
var
:0:4
}
"
!=
"anone"
]
;
then
return
0
;
if
[
"a
${
var
:0:3
}
"
!=
"atun"
]
;
then
else
if
[
"a
${
var
:0:4
}
"
!=
"avbox"
]
;
then
if
[
"a
${
var
:0:4
}
"
==
"awifi"
]
;
then
return
1
;
return
0
;
else
if
[
"a
${
var
:0:4
}
"
==
"anone"
]
;
then
return
0
;
else
if
[
"a
${
var
:0:3
}
"
==
"atun"
]
;
then
return
0
;
else
if
[
"a
${
var
:0:4
}
"
==
"avbox"
]
;
then
return
0
;
fi
fi
fi
fi
fi
fi
...
@@ -187,7 +177,7 @@ is_openvswitch_interface() {
...
@@ -187,7 +177,7 @@ is_openvswitch_interface() {
fi
fi
fi
fi
done
done
return
1
;
return
0
;
}
}
delete_tun_interface
()
{
delete_tun_interface
()
{
...
@@ -200,9 +190,17 @@ delete_tun_interface() {
...
@@ -200,9 +190,17 @@ delete_tun_interface() {
delete_vlan_interface
()
{
delete_vlan_interface
()
{
is_vlan_interface
$1
is_vlan_interface
$1
if
[
$?
-eq
0
]
;
then
if
[
$?
-eq
1
]
;
then
ifconfig
$1
down
>
/dev/null 2>&1
bash_exec
"ifconfig
$1
down "
vconfig rem
$1
>
/dev/null 2>&1
bash_exec
"vconfig rem
$1
"
fi
}
delete_openvswitch_interface
()
{
is_openvswitch_interface
$1
if
[
$?
-eq
1
]
;
then
bash_exec
"ifconfig
$1
down "
bash_exec
"tunctl -d
$1
"
fi
fi
}
}
...
@@ -210,20 +208,21 @@ delete_vlan_interface() {
...
@@ -210,20 +208,21 @@ delete_vlan_interface() {
create_tun_interface
()
{
create_tun_interface
()
{
is_tun_interface
$1
is_tun_interface
$1
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
openvpn
--mktun
--dev
$1
bash_exec
"openvpn --mktun --dev
$1
"
fi
fi
#ip link set $1 up
}
}
delete_openvswitch
_interface
()
{
create_vlan
_interface
()
{
is_
openvswitch
_interface
$1
is_
vlan
_interface
$1
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
ifconfig
$1
down
>
/dev/null 2>&1
interface_name
=
`
echo
$1
|
cut
-f1
-d
'.'
`
tunctl
-d
$1
>
/dev/null 2>&1
vlan
=
`
echo
$1
|
cut
-f2
-d
'.'
`
bash_exec
"vconfig add
$interface_name
$vlan
"
fi
fi
}
}
create_openvswitch_interface
()
{
create_openvswitch_interface
()
{
is_openvswitch_interface
$1
is_openvswitch_interface
$1
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
...
...
targets/PROJECTS/GENERIC-LTE-EPC/networks.bash
View file @
e137483c
...
@@ -36,10 +36,6 @@
...
@@ -36,10 +36,6 @@
# email: lionel.gauthier@eurecom.fr
# email: lionel.gauthier@eurecom.fr
#
#
###########################################################
THIS_NETWORKS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
$0
))
source
$THIS_NETWORKS_SCRIPT_PATH
/interfaces.bash
###########################################################
# example: netcalc 192.168.12.100 255.255.255.0
# example: netcalc 192.168.12.100 255.255.255.0
netcalc
(){
netcalc
(){
...
@@ -56,100 +52,16 @@ netcalc(){
...
@@ -56,100 +52,16 @@ netcalc(){
echo
"
${
ip
[*]
}
"
echo
"
${
ip
[*]
}
"
}
}
build_network
()
{
echo
"TO DO"
}
build_openvswitch_network
()
{
start_openswitch_daemon
# REMINDER:
# hss.eur
# |
# +-----------+ +------+ +-----------+ v +----------+
# | eNB +------+ | ovs | VLAN 1+------+ MME +----+ +---+ HSS |
# | |cpenb0+------------------+cpmme0| | +------+ | |
# | +------+ |bridge| +------+ +----+ +---+ |
# | |upenb0+-------+ | | | +----------+
# | +------+ | | | +-+-------+-+
# | | | | +----------------| s11mme|---+
# | | | | +---+---+ |
# | | | | (optional)| |ovs bridge is optional
# +-----------+ | | +---+---+ |
# +---|------------------ | s11sgw|---+ router.eur
# | +-+-------+-+ | +--------------+
# | | S+P-GW | v | ROUTER |
# | VLAN2 +------+ +-------+ +----+ +----+
# +----------+upsgw0| |sgi +-...-+ | | +---...Internet
# +------+ +-------+ +----+ +----+
# | | 11 VLANS | |
# +-----------+ ids=[5..15] +--------------+
#
##################################################
# build bridge between eNB and MME/SPGW
##################################################
#create_openvswitch_interface $ENB_INTERFACE_NAME_FOR_S1_MME
#create_openvswitch_interface $ENB_INTERFACE_NAME_FOR_S1U
#create_openvswitch_interface $MME_INTERFACE_NAME_FOR_S1_MME
#create_openvswitch_interface $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
#create_openvswitch_interface $MME_INTERFACE_NAME_FOR_S11_MME
#create_openvswitch_interface $SGW_INTERFACE_NAME_FOR_S11
bash_exec
"ovs-vsctl add-br
$BRIDGE
"
bash_exec
"ovs-vsctl add-port
$BRIDGE
$ENB_INTERFACE_NAME_FOR_S1_MME
tag=1"
bash_exec
"ovs-vsctl add-port
$BRIDGE
$MME_INTERFACE_NAME_FOR_S1_MME
tag=1"
bash_exec
"ovs-vsctl add-port
$BRIDGE
$ENB_INTERFACE_NAME_FOR_S1U
tag=2"
bash_exec
"ovs-vsctl add-port
$BRIDGE
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
tag=2"
if
[
"a
${
MME_INTERFACE_NAME_FOR_S11_MME
:0:4
}
"
!=
"anone"
]
;
then
bash_exec
"ovs-vsctl add-port
$BRIDGE
$MME_INTERFACE_NAME_FOR_S11_MME
tag=3"
fi
if
[
"a
${
SGW_INTERFACE_NAME_FOR_S11
:0:4
}
"
!=
"anone"
]
;
then
bash_exec
"ovs-vsctl add-port
$BRIDGE
$SGW_INTERFACE_NAME_FOR_S11
tag=3"
fi
set_interface_up
$MME_INTERFACE_NAME_FOR_S1_MME
$MME_IPV4_ADDRESS_FOR_S1_MME
$MME_IPV4_NETMASK_FOR_S1_MME
set_interface_up
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
$SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP
$SGW_IPV4_NETMASK_FOR_S1U_S12_S4_UP
set_interface_up
$ENB_INTERFACE_NAME_FOR_S1_MME
$ENB_IPV4_ADDRESS_FOR_S1_MME
$ENB_IPV4_NETMASK_FOR_S1_MME
set_interface_up
$ENB_INTERFACE_NAME_FOR_S1U
$ENB_IPV4_ADDRESS_FOR_S1U
$ENB_IPV4_NETMASK_FOR_S1U
set_interface_up
$MME_INTERFACE_NAME_FOR_S11_MME
$MME_IPV4_ADDRESS_FOR_S11_MME
$MME_IPV4_NETMASK_FOR_S11_MME
set_interface_up
$SGW_INTERFACE_NAME_FOR_S11
$SGW_IPV4_ADDRESS_FOR_S11
$SGW_IPV4_NETMASK_FOR_S11
get_mac_router
}
clean_openvswitch_network
()
{
start_openswitch_daemon
##################################################
# del bridge between eNB and MME/SPGW
##################################################
delete_openvswitch_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
delete_openvswitch_interface
$ENB_INTERFACE_NAME_FOR_S1U
delete_openvswitch_interface
$MME_INTERFACE_NAME_FOR_S1_MME
delete_openvswitch_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
delete_openvswitch_interface
$MME_INTERFACE_NAME_FOR_S11_MME
delete_openvswitch_interface
$SGW_INTERFACE_NAME_FOR_S11
if
is_process_started ovs-vswitchd
;
then
ovs-vsctl del-br
$BRIDGE
>
/dev/null 2>&1
fi
stop_openswitch_daemon
}
build_enb_vlan_network
()
{
build_enb_vlan_network
()
{
# create vlan interface
# create vlan interface
is_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
is_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
interface_name
=
`
echo
$ENB_INTERFACE_NAME_FOR_S1_MME
|
cut
-f1
-d
'.'
`
delete_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
vlan
=
`
echo
$ENB_INTERFACE_NAME_FOR_S1_MME
|
cut
-f2
-d
'.'
`
ifconfig
$ENB_INTERFACE_NAME_FOR_S1_MME
down
>
/dev/null 2>&1
vconfig rem
$ENB_INTERFACE_NAME_FOR_S1_MME
>
/dev/null 2>&1
sync
sync
bash_exec
"vconfig add
$interface_name
$vlan
"
create_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
sync
sync
#bash_exec "ifconfig $ENB_INTERFACE_NAME_FOR_S1_MME up"
#sync
#bash_exec "ip -4 addr add $ENB_IPV4_ADDRESS_FOR_S1_MME/$ENB_IPV4_NETMASK_FOR_S1_MME dev $ENB_INTERFACE_NAME_FOR_S1_MME"
set_interface_up
$ENB_INTERFACE_NAME_FOR_S1_MME
$ENB_IPV4_ADDRESS_FOR_S1_MME
$ENB_IPV4_NETMASK_FOR_S1_MME
set_interface_up
$ENB_INTERFACE_NAME_FOR_S1_MME
$ENB_IPV4_ADDRESS_FOR_S1_MME
$ENB_IPV4_NETMASK_FOR_S1_MME
else
else
echo_fatal
"BAD INTERFACE NAME FOR ENB S1-MME
$ENB_INTERFACE_NAME_FOR_S1_MME
"
' (waiting for ethx.y, wlanx.y or wifix.y)'
echo_fatal
"BAD INTERFACE NAME FOR ENB S1-MME
$ENB_INTERFACE_NAME_FOR_S1_MME
"
' (waiting for ethx.y, wlanx.y or wifix.y)'
...
@@ -157,16 +69,10 @@ build_enb_vlan_network() {
...
@@ -157,16 +69,10 @@ build_enb_vlan_network() {
is_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1U
is_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1U
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
interface_name
=
`
echo
$ENB_INTERFACE_NAME_FOR_S1U
|
cut
-f1
-d
'.'
`
delete_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1U
vlan
=
`
echo
$ENB_INTERFACE_NAME_FOR_S1U
|
cut
-f2
-d
'.'
`
ifconfig
$ENB_INTERFACE_NAME_FOR_S1U
down
>
/dev/null 2>&1
vconfig rem
$ENB_INTERFACE_NAME_FOR_S1U
>
/dev/null 2>&1
sync
sync
bash_exec
"vconfig add
$interface_name
$vlan
"
create_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1U
sync
sync
#bash_exec "ifconfig $ENB_INTERFACE_NAME_FOR_S1U up"
#sync
#bash_exec "ip -4 addr add $ENB_IPV4_ADDRESS_FOR_S1U/$ENB_IPV4_NETMASK_FOR_S1U dev $ENB_INTERFACE_NAME_FOR_S1U"
set_interface_up
$ENB_INTERFACE_NAME_FOR_S1U
$ENB_IPV4_ADDRESS_FOR_S1U
$ENB_IPV4_NETMASK_FOR_S1U
set_interface_up
$ENB_INTERFACE_NAME_FOR_S1U
$ENB_IPV4_ADDRESS_FOR_S1U
$ENB_IPV4_NETMASK_FOR_S1U
sync
sync
else
else
...
@@ -178,15 +84,13 @@ clean_enb_vlan_network() {
...
@@ -178,15 +84,13 @@ clean_enb_vlan_network() {
is_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
is_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
echo_success
"Found VLAN interface
$ENB_INTERFACE_NAME_FOR_S1_MME
... deleting"
echo_success
"Found VLAN interface
$ENB_INTERFACE_NAME_FOR_S1_MME
... deleting"
ifconfig
$ENB_INTERFACE_NAME_FOR_S1_MME
down
>
/dev/null 2>&1
delete_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
vconfig rem
$ENB_INTERFACE_NAME_FOR_S1_MME
>
/dev/null 2>&1
fi
;
fi
;
is_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1U
is_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1U
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
echo_success
"Found VLAN interface
$ENB_INTERFACE_NAME_FOR_S1U
... deleting"
echo_success
"Found VLAN interface
$ENB_INTERFACE_NAME_FOR_S1U
... deleting"
ifconfig
$ENB_INTERFACE_NAME_FOR_S1U
down
>
/dev/null 2>&1
delete_vlan_interface
$ENB_INTERFACE_NAME_FOR_S1U
vconfig rem
$ENB_INTERFACE_NAME_FOR_S1U
>
/dev/null 2>&1
fi
;
fi
;
sync
;
sync
;
clean_network
clean_network
...
@@ -221,16 +125,10 @@ build_mme_spgw_vlan_network() {
...
@@ -221,16 +125,10 @@ build_mme_spgw_vlan_network() {
# create vlan interface
# create vlan interface
is_vlan_interface
$MME_INTERFACE_NAME_FOR_S1_MME
is_vlan_interface
$MME_INTERFACE_NAME_FOR_S1_MME
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
interface_name
=
`
echo
$MME_INTERFACE_NAME_FOR_S1_MME
|
cut
-f1
-d
'.'
`
delete_vlan_interface
$MME_INTERFACE_NAME_FOR_S1_MME
vlan
=
`
echo
$MME_INTERFACE_NAME_FOR_S1_MME
|
cut
-f2
-d
'.'
`
ifconfig
$MME_INTERFACE_NAME_FOR_S1_MME
down
>
/dev/null 2>&1
vconfig rem
$MME_INTERFACE_NAME_FOR_S1_MME
>
/dev/null 2>&1
sync
sync
bash_exec
"vconfig add
$interface_name
$vlan
"
create_vlan_interface
$MME_INTERFACE_NAME_FOR_S1_MME
sync
sync
#bash_exec "ifconfig $MME_INTERFACE_NAME_FOR_S1_MME up"
#sync
#"bash_exec "ip -4 addr add $MME_IPV4_ADDRESS_FOR_S1_MME/$MME_IPV4_NETMASK_FOR_S1_MME dev $MME_INTERFACE_NAME_FOR_S1_MME"
set_interface_up
$MME_INTERFACE_NAME_FOR_S1_MME
$MME_IPV4_ADDRESS_FOR_S1_MME
$MME_IPV4_NETMASK_FOR_S1_MME
set_interface_up
$MME_INTERFACE_NAME_FOR_S1_MME
$MME_IPV4_ADDRESS_FOR_S1_MME
$MME_IPV4_NETMASK_FOR_S1_MME
else
else
echo_fatal
"BAD INTERFACE NAME FOR SGW S1-MME
$MME_INTERFACE_NAME_FOR_S1_MME
"
' (waiting for ethx.y, wlanx.y or wifix.y)'
echo_fatal
"BAD INTERFACE NAME FOR SGW S1-MME
$MME_INTERFACE_NAME_FOR_S1_MME
"
' (waiting for ethx.y, wlanx.y or wifix.y)'
...
@@ -238,17 +136,10 @@ build_mme_spgw_vlan_network() {
...
@@ -238,17 +136,10 @@ build_mme_spgw_vlan_network() {
is_vlan_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
is_vlan_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
if
[
$?
-eq
1
]
;
then
if
[
$?
-eq
1
]
;
then
interface_name
=
`
echo
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
|
cut
-f1
-d
'.'
`
delete_vlan_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
vlan
=
`
echo
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
|
cut
-f2
-d
'.'
`
ifconfig
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
down
>
/dev/null 2>&1
vconfig rem
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
>
/dev/null 2>&1
sync
sync
bash_exec
"vconfig add
$interface_name
$vlan
"
create_vlan_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
sync
sync
#bash_exec "ifconfig $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP up"
#sync
#bash_exec "ip -4 addr add $SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP/$SGW_IPV4_NETMASK_FOR_S1U_S12_S4_UP dev $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP"
#sync
set_interface_up
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
$SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP
$SGW_IPV4_NETMASK_FOR_S1U_S12_S4_UP
set_interface_up
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
$SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP
$SGW_IPV4_NETMASK_FOR_S1U_S12_S4_UP
else
else
echo_fatal
"BAD INTERFACE NAME FOR SGW S1U
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
"
' (waiting for ethx.y, wlanx.y or wifix.y)'
echo_fatal
"BAD INTERFACE NAME FOR SGW S1U
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
"
' (waiting for ethx.y, wlanx.y or wifix.y)'
...
@@ -264,111 +155,20 @@ build_mme_spgw_vlan_network() {
...
@@ -264,111 +155,20 @@ build_mme_spgw_vlan_network() {
}
}
clean_epc_vlan_network
()
{
clean_epc_vlan_network
()
{
bash_exec
"modprobe tun"
bash_exec
"modprobe ip_tables"
bash_exec
"modprobe iptable_nat"
bash_exec
"modprobe x_tables"
bash_exec
"
$IPTABLES
-P INPUT ACCEPT"
bash_exec
"
$IPTABLES
-F INPUT"
bash_exec
"
$IPTABLES
-P OUTPUT ACCEPT"
bash_exec
"
$IPTABLES
-F OUTPUT"
bash_exec
"
$IPTABLES
-P FORWARD ACCEPT"
bash_exec
"
$IPTABLES
-F FORWARD"
bash_exec
"
$IPTABLES
-t raw -F"
bash_exec
"
$IPTABLES
-t nat -F"
bash_exec
"
$IPTABLES
-t mangle -F"
bash_exec
"
$IPTABLES
-t filter -F"
bash_exec
"ip route flush cache"
echo
" Disabling forwarding"
bash_exec
"sysctl -w net.ipv4.ip_forward=0"
assert
"
`
sysctl
-n
net.ipv4.ip_forward
`
-eq 0"
$LINENO
echo
" Enabling DynamicAddr.."
bash_exec
"sysctl -w net.ipv4.ip_dynaddr=1"
assert
"
`
sysctl
-n
net.ipv4.ip_dynaddr
`
-eq 1"
$LINENO
bash_exec
"sysctl -w net.ipv4.conf.all.log_martians=1"
assert
"
`
sysctl
-n
net.ipv4.conf.all.log_martians
`
-eq 1"
$LINENO
echo
" Disabling reverse path filtering"
bash_exec
"sysctl -w net.ipv4.conf.all.rp_filter=0"
assert
"
`
sysctl
-n
net.ipv4.conf.all.rp_filter
`
-eq 0"
$LINENO
bash_exec
"modprobe 8021q"
bash_exec
"modprobe 8021q"
delete_vlan_interface
$MME_INTERFACE_NAME_FOR_S1_MME
delete_vlan_interface
$MME_INTERFACE_NAME_FOR_S1_MME
delete_vlan_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
delete_vlan_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
for
i
in
5 6 7 8 9 10 11 12 13 14 15
for
i
in
5 6 7 8 9 10 11 12 13 14 15
do
do
# delete vlan interface
# delete vlan interface
delete_vlan_interface
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
down
delete_vlan_interface
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
done
done
clean_network
clean_network
}
}
build_tun_network
()
{
# REMINDER:
# hss.eur
# |
# +-----------+ +-----------+ v +----------+
# | eNB +------+ +------+ MME +----+ +---+ HSS |
# | |cpenb0+------------------+cpmme0| |s6am+------+s6a| |
# | +------+ +------+ +----+ +---+ |
# | |upenb0+-------+ | | +----------+
# | +------+ | +-+-------+-+
# | | | | s11mme|
# | | | +---+---+
# | | | (optional)|
# +-----------+ | +---+---+
# | | s11sgw| router.eur
# | +-+-------+-+ | +--------------+
# | | S+P-GW | v | ROUTER |
# | +------+ +-------+ +----+ +----+
# +----------+upsgw0| |sgi +-...-+ | | +---...Internet
# +------+ +-------+ +----+ +----+
# | | 11 VLANS | |
# +-----------+ ids=[5..15] +--------------+
#
bash_exec
"modprobe tun"
##################################################
# build network between eNB and MME/SPGW and HSS
##################################################
echo_success
"ENB_INTERFACE_NAME_FOR_S1_MME is "
$ENB_INTERFACE_NAME_FOR_S1_MME
" addr is "
$ENB_IPV4_ADDRESS_FOR_S1_MME
echo_success
"ENB_INTERFACE_NAME_FOR_S1U is "
$ENB_INTERFACE_NAME_FOR_S1U
" addr is "
$ENB_IPV4_ADDRESS_FOR_S1U
echo_success
"MME_INTERFACE_NAME_FOR_S1_MME is "
$MME_INTERFACE_NAME_FOR_S1_MME
" addr is "
$MME_IPV4_ADDRESS_FOR_S1_MME
echo_success
"SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP is "
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
" addr is "
$SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP
echo_success
"MME_INTERFACE_NAME_FOR_S11_MME is "
$MME_INTERFACE_NAME_FOR_S11_MME
" addr is "
$MME_IPV4_ADDRESS_FOR_S11_MME
echo_success
"SGW_INTERFACE_NAME_FOR_S11 is "
$SGW_INTERFACE_NAME_FOR_S11
" addr is "
$SGW_IPV4_ADDRESS_FOR_S11
echo_success
"MME_INTERFACE_NAME_FOR_S6A is "
$MME_INTERFACE_NAME_FOR_S6A
" addr is "
$MME_IPV4_ADDRESS_FOR_S6A
echo_success
"HSS_INTERFACE_NAME_FOR_S6A is "
$HSS_INTERFACE_NAME_FOR_S6A
" addr is "
$HSS_IPV4_ADDRESS_FOR_S6A
create_tun_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
create_tun_interface
$ENB_INTERFACE_NAME_FOR_S1U
create_tun_interface
$MME_INTERFACE_NAME_FOR_S1_MME
create_tun_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
create_tun_interface
$MME_INTERFACE_NAME_FOR_S11_MME
create_tun_interface
$SGW_INTERFACE_NAME_FOR_S11
create_tun_interface
$MME_INTERFACE_NAME_FOR_S6A
create_tun_interface
$HSS_INTERFACE_NAME_FOR_S6A
set_interface_up
$MME_INTERFACE_NAME_FOR_S1_MME
$MME_IPV4_ADDRESS_FOR_S1_MME
$MME_IPV4_NETMASK_FOR_S1_MME
set_interface_up
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
$SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP
$SGW_IPV4_NETMASK_FOR_S1U_S12_S4_UP
set_interface_up
$ENB_INTERFACE_NAME_FOR_S1_MME
$ENB_IPV4_ADDRESS_FOR_S1_MME
$ENB_IPV4_NETMASK_FOR_S1_MME
set_interface_up
$ENB_INTERFACE_NAME_FOR_S1U
$ENB_IPV4_ADDRESS_FOR_S1U
$ENB_IPV4_NETMASK_FOR_S1U
set_interface_up
$MME_INTERFACE_NAME_FOR_S11_MME
$MME_IPV4_ADDRESS_FOR_S11_MME
$MME_IPV4_NETMASK_FOR_S11_MME
set_interface_up
$SGW_INTERFACE_NAME_FOR_S11
$SGW_IPV4_ADDRESS_FOR_S11
$SGW_IPV4_NETMASK_FOR_S11
set_interface_up
$MME_INTERFACE_NAME_FOR_S6A
$MME_IPV4_ADDRESS_FOR_S6A
$MME_IPV4_NETMASK_FOR_S6A
set_interface_up
$HSS_INTERFACE_NAME_FOR_S6A
$HSS_IPV4_ADDRESS_FOR_S6A
$HSS_IPV4_NETMASK_FOR_S6A
}
# arg1 is IF1 IP addr
# arg1 is IF1 IP addr
# arg2 is IF2 IP addr
# arg2 is IF2 IP addr
...
@@ -460,42 +260,34 @@ test_network() {
...
@@ -460,42 +260,34 @@ test_network() {
return
0
return
0
}
}
clean_tun_network
()
{
clean_network
()
{
bash_exec
"modprobe tun"
interfaces
=
`
ifconfig |
grep
HWaddr |
cut
-d
" "
-f1-2
|
tr
-d
'\n'
`
##################################################
for
interface
in
$interfaces
# del interfaces eNB and MME/SPGW and HSS
do
##################################################
delete_tun_interface
$ENB_INTERFACE_NAME_FOR_S1_MME
delete_tun_interface
$ENB_INTERFACE_NAME_FOR_S1U
delete_tun_interface
$MME_INTERFACE_NAME_FOR_S1_MME
delete_tun_interface
$SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
delete_tun_interface
$MME_INTERFACE_NAME_FOR_S11_MME
delete_tun_interface
$SGW_INTERFACE_NAME_FOR_S11
delete_tun_interface
$MME_INTERFACE_NAME_FOR_S6A
delete_tun_interface
$HSS_INTERFACE_NAME_FOR_S6A
}
build_epc_tun_network
()
{
build_tun_network
is_vlan_interface
$interface
create_sgi_vlans
if
[
$?
-eq
1
]
;
then
echo_success
"Found VLAN interface
$interface
... deleting"
delete_vlan_interface
$interface
fi
done
}
}
create_sgi_vlans
()
{
create_sgi_vlans
()
{
get_mac_router
get_mac_router
bash_exec
"modprobe 8021q"
bash_exec
"modprobe 8021q"
bash_exec
"ip link set
$PGW_INTERFACE_NAME_FOR_SGI
promisc on"
for
i
in
5 6 7 8 9 10 11 12 13 14 15
for
i
in
5 6 7 8 9 10 11 12 13 14 15
do
do
# create vlan interface
# create vlan interface
ifconfig
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
down
>
/dev/null 2>&1
delete_vlan_interface
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
vconfig rem
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
>
/dev/null 2>&1
sync
bash_exec
"vconfig add
$PGW_INTERFACE_NAME_FOR_SGI
$i
"
sync
sync
bash_exec
"ifconfig
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
up"
create_vlan_interface
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
sync
sync
# configure vlan interface
# configure vlan interface
#CIDR=$NETWORK'.'$i'/24'
#CIDR=$NETWORK'.'$i'/24'
...
@@ -505,72 +297,8 @@ create_sgi_vlans() {
...
@@ -505,72 +297,8 @@ create_sgi_vlans() {
bash_exec
"ip -4 addr add
$CIDR
dev
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
"
bash_exec
"ip -4 addr add
$CIDR
dev
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
"
done
done
bash_exec
"ip link set
$PGW_INTERFACE_NAME_FOR_SGI
promisc on"
}
}
clean_epc_ovs_network
()
{
bash_exec
"modprobe tun"
bash_exec
"modprobe ip_tables"
bash_exec
"modprobe iptable_nat"
bash_exec
"modprobe x_tables"
bash_exec
"
$IPTABLES
-P INPUT ACCEPT"
bash_exec
"
$IPTABLES
-F INPUT"
bash_exec
"
$IPTABLES
-P OUTPUT ACCEPT"
bash_exec
"
$IPTABLES
-F OUTPUT"
bash_exec
"
$IPTABLES
-P FORWARD ACCEPT"
bash_exec
"
$IPTABLES
-F FORWARD"
bash_exec
"
$IPTABLES
-t raw -F"
bash_exec
"
$IPTABLES
-t nat -F"
bash_exec
"
$IPTABLES
-t mangle -F"
bash_exec
"
$IPTABLES
-t filter -F"
bash_exec
"ip route flush cache"
echo
" Disabling forwarding"
bash_exec
"sysctl -w net.ipv4.ip_forward=0"
assert
"
`
sysctl
-n
net.ipv4.ip_forward
`
-eq 0"
$LINENO
echo
" Enabling DynamicAddr.."
bash_exec
"sysctl -w net.ipv4.ip_dynaddr=1"
assert
"
`
sysctl
-n
net.ipv4.ip_dynaddr
`
-eq 1"
$LINENO
bash_exec
"sysctl -w net.ipv4.conf.all.log_martians=1"
assert
"
`
sysctl
-n
net.ipv4.conf.all.log_martians
`
-eq 1"
$LINENO
echo
" Disabling reverse path filtering"
bash_exec
"sysctl -w net.ipv4.conf.all.rp_filter=0"
assert
"
`
sysctl
-n
net.ipv4.conf.all.rp_filter
`
-eq 0"
$LINENO
for
i
in
5 6 7 8 9 10 11 12 13 14 15
do
ifconfig
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
down
>
/dev/null 2>&1
vconfig rem
$PGW_INTERFACE_NAME_FOR_SGI
.
$i
>
/dev/null 2>&1
done
clean_network
clean_tun_network
}
clean_network
()
{
interfaces
=
`
ifconfig |
grep
HWaddr |
cut
-d
" "
-f1-2
|
tr
-d
'\n'
`
for
interface
in
$interfaces
do
is_openvswitch_interface
$interface
if
[
$?
-eq
1
]
;
then
echo_success
"Found open-vswitch interface
$interface
... deleting"
delete_openvswitch_interface
$interface
fi
is_vlan_interface
$interface
if
[
$?
-eq
1
]
;
then
echo_success
"Found VLAN interface
$interface
... deleting"
ifconfig
$interface
down
>
/dev/null 2>&1
vconfig rem
$interface
>
/dev/null 2>&1
fi
done
}
targets/PROJECTS/GENERIC-LTE-EPC/start_epc.bash
View file @
e137483c
...
@@ -133,11 +133,11 @@
...
@@ -133,11 +133,11 @@
# | | 11 VLANS | |
# | | 11 VLANS | |
# +-----------+ ids=[5..15] +--------------+
# +-----------+ ids=[5..15] +--------------+
BRIDGE
=
"vswitch"
###########################################################
###########################################################
THIS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
$0
))
THIS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
$0
))
source
$THIS_SCRIPT_PATH
/utils.bash
.
$THIS_SCRIPT_PATH
/utils.bash
.
$THIS_SCRIPT_PATH
/interfaces.bash
.
$THIS_SCRIPT_PATH
/networks.bash
###########################################################
###########################################################
if
[
$#
-eq
1
]
;
then
if
[
$#
-eq
1
]
;
then
...
@@ -285,8 +285,6 @@ if [ $? -eq 1 ]; then
...
@@ -285,8 +285,6 @@ if [ $? -eq 1 ]; then
clean_epc_vlan_network
clean_epc_vlan_network
build_mme_spgw_vlan_network
build_mme_spgw_vlan_network
else
else
ovs_setting
=
0
vlan_setting
=
0
clean_epc_vlan_network
clean_epc_vlan_network
create_sgi_vlans
create_sgi_vlans
fi
fi
...
...
targets/PROJECTS/GENERIC-LTE-EPC/utils.bash
View file @
e137483c
...
@@ -674,10 +674,7 @@ compile_epc() {
...
@@ -674,10 +674,7 @@ compile_epc() {
exit
1
exit
1
fi
fi
}
}
###########################################################
THIS_UTILS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
$0
))
source
$THIS_UTILS_SCRIPT_PATH
/networks.bash
###########################################################
###########################################################
###########################################################
IPTABLES
=
/sbin/iptables
IPTABLES
=
/sbin/iptables
THIS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
$0
))
THIS_SCRIPT_PATH
=
$(
dirname
$(
readlink
-f
$0
))
...
...
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