From 6fbb56e997b746f0914d1ec0b2a916a046e2f933 Mon Sep 17 00:00:00 2001 From: Lionel Gauthier Date: Tue, 17 Jun 2014 14:44:31 +0000 Subject: [PATCH] git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5407 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- .../PROJECTS/GENERIC-LTE-EPC/interfaces.bash | 12 ++ .../PROJECTS/GENERIC-LTE-EPC/networks.bash | 46 ++---- .../PROJECTS/GENERIC-LTE-EPC/start_epc.bash | 135 ++++++++++-------- targets/PROJECTS/GENERIC-LTE-EPC/utils.bash | 40 ++++++ .../PROJECTS/GENERIC-LTE-EPC/virtual_box.bash | 14 +- 5 files changed, 140 insertions(+), 107 deletions(-) diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash b/targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash index 9c3a21e160..ed6c9d26e2 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash +++ b/targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash @@ -177,6 +177,10 @@ is_openvswitch_interface() { else if [ "a${var:0:3}" == "atun" ]; then return 0; + else + if [ "a${var:0:4}" == "avbox" ]; then + return 0; + fi fi fi fi @@ -194,6 +198,14 @@ delete_tun_interface() { fi } +delete_vlan_interface() { + is_vlan_interface $1 + if [ $? -eq 0 ]; then + ifconfig $1 down > /dev/null 2>&1 + vconfig rem $1 > /dev/null 2>&1 + fi +} + create_tun_interface() { is_tun_interface $1 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/networks.bash b/targets/PROJECTS/GENERIC-LTE-EPC/networks.bash index 691b16928f..782c0188e0 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/networks.bash +++ b/targets/PROJECTS/GENERIC-LTE-EPC/networks.bash @@ -257,33 +257,7 @@ build_mme_spgw_vlan_network() { # is_real_interface $PGW_INTERFACE_NAME_FOR_SGI if [ $? -eq 1 ]; then - get_mac_router - # # get ipv4 address from PGW_INTERFACE_NAME_FOR_SGI - #IP_ADDR=`ifconfig $PGW_INTERFACE_NAME_FOR_SGI | awk '/inet addr/ {split ($2,A,":"); print A[2]}' | tr '\n' ' ' | sed -n '1h;1!H;${;g;s/^[ \t]*//g;s/[ \t]*$//g;p;}'` - - #NETWORK=`echo $IP_ADDR | cut -d . -f 1,2,3` - - bash_exec "modprobe 8021q" - - for i in 5 6 7 8 9 10 11 12 13 14 15 - do - # create vlan interface - ifconfig $PGW_INTERFACE_NAME_FOR_SGI.$i down > /dev/null 2>&1 - vconfig rem $PGW_INTERFACE_NAME_FOR_SGI.$i > /dev/null 2>&1 - sync - bash_exec "vconfig add $PGW_INTERFACE_NAME_FOR_SGI $i" - sync - bash_exec "ifconfig $PGW_INTERFACE_NAME_FOR_SGI.$i up" - sync - # configure vlan interface - #CIDR=$NETWORK'.'$i'/24' - base=200 - NET=$(( $i + $base )) - CIDR='10.0.'$NET'.2/8' - bash_exec "ip -4 addr add $CIDR dev $PGW_INTERFACE_NAME_FOR_SGI.$i" - done - - bash_exec "ip link set $PGW_INTERFACE_NAME_FOR_SGI promisc on" + create_sgi_vlans else echo_warning "SGI interface disabled by config file" fi @@ -326,20 +300,15 @@ clean_epc_vlan_network() { bash_exec "modprobe 8021q" - ifconfig $MME_INTERFACE_NAME_FOR_S1_MME down > /dev/null 2>&1 - vconfig rem $MME_INTERFACE_NAME_FOR_S1_MME > /dev/null 2>&1 - - 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 + delete_vlan_interface $MME_INTERFACE_NAME_FOR_S1_MME + 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 do # delete vlan interface - ifconfig $PGW_INTERFACE_NAME_FOR_SGI.$i down > /dev/null 2>&1 - vconfig rem $PGW_INTERFACE_NAME_FOR_SGI.$i > /dev/null 2>&1 + delete_vlan_interface $PGW_INTERFACE_NAME_FOR_SGI.$i down done - #ip link set $PGW_INTERFACE_NAME_FOR_SGI down > /dev/null 2>&1 clean_network } @@ -509,6 +478,10 @@ clean_tun_network() { build_epc_tun_network() { build_tun_network + create_sgi_vlans +} + +create_sgi_vlans() { get_mac_router @@ -528,11 +501,10 @@ build_epc_tun_network() { #CIDR=$NETWORK'.'$i'/24' base=200 NET=$(( $i + $base )) - CIDR='10.0.'$NET'.2/8' + CIDR='10.0.'$NET'.2/24' bash_exec "ip -4 addr add $CIDR dev $PGW_INTERFACE_NAME_FOR_SGI.$i" done - bash_exec "ip link set $PGW_INTERFACE_NAME_FOR_SGI promisc on" } diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/start_epc.bash b/targets/PROJECTS/GENERIC-LTE-EPC/start_epc.bash index 7f7cdec31e..e1be0cca8c 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/start_epc.bash +++ b/targets/PROJECTS/GENERIC-LTE-EPC/start_epc.bash @@ -46,33 +46,73 @@ # setting or a VLAN setting. # ########################################################################################################################### -# VIRTUAL SWITCH SETTING +# VIRTUAL BOX SETTING ########################################################################################################################### -# hss.eur -# | -# +-----------+ +------+ +-----------+ v +----------+ -# | eNB +------+ | ovs | VLAN 1+------+ MME +----+ +---+ HSS | -# | |cpenb0+------------------+cpmme0| | +------+ | | -# | +------+ |bridge| +------+ +----+ +---+ | -# | |upenb0+-------+ | | | +----------+ -# +-----------+------+ | | | +-+-------+-+ -# | | +----------------| s11mme|---+ -# | | +---+---+ | -# | | (optional)| | -# | | +---+---+ | -# +---|------------------ | s11sgw|---+ router.eur -# | +-+-------+-+ | +--------------+ -# | | S+P-GW | v | ROUTER | -# | VLAN2 +------+ +-------+ +----+ +----+ -# +----------+upsgw0| |sgi +-...-+ | | +---...Internet -# +------+ +-------+ +----+ +----+ -# | | 11 VLANS | | -# +-----------+ ids=[5..15] +--------------+ +# NETWORK SETTING AT EURECOM IN EXPERIMENTAL NETWORK (192.168.12.X) +# +# +# INTERNET GW 192.168.12.100 +# | +# | +# 192.168.12.X/24 | +# +-----------+----------------+---+--+---------------------------------------+ +# | COMPUTER 1| | eth0 | | +# +-----------+ +---+--+ | +# | | | +# | | | +# | ROUTER +-----+------+ | +# | |MASQUERADING| | +# | |FORWARDING | | +# | +-----+------+ | +# | | | +# | | | +# | | | +# | | | +# | | | +# | +---+--+ | +# | | eth1 | | +# +----------------------------+---+--+---------------------------------------+ +# |router.eur +# 11 VLANS | INTERNET GW 192.168.12.100 +# ids=[5..15] | | +# 192.168.13.X/24 | | +# +-----------+----------------+---+--+---------------------+---+--+----------+ +# | COMPUTER 2| SGI | eth1 | Physical | eth0 | | +# +-----------+ +-+--+-+ Interface +------+ | +# | | | 'HOST_BRIDGED_IF_NAME' | +# | | | | +# | | | +-----------+ | +# | | | +------+ HSS | | +# | | +----------+ eth0 | (VM) | | +# | | +------+ | | +# | | | | | +# | | +-+------+--+ | +# | | |eth1 | hss.eur | +# | virtual box | +--+---+ | +# | +------------------+ | virtual box | +# | | bridged network | host-only | +# | | | network | +# | | | 192.168.57/24 | +# | | | | +# | +--+---+ +--+-----+ | +# | |eth0 | |vboxnet1| | +# | +-+------+--+192.168.56.101 192.168.56.1+-+--------++ | +# | | eNB 0 +------+ virtual box +--------+ MME | | +# | | (VM) |eth1 +----------------+vboxnet0| S+P/GW | | +# | | +------+ host-only +--------+(execu. on | | +# | | | network |COMPUTER2) | | +# | | | 192.168.56/24 | | | +# | | LTE eNB 1 | | | | +# | | LTE UEs | | | | +# | +-----------+ +-----------+ | +# | | +# | | +# +---------------------------------------------------------------------------+ # ########################################################################################################################### # VLAN SETTING ########################################################################################################################### -# hss.eur +# each box is a host hss.eur # | # +-----------+ +-----------+ v +----------+ # | eNB +------+ VLAN 1+------+ MME +----+ +---+ HSS | @@ -113,7 +153,7 @@ fi -#check_install_epc_software +check_install_epc_software ################################## @@ -236,50 +276,19 @@ SGW_IPV4_ADDRESS_FOR_S5_S8_UP=$( echo $SGW_IPV4_ADDRESS_FOR_S5_S8_UP PGW_IPV4_ADDRESS_FOR_S5_S8=$( echo $PGW_IPV4_ADDRESS_FOR_S5_S8 | cut -f1 -d '/') PGW_IPV4_ADDR_FOR_SGI=$( echo $PGW_IPV4_ADDR_FOR_SGI | cut -f1 -d '/') -is_openvswitch_interface $ENB_INTERFACE_NAME_FOR_S1_MME \ - $ENB_INTERFACE_NAME_FOR_S1U \ - $MME_INTERFACE_NAME_FOR_S1_MME \ - $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP +is_vlan_interface $MME_INTERFACE_NAME_FOR_S1_MME \ + $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP + + if [ $? -eq 1 ]; then - ovs_setting=1 - vlan_setting=0 - echo_success "Found open-vswitch network configuration" - # May we have booted on a new kernel, not the one when we build vswitch kernel module - if [ ! -f /lib/modules/`uname -r`/extra/openvswitch.ko ]; then - $OPENAIRCN_DIR/SCRIPTS/install_openvswitch1.9.0.bash - fi - clean_epc_ovs_network - build_epc_ovs_network - test_epc_ovs_network -else - is_vlan_interface $MME_INTERFACE_NAME_FOR_S1_MME \ - $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP - if [ $? -eq 1 ]; then echo_success "Found open VLAN network configuration" - ovs_setting=0 - vlan_setting=1 - - # may be openvswitch is needed for S11 - is_openvswitch_interface $MME_IPV4_ADDRESS_FOR_S11_MME \ - $SGW_IPV4_ADDRESS_FOR_S11 - if [ $? -eq 1 ]; then - # May we have booted on a new kernel, not the one when we build vswitch kernel module - if [ ! -f /lib/modules/`uname -r`/extra/openvswitch.ko ]; then - $OPENAIRCN_DIR/SCRIPTS/install_openvswitch1.9.0.bash - fi - fi clean_epc_vlan_network build_mme_spgw_vlan_network - else - is_real_interface $MME_IPV4_ADDRESS_FOR_S11_MME \ - $SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP - if [ $? -eq 1 ]; then - echo_success "Found standart network configuration" - else - echo_error "Cannot find open-vswitch network configuration or VLAN network configuration or standart network configuration" - exit 1 - fi - fi +else + ovs_setting=0 + vlan_setting=0 + clean_epc_vlan_network + create_sgi_vlans fi ################################################## diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/utils.bash b/targets/PROJECTS/GENERIC-LTE-EPC/utils.bash index 8864527569..c069c74c2e 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/utils.bash +++ b/targets/PROJECTS/GENERIC-LTE-EPC/utils.bash @@ -592,6 +592,46 @@ function svn_find_str_in_file_history() done } +compile_hss() { + cd $OPENAIRCN_DIR/OPENAIRHSS + OBJ_DIR=`find . -maxdepth 1 -type d -iname obj*` + if [ ! -n "$OBJ_DIR" ] + then + OBJ_DIR="objs" + bash_exec "mkdir -m 777 ./$OBJ_DIR" + echo_success "Created $OBJ_DIR directory" + else + OBJ_DIR=`basename $OBJ_DIR` + fi + if [ ! -f $OBJ_DIR/Makefile ] + then + if [ ! -n "m4" ] + then + mkdir -m 777 m4 + fi + echo_success "Invoking autogen" + bash_exec "./autogen.sh" + cd ./$OBJ_DIR + echo_success "Invoking configure" + ../configure + else + cd ./$OBJ_DIR + fi + if [ -f Makefile ] + then + echo_success "Compiling..." + make -j `cat /proc/cpuinfo | grep processor | wc -l` + if [ $? -ne 0 ]; then + echo_error "Build failed, exiting" + exit 1 + fi + else + echo_error "Configure failed, exiting" + exit 1 + fi +} + + compile_epc() { cd $OPENAIRCN_DIR OBJ_DIR=`find . -maxdepth 1 -type d -iname obj*` diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash b/targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash index 8b94b0ce7f..97f826b65f 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash +++ b/targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash @@ -18,7 +18,7 @@ source $THIS_SCRIPT_PATH/utils.bash # INTERNET GW 192.168.12.100 # | # | -# 192.168.12.X/24 | +# 192.168.12.17/24 | # +-----------+----------------+---+--+---------------------------------------+ # | COMPUTER 1| | eth0 | | # +-----------+ +---+--+ | @@ -35,10 +35,10 @@ source $THIS_SCRIPT_PATH/utils.bash # | +---+--+ | # | | eth1 | | # +----------------------------+---+--+---------------------------------------+ -# | +# 192.168.13.17/24 | # | INTERNET GW 192.168.12.100 # | | -# 192.168.13.X/24 | | +# 192.168.13.175/24 | 192.168.12.175/24 | # +-----------+----------------+---+--+---------------------+---+--+----------+ # | COMPUTER 2| | eth1 | Physical | eth0 | | # +-----------+ +-+--+-+ Interface +------+ | @@ -48,15 +48,15 @@ source $THIS_SCRIPT_PATH/utils.bash # | | | +------+ HSS | | # | | +----------+ eth0 | (VM) | | # | | +------+ | | -# | | | | | +# | | 192.168.13.177 | | | # | | +-+------+--+ | -# | | |eth1 | | +# | | |eth1 |192.168.57.101| # | | +--+---+ | # | +------------------+ | | # | | bridged network | host-only | # | | | network | # | | | 192.168.57/24 | -# | | | | +# | |92.168.13.176 |192.168.57.1 | # | +--+---+ +--+-----+ | # | |eth0 | |vboxnet1| | # | +-+------+--+192.168.56.101 192.168.56.1+-+--------++ | @@ -181,7 +181,7 @@ build_vms() { echo_warning "!!!!!!! in this case, help yourself...) !!!!!!!" echo_warning "!!!!!!! exchange ssh keys between host and guests !!!!!!!" echo_warning "!!!!!!! in /etc/fstab on guests: add following line: !!!!!!!" - echo_warning "!!!!!!! sshfs#root@192.168.13.175:/root/trunk /mnt/sshfs/trunk fuse comment=sshfs!!!!!!!" + echo_warning "!!!!!!! sshfs#root@:/root/trunk /mnt/sshfs/trunk fuse comment=sshfs !!!!!!!" echo_warning "!!!!!!! ,noauto,users,exec,uid=0,gid=0,allow_other,reconnect,transform_symlinks, !!!!!!!" echo_warning "!!!!!!! BatchMode=yes 0 0 !!!!!!!" echo_warning "!!!!!!! on guest: create a mount point: /mnt/sshfs/trunk for example, then mount: !!!!!!!"