git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5410 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -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() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
return 1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
delete_tun_interface() {
|
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() {
|
|||||||
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
|
||||||
|
|||||||
@@ -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(){
|
|||||||
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() {
|
|||||||
|
|
||||||
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() {
|
|||||||
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() {
|
|||||||
# 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() {
|
|||||||
|
|
||||||
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() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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,26 +260,19 @@ 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
|
is_vlan_interface $interface
|
||||||
delete_tun_interface $ENB_INTERFACE_NAME_FOR_S1U
|
if [ $? -eq 1 ]; then
|
||||||
delete_tun_interface $MME_INTERFACE_NAME_FOR_S1_MME
|
echo_success "Found VLAN interface $interface ... deleting"
|
||||||
delete_tun_interface $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP
|
delete_vlan_interface $interface
|
||||||
delete_tun_interface $MME_INTERFACE_NAME_FOR_S11_MME
|
fi
|
||||||
delete_tun_interface $SGW_INTERFACE_NAME_FOR_S11
|
done
|
||||||
delete_tun_interface $MME_INTERFACE_NAME_FOR_S6A
|
|
||||||
delete_tun_interface $HSS_INTERFACE_NAME_FOR_S6A
|
|
||||||
}
|
}
|
||||||
|
|
||||||
build_epc_tun_network() {
|
|
||||||
|
|
||||||
build_tun_network
|
|
||||||
create_sgi_vlans
|
|
||||||
}
|
|
||||||
|
|
||||||
create_sgi_vlans() {
|
create_sgi_vlans() {
|
||||||
|
|
||||||
@@ -487,15 +280,14 @@ create_sgi_vlans() {
|
|||||||
|
|
||||||
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
|
sync
|
||||||
bash_exec "vconfig add $PGW_INTERFACE_NAME_FOR_SGI $i"
|
create_vlan_interface $PGW_INTERFACE_NAME_FOR_SGI.$i
|
||||||
sync
|
|
||||||
bash_exec "ifconfig $PGW_INTERFACE_NAME_FOR_SGI.$i up"
|
|
||||||
sync
|
sync
|
||||||
# configure vlan interface
|
# configure vlan interface
|
||||||
#CIDR=$NETWORK'.'$i'/24'
|
#CIDR=$NETWORK'.'$i'/24'
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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
|
|||||||
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
|
||||||
|
|||||||
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user