Commit e5b9466b authored by thomasl's avatar thomasl

More targets implemented

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6823 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent eaa9d0fc
......@@ -115,7 +115,7 @@ set(CMAKE_BUILD_TYPE "RelWithDebInfo")
#
set(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat -fPIC")
"${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat -fPIC ")
# add autotools definitions that were maybe used!
set(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP"
......@@ -172,6 +172,7 @@ if (${ENABLE_ITTI})
${ITTI_DIR}/timer.c
)
set(ITTI_LIB ITTI)
set(GTPU_need_ITTI ${OPENAIRCN_DIR}/GTPV1-U/gtpv1u_eNB.c)
set(EXMIMO_IOT)
endif (${ENABLE_ITTI})
......@@ -357,6 +358,7 @@ add_boolean_option(ENABLE_USE_PCAP_FOR_SGI False "SGI option")
add_boolean_option(ENABLE_USE_RAW_SOCKET_FOR_SGI False "As per name")
add_boolean_option(ENABLE_VCD_FIFO True "Seems legacy: always true now")
add_boolean_option(ENB_MODE True "???")
add_boolean_option(EPC_BUILD False "???")
add_boolean_option(HARD_RT False "???")
add_boolean_option(JUMBO_FRAME True "???")
add_boolean_option(LARGE_SCALE False "specific to oaisim: defines max eNB=2 and max UE=120")
......@@ -430,9 +432,7 @@ if(ENB_MODE)
include_directories("${OPENAIR2_DIR}/UTIL/LOG")
include_directories("${OPENAIRCN_DIR}/COMMON")
include_directories("${OPENAIRCN_DIR}/UTILS")
message("openair2 first")
else()
message(openair-cn first)
include_directories("${OPENAIRCN_DIR}/COMMON")
include_directories("${OPENAIRCN_DIR}/UTILS")
include_directories("${OPENAIR2_DIR}/COMMON")
......@@ -453,7 +453,6 @@ include_directories("${OPENAIR3_DIR}/RAL-LTE/INTERFACE-802.21/INCLUDE")
include_directories("${OPENAIR3_DIR}/RAL-LTE/LTE_RAL_ENB/INCLUDE")
include_directories("${OPENAIR3_DIR}/RAL-LTE/LTE_RAL_UE/INCLUDE")
include_directories("${OPENAIR_DIR}/common/utils")
include_directories("${OPENAIR_DIR}/common/utils/collection/hashtable")
include_directories("${OPENAIR_DIR}/common/utils/itti")
include_directories("${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/api/network")
include_directories("${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/include")
......@@ -495,28 +494,13 @@ include_directories("${OPENAIRCN_DIR}/SGI")
include_directories("${OPENAIRCN_DIR}/S6A")
include_directories("${OPENAIR_DIR}")
# define where are the source files
##################################
#add_subdirectory (${OPENAIR_DIR} .)
# define libraries
#add_library(MathFunctions mysqrt.cxx)
function(add_whole_dir dir lib_name)
file(GLOB mylist ${dir})
add_library(${lib_name} ${mylist})
endfunction(add_whole_dir)
function(add_whole_tree dir lib_name)
file(GLOB_RECURSE mylist "${dir}/*.c")
add_library(${lib_name} ${mylist})
endfunction(add_whole_tree)
# Utilities Library
################
add_library(HASHTABLE
${OPENAIR_DIR}/common/utils/collection/hashtable/hashtable.c
${OPENAIR_DIR}/common/utils/collection/hashtable/obj_hashtable.c
${OPENAIRCN_DIR}/UTILS/HASHTABLE/hashtable.c
${OPENAIRCN_DIR}/UTILS/HASHTABLE/obj_hashtable.c
)
include_directories(${OPENAIRCN_DIR}/UTILS/HASHTABLE)
set(UTIL_SRC
${OPENAIR2_DIR}/UTIL/CLI/cli.c
......@@ -585,7 +569,8 @@ add_library(SECU_CN ${SECU_CN_SRC})
# Scheduler
################################"
add_whole_dir(${OPENAIR1_DIR}/SCHED/*.c SCHED_LIB)
file(GLOB SCHED_SRC ${OPENAIR1_DIR}/SCHED/*.c)
add_library(SCHED_LIB ${SCHED_SRC})
# Layer 1
#############################
......@@ -877,7 +862,6 @@ target_compile_definitions(xt_GTPURH_lib PRIVATE
-DIPTVERSION=${IPTVERSION} -DIPTABLES_VERSION_STRING=${IPTABLES_VERSION_STRING}
)
set(SGI_DIR ${OPENAIRCN_DIR}/SGI)
set(SGI_SRC
${SGI_DIR}/sgi_task.c
......@@ -899,7 +883,6 @@ if (ENABLE_USE_NETFILTER_FOR_SGI)
endif()
add_library(SGI ${SGI_SRC})
set(SCTP_SRC
${OPENAIRCN_DIR}/SCTP/sctp_common.c
${OPENAIRCN_DIR}/SCTP/sctp_eNB_task.c
......@@ -928,6 +911,7 @@ add_library(S11
${S11_DIR}/s11_sgw_session_manager.c
${S11_DIR}/s11_sgw_bearer_manager.c
)
include_directories(${S11_DIR})
set(S6A_DIR ${OPENAIRCN_DIR}/S6A)
add_library(S6A
......@@ -940,7 +924,6 @@ add_library(S6A
${S6A_DIR}/s6a_up_loc.c
)
set(SGW_DIR ${OPENAIRCN_DIR}/SGW-LITE)
add_library (SGW
${SGW_DIR}/spgw_config.c
......@@ -951,7 +934,6 @@ add_library (SGW
${SGW_DIR}/pgw_lite_paa.c
)
set(MME_DIR ${OPENAIRCN_DIR}/MME_APP)
add_library(MME_APP
${MME_DIR}/mme_app_capabilities.c
......@@ -964,7 +946,6 @@ add_library(MME_APP
${MME_DIR}/s6a_2_nas_cause.c
)
set(NAS_SRC ${OPENAIRCN_DIR}/NAS/EURECOM-NAS/src/)
set(libnas_api_OBJS
${NAS_SRC}api/mme/mme_api.c
......@@ -973,7 +954,6 @@ set(libnas_api_OBJS
${NAS_SRC}api/network/network_api.c
)
set(libnas_emm_OBJS
${NAS_SRC}emm/Attach.c
${NAS_SRC}emm/Authentication.c
......@@ -1207,13 +1187,17 @@ set(libnas_usim_OBJS
${NAS_SRC}api/usim/usim_api.c
)
set(libnas_OBJS
add_library(NAS_UE
${OPENAIRCN_DIR}/NAS/nas_ue_task.c
)
set(libnas_OBJS
${OPENAIRCN_DIR}/NAS/nas_itti_messaging.c
# ${OPENAIRCN_DIR}/NAS/nas_main.c
${NAS_SRC}nas_parser.c
${NAS_SRC}nas_proc.c
${NAS_SRC}nas_user.c
${NAS_SRC}nas_network.c
${libnas_utils_OBJS}
${libnas_user_OBJS}
${libnas_usim_OBJS}
......@@ -1229,7 +1213,7 @@ set(libnas_OBJS
add_library(NAS ${libnas_OBJS})
if(NAS_UE)
set(NAS_LIB NAS)
set(NAS_LIB NAS NAS_UE)
endif()
include_directories(${NAS_SRC})
......@@ -1350,6 +1334,9 @@ if (${XFORMS})
set(XFORMS_LIBRARIES "forms")
endif (${XFORMS})
# Hack on a test of asn1c version (already dirty)
add_definitions(-DASN1_MINIMUM_VERSION=924)
#################################
# add executables for operation
#################################""
......@@ -1369,7 +1356,7 @@ add_executable(lte-softmodem
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/COMMON/create_tasks.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${GTPV1U_DIR}/gtpv1u_eNB.c
${GTPU_need_ITTI}
${HW_SOURCE}
${RTAI_SOURCE}
${XFORMS_SOURCE}
......@@ -1390,10 +1377,11 @@ add_executable(oai_epc
${OPENAIRCN_DIR}/OAI_EPC/oai_epc.c
${GTPV1U_DIR}/gtpv1u_task.c
${OPENAIRCN_DIR}/SCTP/sctp_primitives_server.c
${OPENAIRCN_DIR}/NAS/nas_main.c
)
target_link_libraries (oai_epc
-Wl,--start-group
S1AP_LIB S1AP_EPC GTPV1U GTPV2C SCTP_SERVER UDP_SERVER SECU_CN SECU_OSA SGI S6A SGW MME_APP LFDS ${NAS_LIB} ${ITTI_LIB} CN_UTILS HASHTABLE
NAS S1AP_LIB S1AP_EPC GTPV1U GTPV2C SCTP_SERVER UDP_SERVER SECU_CN SECU_OSA SGI S6A SGW MME_APP LFDS ${ITTI_LIB} CN_UTILS HASHTABLE
-Wl,--end-group
pthread m sctp rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES} fdproto fdcore
)
......@@ -1407,7 +1395,7 @@ add_executable(oai_sgw
)
target_link_libraries (oai_sgw
-Wl,--start-group
GTPV1U SECU_CN SECU_OSA SGI S6A SGW UTIL LFDS ${ITTI_LIB}
GTPV1U SECU_CN SECU_OSA SGI S6A SGW CN_UTILS LFDS ${ITTI_LIB}
-Wl,--end-group
pthread m sctp rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES} fdproto fdcore
)
......@@ -1417,14 +1405,14 @@ target_link_libraries (oai_sgw
add_executable(usim_data
${OPENAIRCN_DIR}/NAS/EURECOM-NAS/tools/usim_data.c
)
target_link_libraries (usim_data nettle crypto m)
target_link_libraries (usim_data ${NAS_LIB} UTIL ${ITTI_LIB} LFDS pthread rt nettle crypto m)
# ???
#####################
add_executable(ue_data
${OPENAIRCN_DIR}/NAS/EURECOM-NAS/tools/ue_data.c
)
target_link_libraries (ue_data nettle crypto m)
target_link_libraries (ue_data ${NAS_LIB} UTIL ${ITTI_LIB} LFDS pthread rt nettle crypto m)
###################################"
# Addexecutables for tests
......@@ -1433,28 +1421,29 @@ target_link_libraries (ue_data nettle crypto m)
# A all in one network simulator
################
add_executable(oaisim
${rrc_h}
${s1ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c
${OPENAIR_TARGETS}/SIMU/USER/sinr_sim.c
${OPENAIR_TARGETS}/SIMU/USER/cor_SF_sim.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim_functions.c
${OPENAIR_TARGETS}/SIMU/USER/event_handler.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR2_DIR}/UTIL/OMG/sumo.c
${OPENAIR_TARGETS}/COMMON/create_tasks.c
${HW_SOURCE}
${XFORMS_SOURCE}
${rrc_h}
${s1ap_h}
${OPENAIR_BIN_DIR}/messages_xml.h
${OPENAIR_TARGETS}/SIMU/USER/channel_sim.c
${OPENAIR_TARGETS}/SIMU/USER/init_lte.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim_config.c
${OPENAIR_TARGETS}/SIMU/USER/sinr_sim.c
${OPENAIR_TARGETS}/SIMU/USER/cor_SF_sim.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim_functions.c
${OPENAIR_TARGETS}/SIMU/USER/event_handler.c
${OPENAIR_TARGETS}/SIMU/USER/oaisim.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR2_DIR}/UTIL/OMG/sumo.c
${GTPU_need_ITTI}
${OPENAIR_TARGETS}/COMMON/create_tasks.c
${HW_SOURCE}
${XFORMS_SOURCE}
)
target_include_directories(oaisim PUBLIC ${OPENAIR_TARGETS}/SIMU/USER)
target_link_libraries (oaisim
-Wl,--start-group
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN UTIL SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${RAL_LIB} ${NAS_LIB} SIMU SIMU_ETH SECU_OSA ${ITTI_LIB} ${MIH_LIB}
RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${RAL_LIB} ${NAS_LIB} SIMU SIMU_ETH SECU_OSA ${ITTI_LIB} ${MIH_LIB}
-Wl,--end-group )
target_link_libraries (oaisim ${LIBXML2_LIBRARIES} ${LAPACK_LIBRARIES})
target_link_libraries (oaisim pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} sctp ${option_USRP}
......@@ -1495,7 +1484,7 @@ foreach(myExe s1ap
${OPENAIRCN_DIR}/TEST/test_${myExe}.c
)
target_link_libraries (test_${myExe}
-Wl,--start-group UTIL LFDS -Wl,--end-group fdproto fdcore
-Wl,--start-group SECU_CN UTIL LFDS -Wl,--end-group m rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES} fdproto fdcore
)
endforeach(myExe)
......@@ -1570,7 +1559,6 @@ EXECUTE_PROCESS(COMMAND uname -r
OUTPUT_VARIABLE os_release
OUTPUT_STRIP_TRAILING_WHITESPACE)
SET(module_build_path /lib/modules/${os_release}/build)
message("Kernel build path = ${module_build_path}")
function(make_driver name dir)
file(MAKE_DIRECTORY ${OPENAIR_BIN_DIR}/${name})
......
......@@ -80,17 +80,14 @@ Options
The configuration file to install
-I | --install-external-packages
Installs required packages such as LibXML, asn1.1 compiler, freediameter, ...
This option will require root password
-g | --run-with-gdb
Add debugging symbols to compilation directives
-eNB
--eNB
Makes the eNB LTE softmodem
-UE
--UE
Makes the UE softmodem
-oaisim
Makes the oaisim simulator
-unit_simulators
Makes the unitary tests Layer 1 simulators
-EPC
--EPC
Makes the EPC
-r | --3gpp-release
default is Rel10,
......@@ -98,13 +95,22 @@ Options
-w | --hardware
EXMIMO (Default), USRP, None
Adds this RF board support (in external packages installation and in compilation)
--oaisim
Makes the oaisim simulator
--phy_simulators
Makes the unitary tests Layer 1 simulators
--core_simulators
Makes the core security features unitary simulators
-s | --check
runs a set of auto-tests based on simulators and several compilation tests
-V | --vcd
Adds a debgging facility to the binary files: GUI with major internal synchronization events
-x | --xforms
Adds a software oscilloscope feature to the produced binaries
Typical Options for a quick startup with a COTS UE and Eurecom RF board: build_oai.bash -I -g -eNB -EPC -x'
--install-system-files
Install OpenArInterface required files in Linux system
(will ask root password)
Typical Options for a quick startup with a COTS UE and Eurecom RF board: build_oai.bash -I -g -eNB -EPC -x --install-system-files'
}
###########################
......@@ -142,20 +148,16 @@ clean_all_files() {
###################################
compilations() {
cd $OPENAIR_DIR/cmake_targets/$1
cd $OPENAIR_DIR/cmake_targets/$1/build
{
[ "$CLEAN" = "1" ] && rm -rf build
mkdir -p build
cd build
rm -f $3
cmake ..
make -j4 $2
} > $5 2>&1
} > $dlog/$2.$REL.txt 2>&1
if [ -s $3 ] ; then
cp $3 $4
echo_success "$6"
cp $3 $dbin/$2.$REL
echo_success "$2 compiled"
else
echo_error "$7"
echo_error "$2 compilation failed"
fi
}
......@@ -164,6 +166,22 @@ run_tests() {
grep
}
test_compile() {
mkdir -p $tdir/$1/build
cd $tdir/$1/build
{
cmake ..
rm -f $3
make -j4 $2
} > $tdir/log/$1.txt
if [ -s $3 ] ; then
cp $3 $tdir/bin/$3.$1
echo_success "$1 test compiled"
else
echo_error "$1 test compilation failed"
fi
}
run_compilation_autotests() {
tdir=$OPENAIR_DIR/cmake_targets/autotests
mkdir -p $tdir/bin $tdir/log
......@@ -173,71 +191,48 @@ run_compilation_autotests() {
fi
compilations \
test.0101 oaisim \
oaisim $tdir/bin/oaisim.r8 \
$tdir/log/test0101.txt \
"test 0101:oaisim Rel8 passed" \
"test 0101:oaisim Rel8 failed"
oaisim $tdir/bin/oaisim.r8
compilations \
test.0102 oaisim \
oaisim $tdir/bin/oaisim.r8.nas \
$tdir/log/test0102.oaisim.txt \
"test 0102:oaisim Rel8 nas passed" \
"test 0102:oaisim Rel8 nas failed"
oaisim $tdir/bin/oaisim.r8.nas
compilations \
test.0103 oaisim \
oaisim $tdir/bin/oaisim.r8.rf \
$tdir/log/test0103.txt \
"test 0103:oaisim rel8 rf passed" \
"test 0103:oaisim rel8 rf failed"
oaisim $tdir/bin/oaisim.r8.rf
compilations \
test.0104 dlsim \
dlsim $tdir/bin/dlsim \
$tdir/log/test0104.txt \
"test 0104:dlsim passed" \
"test 0104:dlsim failed"
dlsim $tdir/bin/dlsim
compilations \
test.0104 ulsim \
ulsim $tdir/bin/ulsim \
$tdir/log/test0105.txt \
"test 0105: ulsim passed" \
"test 0105: ulsim failed"
ulsim $tdir/bin/ulsim
compilations \
test.0106 oaisim \
oaisim $tdir/bin/oaisim.r8.itti \
$tdir/log/test0106.txt \
"test 0103:oaisim rel8 itti passed" \
"test 0103:oaisim rel8 itti failed"
oaisim $tdir/bin/oaisim.r8.itti
compilations \
test.0107 oaisim \
oaisim $tdir/bin/oaisim.r10 \
$tdir/log/test0107.txt \
"test 0103:oaisim rel10 passed" \
"test 0103:oaisim rel10 failed"
oaisim $tdir/bin/oaisim.r10
compilations \
test.0108 oaisim \
oaisim $tdir/bin/oaisim.r10.itti \
$tdir/log/test0108.txt \
"test 0108:oaisim rel10 itti passed" \
"test 0108:oaisim rel10 itti failed"
oaisim $tdir/bin/oaisim.r10.itti
compilations \
test.0114 oaisim \
oaisim $tdir/bin/oaisim.r8.itti.ral \
$tdir/log/test0114.txt \
"test 0114:oaisim rel8 itti ral passed" \
"test 0114:oaisim rel8 itti ral failed"
oaisim $tdir/bin/oaisim.r8.itti.ral
compilations \
test.0115 oaisim \
oaisim $tdir/bin/oaisim.r10.itti.ral \
$tdir/log/test0115.txt \
"test 0114:oaisim rel10 itti ral passed" \
"test 0114:oaisim rel10 itti ral failed"
oaisim $tdir/bin/oaisim.r10.itti.ral
compilations \
test.0102 nasmesh \
CMakeFiles/nasmesh/nasmesh.ko $tdir/bin/nasmesh.ko \
$tdir/log/test0120.txt \
"test 0120: nasmesh.ko passed" \
"test 0120: nasmesk.ko failed"
CMakeFiles/nasmesh/nasmesh.ko $tdir/bin/nasmesh.ko
}
##########################################
......@@ -414,11 +409,17 @@ check_install_oai_software() {
$SUDO apt-get install -y libgnutls-dev nettle-dev nettle-bin
fi
install_freediameter_from_source
check_install_asn1c
install_asn1c_from_source
}
check_install_asn1c(){
$SUDO $OPENAIR_TARGETS/SCRIPTS/install_asn1c_0.9.24.modified.bash
install_asn1c_from_source(){
mkdir /tmp/asn1c-r1516
cd /tmp/asn1c-r1516
svn co https://github.com/vlm/asn1c/trunk /tmp/asn1c-r1516 -r 1516
patch -p0 < $OPENAIRCN_DIR/S1AP/MESSAGES/ASN1/asn1cpatch.p0
./configure
make
$SUDO make install
}
#################################################
......@@ -429,17 +430,19 @@ compile_hss() {
if [ "$CLEAN" = "1" ]; then
echo_info "build a clean HSS"
rm -rfv obj* m4 .autom4* configure
rm -rf obj* m4 .autom4* configure
fi
echo_success "Invoking autogen"
./autogen.sh || return 1
mkdir -p objs ; cd objs
echo_success "Invoking configure"
./configure || return 1
../configure || return 1
if [ -f Makefile ]; then
echo_success "Compiling..."
make -j4
# seems a bug in hss compilation: run make twice to work around
make -j4
if [ $? -ne 0 ]; then
echo_error "Build failed, exiting"
return 1
......@@ -452,62 +455,27 @@ compile_hss() {
return 1
}
compile_nas_tools() {
export NVRAM_DIR=$OPENAIR_TARGETS/bin
cd $NVRAM_DIR
if [ ! -f /tmp/nas_cleaned ]; then
echo_success "make --directory=$OPENAIRCN_DIR/NAS/EURECOM-NAS/tools veryveryclean"
make --directory=$OPENAIRCN_DIR/NAS/EURECOM-NAS/tools veryveryclean
fi
echo_success "make --directory=$OPENAIRCN_DIR/NAS/EURECOM-NAS/tools all"
make --directory=$OPENAIRCN_DIR/NAS/EURECOM-NAS/tools all
rm .ue.nvram
rm .usim.nvram
touch /tmp/nas_cleaned
}
TDB() {
if [ $2 = "USRP" ]; then
echo_info " 8.2 [USRP] "
fi
# ENB_S1
if [ $3 = 0 ]; then
cd $OPENAIR2_DIR && make clean && make nasmesh_netlink.ko #|| exit 1
cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make # || exit 1
fi
}
# arg1 is ENB_S1 'boolean'
install_oaisim() {
if [ $1 = 0 ]; then
cd $OPENAIR2_DIR && make clean && make nasmesh_netlink.ko #|| exit 1
cd $OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL && make clean && make # || exit 1
else
compile_ue_ip_nw_driver
install_nas_tools
fi
}
install_nas_tools() {
cd $OPENAIR_TARGETS/bin
cd $1
if [ ! -f .ue.nvram ]; then
echo_success "generate .ue_emm.nvram .ue.nvram"
$OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/ue_data --gen
./ue_data --gen
fi
if [ ! -f .usim.nvram ]; then
echo_success "generate .usim.nvram"
$OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/usim_data --gen
./usim_data --gen
fi
$OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/ue_data --print
$OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/usim_data --print
./ue_data --print
./usim_data --print
}
install_nasmesh(){
......@@ -537,8 +505,6 @@ create_hss_database(){
echo_fatal "Usage: $0 dbuser dbpass hssuser hsspass databasename"
rv=1
fi
set_openair_env
# removed %
#Q1="GRANT ALL PRIVILEGES ON *.* TO '$3'@'%' IDENTIFIED BY '$4' WITH GRANT OPTION;"
......@@ -553,7 +519,6 @@ create_hss_database(){
echo_success "$3 permissions succeeded"
fi
Q1="CREATE DATABASE IF NOT EXISTS ${BTICK}$5${BTICK};"
SQL="${Q1}"
$MYSQL -u $3 --password=$4 -e "$SQL"
......@@ -564,7 +529,6 @@ create_hss_database(){
echo_success "$5 creation succeeded"
fi
# test if tables have been created
mysql -u $3 --password=$4 -e "desc $5.users" > /dev/null 2>&1
......@@ -577,7 +541,6 @@ create_hss_database(){
echo_success "$5 tables creation succeeded"
fi
fi
return 0
}
......@@ -585,14 +548,12 @@ create_hss_database(){
# set_openair_env
###############################
set_openair_env(){
fullpath=`readlink -f $BASH_SOURCE`
[ -f "/.$fullpath" ] || fullpath=`readlink -f $PWD/$fullpath`
openair_path=${fullpath%/cmake_targets/*}
openair_path=${openair_path%/targets/*}
openair_path=${openair_path%/openair-cn/*}
openair_path=${openair_path%/openair[123]/*}
openair_path=${openair_path%/openair[123]/*}
export OPENAIR_DIR=$openair_path
export OPENAIR_HOME=$openair_path
export OPENAIR1_DIR=$openair_path/openair1
......@@ -600,6 +561,5 @@ set_openair_env(){
export OPENAIR3_DIR=$openair_path/openair3
export OPENAIRCN_DIR=$openair_path/openair-cn
export OPENAIR_TARGETS=$openair_path/targets
}
......@@ -54,84 +54,80 @@ do
CLEAN=1
clean_all_files
echo_info "Erased all previously producted files"
shift;
;;
shift;;
--clean-kernel)
clean_kernel
echo_info "Erased iptables config and removed modules from kernel"
shift;
;;
shift;;
-C | --config-file)
CONFIG_FILE=$2
echo_info "Will install the config file $CONFIG_FILE"
shift 2;
;;
shift 2;;
-I | --install-external-packages)
INSTALL_EXTERNAL
echo_info "Will install external packages"
shift;
;;
shift;;
-g | --run-with-gdb)
GDB=1
echo_info "Will Compile with gdb symbols"
shift;
;;
-eNB)
shift;;
--eNB)
eNB=1
echo_info "Will compile eNB"
shift;;
-UE)
--UE)
UE=1
echo_info "Will compile UE"
shift;;
-unit_simulators)
SIMUS=1
echo_info "Will compile dlsim, ulsim, ..."
shift;;
-oaisim)
oaisim=1
echo_info "Will compile oaisim and drivers nasmesh, ..."
shift;;
-EPC)
--EPC)
EPC=1
echo_info "Will compile EPC"
shift;;
-h | --help)
print_help
exit 1
;;
-r | --3gpp-release)
REL=$2
echo_info "setting release to: $REL"
shift 2 ;
;;
shift 2;;
-w | --hardware)
HW="$2" #"${i#*=}"
echo_info "setting hardware to: $HW"
shift 2;;
--oaisim)
oaisim=1
echo_info "Will compile oaisim and drivers nasmesh, ..."
shift;;
--phy_simulators)
SIMUS_PHY=1
echo_info "Will compile dlsim, ulsim, ..."
shift;;
--core_simulators)
SIMUS_CORE=1
echo_info "Will compile security unitary tests"
shift;;
-s | --check)
OAI_TEST=1
echo_info "Will run auto-tests"
shift;
;;
shift;;
-V | --vcd)
echo_info "setting gtk-wave output"
VCD_TIMING=1
EXE_ARGUMENTS="$EXE_ARGUMENTS -V"
shift ;
;;
-w | --hardware)
HW="$2" #"${i#*=}"
echo_info "setting hardware to: $HW"
shift 2 ;
;;
shift;;
-x | --xforms)
XFORMS=1
EXE_ARGUMENTS="$EXE_ARGUMENTS -d"
echo_info "Will generate the software oscilloscope features"
shift;
;;
*)
shift;;
--install-system-files)
INSTALL_SYSTEM_FILES=1
echo_info "Will copy OpenAirInterface files in Linux directories"
shift;;
-h | --help)
print_help
exit 1;;
*)
print_help
echo_fatal "Unknown option $1"
break ;
;;
break;;
esac
done
......@@ -163,8 +159,11 @@ echo_info "3. building the compilation directives ..."
DIR=$OPENAIR_HOME/cmake_targets
# Create the cmake directives for selected options
mkdir -p $DIR/lte_build_oai
# Create and configure the building directories
#####################################"
# For eNB, UE, ...
mkdir -p $DIR/lte_build_oai/build
cmake_file=$DIR/lte_build_oai/CMakeLists.txt
echo "cmake_minimum_required(VERSION 2.8)" > $cmake_file
echo "set(XFORMS $XFORMS )" >> $cmake_file
......@@ -173,16 +172,43 @@ echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo "set(RF_BOARD \"${HW}\")" >> $cmake_file
echo 'set(PACKAGE_NAME "\"lte-softmodem\"")' >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
cd $DIR/lte_build_oai/build
cmake ..
# For EPC
cmake_file=$DIR/epc_build_oai/CMakeLists.txt
cp $DIR/epc_build_oai/CMakeLists.template $cmake_file
echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
mkdir -p $DIR/epc_build_oai/build
cd $DIR/epc_build_oai/build
cmake ..
# For oaisim
cmake_file=$DIR/oaisim_build_oai/CMakeLists.txt
cp $DIR/oaisim_build_oai/CMakeLists.template $cmake_file
echo "set(XFORMS $XFORMS )" >> $cmake_file
echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
mkdir -p $DIR/oaisim_build_oai/build
cd $DIR/oaisim_build_oai/build
cmake ..
# For unitary test simulators
cd $OPENAIR_DIR/cmake_targets/lte-simulators
[ "$CLEAN" = "1" ] && rm -rf build
mkdir -p build
cd build
rm -f *sim
cmake ..
if [ "$eNB" = "1" -o "UE" = "1" ] ; then
# LTE softmodem compilation
echo_info "Compiling LTE softmodem"
compilations \
lte_build_oai lte-softmodem \
lte-softmodem $dbin/lte-softmodem.$REL \
$dlog/lte-softmodem.$REL.txt \
"lte-softmodem compiled" \
"lte-softmodem compilation failed"
lte-softmodem lte-softmodem.$REL
fi
if [ "$UE" = 1 ] ; then
......@@ -190,31 +216,35 @@ if [ "$UE" = 1 ] ; then
echo_info "Compiling UE specific part"
compilations \
lte_build_oai ue_ip \
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko \
$dlog/ue_ip.txt \
"ue_ip driver compiled" \
"ue_ip driver compilation failed"
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
compilations \
lte_build_oai usim_data \
usim_data $dbin/usim_data.$REL
compilations \
lte_build_oai ue_data \
ue_data $dbin/ue_data.$REL
fi
if [ "SIMUS" = "1" ] ; then
if [ "$SIMUS_PHY" = "1" ] ; then
# lte unitary simulators compilation
echo_info "Compiling unitary tests simulators"
simlist="dlsim ulsim pucchsim prachsim pdcchsim pbchsim mbmssim"
log=$dlog/lte-simulators.log
cd $OPENAIR_DIR/cmake_targets/lte-simulators
[ "$CLEAN" = "1" ] && rm -rf build
mkdir -p build
cd build
rm -f *sim
cmake .. > $log 2>&1
for f in $simlist ; do
make -j4 $f > $log 2>&1
if [ -s $f ] ; then
echo_success "$f compiled"
cp $f $OPENAIR_DIR/cmake_targets/bin
else
echo_error "$f compilation failed"
fi
compilations \
lte-simulators $f \
$f $dbin/$f.$REL
done
fi
# Core simulators
if [ "$SIMUS_CORE" = "1" ] ; then
# lte unitary simulators compilation
echo_info "Compiling unitary tests simulators"
simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu secu_knas_stream_int secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
for f in $simlist ; do
compilations \
lte-simulators test_$f \
test_$f $dbin/test_$f.$REL
done
fi
......@@ -223,93 +253,61 @@ if [ "$HW" = "EXMIMO" ] ; then
echo_info "Compiling Express MIMO 2 board drivers"
compilations \
lte_build_oai openair_rf \
CMakeFiles/openair_rf/openair_rf.ko $dbin/openair_rf.ko \
$dlog/openair_rf.txt 2>&1 \
"EXMIMO driver compiled" \
"EXMIMO driver compilation failed"
CMakeFiles/openair_rf/openair_rf.ko $dbin/openair_rf.ko
compilations \
lte_build_oai updatefw \
updatefw $dbin/updatefw \
$dlog/updatefw.txt 2>&1 \
"EXMIMO firmware loader compiled" \
"EXMIMO firmware loader compilation failed"
updatefw $dbin/updatefw
fi
if [ "$oaisim" = "1" ] ; then
# oasim compilation
echo_info "Compiling oaisim simulator"
cmake_file=$DIR/oaisim_build_oai/CMakeLists.txt
cp $DIR/oaisim_build_oai/CMakeLists.template $cmake_file
echo "set(XFORMS $XFORMS )" >> $cmake_file
echo "set(RRC_ASN1_VERSION \"${REL}\")" >> $cmake_file
echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
echo_info "Compiling oaisim"
compilations \
oaisim_build_oai oaisim \
oaisim $dbin/oaisim.$REL \
$dlog/oaisim.$REL.txt 2>&1 \
"oaisim compiled" \
"oaisim compilation failed"
oaisim $dbin/oaisim.$REL
compilations \
oaisim_build_oai oaisim_mme \
oaisim_mme $dbin/oaisim_mme.$REL
#oai_nw_drv
compilations \
oaisim_build_oai oai_nw_drv \
CMakeFiles/oai_nw_drv/oai_nw_drv.ko $dbin/oai_nw_drv.ko \
$dlog/oai_nw_drv.txt \
"oai_nw_drv driver compiled" \
"oai_nw_drv driver compilation failed"
CMakeFiles/oai_nw_drv/oai_nw_drv.ko $dbin/oai_nw_drv.ko
# nasmesh driver compilation
compilations \
oaisim_build_oai nasmesh \
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko \
$dlog/nasmesh.txt \
"nasmesh driver compiled" \
"nasmesh driver compilation failed"
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
fi
# EPC compilation
##################
if [ "$EPC" = "1" ] ; then
echo_info "Compiling EPC"
cmake_file=$DIR/epc_build_oai/CMakeLists.txt
cp $DIR/epc_build_oai/CMakeLists.template $cmake_file
echo "set(ENABLE_VCD_FIFO $VCD_TIMING )" >> $cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
compilations \
epc_build_oai oai_epc \
oai_epc $dbin/oai_epc.$REL \
$dlog/oai_epc.$REL.txt \
"oai_epc compiled" \
"oai_epc compilation failed"
oai_epc $dbin/oai_epc.$REL
compilations \
epc_build_oai oai_sgw \
oai_sgw $dbin/oai_sgw.$REL
compilations \
epc_build_oai xt_GTPUAH_lib \
libxt_GTPUAH_lib.so $dbin \
$dlog/xt_GTPUAH.txt \
"library xt_GTPUAH compiled" \
"library xt_GTPUAH compilation failed"
libxt_GTPUAH_lib.so $dbin
compilations \
epc_build_oai xt_GTPURH_lib \
libxt_GTPURH_lib.so $dbin \
$dlog/xt_GTPURH.txt \
"library xt_GTPURH compiled" \
"library xt_GTPURH compilation failed"
libxt_GTPURH_lib.so $dbin
compilations \
epc_build_oai xt_GTPURH \
CMakeFiles/xt_GTPURH/xt_GTPURH.ko $dbin \
$dlog/xt_GTPURH.txt \
"module xt_GTPURH driver compiled" \
"module xt_GTPURH driver compilation failed"
CMakeFiles/xt_GTPURH/xt_GTPURH.ko $dbin
compilations \
epc_build_oai xt_GTPUAH \
CMakeFiles/xt_GTPUAH/xt_GTPUAH.ko $dbin \
$dlog/xt_GTPUAH.txt \
"module xt_GTPUAH driver compiled" \
"module xt_GTPUAH compilation failed"
CMakeFiles/xt_GTPUAH/xt_GTPUAH.ko $dbin
compile_hss
fi
if [ "$INSTALL_SYSTEM_FILES" = "1" ] ;then
echo_info "Copying iptables libraries into system directory: /lib/xtables"
$SUDO ln -s $dbin/libxt_GTPURH_lib.so /lib/xtables/libxt_GTPURH.so
$SUDO ln -s $dbin/libxt_GTPUAH_lib.so /lib/xtables/libxt_GTPUAH.so
compile_hss
fi
# Install config file
......@@ -403,7 +401,6 @@ if [ $RUN -ne 0 ]; then
'ENB')
if [ $TARGET == "SOFTMODEM" ]; then
if [ $HW == "EXMIMO" ]; then
$SUDO chmod 777 $OPENAIR_TARGETS/RT/USER/init_exmimo2.sh
$SUDO $OPENAIR_TARGETS/RT/USER/init_exmimo2.sh
fi
echo "############# running ltesoftmodem #############"
......
......@@ -21,6 +21,7 @@ set ( ENABLE_USE_GTPU_IN_KERNEL True )
set ( ENABLE_USE_MME False )
set ( ENABLE_VCD_FIFO False )
set ( ENB_MODE False )
set ( EPC_BUILD True )
set ( EXMIMO_IOT False )
set ( HARD_RT False )
set ( JUMBO_FRAME False )
......@@ -37,7 +38,7 @@ set ( MIH_C_MEDIEVAL_EXTENSIONS False )
set ( MSG_PRINT False )
set ( MU_RECEIVER False )
set ( NAS_ADDRESS_FIX False )
set ( NAS_MME False )
set ( NAS_MME True )
set ( NAS_NETLINK False )
set ( NAS_UE False )
set ( NB_ANTENNAS_RX "2" )
......
......@@ -9,5 +9,6 @@ set(MU_RECIEVER Flase)
set(RANDOM_BF False)
set(PBS_SIM False)
set(PERFECT_CE False)
set(NAS_UE False)
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment