SVN to GIT migration (removed EPC software, updated mailing list address in all files)
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7885 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -1,302 +0,0 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) anylater version.
|
||||
#
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
################################################################################
|
||||
# file build_epc
|
||||
# brief
|
||||
# author Lionel Gauthier
|
||||
# company Eurecom
|
||||
# email: lionel.gauthier@eurecom.fr
|
||||
#
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
source $THIS_SCRIPT_PATH/build_helper
|
||||
|
||||
function help()
|
||||
{
|
||||
echo_error " "
|
||||
echo_error "Usage: build_epc [OPTION]..."
|
||||
echo_error "Build the EPC executable."
|
||||
echo_error " "
|
||||
echo_error "Options:"
|
||||
echo_error "Mandatory arguments to long options are mandatory for short options too."
|
||||
echo_error " -c, --clean Clean the build generated files (build from scratch)"
|
||||
echo_error " -C, --conf-files-only Generate only EPC configuration files (no build)"
|
||||
echo_error " -d, --debug Compile with debug informations."
|
||||
echo_error " -h, --help Print this help."
|
||||
echo_error " -g, --gtpu-easy-module Used for debugging GTPU (kernel module can be easily removed, for dev and debug purpose only)"
|
||||
echo_error " -G, --gtpu-full-speed Best GTPU throughput performance, but cannot be removed (default)."
|
||||
echo_error " -H, --hss hostname HSS hostname (with FQDN), default is this host (`hostname --fqdn`)."
|
||||
echo_error " -i, --check-installed-software Check installed software packages necessary to build and run EPC (support Ubuntu 14.04)."
|
||||
l_realm=`hostname --fqdn`
|
||||
l_realm=${l_realm#*.}
|
||||
echo_error " -r, --realm realm Realm of the MME (if not specified, is extracted from this host FQDN ($l_realm))."
|
||||
echo_error " -s, --transport-sctp-only Diameter use SCTP only (TCP disabled)."
|
||||
echo_error " -S, --s6a-server MME act as a server on s6a interface (useful when HSS and MME/EPC run on the same host)."
|
||||
echo_error " -t, --transport-tcp-only Diameter use TCP only (SCTP disabled)."
|
||||
echo_error " -T, --transport-prefer-tcp Diameter prefer TCP."
|
||||
echo_error " -v, --verbose Build process verbose."
|
||||
echo_error " "
|
||||
echo_error "Examples:"
|
||||
echo_error " "
|
||||
echo_error "Case 1 - EPC run on same HSS host"
|
||||
echo_error "build_epc -d -S -t -T"
|
||||
echo_error " "
|
||||
echo_error "Case 2 - EPC and HSS do not run on same host"
|
||||
echo_error "build_epc -d -s -H my_hss_fqdn"
|
||||
}
|
||||
|
||||
|
||||
|
||||
function main()
|
||||
{
|
||||
local -i clean=0
|
||||
local -i conf_files_only=0
|
||||
local -i verbose=0
|
||||
local -i s6a_server=0
|
||||
local cmake_args=" "
|
||||
local make_args="-j $NUM_CPU"
|
||||
local realm=""
|
||||
local gtpu_cmake_arg="-DFLAG_GTPV1U_KERNEL_THREAD_SOCK_NO_WAIT=False"
|
||||
local hss_fqdn=""
|
||||
local hss_hostname=""
|
||||
local hss_ip=""
|
||||
local REL="Rel10"
|
||||
|
||||
|
||||
until [ -z "$1" ]
|
||||
do
|
||||
case "$1" in
|
||||
-c | --clean)
|
||||
clean=1
|
||||
echo "Clean the build generated files (build from scratch)"
|
||||
shift;
|
||||
;;
|
||||
-C | --conf-files-only)
|
||||
conf_files_only=1
|
||||
echo "Generate only conf files (no build)"
|
||||
shift;
|
||||
;;
|
||||
-d | --debug)
|
||||
cmake_args="$cmake_args -DDEBUG=1"
|
||||
echo "Compile with debug informations"
|
||||
shift;
|
||||
;;
|
||||
-g | --gtpu-easy-module)
|
||||
gtpu_cmake_arg="-DFLAG_GTPV1U_KERNEL_THREAD_SOCK_NO_WAIT=True"
|
||||
echo "Compile with not optimized GTPU kernel module option (but kernel module easy to remove)"
|
||||
shift;
|
||||
;;
|
||||
-G | --gtpu-full-speed)
|
||||
echo "Compile with best performance GTPU kernel module option"
|
||||
shift;
|
||||
;;
|
||||
-h | --help)
|
||||
help
|
||||
shift;
|
||||
exit 0
|
||||
;;
|
||||
-H | --hss)
|
||||
hss_fqdn=$2
|
||||
cmake_args="$cmake_args -DHSS_FQDN=$hss_fqdn"
|
||||
shift 2;
|
||||
;;
|
||||
-i | --check-installed-software)
|
||||
echo "Check installed software packages necessary to build and run EPC (support Ubuntu 14.04):"
|
||||
set_openair_env
|
||||
check_install_oai_software
|
||||
check_install_additional_tools
|
||||
exit 0
|
||||
;;
|
||||
-r | --realm)
|
||||
echo "Realm: $2"
|
||||
realm=$2
|
||||
cmake_args="$cmake_args -DREALM=$realm"
|
||||
shift 2;
|
||||
;;
|
||||
-s | --transport-sctp-only)
|
||||
echo "Diameter use SCTP (TCP disabled), this is the default option."
|
||||
cmake_args="$cmake_args -DTRANSPORT_option=No_TCP"
|
||||
shift;
|
||||
;;
|
||||
-S | --s6a-server)
|
||||
echo "MME act as a server on s6a"
|
||||
s6a_server=1
|
||||
cmake_args="$cmake_args -DMME_S6A_IS_SERVER=1"
|
||||
shift 1;
|
||||
;;
|
||||
-t | --transport-tcp-only)
|
||||
echo "Diameter use TCP (SCTP disabled)."
|
||||
cmake_args="$cmake_args -DTRANSPORT_option=No_SCTP"
|
||||
shift;
|
||||
;;
|
||||
-T | --transport-prefer-tcp)
|
||||
echo "Diameter prefer TCP (TCP, SCTP enabled)."
|
||||
cmake_args="$cmake_args -DTRANSPORT_PREFER_TCP_option=Prefer_TCP"
|
||||
shift;
|
||||
;;
|
||||
-v | --verbose)
|
||||
echo "Make build process verbose"
|
||||
cmake_args="$cmake_args -DCMAKE_VERBOSE_MAKEFILE=ON"
|
||||
make_args="VERBOSE=1 $make_args"
|
||||
verbose=1
|
||||
shift;
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option $1"
|
||||
help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
cmake_args="$cmake_args $gtpu_cmake_arg"
|
||||
|
||||
# extra arguments processing
|
||||
if [[ z$hss_fqdn = z ]]; then
|
||||
hss_fqdn=`hostname --fqdn`
|
||||
cmake_args="$cmake_args -DHSS_FQDN=$hss_fqdn"
|
||||
if [[ z$realm = z ]]; then
|
||||
realm=$hss_fqdn
|
||||
realm=${realm#*.}
|
||||
cmake_args="$cmake_args -DREALM=$realm"
|
||||
fi
|
||||
else
|
||||
if [[ z$realm = z ]]; then
|
||||
realm=${hss_fqdn#*.}
|
||||
cmake_args="$cmake_args -DREALM=$realm"
|
||||
fi
|
||||
fi
|
||||
hss_hostname=${hss_fqdn%%.*}
|
||||
cmake_args="$cmake_args -DHSS_HOSTNAME=$hss_hostname"
|
||||
|
||||
hss_ip=`resolveip --silent $hss_hostname`
|
||||
if [[ z$hss_ip = z ]]; then
|
||||
hss_ip=`resolveip --silent $hss_fqdn`
|
||||
fi
|
||||
if [[ z$hss_ip = z ]]; then
|
||||
echo_abort "Unable to get HSS IP addr of $hss_fqdn"
|
||||
fi
|
||||
cmake_args="$cmake_args -DHSS_IP=$hss_ip"
|
||||
|
||||
set_openair_env
|
||||
if [[ $verbose -eq 1 ]]; then
|
||||
cecho "OPENAIR_DIR = $OPENAIR_DIR" $green
|
||||
fi
|
||||
|
||||
# for conf files copy in this bash script
|
||||
if [ -d /usr/lib/freeDiameter ]; then
|
||||
export FREEDIAMETER_PREFIX=/usr
|
||||
else
|
||||
if [ -d /usr/local/lib/freeDiameter ]; then
|
||||
export FREEDIAMETER_PREFIX=/usr/local
|
||||
else
|
||||
echo_fatal "FreeDiameter prefix not found, install freeDiameter if EPC, HSS"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
local dbin=$OPENAIR_DIR/targets/bin
|
||||
local dlog=$OPENAIR_DIR/cmake_targets/log
|
||||
local dconf=$OPENAIR_DIR/targets/bin
|
||||
|
||||
mkdir -m 777 -p $dbin $dlog
|
||||
|
||||
##############################################################################
|
||||
# Compile userspace executable
|
||||
##############################################################################
|
||||
cd $OPENAIR_DIR/cmake_targets/epc_build_oai
|
||||
if [ $clean -ne 0 ]; then
|
||||
if [[ $verbose -eq 1 ]]; then
|
||||
echo "Cleaning EPC: certificates, generated configuration files, obj files, mme_gw executable, GTP kernel module"
|
||||
fi
|
||||
rm -f $OPENAIR_DIR/targets/bin/mme_gw
|
||||
rm -Rf build 2>&1
|
||||
$SUDO rm -Rf $OPENAIR_TARGETS/CMAKE/EPC/MME_GW/build 2>&1
|
||||
$SUDO rm -f /usr/local/etc/freeDiameter/mme* 2>&1
|
||||
$SUDO rm -f /usr/local/etc/freeDiameter/epc* 2>&1
|
||||
$SUDO rm -f /usr/etc/freeDiameter/mme* 2>&1
|
||||
$SUDO rm -f /usr/etc/freeDiameter/epc* 2>&1
|
||||
$SUDO rm -f $OPENAIR_DIR/targets/bin/xt_GTPU*.ko 2>&1
|
||||
(cd $OPENAIRCN_DIR/GTPV1-U/GTPU_SP && $SUDO make clean)
|
||||
$SUDO rm -f $OPENAIRCN_DIR/GTPV1-U/GTPU_SP/Bin/* 2>&1
|
||||
$SUDO rm -f /lib/xtables/libxt_GTPU*.so 2>&1
|
||||
mkdir -m 777 -p -v build
|
||||
fi
|
||||
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Compile EPC
|
||||
##############################################################################
|
||||
cd $OPENAIR_DIR/cmake_targets/epc_build_oai
|
||||
#cd $OPENAIR_TARGETS/CMAKE/EPC/MME_GW
|
||||
if [ ! -d ./build ]; then
|
||||
mkdir -m 777 -p -v build
|
||||
fi
|
||||
cmake_file=./CMakeLists.txt
|
||||
cp $OPENAIR_DIR/cmake_targets/epc_build_oai/CMakeLists.template $cmake_file
|
||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||
cd ./build
|
||||
cmake $cmake_args ..
|
||||
#make $make_args -j $NUM_CPU
|
||||
if [ $conf_files_only -eq 0 ]; then
|
||||
compilations \
|
||||
epc_build_oai mme_gw \
|
||||
mme_gw $dbin/mme_gw.$REL
|
||||
# Only integrated mme+sgw+pgw is operational today
|
||||
compilations \
|
||||
epc_build_oai xt_GTPUSP_lib \
|
||||
libxt_GTPUSP_lib.so $dbin
|
||||
compilations \
|
||||
epc_build_oai xt_GTPUSP \
|
||||
CMakeFiles/xt_GTPUSP/xt_GTPUSP.ko $dbin
|
||||
|
||||
echo_info "Copying iptables libraries into system directory: /lib/xtables"
|
||||
if [ -f $dbin/libxt_GTPUSP_lib.so ] ; then
|
||||
$SUDO rm -f /lib/xtables/libxt_GTPUSP.so
|
||||
$SUDO ln -s $dbin/libxt_GTPUSP_lib.so /lib/xtables/libxt_GTPUSP.so
|
||||
else
|
||||
echo_fatal "not installed GTP-U iptables: binaries not found"
|
||||
fi
|
||||
fi
|
||||
# Do EPC
|
||||
if [ -f $OPENAIR_DIR/cmake_targets/epc_build_oai/build/mme_fd.conf ] ; then
|
||||
cp -uv $OPENAIR_DIR/cmake_targets/epc_build_oai/build/epc*.conf $dconf
|
||||
$SUDO cp -uv $OPENAIR_DIR/cmake_targets/epc_build_oai/build/mme_fd.conf $FREEDIAMETER_PREFIX/etc/freeDiameter
|
||||
else
|
||||
echo_fatal "not installed EPC config files: not found"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
main "$@"
|
||||
|
||||
@@ -1,29 +1,31 @@
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# Copyright (c) 2015, EURECOM (www.eurecom.fr)
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
# The views and conclusions contained in the software and documentation are those
|
||||
# of the authors and should not be interpreted as representing official policies,
|
||||
# either expressed or implied, of the FreeBSD Project.
|
||||
#
|
||||
################################################################################
|
||||
# file build_helper
|
||||
@@ -95,12 +97,9 @@ clean_kernel() {
|
||||
clean_all_files() {
|
||||
set_openair_env
|
||||
dir=$OPENAIR_DIR/cmake_targets
|
||||
rm -rf $dir/log $OPENAIR_DIR/targets/bin/*
|
||||
rm -rf $dir/log $OPENAIR_DIR/targets/bin/*
|
||||
rm -rf $dir/lte_build_oai $dir/lte-simulators/build
|
||||
rm -rf $dir/epc_build_oai/build $dir/epc_build_oai/CMakeLists.txt
|
||||
rm -rf $dir/oaisim_build_oai/build $dir/oaisim_build_oai/CMakeLists.txt
|
||||
rm -rf $dir/oaisim_mme_build_oai/build $dir/oaisim_mme_build_oai/CMakeLists.txt
|
||||
rm -rf $dir/hss_build/build
|
||||
rm -rf $dir/autotests/bin $dir/autotests/log $dir/autotests/*/build
|
||||
}
|
||||
|
||||
@@ -123,50 +122,6 @@ compilations() {
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
##########################################
|
||||
# X.509 certificates
|
||||
##########################################
|
||||
|
||||
make_one_cert() {
|
||||
fqdn=$1
|
||||
name=$2
|
||||
$SUDO openssl genrsa -out $name.key.pem 1024
|
||||
$SUDO openssl req -new -batch -out $name.csr.pem -key $name.key.pem -subj /CN=$name.$fqdn/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
|
||||
$SUDO openssl ca -cert cacert.pem -keyfile cakey.pem -in $name.csr.pem -out $name.cert.pem -outdir . -batch
|
||||
}
|
||||
|
||||
make_certs(){
|
||||
|
||||
fqdn=$1
|
||||
certs_dir=$FREEDIAMETER_PREFIX/freeDiameter
|
||||
# certificates are stored in diameter config directory
|
||||
if [ ! -d $certs_dir ]; then
|
||||
echo "Creating non existing directory: $certs_dir"
|
||||
$SUDO mkdir -p $certs_dir || echo_error "can't create: $certs_dir"
|
||||
fi
|
||||
|
||||
cd $certs_dir
|
||||
echo "creating the CA certificate"
|
||||
echo_warning "erase all existing certificates as long as the CA is regenerated"
|
||||
$SUDO rm -f $certs_dir/*.pem
|
||||
$SUDO mkdir -p $certs_dir/demoCA/
|
||||
$SUDO touch $certs_dir/demoCA/index.txt
|
||||
$SUDO sh -c "echo 01 > $certs_dir/demoCA/serial"
|
||||
|
||||
# CA self certificate
|
||||
$SUDO openssl req -new -batch -x509 -days 3650 -nodes -newkey rsa:1024 -out cacert.pem -keyout cakey.pem -subj /CN=$fqdn/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
|
||||
|
||||
# generate hss certificate and sign it
|
||||
make_one_cert eur hss
|
||||
make_one_cert eur mme
|
||||
|
||||
# legacy config is using a certificate named 'user'
|
||||
make_one_cert eur user
|
||||
|
||||
}
|
||||
|
||||
|
||||
############################################
|
||||
# External packages installers
|
||||
############################################
|
||||
@@ -200,58 +155,6 @@ install_gnutls_from_source(){
|
||||
rm -rf /tmp/gnutls-3.1.23.tar.xz /tmp/gnutls-3.1.23
|
||||
}
|
||||
|
||||
install_1.1.5_freediameter_from_source() {
|
||||
cd /tmp
|
||||
echo "Downloading 1.1.5 freeDiameter archive"
|
||||
rm -rf /tmp/1.1.5.tar.gz* /tmp/freeDiameter-1.1.5
|
||||
wget http://www.freediameter.net/hg/freeDiameter/archive/1.1.5.tar.gz
|
||||
tar xzf 1.1.5.tar.gz
|
||||
cd freeDiameter-1.1.5
|
||||
patch -p1 < $OPENAIR_DIR/openair-cn/S6A/freediameter/freediameter-1.1.5.patch
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ../
|
||||
echo "Compiling freeDiameter"
|
||||
make -j`nproc`
|
||||
#make test
|
||||
$SUDO make install
|
||||
rm -rf /tmp/1.1.5.tar.gz /tmp/freeDiameter-1.1.5
|
||||
}
|
||||
|
||||
install_freediameter_from_source() {
|
||||
cd /tmp
|
||||
echo "Downloading 1.2.0 freeDiameter archive"
|
||||
rm -rf /tmp/1.2.0.tar.gz* /tmp/freeDiameter-1.2.0
|
||||
wget http://www.freediameter.net/hg/freeDiameter/archive/1.2.0.tar.gz
|
||||
tar xzf 1.2.0.tar.gz
|
||||
cd freeDiameter-1.2.0
|
||||
patch -p1 < $OPENAIR_DIR/openair-cn/S6A/freediameter/freediameter-1.2.0.patch
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ../
|
||||
echo "Compiling freeDiameter"
|
||||
make -j`nproc`
|
||||
#make test
|
||||
$SUDO make install
|
||||
rm -rf /tmp/1.2.0.tar.gz /tmp/freeDiameter-1.2.0
|
||||
}
|
||||
|
||||
install_latest_freediameter_from_source() {
|
||||
cd /tmp
|
||||
rm -rf /tmp/freeDiameter
|
||||
echo "Downloading latest freeDiameter trunk (may be unstable)"
|
||||
git clone https://github.com/Metaswitch/freeDiameter.git
|
||||
cd freeDiameter
|
||||
patch -p1 < $OPENAIR_DIR/openair-cn/S6A/freediameter/freediameter-1.2.0.patch
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ../
|
||||
echo "Compiling freeDiameter"
|
||||
make -j`nproc`
|
||||
#make test
|
||||
$SUDO make install
|
||||
rm -rf /tmp/freeDiameter
|
||||
}
|
||||
|
||||
|
||||
check_install_usrp_uhd_driver(){
|
||||
@@ -345,8 +248,6 @@ check_install_oai_software() {
|
||||
libxml2-dev \
|
||||
linux-headers-`uname -r` \
|
||||
mscgen \
|
||||
mysql-client \
|
||||
mysql-server \
|
||||
octave \
|
||||
octave-signal \
|
||||
openssh-client \
|
||||
@@ -400,65 +301,7 @@ install_nas_tools() {
|
||||
|
||||
}
|
||||
|
||||
##################################
|
||||
# create HSS DB
|
||||
################################
|
||||
|
||||
# arg 1 is mysql admin (ex: root)
|
||||
# arg 2 is mysql password (ex: linux)
|
||||
# arg 3 is hss username (ex: hssadmin)
|
||||
# arg 4 is hss password (ex: admin)
|
||||
# arg 5 is database name (ex: oai_db)
|
||||
create_hss_database(){
|
||||
EXPECTED_ARGS=5
|
||||
if [ $# -ne $EXPECTED_ARGS ]
|
||||
then
|
||||
echo_error "Usage: $0 dbadmin dbpass hssuser hsspass databasename"
|
||||
return 1
|
||||
fi
|
||||
local mysql_admin=$1
|
||||
local mysql_password=$2
|
||||
local hss_username=$3
|
||||
local hss_password=$4
|
||||
local database_name=$5
|
||||
|
||||
Q1="GRANT ALL PRIVILEGES ON *.* TO '$hss_username'@'localhost' IDENTIFIED BY '$hss_password' WITH GRANT OPTION;"
|
||||
Q2="FLUSH PRIVILEGES;"
|
||||
mysql -u $mysql_admin --password=$mysql_password -e "${Q1}${Q2}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo_error "HSS: $hss_username permissions creation failed"
|
||||
echo_error "verify root password for mysql is linux: mysql -u root --password=linux"
|
||||
echo_error "if not, reset it to "linux" with sudo dpkg-reconfigure mysql-server-5.5"
|
||||
return 1
|
||||
else
|
||||
echo_success "HSS: $hss_username permissions creation succeeded"
|
||||
fi
|
||||
|
||||
Q3="CREATE DATABASE IF NOT EXISTS $database_name;"
|
||||
mysql -u $hss_username --password=$hss_password -e "${Q3}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo_error "HSS: $database_name creation failed"
|
||||
return 1
|
||||
else
|
||||
echo_success "HSS: $database_name creation succeeded"
|
||||
fi
|
||||
|
||||
|
||||
# test if tables have been created
|
||||
mysql -u $hss_username --password=$hss_password -e "desc $database_name.users" > /dev/null 2>&1
|
||||
if [ $? -eq 1 ]; then
|
||||
mysql -u $hss_username --password=$hss_password $database_name < $OPENAIR_DIR/openair-cn/OPENAIRHSS/db/$database_name.sql
|
||||
if [ $? -ne 0 ]; then
|
||||
echo_error "HSS: $database_name tables creation failed"
|
||||
return 1
|
||||
else
|
||||
echo_success "HSS: $database_name tables creation succeeded"
|
||||
fi
|
||||
else
|
||||
echo_success "HSS: $database_name tables already created, nothing done"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
################################
|
||||
# set_openair_env
|
||||
|
||||
@@ -1,271 +0,0 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) anylater version.
|
||||
#
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
################################################################################
|
||||
# file build_hss
|
||||
# brief
|
||||
# author Lionel Gauthier
|
||||
# company Eurecom
|
||||
# email: lionel.gauthier@eurecom.fr
|
||||
#
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
source $THIS_SCRIPT_PATH/build_helper
|
||||
|
||||
|
||||
|
||||
function help()
|
||||
{
|
||||
echo_error " "
|
||||
echo_error "Usage: build_hss [OPTION]..."
|
||||
echo_error "Build the experimental HSS executable."
|
||||
echo_error " "
|
||||
echo_error "Options:"
|
||||
echo_error "Mandatory arguments to long options are mandatory for short options too."
|
||||
echo_error " -b, --s6a-bind-addr-list addr_list Optionaly, s6a server bind addresses can be specified here"
|
||||
echo_error " -c, --clean Clean the build generated files (build from scratch)"
|
||||
echo_error " -d, --debug Compile with debug informations."
|
||||
echo_error " -f, --fqdn fqdn HSS Fully Qualified Domain Name (if not specified default is `hostname --fqdn`)."
|
||||
echo_error " -h, --help Print this help."
|
||||
echo_error " -i, --check-installed-software Check installed software packages necessary to build and run HSS (support Ubuntu 14.04)."
|
||||
echo_error " -I, --install-hss-files Install HSS database if necessary."
|
||||
echo_error " -k, --operator-key key Operator key of the HSS."
|
||||
echo_error " If filled, then OPc key in table users for all subscribers (IMSI) will be computed."
|
||||
echo_error " -m, --connect-to-mme fqdn MME act as a S6A server, HSS as a client (reversed situation but allows MME and HSS be on the same host) ."
|
||||
echo_error " -r, --realm realm Realm of the HSS (optional parameter)."
|
||||
echo_error " -R, --random boolean If false HSS random function returns always 0 (allowed values: {true, false})."
|
||||
echo_error " -s, --transport-sctp-only Diameter use SCTP (TCP disabled)."
|
||||
echo_error " -t, --transport-tcp-only Diameter use TCP (SCTP disabled)."
|
||||
echo_error " -T, --transport-prefer-tcp Diameter prefer TCP."
|
||||
echo_error " -v, --verbose Build process verbose."
|
||||
echo_error " "
|
||||
echo_error "Examples:"
|
||||
echo_error " "
|
||||
echo_error "Case 1 - HSS run on same EPC host"
|
||||
echo_error "build_hss -d -m my_epc_fqdn -d -t -T"
|
||||
echo_error "or build_hss -d -m my_epc_fqdn -d -t -T -k 11111111111111111111111111111111"
|
||||
echo_error " "
|
||||
echo_error "Case 2 - HSS and EPC do not run on same host"
|
||||
echo_error "build_hss -d -s"
|
||||
echo_error "build_hss -d -s -k 11111111111111111111111111111111"
|
||||
}
|
||||
|
||||
|
||||
|
||||
function main()
|
||||
{
|
||||
local -i clean=0
|
||||
local -i verbose=0
|
||||
local cmake_args=" "
|
||||
local make_args="-j $NUM_CPU"
|
||||
local realm=""
|
||||
local hss_hostname=""
|
||||
local mme_hostname=""
|
||||
local mme_ip=""
|
||||
local mme_fqdn=""
|
||||
|
||||
|
||||
until [ -z "$1" ]; do
|
||||
case "$1" in
|
||||
-b | --s6a-bind-addr-list)
|
||||
echo "S6A server bind addresses: $2"
|
||||
cmake_args="$cmake_args -DFD_SERVER_IP_BIND_LIST=$2"
|
||||
shift 2;
|
||||
;;
|
||||
-c | --clean)
|
||||
clean=1
|
||||
echo "Clean the build generated files (build from scratch)"
|
||||
shift;
|
||||
;;
|
||||
-d | --debug)
|
||||
cmake_args="$cmake_args -DDEBUG=1"
|
||||
echo "Compile with debug informations"
|
||||
shift;
|
||||
;;
|
||||
-f | --fqdn)
|
||||
echo "FQDN of the HSS: $2"
|
||||
cmake_args="$cmake_args -DHSS_FQDN=$2"
|
||||
shift 2;
|
||||
;;
|
||||
-h | --help)
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
-i | --check-installed-software)
|
||||
echo "Check installed software packages necessary to build and run HSS (support Ubuntu 14.04):"
|
||||
set_openair_env
|
||||
check_install_oai_software
|
||||
exit 0
|
||||
;;
|
||||
-I | --install-hss-files)
|
||||
echo "Install HSS files: .conf files, database (if you want to reinstall database, drop it by hand before)."
|
||||
cmake_args="$cmake_args -DINSTALL_HSS_FILES=1"
|
||||
shift;
|
||||
;;
|
||||
-k | --operator-key)
|
||||
echo "Operator key of the HSS: $2"
|
||||
cmake_args="$cmake_args -DOPERATOR_key=$2"
|
||||
shift 2;
|
||||
;;
|
||||
-m | --connect-to-mme)
|
||||
mme_fqdn=$2
|
||||
shift 2;
|
||||
;;
|
||||
-r | --realm)
|
||||
echo "Realm of the HSS: $2"
|
||||
cmake_args="$cmake_args -DREALM=$2"
|
||||
shift 2;
|
||||
;;
|
||||
-R | --random)
|
||||
echo "Random function: $2"
|
||||
cmake_args="$cmake_args -DRANDOM_boolean=$2"
|
||||
shift 2;
|
||||
;;
|
||||
-s | --transport-sctp-only)
|
||||
echo "Diameter use SCTP (TCP disabled), this is the default option."
|
||||
cmake_args="$cmake_args -DTRANSPORT_option=No_TCP"
|
||||
shift;
|
||||
;;
|
||||
-t | --transport-tcp-only)
|
||||
echo "Diameter use TCP (SCTP disabled)."
|
||||
cmake_args="$cmake_args -DTRANSPORT_option=No_SCTP"
|
||||
shift;
|
||||
;;
|
||||
-T | --transport-prefer-tcp)
|
||||
echo "Diameter prefer TCP (TCP, SCTP enabled)."
|
||||
cmake_args="$cmake_args -DTRANSPORT_PREFER_TCP_option=Prefer_TCP"
|
||||
shift;
|
||||
;;
|
||||
-v | --verbose)
|
||||
echo "Make build process verbose"
|
||||
cmake_args="$cmake_args -DCMAKE_VERBOSE_MAKEFILE=ON"
|
||||
make_args="VERBOSE=1 $make_args"
|
||||
verbose=1
|
||||
shift;
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option $1"
|
||||
help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# extra arguments processing
|
||||
if [[ z$hss_fqdn = z ]]; then
|
||||
hss_fqdn=`hostname --fqdn`
|
||||
cmake_args="$cmake_args -DHSS_FQDN=$hss_fqdn"
|
||||
if [[ z$realm = z ]]; then
|
||||
realm=$hss_fqdn
|
||||
realm=${realm#*.}
|
||||
cmake_args="$cmake_args -DREALM=$realm"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ z$mme_fqdn != z ]]; then
|
||||
cmake_args="$cmake_args -DMME_FQDN=$mme_fqdn"
|
||||
mme_hostname=${mme_fqdn%%.*}
|
||||
cmake_args="$cmake_args -DMME_HOSTNAME=$mme_hostname"
|
||||
|
||||
mme_ip=`resolveip --silent $mme_hostname`
|
||||
if [[ z$mme_ip = z ]]; then
|
||||
mme_ip=`resolveip --silent $mme_fqdn`
|
||||
fi
|
||||
if [[ z$mme_ip = z ]]; then
|
||||
echo_fatal "Unable to get MME IP addr of $mme_fqdn"
|
||||
fi
|
||||
cmake_args="$cmake_args -DHSS_CONNECT_TO_MME=1 -DMME_IP=$mme_ip"
|
||||
fi
|
||||
|
||||
set_openair_env
|
||||
if [[ $verbose -eq 1 ]]; then
|
||||
cecho "OPENAIR_DIR = $OPENAIR_DIR" $green
|
||||
fi
|
||||
|
||||
if [[ z$OPENAIR_DIR = z ]]; then
|
||||
echo_fatal "OPENAIR_DIR env variable not set, exiting"
|
||||
fi
|
||||
|
||||
|
||||
local dbin=$OPENAIR_DIR/targets/bin
|
||||
local dlog=$OPENAIR_DIR/cmake_targets/log
|
||||
local dconf=OPENAIR_DIR/targets/bin
|
||||
|
||||
mkdir -m 777 -p $dbin $dlog
|
||||
|
||||
# for conf files copy in this bash script
|
||||
if [ -d /usr/lib/freeDiameter ]; then
|
||||
export FREEDIAMETER_PREFIX=/usr
|
||||
else
|
||||
if [ -d /usr/local/lib/freeDiameter ]; then
|
||||
export FREEDIAMETER_PREFIX=/usr/local
|
||||
else
|
||||
echo_fatal "FreeDiameter prefix not found, install freeDiameter if EPC, HSS"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
cmake_args="$cmake_args -DOPENAIR_DIR=$OPENAIR_DIR"
|
||||
|
||||
rm -f $OPENAIR_DIR/targets/bin/openair-hss
|
||||
cd $OPENAIR_DIR/cmake_targets/hss_build
|
||||
if [ $clean -ne 0 ]; then
|
||||
if [[ $verbose -eq 1 ]]; then
|
||||
echo "Cleaning HSS"
|
||||
fi
|
||||
$SUDO rm -Rf build 2>&1
|
||||
if [[ $verbose -eq 1 ]]; then
|
||||
echo "Cleaning /usr/*/etc/freeDiameter"
|
||||
fi
|
||||
$SUDO rm -f /usr/local/etc/freeDiameter/hss* 2>&1
|
||||
$SUDO rm -f /usr/local/etc/freeDiameter/acl.conf 2>&1
|
||||
$SUDO rm -f /usr/etc/freeDiameter/hss* 2>&1
|
||||
$SUDO rm -f /usr/etc/freeDiameter/acl.conf 2>&1
|
||||
mkdir -m 777 -p -v build
|
||||
fi
|
||||
if [ ! -d ./build ]; then
|
||||
mkdir -m 777 -p -v build
|
||||
fi
|
||||
cd ./build
|
||||
cmake $cmake_args ..
|
||||
make $make_args
|
||||
make install
|
||||
|
||||
|
||||
# bash doesn't like space char around = char
|
||||
cp -uv $OPENAIR_DIR/cmake_targets/hss_build/build/hss.conf $dbin
|
||||
$SUDO cp -uv $OPENAIR_DIR/cmake_targets/hss_build/build/hss_fd.conf $OPENAIR_DIR/cmake_targets/hss_build/build/acl.conf $FREEDIAMETER_PREFIX/etc/freeDiameter
|
||||
|
||||
}
|
||||
|
||||
|
||||
main "$@"
|
||||
|
||||
Executable
+147
@@ -0,0 +1,147 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) anylater version.
|
||||
#
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
################################################################################
|
||||
# file build_test_epc_tools
|
||||
# brief
|
||||
# author Lionel Gauthier
|
||||
# company Eurecom
|
||||
# email: lionel.gauthier@eurecom.fr
|
||||
#
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
source $THIS_SCRIPT_PATH/build_helper
|
||||
|
||||
function help()
|
||||
{
|
||||
echo_error " "
|
||||
echo_error "Usage: build_test_epc_tools [OPTION]..."
|
||||
echo_error "Build the executables for generating and running a test case for EPC."
|
||||
echo_error " "
|
||||
echo_error "Options:"
|
||||
echo_error "Mandatory arguments to long options are mandatory for short options too."
|
||||
echo_error " -c, --clean Clean the build generated files (build from scratch)"
|
||||
echo_error " -d, --debug Compile with debug informations."
|
||||
echo_error " -h, --help Print this help."
|
||||
echo_error " -v, --verbose Build process verbose."
|
||||
echo_error " "
|
||||
}
|
||||
|
||||
|
||||
|
||||
function main()
|
||||
{
|
||||
local -i clean=0
|
||||
local -i verbose=0
|
||||
local cmake_args=" "
|
||||
local make_args="-j $NUM_CPU"
|
||||
local realm=""
|
||||
|
||||
|
||||
until [ -z "$1" ]
|
||||
do
|
||||
case "$1" in
|
||||
-c | --clean)
|
||||
clean=1
|
||||
echo "Clean the build generated files (build from scratch)"
|
||||
shift;
|
||||
;;
|
||||
-d | --debug)
|
||||
cmake_args="$cmake_args -DDEBUG=1"
|
||||
echo "Compile with debug informations"
|
||||
shift;
|
||||
;;
|
||||
-h | --help)
|
||||
help
|
||||
shift;
|
||||
exit 0
|
||||
;;
|
||||
-v | --verbose)
|
||||
echo "Make build process verbose"
|
||||
cmake_args="$cmake_args -DCMAKE_VERBOSE_MAKEFILE=ON"
|
||||
make_args="VERBOSE=1 $make_args"
|
||||
verbose=1
|
||||
shift;
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option $1"
|
||||
help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
|
||||
|
||||
set_openair_env
|
||||
if [[ $verbose -eq 1 ]]; then
|
||||
cecho "OPENAIR_DIR = $OPENAIR_DIR" $green
|
||||
fi
|
||||
|
||||
local dbin=$OPENAIR_DIR/targets/bin
|
||||
local dlog=$OPENAIR_DIR/cmake_targets/log
|
||||
local dconf=$OPENAIR_DIR/targets/bin
|
||||
|
||||
mkdir -m 777 -p $dbin $dlog
|
||||
|
||||
##############################################################################
|
||||
# Compile userspace executable
|
||||
##############################################################################
|
||||
cd $OPENAIR_DIR/cmake_targets/epc_test
|
||||
if [ $clean -ne 0 ]; then
|
||||
if [[ $verbose -eq 1 ]]; then
|
||||
echo "Cleaning TEST_EPC"
|
||||
fi
|
||||
rm -f $OPENAIR_DIR/targets/bin/test_epc_generate_scenario
|
||||
rm -Rf build 2>&1
|
||||
mkdir -m 777 -p -v build
|
||||
fi
|
||||
|
||||
##############################################################################
|
||||
# Compile EPC
|
||||
##############################################################################
|
||||
cd $OPENAIR_DIR/cmake_targets/epc_test
|
||||
if [ ! -d ./build ]; then
|
||||
mkdir -m 777 -p -v build
|
||||
fi
|
||||
cmake_file=./CMakeLists.txt
|
||||
cp $OPENAIR_DIR/cmake_targets/epc_test/CMakeLists.template $cmake_file
|
||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||
cd ./build
|
||||
cmake $cmake_args ..
|
||||
compilations \
|
||||
epc_test test_epc_generate_scenario \
|
||||
test_epc_generate_scenario $dbin/test_epc_generate_scenario
|
||||
}
|
||||
|
||||
|
||||
main "$@"
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) anylater version.
|
||||
#
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
################################################################################
|
||||
# file check_hss_s6a_certificate
|
||||
# brief
|
||||
# author Lionel Gauthier
|
||||
# company Eurecom
|
||||
# email: lionel.gauthier@eurecom.fr
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
source $THIS_SCRIPT_PATH/build_helper
|
||||
|
||||
|
||||
function _create_hss_certs()
|
||||
{
|
||||
local freediameter_path=$1
|
||||
local fqdn=$2
|
||||
|
||||
cd /tmp
|
||||
rm -rf /tmp/demoCA
|
||||
mkdir /tmp/demoCA
|
||||
echo 01 > /tmp/demoCA/serial
|
||||
touch /tmp/demoCA/index.txt
|
||||
|
||||
echo "Creating HSS certificate for user '$fqdn'"
|
||||
# Create a Root Certification Authority Certificate
|
||||
openssl req -new -batch -x509 -days 3650 -nodes -newkey rsa:1024 -out hss.cacert.pem -keyout hss.cakey.pem -subj /CN=$fqdn/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
|
||||
|
||||
# Generate a Private Key
|
||||
openssl genrsa -out hss.key.pem 1024
|
||||
|
||||
# Generate a CSR (Certificate Signing Request) that will be self-signed
|
||||
openssl req -new -batch -out hss.csr.pem -key hss.key.pem -subj /CN=$fqdn/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
|
||||
|
||||
# Certification authority
|
||||
openssl ca -cert hss.cacert.pem -keyfile hss.cakey.pem -in hss.csr.pem -out hss.cert.pem -outdir . -batch
|
||||
|
||||
if [ ! -d $freediameter_path/etc/freeDiameter ]; then
|
||||
echo "Creating non existing directory: $freediameter_path/etc/freeDiameter/"
|
||||
sudo mkdir -p $freediameter_path/etc/freeDiameter/
|
||||
fi
|
||||
|
||||
sudo mv hss.cakey.pem hss.cert.pem hss.cacert.pem hss.key.pem $freediameter_path/etc/freeDiameter/
|
||||
cd -
|
||||
}
|
||||
|
||||
|
||||
#$1 if freediameter path
|
||||
#$2 is fqdn
|
||||
function main() {
|
||||
local freediameter_path=$1
|
||||
local fqdn=$2
|
||||
if [ -d $freediameter_path/etc/freeDiameter ]; then
|
||||
if [ -f $freediameter_path/etc/freeDiameter/hss.cert.pem ]; then
|
||||
full_hostname=`cat $freediameter_path/etc/freeDiameter/hss.cert.pem | grep "Subject" | grep "CN" | cut -d '=' -f6`
|
||||
if [ a$full_hostname == a$fqdn ]; then
|
||||
echo_success "HSS S6A: Found valid certificate in $freediameter_path/etc/freeDiameter"
|
||||
return 0
|
||||
else
|
||||
echo_error "Bad hss fqdn found in cert file: $full_hostname fqdn is $fqdn"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo_error "HSS S6A: Did not find valid certificate in $freediameter_path/etc/freeDiameter"
|
||||
echo_warning "HSS S6A: generating new certificate in $freediameter_path/etc/freeDiameter..."
|
||||
_create_hss_certs $freediameter_path $fqdn
|
||||
if [ $# -lt 3 ] ; then
|
||||
main $freediameter_path $fqdn 2
|
||||
return $?
|
||||
else
|
||||
echo_error "Could not access to freeDiameter path: $freediameter_path/etc/freeDiameter"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,107 +0,0 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) anylater version.
|
||||
#
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
################################################################################
|
||||
# file check_mme_s6a_certificate
|
||||
# brief
|
||||
# author Lionel Gauthier
|
||||
# company Eurecom
|
||||
# email: lionel.gauthier@eurecom.fr
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
. $THIS_SCRIPT_PATH/build_helper
|
||||
|
||||
|
||||
function _create_mme_certs()
|
||||
{
|
||||
local freediameter_path=$1
|
||||
local fqdn=$2
|
||||
|
||||
cd /tmp
|
||||
rm -rf /tmp/demoCA
|
||||
mkdir /tmp/demoCA
|
||||
echo 01 > /tmp/demoCA/serial
|
||||
touch /tmp/demoCA/index.txt
|
||||
|
||||
echo "Creating MME certificate for user '$fqdn'"
|
||||
# Create a Root Certification Authority Certificate
|
||||
openssl req -new -batch -x509 -days 3650 -nodes -newkey rsa:1024 -out mme.cacert.pem -keyout mme.cakey.pem -subj /CN=$fqdn/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
|
||||
|
||||
# Generate a Private Key
|
||||
openssl genrsa -out mme.key.pem 1024
|
||||
|
||||
# Generate a CSR (Certificate Signing Request) that will be self-signed
|
||||
openssl req -new -batch -out mme.csr.pem -key mme.key.pem -subj /CN=$fqdn/C=FR/ST=PACA/L=Aix/O=Eurecom/OU=CM
|
||||
|
||||
# Certification authority
|
||||
openssl ca -cert mme.cacert.pem -keyfile mme.cakey.pem -in mme.csr.pem -out mme.cert.pem -outdir . -batch
|
||||
|
||||
if [ ! -d $freediameter_path/etc/freeDiameter ]; then
|
||||
echo "Creating non existing directory: $freediameter_path/etc/freeDiameter/"
|
||||
sudo mkdir -p $freediameter_path/etc/freeDiameter/
|
||||
fi
|
||||
|
||||
sudo mv mme.cakey.pem mme.cert.pem mme.cacert.pem mme.key.pem $freediameter_path/etc/freeDiameter/
|
||||
cd -
|
||||
}
|
||||
|
||||
#$1 if freediameter path
|
||||
#$2 is fqdn
|
||||
function main() {
|
||||
local freediameter_path=$1
|
||||
local fqdn=$2
|
||||
if [ -d $freediameter_path/etc/freeDiameter ]; then
|
||||
if [ -f $freediameter_path/etc/freeDiameter/mme.cert.pem ]; then
|
||||
full_hostname=`cat $freediameter_path/etc/freeDiameter/mme.cert.pem | grep "Subject" | grep "CN" | cut -d '=' -f6`
|
||||
if [ a$full_hostname == a$fqdn ]; then
|
||||
echo_success "MME S6A: Found valid certificate in $freediameter_path/etc/freeDiameter"
|
||||
return 0
|
||||
else
|
||||
echo_error "Bad mme fqdn found in cert file: $full_hostname fqdn is $fqdn"
|
||||
fi
|
||||
else
|
||||
echo_error "File $freediameter_path/etc/freeDiameter/mme.cert.pem not found"
|
||||
fi
|
||||
else
|
||||
echo_error "Directory $freediameter_path/etc/freeDiameter not found"
|
||||
fi
|
||||
echo_error "MME S6A: Did not find valid certificate in $freediameter_path/etc/freeDiameter"
|
||||
echo_warning "MME S6A: generating new certificate in $freediameter_path/etc/freeDiameter..."
|
||||
_create_mme_certs $freediameter_path $fqdn
|
||||
if [ $# -lt 3 ] ; then
|
||||
main $freediameter_path $fqdn 2
|
||||
return $?
|
||||
else
|
||||
echo_error "Could not access to freeDiameter path: $freediameter_path/etc/freeDiameter"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
||||
@@ -1,103 +0,0 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) anylater version.
|
||||
#
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
################################################################################
|
||||
# file create_hss_database
|
||||
# brief
|
||||
# author Lionel Gauthier
|
||||
# company Eurecom
|
||||
# email: lionel.gauthier@eurecom.fr
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
. $THIS_SCRIPT_PATH/build_helper
|
||||
|
||||
|
||||
# arg 1 is mysql user (ex: root)
|
||||
# arg 2 is mysql password (ex: linux)
|
||||
# arg 3 is hss username (ex: hssadmin)
|
||||
# arg 4 is hss password (ex: admin)
|
||||
# arg 5 is database name (ex: oai_db)
|
||||
function main()
|
||||
{
|
||||
EXPECTED_ARGS=5
|
||||
E_BADARGS=65
|
||||
MYSQL=`which mysql`
|
||||
rv=0
|
||||
if [ $# -ne $EXPECTED_ARGS ]
|
||||
then
|
||||
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;"
|
||||
Q1="GRANT ALL PRIVILEGES ON *.* TO '$3'@'localhost' IDENTIFIED BY '$4' WITH GRANT OPTION;"
|
||||
Q2="FLUSH PRIVILEGES;"
|
||||
SQL="${Q1}${Q2}"
|
||||
$MYSQL -u $1 --password=$2 -e "$SQL"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo_error "$3 permissions failed"
|
||||
return 1
|
||||
else
|
||||
echo_success "$3 permissions succeeded"
|
||||
fi
|
||||
|
||||
|
||||
Q1="CREATE DATABASE IF NOT EXISTS ${BTICK}$5${BTICK};"
|
||||
SQL="${Q1}"
|
||||
$MYSQL -u $3 --password=$4 -e "$SQL"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo_error "$5 creation failed"
|
||||
return 1
|
||||
else
|
||||
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
|
||||
|
||||
if [ $? -eq 1 ]; then
|
||||
$MYSQL -u $3 --password=$4 $5 < $OPENAIRCN_DIR/OPENAIRHSS/db/$5.sql
|
||||
if [ $? -ne 0 ]; then
|
||||
echo_error "$5 tables creation failed"
|
||||
return 1
|
||||
else
|
||||
echo_success "$5 tables creation succeeded"
|
||||
fi
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
@@ -1,163 +0,0 @@
|
||||
# Internet
|
||||
# |
|
||||
# PGW_IPV4_ADDRESS_FOR_SGI |
|
||||
# +-----------+-------+------------+---------------+--------------------------+
|
||||
# |host y | | PGW_INTERFACE_NAME_FOR_SGI | |
|
||||
# +-----------+ +------------+---------------+ |
|
||||
# | | |
|
||||
# | +----+----+ (HSS may run on this host |
|
||||
# | | mme_gw | or on another one) |
|
||||
# | +----+----+ |
|
||||
# | | |
|
||||
# | +-----------------+--------------------+ |
|
||||
# | | SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP | |
|
||||
# | | MME_INTERFACE_NAME_FOR_S1_MME | |
|
||||
# +----------------------------+---+--+---------------------------------------+
|
||||
# MME_IPV4_ADDRESS_FOR_S1_MME | (S1-C and S1-U addresses/interfaces may be the same)
|
||||
# SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP
|
||||
# |
|
||||
# |
|
||||
# a.b.c.d |
|
||||
# +---------------+------------+---+--+---------------------------------------+
|
||||
# |eNBx | | ethx | |
|
||||
# +---------------+ +---+--+ |
|
||||
# | | |
|
||||
# | +------+---------+ |
|
||||
# | | lte-softmodem | |
|
||||
# | | or | |
|
||||
# | | oaisim (1)eNB (x UEs) |
|
||||
# | +-------+--------+ |
|
||||
# +---------------------------------+-----------------------------------------+
|
||||
# |
|
||||
# O (RF antenna)
|
||||
|
||||
MME :
|
||||
{
|
||||
|
||||
REALM = "@REALM@"; # DO NOT CHANGE
|
||||
# Define the limits of the system in terms of served eNB and served UE.
|
||||
# When the limits will be reached, overload procedure will take place.
|
||||
MAXENB = 10;
|
||||
MAXUE = 100;
|
||||
RELATIVE_CAPACITY = 10;
|
||||
# Display statistics about whole system (expressed in seconds)
|
||||
MME_STATISTIC_TIMER = 10;
|
||||
EMERGENCY_ATTACH_SUPPORTED = "no";
|
||||
UNAUTHENTICATED_IMSI_SUPPORTED = "no";
|
||||
# ASN1 VERBOSITY: none, info, annoying
|
||||
VERBOSITY = "none";
|
||||
|
||||
|
||||
IP_CAPABILITY = "IPV4V6";
|
||||
|
||||
|
||||
INTERTASK_INTERFACE :
|
||||
{
|
||||
# max queue size per task
|
||||
ITTI_QUEUE_SIZE = 2000000;
|
||||
};
|
||||
|
||||
S6A :
|
||||
{
|
||||
S6A_CONF = "@FREEDIAMETER_PATH@/../etc/freeDiameter/mme_fd.conf";# DO NOT CHANGE
|
||||
HSS_HOSTNAME = "@HSS_HOSTNAME@"; # DO NOT CHANGE
|
||||
};
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 8;
|
||||
SCTP_OUTSTREAMS = 8;
|
||||
};
|
||||
|
||||
# ------- S1AP definitions
|
||||
S1AP :
|
||||
{
|
||||
# outcome drop timer value (seconds)
|
||||
S1AP_OUTCOME_TIMER = 10;
|
||||
};
|
||||
|
||||
# ------- MME served GUMMEI
|
||||
GUMMEI :
|
||||
{
|
||||
# MME code DEFAULT = 0
|
||||
# size = 8 bits
|
||||
# maximum of 256 values, comma separated
|
||||
MME_CODE = [ 1, 30 , 31, 32, 33, 34, 35, 36, 56 , 29 , 8 ];
|
||||
|
||||
# MME GROUP ID DEFAULT = 0
|
||||
# size = 16 bits
|
||||
# maximum of 65535 values, comma separated
|
||||
MME_GID = [ 32768 , 4 , 5 , 30 , 8 , 9 , 50021 ];
|
||||
|
||||
# TA (mcc.mnc:tracking area code) DEFAULT = 208.34:0
|
||||
# max values = 999.999:65535
|
||||
# maximum of 32 values, comma separated
|
||||
TAI_LIST = (
|
||||
{MCC="208" ; MNC="95"; TAC = "1"; } # YOUR PLMN CONFIG HERE
|
||||
);
|
||||
};
|
||||
|
||||
NAS :
|
||||
{
|
||||
# 3GPP TS 33.401 section 7.2.4.3 Procedures for NAS algorithm selection
|
||||
# decreasing preference goes from left to right
|
||||
ORDERED_SUPPORTED_INTEGRITY_ALGORITHM_LIST = [ "EIA2" , "EIA1" , "EIA0" ];
|
||||
ORDERED_SUPPORTED_CIPHERING_ALGORITHM_LIST = [ "EEA0" , "EEA1" , "EEA2" ];
|
||||
};
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
MME_INTERFACE_NAME_FOR_S1_MME = "eth2"; # YOUR NETWORK CONFIG HERE
|
||||
MME_IPV4_ADDRESS_FOR_S1_MME = "192.168.27.101//24"; # YOUR NETWORK CONFIG HERE
|
||||
|
||||
MME_INTERFACE_NAME_FOR_S11_MME = "none";
|
||||
MME_IPV4_ADDRESS_FOR_S11_MME = "0.0.0.0/24";
|
||||
};
|
||||
};
|
||||
|
||||
S-GW :
|
||||
{
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
SGW_INTERFACE_NAME_FOR_S11 = "none";
|
||||
SGW_IPV4_ADDRESS_FOR_S11 = "0.0.0.0/24";
|
||||
|
||||
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP = "eth2"; # YOUR NETWORK CONFIG HERE
|
||||
SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP = "192.168.27.101/24"; # YOUR NETWORK CONFIG HERE
|
||||
SGW_IPV4_PORT_FOR_S1U_S12_S4_UP = 2152; # PREFER NOT CHANGE
|
||||
|
||||
SGW_INTERFACE_NAME_FOR_S5_S8_UP = "none"; # DO NOT CHANGE
|
||||
SGW_IPV4_ADDRESS_FOR_S5_S8_UP = "0.0.0.0/24"; # DO NOT CHANGE
|
||||
};
|
||||
};
|
||||
|
||||
P-GW =
|
||||
{
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
PGW_INTERFACE_NAME_FOR_S5_S8 = "none"; # DO NOT CHANGE
|
||||
PGW_IPV4_ADDRESS_FOR_S5_S8 = "0.0.0.0/24"; # DO NOT CHANGE
|
||||
|
||||
PGW_INTERFACE_NAME_FOR_SGI = "eth0"; # YOUR NETWORK CONFIG HERE
|
||||
PGW_IPV4_ADDRESS_FOR_SGI = "192.168.12.213/24"; # YOUR NETWORK CONFIG HERE
|
||||
PGW_MASQUERADE_SGI = "yes"; # YOUR NETWORK CONFIG HERE
|
||||
};
|
||||
|
||||
IP_ADDRESS_POOL :
|
||||
{
|
||||
IPV4_LIST = (
|
||||
"192.188.0.0/24", # YOUR NETWORK CONFIG HERE
|
||||
"192.188.1.0/24" # YOUR NETWORK CONFIG HERE
|
||||
);
|
||||
IPV6_LIST = (
|
||||
"2014:02:26::0/120" # YOUR NETWORK CONFIG HERE
|
||||
);
|
||||
};
|
||||
|
||||
DEFAULT_DNS_IPV4_ADDRESS = "192.168.106.12"; # YOUR NETWORK CONFIG HERE
|
||||
DEFAULT_DNS_SEC_IPV4_ADDRESS = "192.168.12.100"; # YOUR NETWORK CONFIG HERE
|
||||
};
|
||||
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
MME :
|
||||
{
|
||||
|
||||
REALM = "@REALM@"; # DO NOT CHANGE
|
||||
# Define the limits of the system in terms of served eNB and served UE.
|
||||
# When the limits will be reached, overload procedure will take place.
|
||||
MAXENB = 10;
|
||||
MAXUE = 100;
|
||||
RELATIVE_CAPACITY = 10;
|
||||
# Display statistics about whole system (expressed in seconds)
|
||||
MME_STATISTIC_TIMER = 10;
|
||||
EMERGENCY_ATTACH_SUPPORTED = "no";
|
||||
UNAUTHENTICATED_IMSI_SUPPORTED = "no";
|
||||
# ASN1 VERBOSITY: none, info, annoying
|
||||
VERBOSITY = "none";
|
||||
|
||||
|
||||
IP_CAPABILITY = "IPV4V6";
|
||||
|
||||
|
||||
INTERTASK_INTERFACE :
|
||||
{
|
||||
# max queue size per task
|
||||
ITTI_QUEUE_SIZE = 2000000;
|
||||
};
|
||||
|
||||
S6A :
|
||||
{
|
||||
S6A_CONF = "@FREEDIAMETER_PATH@/../etc/freeDiameter/mme_fd.conf";# DO NOT CHANGE
|
||||
HSS_HOSTNAME = "@HSS_HOSTNAME@"; # DO NOT CHANGE
|
||||
};
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 8;
|
||||
SCTP_OUTSTREAMS = 8;
|
||||
};
|
||||
|
||||
# ------- S1AP definitions
|
||||
S1AP :
|
||||
{
|
||||
# outcome drop timer value (seconds)
|
||||
S1AP_OUTCOME_TIMER = 10;
|
||||
};
|
||||
|
||||
# ------- MME served GUMMEI
|
||||
GUMMEI :
|
||||
{
|
||||
# MME code DEFAULT = 0
|
||||
# size = 8 bits
|
||||
# maximum of 256 values, comma separated
|
||||
MME_CODE = [ 1, 30 , 31, 32, 33, 34, 35, 36, 56 , 29 , 8 ];
|
||||
|
||||
# MME GROUP ID DEFAULT = 0
|
||||
# size = 16 bits
|
||||
# maximum of 65535 values, comma separated
|
||||
MME_GID = [ 32768 , 4 , 5 , 30 , 8 , 9 , 50021 ];
|
||||
|
||||
# TA (mcc.mnc:tracking area code) DEFAULT = 208.34:0
|
||||
# max values = 999.999:65535
|
||||
# maximum of 32 values, comma separated
|
||||
TAI_LIST = (
|
||||
{MCC="208" ; MNC="95"; TAC = "1"; } # YOUR PLMN CONFIG HERE
|
||||
);
|
||||
};
|
||||
|
||||
NAS :
|
||||
{
|
||||
# 3GPP TS 33.401 section 7.2.4.3 Procedures for NAS algorithm selection
|
||||
# decreasing preference goes from left to right
|
||||
ORDERED_SUPPORTED_INTEGRITY_ALGORITHM_LIST = [ "EIA2" , "EIA1" , "EIA0" ];
|
||||
ORDERED_SUPPORTED_CIPHERING_ALGORITHM_LIST = [ "EEA0" , "EEA1" , "EEA2" ];
|
||||
};
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
MME_INTERFACE_NAME_FOR_S1_MME = "tun2"; # DO NOT CHANGE
|
||||
MME_IPV4_ADDRESS_FOR_S1_MME = "192.188.2.2/24"; # DO NOT CHANGE
|
||||
|
||||
MME_INTERFACE_NAME_FOR_S11_MME = "none";
|
||||
MME_IPV4_ADDRESS_FOR_S11_MME = "0.0.0.0/24";
|
||||
};
|
||||
};
|
||||
|
||||
S-GW :
|
||||
{
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
SGW_INTERFACE_NAME_FOR_S11 = "none";
|
||||
SGW_IPV4_ADDRESS_FOR_S11 = "0.0.0.0/24";
|
||||
|
||||
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP = "lo"; # DO NOT CHANGE
|
||||
SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP = "127.0.0.1/24"; # DO NOT CHANGE
|
||||
SGW_IPV4_PORT_FOR_S1U_S12_S4_UP = 2152; # PREFER NOT CHANGE
|
||||
|
||||
SGW_INTERFACE_NAME_FOR_S5_S8_UP = "none"; # DO NOT CHANGE
|
||||
SGW_IPV4_ADDRESS_FOR_S5_S8_UP = "0.0.0.0/24"; # DO NOT CHANGE
|
||||
};
|
||||
};
|
||||
|
||||
P-GW =
|
||||
{
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
PGW_INTERFACE_NAME_FOR_S5_S8 = "none"; # DO NOT CHANGE
|
||||
PGW_IPV4_ADDRESS_FOR_S5_S8 = "0.0.0.0/24"; # DO NOT CHANGE
|
||||
|
||||
PGW_INTERFACE_NAME_FOR_SGI = "eth0"; # YOUR NETWORK CONFIG HERE
|
||||
PGW_IPV4_ADDRESS_FOR_SGI = "192.168.12.213/24"; # YOUR NETWORK CONFIG HERE
|
||||
PGW_MASQUERADE_SGI = "yes"; # YOUR NETWORK CONFIG HERE
|
||||
};
|
||||
|
||||
IP_ADDRESS_POOL :
|
||||
{
|
||||
IPV4_LIST = (
|
||||
"192.187.0.0/24", # YOUR NETWORK CONFIG HERE
|
||||
"192.187.1.0/24" # YOUR NETWORK CONFIG HERE
|
||||
);
|
||||
IPV6_LIST = (
|
||||
"2014:02:26::0/120" # YOUR NETWORK CONFIG HERE
|
||||
);
|
||||
};
|
||||
|
||||
DEFAULT_DNS_IPV4_ADDRESS = "192.168.106.12"; # YOUR NETWORK CONFIG HERE
|
||||
DEFAULT_DNS_SEC_IPV4_ADDRESS = "192.168.12.100"; # YOUR NETWORK CONFIG HERE
|
||||
};
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
|
||||
@@ -1,199 +0,0 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) anylater version.
|
||||
#
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
################################################################################
|
||||
# file run_epc
|
||||
# brief run script for EPC (MME+SGW-LITE).
|
||||
# author Lionel GAUTHIER
|
||||
# company Eurecom
|
||||
# email: lionel.gauthier@eurecom.fr
|
||||
|
||||
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
source $THIS_SCRIPT_PATH/build_helper
|
||||
declare -i g_run_msc_gen=0
|
||||
declare g_msc_dir="/tmp"
|
||||
|
||||
set_openair_env
|
||||
|
||||
|
||||
function help()
|
||||
{
|
||||
echo_error " "
|
||||
echo_error "Usage: run_epc [OPTION]..."
|
||||
echo_error "Run the EPC executable (MME+SGW-LITE)."
|
||||
echo_error " "
|
||||
echo_error "Options:"
|
||||
echo_error "Mandatory arguments to long options are mandatory for short options too."
|
||||
echo_error " -g, --gdb Run with GDB."
|
||||
echo_error " -h, --help Print this help."
|
||||
echo_error " -K, --itti-dump-file ITTI dump file containing all ITTI events occuring during EPC runtime."
|
||||
echo_error " -l, --local-enb EPC run on the same eNB host."
|
||||
echo_error " -m, --mscgen directory Generate mscgen output files in a directory"
|
||||
echo_error " -v, --verbosity-level Verbosity level (0,1,2)."
|
||||
echo_error " 0 -> ASN1 XER printf off"
|
||||
echo_error " 1 -> ASN1 XER printf on and ASN1 debug off"
|
||||
echo_error " 2 -> ASN1 XER printf on and ASN1 debug on"
|
||||
}
|
||||
|
||||
function do_msc_gen()
|
||||
{
|
||||
cd $g_msc_dir
|
||||
last_created_file=`ls -t mscgen* | head -1 | tr -d ':'`
|
||||
$OPENAIR_DIR/targets/SCRIPTS/msc_gen.py
|
||||
sync
|
||||
last_created_file2=`ls -t mscgen* | head -1 | tr -d ':'`
|
||||
|
||||
if [ x"$last_created_file" != x"$last_created_file2" ]; then
|
||||
if [ -f ./$last_created_file2/oai_mscgen_page_0.png ]; then
|
||||
command -v eog 2>/dev/null && eog ./$last_created_file2/oai_mscgen_page_0.png
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function control_c()
|
||||
# run if user hits control-c
|
||||
{
|
||||
echo_warning "\nExiting by ctrl+c\n"
|
||||
if [ $g_run_msc_gen -eq 1 ]; then
|
||||
do_msc_gen
|
||||
fi
|
||||
exit $?
|
||||
}
|
||||
|
||||
function main()
|
||||
{
|
||||
local -i run_gdb=0
|
||||
local exe_arguments=" "
|
||||
local -i epc_local=0
|
||||
local -r epc_default_config_file="$OPENAIR_TARGETS/bin/epc.conf"
|
||||
local epc_config_file=$epc_default_config_file
|
||||
|
||||
until [ -z "$1" ]
|
||||
do
|
||||
case "$1" in
|
||||
-g | --gdb)
|
||||
run_gdb=1
|
||||
echo "setting GDB flag to: $GDB"
|
||||
shift;
|
||||
;;
|
||||
-h | --help)
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
-K | --itti-dump-file)
|
||||
local itti_dump_file=$2
|
||||
# can omit file name if last arg on the line
|
||||
if [ "x$itti_dump_file" = "x" ]; then
|
||||
itti_dump_file="/tmp/epc_itti.log"
|
||||
else
|
||||
shift 1;
|
||||
fi
|
||||
echo "setting ITTI dump file to: $itti_dump_file"
|
||||
exe_arguments="$exe_arguments -K $itti_dump_file"
|
||||
shift 1;
|
||||
;;
|
||||
-l | --local-enb)
|
||||
epc_local=1
|
||||
shift;
|
||||
;;
|
||||
-m | --mscgen)
|
||||
g_msc_dir=$2
|
||||
if [ -d "$g_msc_dir" ]; then
|
||||
echo "setting mscgen log files to dir: $g_msc_dir"
|
||||
g_run_msc_gen=1
|
||||
shift 2;
|
||||
else
|
||||
echo_error "Mscgen log dir does not exist"
|
||||
exit -1
|
||||
fi
|
||||
;;
|
||||
-v | --verbosity-level)
|
||||
local verbosity_level=$2
|
||||
echo "setting verbosity level to: $verbosity_level"
|
||||
exe_arguments="-v $verbosity_level $exe_arguments"
|
||||
shift 2;
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option $1"
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
set_openair_env
|
||||
cecho "OPENAIR_DIR = $OPENAIR_DIR" $green
|
||||
|
||||
|
||||
if [ ! -e $OPENAIR_DIR/targets/bin/mme_gw.Rel10 ]; then
|
||||
echo_fatal "Cannot find $OPENAIR_DIR/targets/bin/mme_gw.Rel10 executable, have a look at the output of build_epc executable"
|
||||
fi
|
||||
|
||||
if [ $epc_local -eq 1 ]; then
|
||||
epc_config_file="$OPENAIR_DIR/targets/bin/epc.local.enb.conf"
|
||||
fi
|
||||
|
||||
if [ $g_run_msc_gen -eq 1 ]; then
|
||||
rm -f /tmp/openair.msc.*
|
||||
fi
|
||||
|
||||
exe_arguments="-O $epc_config_file $exe_arguments"
|
||||
|
||||
if [ $run_gdb -eq 0 ]; then
|
||||
# trap keyboard interrupt (control-c)
|
||||
trap control_c SIGINT
|
||||
$OPENAIR_DIR/targets/bin/mme_gw.Rel10 `echo $exe_arguments` 2>&1
|
||||
else
|
||||
# trap keyboard interrupt (control-c) is done by gdb
|
||||
touch ~/.gdb_mme_gw
|
||||
chmod 777 ~/.gdb_mme_gw
|
||||
echo "file $OPENAIR_DIR/targets/bin/mme_gw.Rel10" > ~/.gdb_mme_gw
|
||||
echo "set args $exe_arguments " >> ~/.gdb_mme_gw
|
||||
echo "run" >> ~/.gdb_mme_gw
|
||||
cat ~/.gdb_mme_gw
|
||||
gdb -n -x ~/.gdb_mme_gw
|
||||
if [ $g_run_msc_gen -eq 1 ]; then
|
||||
do_msc_gen
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
sudo echo
|
||||
is_sudo=$?
|
||||
if [[ "$is_sudo" -ne 0 ]]; then
|
||||
echo_error "This script must be run by root or a sudo'er"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
main "$@"
|
||||
@@ -1,113 +0,0 @@
|
||||
#!/bin/bash
|
||||
################################################################################
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
#
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) anylater version.
|
||||
#
|
||||
#
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@eurecom.fr
|
||||
#
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
#
|
||||
################################################################################
|
||||
# file run_hss
|
||||
# brief run script for HSS (!EXPERIMENTAL!).
|
||||
# author Lionel GAUTHIER
|
||||
# company Eurecom
|
||||
# email: lionel.gauthier@eurecom.fr
|
||||
|
||||
|
||||
################################
|
||||
# include helper functions
|
||||
################################
|
||||
THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
|
||||
source $THIS_SCRIPT_PATH/build_helper
|
||||
|
||||
|
||||
function help()
|
||||
{
|
||||
echo_error " "
|
||||
echo_error "Usage: run_hss [OPTION]..."
|
||||
echo_error "Run the HSS executable (experimental)."
|
||||
echo_error " "
|
||||
echo_error "Options:"
|
||||
echo_error "Mandatory arguments to long options are mandatory for short options too."
|
||||
echo_error " -g, --gdb Run with GDB."
|
||||
echo_error " -h, --help Print this help."
|
||||
}
|
||||
|
||||
|
||||
|
||||
function main()
|
||||
{
|
||||
local -i run_gdb=0
|
||||
local exe_arguments=" -c ./hss.conf"
|
||||
|
||||
until [ -z "$1" ]
|
||||
do
|
||||
case "$1" in
|
||||
-g | --gdb)
|
||||
run_gdb=1
|
||||
echo "setting GDB flag to: $GDB"
|
||||
shift;
|
||||
;;
|
||||
-h | --help)
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option $1"
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
set_openair_env
|
||||
cecho "OPENAIR_DIR = $OPENAIR_DIR" $green
|
||||
cecho "OPENAIR1_DIR = $OPENAIR1_DIR" $green
|
||||
cecho "OPENAIR2_DIR = $OPENAIR2_DIR" $green
|
||||
cecho "OPENAIR3_DIR = $OPENAIR3_DIR" $green
|
||||
cecho "OPENAIRCN_DIR = $OPENAIRCN_DIR" $green
|
||||
cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green
|
||||
|
||||
|
||||
if [ ! -e $OPENAIR_TARGETS/bin/openair-hss ]; then
|
||||
echo_fatal "Cannot find $OPENAIR_TARGETS/bin/openair-hss executable"
|
||||
fi
|
||||
|
||||
# for file config relative path
|
||||
cd $OPENAIR_TARGETS/bin
|
||||
|
||||
if [ $run_gdb -eq 0 ]; then
|
||||
exec $OPENAIR_TARGETS/bin/openair-hss `echo $exe_arguments` 2>&1
|
||||
else
|
||||
touch ~/.gdb_hss
|
||||
chmod 777 ~/.gdb_hss
|
||||
echo "file $OPENAIR_TARGETS/bin/openair-hss" > ~/.gdb_hss
|
||||
echo "set args $exe_arguments " >> ~/.gdb_hss
|
||||
echo "run" >> ~/.gdb_hss
|
||||
cat ~/.gdb_hss
|
||||
gdb -n -x ~/.gdb_hss 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
main "$@"
|
||||
@@ -1,97 +0,0 @@
|
||||
# -------- Local ---------
|
||||
|
||||
# Uncomment if the framework cannot resolv it.
|
||||
Identity = "@MME_FQDN@";
|
||||
Realm = "@REALM@";
|
||||
|
||||
# TLS configuration (see previous section)
|
||||
TLS_Cred = "@FREEDIAMETER_PATH@/../etc/freeDiameter/mme.cert.pem",
|
||||
"@FREEDIAMETER_PATH@/../etc/freeDiameter/mme.key.pem";
|
||||
TLS_CA = "@FREEDIAMETER_PATH@/../etc/freeDiameter/mme.cacert.pem";
|
||||
|
||||
# Disable use of TCP protocol (only listen and connect in SCTP)
|
||||
# Default : TCP enabled
|
||||
@TRANSPORT_option@;
|
||||
|
||||
# This option is ignored if freeDiameter is compiled with DISABLE_SCTP option.
|
||||
# Prefer TCP instead of SCTP for establishing new connections.
|
||||
# This setting may be overwritten per peer in peer configuration blocs.
|
||||
# Default : SCTP is attempted first.
|
||||
@TRANSPORT_PREFER_TCP_option@;
|
||||
|
||||
|
||||
No_IPv6;
|
||||
|
||||
# Overwrite the number of SCTP streams. This value should be kept low,
|
||||
# especially if you are using TLS over SCTP, because it consumes a lot of
|
||||
# resources in that case. See tickets 19 and 27 for some additional details on
|
||||
# this.
|
||||
# Limit the number of SCTP streams
|
||||
SCTP_streams = 3;
|
||||
|
||||
|
||||
# By default, freeDiameter acts as a Diameter Relay Agent by forwarding all
|
||||
# messages it cannot handle locally. This parameter disables this behavior.
|
||||
NoRelay;
|
||||
|
||||
|
||||
TLS_old_method;
|
||||
|
||||
|
||||
AppServThreads = 1;
|
||||
|
||||
# Specify the addresses on which to bind the listening server. This must be
|
||||
# specified if the framework is unable to auto-detect these addresses, or if the
|
||||
# auto-detected values are incorrect. Note that the list of addresses is sent
|
||||
# in CER or CEA message, so one should pay attention to this parameter if some
|
||||
# adresses should be kept hidden.
|
||||
@ListenOn@
|
||||
|
||||
@DIAMETER_PORT@;
|
||||
@DIAMETER_SEC_PORT@;
|
||||
|
||||
# -------- Extensions ---------
|
||||
|
||||
# Uncomment (and create rtd.conf) to specify routing table for this peer.
|
||||
#LoadExtension = "rt_default.fdx" : "rtd.conf";
|
||||
|
||||
# Uncomment (and create acl.conf) to allow incoming connections from other peers.
|
||||
#LoadExtension = "acl_wl.fdx" : "acl.conf";
|
||||
|
||||
# Uncomment to display periodic state information
|
||||
#LoadExtension = "dbg_monitor.fdx";
|
||||
|
||||
# Uncomment to enable an interactive Python interpreter session.
|
||||
# (see doc/dbg_interactive.py.sample for more information)
|
||||
#LoadExtension = "dbg_interactive.fdx";
|
||||
|
||||
# Load the RFC4005 dictionary objects
|
||||
#LoadExtension = "dict_nasreq.fdx";
|
||||
|
||||
LoadExtension = "dict_nas_mipv6.fdx";
|
||||
LoadExtension = "dict_s6a.fdx";
|
||||
|
||||
# Load RFC4072 dictionary objects
|
||||
#LoadExtension = "dict_eap.fdx";
|
||||
|
||||
# Load the Diameter EAP server extension (requires diameap.conf)
|
||||
#LoadExtension = "app_diameap.fdx" : "diameap.conf";
|
||||
|
||||
# Load the Accounting Server extension (requires app_acct.conf)
|
||||
#LoadExtension = "app_acct.fdx" : "app_acct.conf";
|
||||
|
||||
# -------- Peers ---------
|
||||
|
||||
# The framework will actively attempt to establish and maintain a connection
|
||||
# with the peers listed here.
|
||||
# For only accepting incoming connections, see the acl_wl.fx extension.
|
||||
|
||||
# ConnectPeer
|
||||
# Declare a remote peer to which this peer must maintain a connection.
|
||||
# In addition, this allows specifying non-default parameters for this peer only
|
||||
# (for example disable SCTP with this peer, or use RFC3588-flavour TLS).
|
||||
# Note that by default, if a peer is not listed as a ConnectPeer entry, an
|
||||
# incoming connection from this peer will be rejected. If you want to accept
|
||||
# incoming connections from other peers, see the acl_wl.fdx? extension which
|
||||
# allows exactly this.
|
||||
@ConnectPeer@ = "@HSS_FQDN@" { ConnectTo = "@HSS_IP@"; No_IPv6; No_TLS ; port = 3868; Realm = "@REALM@"; };
|
||||
Reference in New Issue
Block a user