The text has been updated in all those files. modified: README.txt modified: cmake_targets/CMakeLists.txt modified: cmake_targets/at_commands/CMakeLists.txt modified: cmake_targets/autotests/core.py modified: cmake_targets/autotests/log.py modified: cmake_targets/autotests/openair.py modified: cmake_targets/autotests/run_exec_autotests.bash modified: cmake_targets/autotests/run_exec_lte-softmodem_tests.py modified: cmake_targets/autotests/tools/configure_cots_bandrich_ue.py modified: cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py modified: cmake_targets/autotests/tools/configure_usrpb210.py modified: cmake_targets/autotests/tools/find_usb_path.bash modified: cmake_targets/autotests/tools/free_mem.bash modified: cmake_targets/autotests/tools/iperf3_script modified: cmake_targets/autotests/tools/iperf3_script_phone modified: cmake_targets/autotests/tools/iperf_script modified: cmake_targets/autotests/tools/iperf_script_phone modified: cmake_targets/autotests/tools/lib_autotest.py modified: cmake_targets/autotests/tools/search_repl.py modified: cmake_targets/build_oai modified: cmake_targets/tools/asn1tostruct.py modified: cmake_targets/tools/build_helper modified: cmake_targets/tools/build_test_epc_tools modified: cmake_targets/tools/example_enb_exmimo_mme_hss.txt modified: cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt modified: cmake_targets/tools/indent_source_code modified: cmake_targets/tools/init_exmimo2 modified: cmake_targets/tools/init_nas_nos1 modified: cmake_targets/tools/perf_oai.bash modified: cmake_targets/tools/run_enb_s1_exmimo modified: cmake_targets/tools/run_enb_s1_usrp modified: cmake_targets/tools/run_enb_ue_virt_noS1 modified: cmake_targets/tools/run_enb_ue_virt_s1 modified: openair2/DOCS/TEMPLATES/README/Readme.doxy modified: openair2/DOCS/TEMPLATES/README/readme.txt modified: openair2/Makefile modified: openair2/UTIL/OCG/Readme.doxy modified: openair2/UTIL/OCG/readme.txt modified: openair2/UTIL/OSD/recep.php modified: openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py modified: openair3/DOCS/DOXYGEN/Makefile.am modified: openair3/DOCS/Latex/EPC/Makefile modified: openair3/DOCS/Makefile.am modified: openair3/GTPV1-U/Makefile.am modified: openair3/GTPV1-U/Makefile.eNB modified: openair3/NAS/TEST/AS_SIMULATOR/Makefile modified: openair3/NAS/TEST/NETWORK/Makefile modified: openair3/NAS/TEST/USER/Makefile modified: openair3/NAS/TOOLS/Makefile modified: openair3/NAS/UE/API/USER/Makefile modified: openair3/NAS/UE/API/USER/tst/Makefile modified: openair3/NAS/UE/API/USIM/Makefile modified: openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py modified: openair3/TEST/Makefile.am modified: targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc modified: targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc modified: targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc modified: targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc modified: targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc modified: targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc modified: targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc modified: targets/PROJECTS/E-MBMS/build_all.bash modified: targets/PROJECTS/E-MBMS/start_enb.bash modified: targets/PROJECTS/E-MBMS/start_ue.bash modified: targets/PROJECTS/E-MBMS/utils.bash modified: targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash modified: targets/PROJECTS/GENERIC-LTE-EPC/networks.bash modified: targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash modified: targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash modified: targets/PROJECTS/GENERIC-LTE-EPC/utils.bash modified: targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash modified: targets/SCRIPTS/install_asn1c_0.9.24.modified.bash modified: targets/TEST/OAI/case01.py modified: targets/TEST/OAI/case02.py modified: targets/TEST/OAI/case03.py modified: targets/TEST/OAI/case04.py modified: targets/TEST/OAI/case05.py modified: targets/TEST/OAI/case11.py modified: targets/TEST/OAI/case12.py modified: targets/TEST/OAI/case13.py modified: targets/TEST/OAI/core.py modified: targets/TEST/OAI/log.py modified: targets/TEST/OAI/openair.py modified: targets/TEST/OAI/test01.py modified: targets/TEST/OAI/test02.py modified: targets/TEST/PDCP/readme.txt modified: targets/build_helper.bash modified: targets/build_oai.bash modified: targets/perf_oai.bash
258 lines
6.7 KiB
Bash
Executable File
258 lines
6.7 KiB
Bash
Executable File
#/*
|
|
# * 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.0 (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
|
|
# */
|
|
################################################################################
|
|
# file interfaces.bash
|
|
# brief
|
|
# author Lionel Gauthier
|
|
# company Eurecom
|
|
# email: lionel.gauthier@eurecom.fr
|
|
#
|
|
cidr2mask() {
|
|
local i mask=""
|
|
local full_octets=$(($1/8))
|
|
local partial_octet=$(($1%8))
|
|
|
|
for ((i=0;i<4;i+=1)); do
|
|
if [ $i -lt $full_octets ]; then
|
|
mask+=255
|
|
elif [ $i -eq $full_octets ]; then
|
|
mask+=$((256 - 2**(8-$partial_octet)))
|
|
else
|
|
mask+=0
|
|
fi
|
|
test $i -lt 3 && mask+=.
|
|
done
|
|
|
|
echo $mask
|
|
}
|
|
|
|
# example: netcalc 192.168.12.100 255.255.255.0
|
|
netcalc(){
|
|
local IFS='.' ip i
|
|
local -a oct msk
|
|
|
|
read -ra oct <<<"$1"
|
|
read -ra msk <<<"$2"
|
|
|
|
for i in ${!oct[@]}; do
|
|
ip+=( "$(( oct[i] & msk[i] ))" )
|
|
done
|
|
|
|
echo "${ip[*]}"
|
|
}
|
|
|
|
# example: s
|
|
bcastcalc(){
|
|
|
|
local IFS='.' ip i
|
|
local -a oct msk
|
|
|
|
read -ra oct <<<"$1"
|
|
read -ra msk <<<"$2"
|
|
|
|
for i in ${!oct[@]}; do
|
|
ip+=( "$(( oct[i] + ( 255 - ( oct[i] | msk[i] ) ) ))" )
|
|
done
|
|
|
|
echo "${ip[*]}"
|
|
}
|
|
|
|
|
|
is_real_interface() {
|
|
my_bool=1
|
|
for var in "$@"
|
|
do
|
|
if [ "a$var" == "a" ]; then
|
|
return 0
|
|
fi
|
|
if [ "a$var" == "anone" ]; then
|
|
return 0
|
|
fi
|
|
IF=`cat /etc/udev/rules.d/70-persistent-net.rules | grep $var | sed 's/^.*NAME=//' | tr -d '"'`
|
|
if [ "$IF" == "$var" ]; then
|
|
if [ "a${var:0:3}" != "aeth" ]; then
|
|
if [ "a${var:0:4}" != "awlan" ]; then
|
|
if [ "a${var:0:4}" != "awifi" ]; then
|
|
my_bool=0;
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
return $my_bool
|
|
}
|
|
|
|
is_vlan_interface() {
|
|
my_bool=1
|
|
for var in "$@"
|
|
do
|
|
if [ "a$var" == "a" ]; then
|
|
return 0
|
|
fi
|
|
if [[ $var == *.* ]]
|
|
then
|
|
interface_name=`echo $var | cut -f1 -d '.'`
|
|
vlan=`echo $var | cut -f2 -d '.'`
|
|
IF=`cat /etc/udev/rules.d/70-persistent-net.rules | grep $interface_name | sed 's/^.*NAME=//' | tr -d '"'`
|
|
if [ "$IF" == "$interface_name" ]; then
|
|
if [ "a${interface_name:0:3}" != "aeth" ]; then
|
|
if [ "a${interface_name:0:4}" != "awlan" ]; then
|
|
if [ "a${interface_name:0:4}" != "awifi" ]; then
|
|
return 0;
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
else
|
|
return 0;
|
|
fi
|
|
done
|
|
return $my_bool
|
|
}
|
|
|
|
is_tun_interface() {
|
|
my_bool=1
|
|
for var in "$@"
|
|
do
|
|
if [ "a$var" == "a" ]; then
|
|
return 0
|
|
fi
|
|
if [[ "$IF" != *tun* ]]; then
|
|
return 0;
|
|
fi
|
|
bus_info=`ethtool -i $var | grep bus-info | cut -d: -f2`
|
|
bus_info=trim2 $bus_info
|
|
if [[ "$bus_info" != *tun* ]]; then
|
|
return 0;
|
|
fi
|
|
done
|
|
return $my_bool
|
|
}
|
|
|
|
is_openvswitch_interface() {
|
|
for var in "$@"
|
|
do
|
|
if [ "a$var" == "a" ]; then
|
|
return 0
|
|
fi
|
|
if [ "a${var:0:3}" != "aeth" ]; then
|
|
if [ "a${var:0:4}" != "awlan" ]; then
|
|
if [ "a${var:0:4}" != "awifi" ]; then
|
|
if [ "a${var:0:4}" != "anone" ]; then
|
|
if [ "a${var:0:3}" != "atun" ]; then
|
|
if [ "a${var:0:4}" != "avbox" ]; then
|
|
return 1;
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
return 0;
|
|
}
|
|
|
|
delete_tun_interface() {
|
|
is_tun_interface $1
|
|
if [ $? -eq 1 ]; then
|
|
ip link set $1 down > /dev/null 2>&1
|
|
openvpn --rmtun --dev $1 > /dev/null 2>&1
|
|
fi
|
|
}
|
|
|
|
delete_vlan_interface() {
|
|
is_vlan_interface $1
|
|
if [ $? -eq 1 ]; then
|
|
bash_exec "ifconfig $1 down "
|
|
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
|
|
}
|
|
|
|
|
|
create_tun_interface() {
|
|
is_tun_interface $1
|
|
if [ $? -eq 1 ]; then
|
|
bash_exec "openvpn --mktun --dev $1"
|
|
fi
|
|
}
|
|
|
|
|
|
create_vlan_interface() {
|
|
is_vlan_interface $1
|
|
if [ $? -eq 1 ]; then
|
|
interface_name=`echo $1 | cut -f1 -d '.'`
|
|
vlan=`echo $1 | cut -f2 -d '.'`
|
|
bash_exec "vconfig add $interface_name $vlan"
|
|
fi
|
|
}
|
|
|
|
|
|
create_openvswitch_interface() {
|
|
is_openvswitch_interface $1
|
|
if [ $? -eq 1 ]; then
|
|
bash_exec "tunctl -t $1"
|
|
fi
|
|
}
|
|
|
|
# arg1 = interface name
|
|
# arg2 = ipv4 addr cidr
|
|
# arg3 = netmask cidr
|
|
set_interface_up() {
|
|
interface=$1
|
|
address=$2
|
|
cidr_netmask=$3
|
|
if [ "a${interface:0:4}" == "anone" ]; then
|
|
return;
|
|
fi
|
|
bash_exec "ifconfig $interface up"
|
|
sync
|
|
netmask=`cidr2mask $cidr_netmask`
|
|
broadcast=`bcastcalc $address $netmask`
|
|
bash_exec "ip -4 addr add $address/$cidr_netmask broadcast $broadcast dev $interface"
|
|
sync
|
|
}
|
|
|
|
# input is hostname, you should have checked it is reachable by
|
|
# ping -c 1 $the_hostname > /dev/null || { echo_fatal "the_hostname does not respond to ping" >&2 ; }
|
|
get_ip() {
|
|
IP=$(python -c 'import socket; print socket.gethostbyname("'$1'")')
|
|
echo "$IP"
|
|
}
|
|
|
|
get_mac_router() {
|
|
echo_success "Resolving router.eur"
|
|
ping -c 1 router.eur > /dev/null || { echo_fatal "router.eur does not respond to ping" >&2 ; }
|
|
IP_ROUTER=$(get_ip router.eur)
|
|
#IP_ROUTER=`python -c 'import socket; print socket.gethostbyname("router.eur")'`
|
|
export MAC_ROUTER=`ip neigh show | grep $IP_ROUTER' ' | cut -d ' ' -f5 | tr -d ':'`
|
|
echo_success "ROUTER IP ADDRESS= $IP_ROUTER"
|
|
echo_success "ROUTER MAC ADDRESS= $MAC_ROUTER"
|
|
}
|
|
|