debian packaging is initially done.

network script is added
move testscript in debian/rules
This commit is contained in:
Sukchan Lee 2017-10-27 16:15:14 +00:00
parent fdae399c74
commit 4e33365bf4
25 changed files with 118 additions and 785 deletions

View File

@ -459,10 +459,15 @@ AC_CONFIG_FILES([src/pgw/Makefile])
AC_CONFIG_FILES([src/pcrf/Makefile])
AC_CONFIG_FILES([src/Makefile])
AC_CONFIG_FILES([support/config/nextepc.conf])
AC_CONFIG_FILES([support/config/mme.conf])
AC_CONFIG_FILES([support/config/sgw.conf])
AC_CONFIG_FILES([support/config/pgw.conf])
AC_CONFIG_FILES([support/config/hss.conf])
AC_CONFIG_FILES([support/config/pcrf.conf])
AC_CONFIG_FILES([support/config/Makefile])
AC_CONFIG_FILES([support/freeDiameter/mme.conf])
AC_CONFIG_FILES([support/freeDiameter/hss.conf])
AC_CONFIG_FILES([support/freeDiameter/pgw.conf])
AC_CONFIG_FILES([support/freeDiameter/hss.conf])
AC_CONFIG_FILES([support/freeDiameter/pcrf.conf])
AC_CONFIG_FILES([support/freeDiameter/Makefile])
AC_CONFIG_FILES([support/systemd/nextepc-mmed.service])
@ -486,7 +491,8 @@ source code location : ${srcdir}
compiler : ${CC}
compiler flags : ${CFLAGS}
linker flags : ${LDFLAGS} ${LIBS}
exec directory : ${BIN_DIR}
bin directory : ${BIN_DIR}
lib directory : ${LIB_DIR}/nextepc
config directory : ${SYSCONF_DIR}/nextepc
log directory : ${LOCALSTATE_DIR}/log/nextepc
"

View File

@ -1,14 +0,0 @@
{
DB_URI : "mongodb://localhost/nextepc",
LOG_PATH : "/var/log/nextepc/hss.log",
TRACE:
{
FD: 1,
OTHERS: 1,
}
HSS :
{
FD_CONF_PATH : "/etc/nextepc/freeDiameter/hss.conf",
}
}

View File

@ -1,15 +0,0 @@
{
DB_URI : "mongodb://localhost/nextepc",
LOG_PATH : "/var/log/nextepc/pcrf.log",
TRACE:
{
FD: 1,
OTHERS: 1,
}
PCRF :
{
FD_CONF_PATH : "/etc/nextepc/freeDiameter/pcrf.conf",
}
}

View File

@ -1,5 +1,6 @@
usr/lib/*/nextepc/*
var/log/nextepc
var/run/nextepc
etc/nextepc/nextepc.conf
etc/nextepc/freeDiameter/cacert.pem
support/logrotate/nextepc /etc/logrotate.d

View File

@ -2,5 +2,5 @@ usr/bin/nextepc-hssd
etc/nextepc/freeDiameter/hss.conf
etc/nextepc/freeDiameter/hss.cert.pem
etc/nextepc/freeDiameter/hss.key.pem
debian/etc/nextepc/hss.conf etc/nextepc
etc/nextepc/hss.conf
support/systemd/nextepc-hssd.service lib/systemd/system

View File

@ -2,5 +2,5 @@ usr/bin/nextepc-mmed
etc/nextepc/freeDiameter/mme.conf
etc/nextepc/freeDiameter/mme.cert.pem
etc/nextepc/freeDiameter/mme.key.pem
debian/etc/nextepc/mme.conf etc/nextepc
etc/nextepc/mme.conf
support/systemd/nextepc-mmed.service lib/systemd/system

View File

@ -2,5 +2,5 @@ usr/bin/nextepc-pcrfd
etc/nextepc/freeDiameter/pcrf.conf
etc/nextepc/freeDiameter/pcrf.cert.pem
etc/nextepc/freeDiameter/pcrf.key.pem
debian/etc/nextepc/pcrf.conf etc/nextepc
etc/nextepc/pcrf.conf
support/systemd/nextepc-pcrfd.service lib/systemd/system

View File

@ -2,5 +2,6 @@ usr/bin/nextepc-pgwd
etc/nextepc/freeDiameter/pgw.conf
etc/nextepc/freeDiameter/pgw.cert.pem
etc/nextepc/freeDiameter/pgw.key.pem
debian/etc/nextepc/pgw.conf etc/nextepc
etc/nextepc/pgw.conf
support/systemd/nextepc-pgwd.service lib/systemd/system
support/network/nextepc etc/network/interfaces.d

View File

@ -1,3 +1,3 @@
usr/bin/nextepc-sgwd
debian/etc/nextepc/sgw.conf etc/nextepc
etc/nextepc/sgw.conf
support/systemd/nextepc-sgwd.service lib/systemd/system

10
debian/rules vendored
View File

@ -14,5 +14,11 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
dh $@ --with autoreconf --with systemd
#override_dh_auto_test:
# skip 'make test' as currently it expects config/log in system paths
override_dh_auto_test:
mkdir -p debian/test/etc/nextepc/freeDiameter debian/test/var/log/nextepc
sed 's?@SYSCONF_DIR@?'`pwd`'/debian/test/etc?g;s?@LOCALSTATE_DIR@?'`pwd`'/debian/test/var?g' support/config/nextepc.conf.in > debian/test/etc/nextepc/nextepc.conf
for i in `find support/freeDiameter -name '*.conf.in' -printf "%f\n" | sed 's/.in$$//g'`; do \
sed 's?@SYSCONF_DIR@/nextepc?'`pwd`'/support?g;s?@LIB_DIR@/nextepc/\([_a-z0-9]*\)\.so?'`pwd`'/lib/fd/extensions/\1/.libs/\1.so?g' support/freeDiameter/$$i.in > debian/test/etc/nextepc/freeDiameter/$$i; \
done;
test/testepc -f debian/test/etc/nextepc/nextepc.conf -c
rm -rf debian/test

View File

@ -104,14 +104,29 @@ AC_DEFINE_UNQUOTED([FD_PROJECT_VERSION_API],
[6],
[API version of this package])
PREFIX=$ac_default_prefix
if test "x$prefix" != "xNONE"; then
PREFIX=$prefix
fi
# adl_RECURSIVE_EVAL(VALUE, RESULT)
# =================================
# Interpolate the VALUE in loop until it doesn't change,
# and set the result to $RESULT.
# WARNING: It's easy to get an infinite loop with some unsane input.
# For example ${datadir} becomes ${datarootdir}, and then ${prefix}/share, and
# finally ${prefix} is replaced by the prefix.
AC_DEFUN([adl_RECURSIVE_EVAL],
[_lcl_receval="$1"
$2=`(test "x$prefix" = xNONE && prefix="$ac_default_prefix"
test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
_lcl_receval_old=''
while test "[$]_lcl_receval_old" != "[$]_lcl_receval"; do
_lcl_receval_old="[$]_lcl_receval"
eval _lcl_receval="\"[$]_lcl_receval\""
done
echo "[$]_lcl_receval")`])
adl_RECURSIVE_EVAL(["${libdir}"], [LIB_DIR])
adl_RECURSIVE_EVAL(["${sysconfdir}"], [SYSCONF_DIR])
AC_DEFINE_UNQUOTED([DEFAULT_CONF_PATH],
["${PREFIX}/etc/freeDiameter"], [Default Configuration Path])
["${SYSCONF_DIR}/nextepc/freeDiameter"], [Default Configuration Path])
AC_DEFINE_UNQUOTED([DEFAULT_EXTENSIONS_PATH],
["${PREFIX}/lib/freeDiameter"], [Default Configuration Path])
["${LIB_DIR}/nextepc"], [Default Extensions Path])
AC_SUBST(PREFIX)
@ -172,6 +187,6 @@ source code location : ${srcdir}
compiler : ${CC}
compiler flags : ${CFLAGS}
linker flags : ${LDFLAGS} ${LIBS}
config directory : `eval echo \`echo ${sysconfdir}/freeDiameter\``
extention directory : `eval echo \`echo ${localstatedir}/freeDiameter\``
config directory : ${SYSCONF_DIR}/nextepc/freeDiameter
extensions directory : ${LIB_DIR}/nextepc
"

View File

@ -1,4 +1,11 @@
configfiles = nextepc.conf
configfiles = \
nextepc.conf \
mme.conf \
sgw.conf \
pgw.conf \
hss.conf \
pcrf.conf \
$(NULL)
configdir = ${sysconfdir}/nextepc

View File

@ -0,0 +1,15 @@
{
DB_URI : "mongodb://localhost/nextepc",
LOG_PATH : "@LOCALSTATE_DIR@/log/nextepc/nextepc.log",
TRACE:
{
FD: 1,
OTHERS: 1,
}
HSS :
{
FD_CONF_PATH : "@SYSCONF_DIR@/nextepc/freeDiameter/hss.conf",
}
}

View File

@ -1,6 +1,6 @@
{
DB_URI : "mongodb://localhost/nextepc",
LOG_PATH : "/var/log/nextepc/mme.log",
LOG_PATH : "@LOCALSTATE_DIR@/log/nextepc/nextepc.log",
TRACE:
{
S1AP: 1,
@ -12,7 +12,7 @@
MME :
{
FD_CONF_PATH : "/etc/nextepc/freeDiameter/mme.conf",
FD_CONF_PATH : "@SYSCONF_DIR@/nextepc/freeDiameter/mme.conf",
DEFAULT_PAGING_DRX : "v64",
#RELATIVE_CAPACITY : 255,
NETWORK :

View File

@ -0,0 +1,15 @@
{
DB_URI : "mongodb://localhost/nextepc",
LOG_PATH : "@LOCALSTATE_DIR@/log/nextepc/nextepc.log",
TRACE:
{
FD: 1,
OTHERS: 1,
}
PCRF :
{
FD_CONF_PATH : "@SYSCONF_DIR@/nextepc/freeDiameter/pcrf.conf",
}
}

View File

@ -1,6 +1,6 @@
{
DB_URI : "mongodb://localhost/nextepc",
LOG_PATH : "/var/log/nextepc/pgw.log",
LOG_PATH : "@LOCALSTATE_DIR@/log/nextepc/nextepc.log",
TRACE:
{
FD: 1,
@ -10,7 +10,7 @@
PGW :
{
FD_CONF_PATH : "/etc/nextepc/freeDiameter/pgw.conf",
FD_CONF_PATH : "@SYSCONF_DIR@/nextepc/freeDiameter/pgw.conf",
NETWORK :
{
GTPC_IPV4: "127.76.0.3",

View File

@ -1,5 +1,6 @@
{
LOG_PATH : "/var/log/nextepc/sgw.log",
DB_URI : "mongodb://localhost/nextepc",
LOG_PATH : "@LOCALSTATE_DIR@/log/nextepc/nextepc.log",
TRACE:
{
GTP: 1,

View File

@ -1,709 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dictionary SYSTEM "dictionary.dtd">
<!--******************* Diccionario Gx === German Barros ******************************************************************* -->
<dictionary>
<!-- ******************************************************** -->
<!-- ********************* Vendors ************************** -->
<!-- ******************************************************** -->
<vendor id="10415" name="3GPP" />
<!-- ******************************************************** -->
<!-- ***************** Gx Application ********************* -->
<!-- ******************************************************** -->
<application id="16777238" name="Gx">
<!-- ====================================================================== -->
<!-- ========================== COMMAND CODES =========================== -->
<!-- ====================================================================== -->
<!-- *** Command-Codes *** -->
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.6.2 and 5.6.3 -->
<command name="CC" code="272" vendor-id="10415">
</command>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.6.4 and 5.6.5 -->
<command name="RA" code="258" vendor-id="10415" />
<!-- ====================================================================== -->
<!-- ========================= Gx Specific AVPs ======================== -->
<!-- ====================================================================== -->
<!-- Ref = [3GPP - 29.214] 5.3.2 -->
<avp name="Access-Network-Charging-Address" code="501" mandatory="must"
may-encrypt="yes" vendor-id="10415">
<type type-name="Address" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.1 -->
<avp name="Bearer-Usage" vendor-id="10415" code="1000" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="GENERAL" code="0" />
<enum name="IMS_SIGNALLING" code="1" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.23 -->
<avp name="Bearer-Control-Mode" vendor-id="10415" code="1023"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="UE_ONLY" code="0" />
<enum name="RESERVED" code="1" />
<enum name="UE_NW" code="2" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.8 -->
<avp name="Metering-Method" vendor-id="10415" code="1007"
mandatory="must" may-encrypt="yes" protected="may" type="Enumerated">
<type type-name="Enumerated" />
<enum name="DURATION" code="0" />
<enum name="VOLUME" code="1" />
<enum name="DURATION_VOLUME" code="2" />
</avp>
<!-- [3GPP TS 29.229 V7.7.0] , clause 6.3.20 -->
<avp name="Primary-Event-Charging-Function-Name" vendor-id="10415"
code="619" mandatory="must" may-encrypt="yes">
<type type-name="DiameterURI" />
</avp>
<!-- [3GPP TS 29.229 V7.7.0] , clause 6.3.21 -->
<avp name="Secondary-Event-Charging-Function-Name" vendor-id="10415"
code="620" mandatory="must" may-encrypt="yes">
<type type-name="DiameterURI" />
</avp>
<!-- [3GPP TS 29.229 V7.7.0] , clause 6.3.22 -->
<avp name="Primary-Charging-Collection-Function-Name" vendor-id="10415"
code="621" mandatory="must" may-encrypt="yes">
<type type-name="DiameterURI" />
</avp>
<!-- [3GPP TS 29.229 V7.7.0] , clause 6.3.23 -->
<avp name="Secondary-Charging-Collection-Function-Name" vendor-id="10415"
code="622" mandatory="must" may-encrypt="yes">
<type type-name="DiameterURI" />
</avp>
<!-- [3GPP TS 29.214 v7.3.0] , clause 5.3.4 -->
<avp name="Access-Network-Charging-Identifier-Value" vendor-id="10415"
code="503" mandatory="must" may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [3GPP TS 29.061 V7.9.0] , clause 16.4.7 -->
<avp name="3GPP-RAT-Type" vendor-id="10415" code="21" mandatory="mustnot"
may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- Ref = RFC 4006 chap 8.48 -->
<avp name="Subscription-Id-Data" code="444" mandatory="must"
may-encrypt="yes">
<type type-name="UTF8String" />
</avp>
<!-- Ref = RFC 4006 chap 8.47 -->
<avp name="Subscription-Id-Type" code="450" mandatory="must"
protected="may" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="END_USER_E164" code="0" />
<enum name="END_USER_IMSI" code="1" />
<enum name="END_USER_SIP_URI" code="2" />
<enum name="END_USER_NAI" code="3" />
<enum name="END_USER_PRIVATE" code="4" />
</avp>
<!-- [RFC 4006] , clause 8.2 -->
<avp name="CC-Request-Number" code="415" mandatory="must"
may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [RFC 4006] , clause 8.3 -->
<avp name="CC-Request-Type" code="416" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="INITIAL_REQUEST" code="1" />
<enum name="UPDATE_REQUEST" code="2" />
<enum name="TERMINATION_REQUEST" code="3" />
<enum name="EVENT_REQUEST" code="4" />
</avp>
<!-- [RFC 4006] , clause 8.38 -->
<avp name="Redirect-Address-Type" code="433" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="IPV4_ADDRESS" code="0" />
<enum name="IPV6_ADDRESS" code="1" />
<enum name="URL" code="2" />
<enum name="SIP_URI" code="3" />
</avp>
<!-- [RFC 4006] , clause 8.39 -->
<avp name="Redirect-Server-Address" code="435" mandatory="must"
may-encrypt="yes">
<type type-name="UTF8String" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.19 -->
<avp name="PCC-Rule-Status" vendor-id="10415" code="1019"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="ACTIVE" code="0" />
<enum name="INACTIVE" code="1" />
<enum name="TEMPORARILY INACTIVE" code="2" />
</avp>
<!-- [RFC 4005] , clause 6.11.1 -->
<avp name="Framed-IP-Address" code="8" mandatory="must"
may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [RFC 4005] , clause 6.11.6 -->
<avp name="Framed-IPv6-Prefix" code="97" mandatory="must"
may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [RFC 4005] , clause 4.5 -->
<avp name="Called-Station-Id" code="30" mandatory="must"
may-encrypt="yes">
<type type-name="UTF8String" />
</avp>
<!-- [RFC 4005] , clause 6.7 -->
<avp name="Filter-Id" code="11" mandatory="must" may-encrypt="yes">
<type type-name="UTF8String" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.21 -->
<avp name="Bearer-Operation" vendor-id="10415" code="1021"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="TERMINATION" code="0" />
<enum name="ESTABLISHMENT" code="1" />
<enum name="MODIFICATION" code="2" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.24 -->
<avp name="Network-Request-Support" vendor-id="10415" code="1024"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated"/>
<enum name="NETWORK_REQUEST_NOT_SUPPORTED" code="0" />
<enum name="NETWORK_REQUEST_SUPPORTED" code="1" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.5 -->
<avp name="Charging-Rule-Base-Name" vendor-id="10415" code="1004"
mandatory="must" may-encrypt="yes">
<type type-name="UTF8String" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.15 -->
<avp name="ToS-Traffic-Class" vendor-id="10415" code="1014"
mandatory="must" may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.27 -->
<avp name="IP-CAN-Type" vendor-id="10415" code="1027" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="3GPP" code="0" />
<enum name="DOCSIS" code="1" />
<enum name="xDSL" code="2" />
<enum name="WiMAX" code="3" />
<enum name="3GPP2" code="4" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.28 -->
<avp name="QoS-Negotiation" vendor-id="10415" code="1029"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="NO_QOS_NEGOTIATION" code="0" />
<enum name="QOS_NEGOTIATION_SUPPORTED" code="1" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.29 -->
<avp name="QoS-Upgrade" vendor-id="10415" code="1030" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="QOS_UPGRADE_NOT_SUPPORTED" code="0" />
<enum name="QOS_UPGRADE_SUPPORTED" code="1" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.30 -->
<avp name="Rule-Failure-Code" vendor-id="10415" code="1031"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="UNKNOWN_RULE_NAME" code="1" />
<enum name="RATING_GROUP_ERROR" code="2" />
<enum name="SERVICE_IDENTIFIER_ERROR" code="3" />
<enum name="GW/PCEF_MALFUNCTION" code="4" />
<enum name="RESOURCES_LIMITATION" code="5" />
<enum name="MAX_NR_BEARERS_REACHED" code="6" />
<enum name="UNKNOWN_BEARER_ID" code="7" />
<enum name="MISSING_BEARER_ID" code="8" />
<enum name="MISSING_FLOW_DESCRIPTION" code="9" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.34 -->
<avp name="Session-Release-Cause" vendor-id="10415" code="1035"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="UNSPECIFIED_REASONS" code="0" />
<enum name="UE_SUBSCRIPTION_REASON" code="1" />
<enum name="INSUFFICIENT_SERVER_RESOURCES" code="2" />
</avp>
<!-- [3GPP TS 29.061 V7.9.0] , clause 16.4.7. -->
<avp name="3GPP-SGSN-MCC-MNC" vendor-id="10415" code="18"
mandatory="mustnot" may-encrypt="yes">
<type type-name="UTF8String" />
</avp>
<!-- [3GPP TS 29.061 V7.9.0] , clause 16.4.7 -->
<avp name="3GPP-User-Location-Info" vendor-id="10415" code="22"
mandatory="mustnot" may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.31 -->
<avp name="Revalidation-Time" vendor-id="10415" code="1032"
mandatory="must" may-encrypt="yes">
<type type-name="Time" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.32 -->
<avp name="Rule-Activation-Time" code="1033" mandatory="must"
may-encrypt="yes">
<type type-name="Time" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.33 -->
<avp name="Rule-Deactivation-Time" vendor-id="10415" code="1034"
mandatory="must" may-encrypt="yes">
<type type-name="Time" />
</avp>
<!-- [3GPP TS 29.061 V7.7.0] , clause 16.4.7.1 -->
<avp name="3GPP-SGSN-Address" vendor-id="10415" code="6" mandatory="mustnot"
may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [3GPP TS 29.061 V7.7.0] , clause 16.4.7.1 -->
<avp name="3GPP-SGSN-IPv6-Address" vendor-id="10415" code="15"
mandatory="mustnot" may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [3GPP TS 29.061 V7.7.0] , clause 17.7.12 -->
<avp name="RAI" vendor-id="10415" code="909" mandatory="must"
may-encrypt="yes">
<type type-name="UTF8String" />
</avp>
<!-- [3GPP TS 29.061 V7.7.0] , clause 16.4.7 -->
<avp name="3GPP-MS-TimeZone" vendor-id="10415" code="23" mandatory="mustnot"
may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.20 -->
<avp name="Bearer-Identifier" vendor-id="10415" code="1020"
mandatory="must" may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.6 -->
<avp name="Charging-Rule-Name" vendor-id="10415" code="1005"
mandatory="must" may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- [RFC 4006] , clause 8.28 -->
<avp name="Service-Identifier" code="439" mandatory="must"
may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [RFC 4006] , clause 8.29 -->
<avp name="Rating-Group" code="432" mandatory="must" may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [3GPP TS 29.214 V7.3.0] , clause 5.3.11 -->
<avp name="Flow-Status" vendor-id="10415" code="511" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="ENABLED-UPLINK" code="0" />
<enum name="ENABLED-DOWNLINK" code="1" />
<enum name="ENABLED" code="2" />
<enum name="DISABLED" code="3" />
<enum name="REMOVED" code="4" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.17 -->
<avp name="QoS-Class-Identifier" vendor-id="10415" code="1028"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="FINAL_SERVICE_INFORMATION" code="0" />
<enum name="PRELIMINARY_SERVICE_INFORMATION" code="1" />
</avp>
<!-- Ref = [3GPP - 29.214] 5.3.15 -->
<avp name="Max-Requested-Bandwidth-UL" code="516" vendor-id="10415"
mandatory="must" may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.25 -->
<avp name="Guaranteed-Bitrate-DL" vendor-id="10415" code="1025"
mandatory="must" may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.26 -->
<avp name="Guaranteed-Bitrate-UL" vendor-id="10415" code="1026"
mandatory="must" may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.20 -->
<avp name="Bearer-Identifier" vendor-id="10415" code="1020"
mandatory="must" may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<avp name="Max-Requested-Bandwidth-UL" code="516" mandatory="must" vendor-id="10415" may-encrypt="yes">
<type type-name="Unsigned32"/>
</avp>
<avp name="Max-Requested-Bandwidth-DL" code="515" mandatory="must" vendor-id="10415" may-encrypt="yes">
<type type-name="Unsigned32"/>
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.16 -->
<avp name="QoS-Information" vendor-id="10415" code="1016"
mandatory="must" may-encrypt="yes">
<grouped>
<required>
<avprule name="QoS-Class-Identifier" minimum="1" maximum="1" />
<avprule name="Max-Requested-Bandwidth-UL" minimum="1"
maximum="1" />
<avprule name="Max-Requested-Bandwidth-DL" minimum="1"
maximum="1" />
<avprule name="Guaranteed-Bitrate-UL" minimum="1" maximum="1" />
<avprule name="Guaranteed-Bitrate-DL" minimum="1" maximum="1" />
<avprule name="Bearer-Identifier" minimum="1" maximum="1" />
</required>
</grouped>
</avp>
<!-- [3GPP TS 29.214 V7.3.0] , clause 5.3.8 -->
<avp name="Flow-Description" vendor-id="10415" code="507"
mandatory="must" may-encrypt="yes">
<type type-name="IPFilterRule" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.12 -->
<avp name="Reporting-Level" vendor-id="10415" code="1011"
mandatory="must" may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="SERVICE_IDENTIFIER_LEVEL" code="0" />
<enum name="RATING_GROUP_LEVEL" code="1" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.9 -->
<avp name="Offline" vendor-id="10415" code="1008" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="DISABLE_OFFLINE" code="0" />
<enum name="ENABLE_OFFLINE" code="1" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.10 -->
<avp name="Online" vendor-id="10415" code="1009" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="DISABLE_ONLINE" code="0" />
<enum name="ENABLE_ONLINE" code="1" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.11 -->
<avp name="Precedence" vendor-id="10415" code="1010" mandatory="must"
may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [3GPP TS 29.214 V7.3.0] , clause 5.3.6 -->
<avp name="AF-Charging-Identifier" vendor-id="10415" code="505"
mandatory="must" may-encrypt="yes">
<type type-name="OctetString" />
</avp>
<!-- Ref = [3GPP - 29.214] 5.3.14 -->
<avp name="Max-Requested-Bandwidth-DL" code="515" vendor-id="10415"
mandatory="must" may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [3GPP TS 29.214 V7.3.0] , clause 5.3.17 -->
<avp name="Media-Component-Number" vendor-id="10415" code="518"
mandatory="must" may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [3GPP TS 29.214 V7.3.0] , clause 5.3.9 -->
<avp name="Flow-Number" vendor-id="10415" code="509" mandatory="must"
may-encrypt="yes">
<type type-name="Unsigned32" />
</avp>
<!-- [3GPP TS 29.214 V7.3.0] , clause 5.3.10 -->
<avp name="Flows" vendor-id="10415" code="510" mandatory="must"
may-encrypt="yes">
<grouped>
<required>
<avprule name="Media-Component-Number" minimum="1" maximum="1" />
</required>
<optional>
<avprule name="Flow-Number" maximum="1" />
</optional>
</grouped>
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.4 -->
<avp name="Charging-Rule-Definition" vendor-id="10415" code="1003"
mandatory="must" may-encrypt="yes">
<grouped>
<required>
<avprule name="Charging-Rule-Name" minimum="1" maximum="1" />
<avprule name="Service-Identifier" maximum="1" />
<avprule name="Rating-Group" maximum="1" />
</required>
<optional>
<avprule name="Flow-Description" maximum="1" />
</optional>
<required>
<avprule name="Flow-Status" maximum="1" />
<avprule name="QoS-Information" maximum="1" />
<avprule name="Reporting-Level" maximum="1" />
<avprule name="Online" maximum="1" />
<avprule name="Offline" maximum="1" />
<avprule name="Metering-Method" maximum="1" />
<avprule name="Precedence" maximum="1" />
<avprule name="AF-Charging-Identifier" maximum="1" />
</required>
<optional>
<avprule name="Flows" maximum="1" />
</optional>
</grouped>
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.2 -->
<avp name="Charging-Rule-Install" vendor-id="10415" code="1001"
mandatory="must" may-encrypt="yes">
<grouped>
<optional>
<avprule name="Charging-Rule-Definition" maximum="1" />
<avprule name="Charging-Rule-Name" maximum="1" />
<avprule name="Charging-Rule-Base-Name" maximum="1" />
</optional>
<required>
<avprule name="Bearer-Identifier" minumin="1" maximum="1" />
</required>
<optional>
<avprule name="Rule-Activation-Time" maximum="1" />
<avprule name="Rule-Deactivation-Time" maximum="1" />
</optional>
</grouped>
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.3 -->
<avp name="Charging-Rule-Remove" vendor-id="10415" code="1002"
mandatory="must" may-encrypt="yes">
<grouped>
<optional>
<avprule name="Charging-Rule-Name" maximum="1" />
<avprule name="Charging-Rule-Base-Name" maximum="1" />
</optional>
</grouped>
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.7 -->
<avp name="Event-Trigger" vendor-id="10415" code="1006" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="SGSN_CHANGE" code="0" />
<enum name="QOS_CHANGE" code="1" />
<enum name="RAT_CHANGE" code="2" />
<enum name="TFT_CHANGE" code="3" />
<enum name="PLMN_CHANGE" code="4" />
<enum name="LOSS_OF_BEARER" code="5" />
<enum name="RECOVERY_OF_BEARER" code="6" />
<enum name="IP-CAN_CHANGE" code="7" />
<enum name="PCEF_MALFUNCTION" code="8" />
<enum name="RESOURCES_LIMITATION" code="9" />
<enum name="MAX_NR_BEARERS_REACHED" code="10" />
<enum name="QOS_CHANGE_EXCEEDING_AUTHORIZATION" code="11" />
<enum name="RAI_CHANGE" code="12" />
<enum name="USER_LOCATION_CHANGE" code="13" />
<enum name="NO_EVENT_TRIGGERS" code="14" />
<enum name="OUT_OF_CREDIT" code="15" />
<enum name="REALLOCATION_OF_CREDIT" code="16" />
<enum name="REVALIDATION_TIMEOUT" code="17" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.13 -->
<avp name="TFT-Filter" vendor-id="10415" code="1012" mandatory="must"
may-encrypt="yes">
<type type-name="IPFilterRule" />
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.14 -->
<avp name="TFT-Packet-Filter-Information" vendor-id="10415" code="1013"
mandatory="must" may-encrypt="yes">
<grouped>
<required>
<avprule name="Precedence" minimum="1" maximum="1" />
<avprule name="TFT-Filter" minimum="1" maximum="1" />
<avprule name="ToS-Traffic-Class" minimum="1" maximum="1" />
</required>
</grouped>
</avp>
<!-- [RFC 4006] , clause 8.35 -->
<avp name="Final-Unit-Action" code="449" mandatory="must"
may-encrypt="yes">
<type type-name="Enumerated" />
<enum name="TERMINATE" code="0" />
<enum name="REDIRECT" code="1" />
<enum name="RESTRICT_ACCESS" code="2" />
</avp>
<!-- [RFC 4006] , clause 8.36 -->
<avp name="Restriction-Filter-Rule" code="438" mandatory="must"
may-encrypt="yes">
<type type-name="IPFilterRule" />
</avp>
<!-- [RFC 4006] , clause 8.37 -->
<avp name="Redirect-Server" code="434" mandatory="must"
may-encrypt="yes">
<grouped>
<required>
<avprule name="Redirect-Address-Type" minimum="1" maximum="1" />
<avprule name="Redirect-Server-Address" minimum="1"
maximum="1" />
</required>
</grouped>
</avp>
<!-- [RFC 4006] , clause 8.34 -->
<avp name="Final-Unit-Indication" code="430" mandatory="must"
may-encrypt="yes">
<grouped>
<required>
<avprule name="Final-Unit-Action" minimum="1" maximum="1" />
<avprule name="Restriction-Filter-Rule" minimum="1"
maximum="1" />
<avprule name="Filter-Id" minimum="1" maximum="1" />
<avprule name="Redirect-Server" minimum="1" maximum="1" />
</required>
</grouped>
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.18 -->
<avp name="Charging-Rule-Report" vendor-id="10415" code="1018"
mandatory="must" may-encrypt="yes">
<grouped>
<optional>
<avprule name="Charging-Rule-Name" maximum="1" />
<avprule name="Charging-Rule-Base-Name" maximum="1" />
</optional>
<required>
<avprule name="PCC-Rule-Status" minimum="1" maximum="1" />
</required>
<optional>
<avprule name="Rule-Failure-Code" maximum="1" />
<avprule name="Final-Unit-Indication" maximum="1" />
</optional>
</grouped>
</avp>
<!-- [3GPP TS 29.212 V7.7.0] , clause 5.3.22 -->
<avp name="Access-Network-Charging-Identifier-Gx" vendor-id="10415"
code="1022" mandatory="must" may-encrypt="yes">
<grouped>
<required>
<avprule name="Access-Network-Charging-Identifier-Value"
minimum="1" maximum="1" />
</required>
<optional>
<avprule name="Charging-Rule-Base-Name" maximum="1" />
<avprule name="Charging-Rule-Name" maximum="1" />
</optional>
</grouped>
</avp>
<!-- [3GPP TS 29.229 V7.7.0] , clause 6.3.19 -->
<avp name="Charging-Information" vendor-id="10415" code="618"
mandatory="must" may-encrypt="yes">
<grouped>
<required>
<avprule name="Primary-Event-Charging-Function-Name"
minimum="1" maximum="1" />
<avprule name="Secondary-Event-Charging-Function-Name"
minimum="1" maximum="1" />
<avprule name="Primary-Charging-Collection-Function-Name"
minimum="1" maximum="1" />
<avprule name="Secondary-Charging-Collection-Function-Name"
minimum="1" maximum="1" />
</required>
</grouped>
</avp>
<!-- Ref = RFC 4006 chap 8.46 -->
<avp name="Subscription-Id" code="443" mandatory="must"
may-encrypt="yes">
<grouped>
<required>
<avprule name="Subscription-Id-Type" />
<avprule name="Subscription-Id-Data" />
</required>
</grouped>
</avp>
</application>
</dictionary>

6
support/network/nextepc Normal file
View File

@ -0,0 +1,6 @@
auto pgwtun
iface pgwtun inet static
address 45.45.0.1
netmask 255.255.0.0
pre-up ip tuntap add name pgwtun mode tun
post-down ip tuntap del name pgwtun mode tun

View File

@ -28,6 +28,7 @@ static int verbose = 1;
static int exclude = 0;
static int quiet = 0;
static int list_tests = 0;
int test_only_control_plane = 0;
const char **testlist = NULL;
@ -423,8 +424,6 @@ void abts_not_impl(abts_case *tc, const char *message, int lineno)
}
}
int disable_data_plane_test = 0;
int main(int argc, const char *const argv[]) {
int i;
int rv;
@ -461,7 +460,10 @@ int main(int argc, const char *const argv[]) {
}
if (!strcmp(argv[i], "-f")) {
config_path = argv[++i];
disable_data_plane_test = 1;
continue;
}
if (!strcmp(argv[i], "-c")) {
test_only_control_plane = 1;
continue;
}
if (argv[i][0] == '-') {

View File

@ -301,18 +301,14 @@ static void attach_test1(abts_case *tc, void *data)
core_sleep(time_from_msec(300));
/* Send GTP-U ICMP Packet */
extern int disable_data_plane_test;
if (!disable_data_plane_test)
{
rv = testgtpu_enb_send(gtpu,
inet_addr("45.45.0.2"), inet_addr("45.45.0.1"));
ABTS_INT_EQUAL(tc, CORE_OK, rv);
rv = testgtpu_enb_send(gtpu,
inet_addr("45.45.0.2"), inet_addr("45.45.0.1"));
ABTS_INT_EQUAL(tc, CORE_OK, rv);
/* Receive GTP-U ICMP Packet */
recvbuf = pkbuf_alloc(0, MAX_SDU_LEN);
rc = testgtpu_enb_read(gtpu, recvbuf);
pkbuf_free(recvbuf);
}
/* Receive GTP-U ICMP Packet */
recvbuf = pkbuf_alloc(0, MAX_SDU_LEN);
rc = testgtpu_enb_read(gtpu, recvbuf);
pkbuf_free(recvbuf);
/*****************************************************************
* Attach Request : Known GUTI, Integrity Protected, MAC Matched

View File

@ -1,10 +0,0 @@
#!/bin/sh
mkdir -p /tmp/nextepc/etc/nextepc/freeDiameter /tmp/nextepc/var/log/nextepc
sed 's?@SYSCONF_DIR@?/tmp/nextepc/etc?g;s?@LOCALSTATE_DIR@?/tmp/nextepc/var?g' `pwd`/../support/config/nextepc.conf.in > /tmp/nextepc/etc/nextepc/nextepc.conf
for i in `cd ../support/freeDiameter && find . -name '*.conf.in' ! -name 'dict_legacy_xml.conf.in' -printf "%f\n" | sed 's/.in$//g'`
do
sed 's?@SYSCONF_DIR@/nextepc?'`pwd`'/../support?g;s?@LIB_DIR@/nextepc/\([_a-z0-9]*\)\.so?'`pwd`'/../lib/fd/extensions/\1/.libs/\1.so?g' `pwd`/../support/freeDiameter/$i.in > /tmp/nextepc/etc/nextepc/freeDiameter/$i
done
./testepc -f /tmp/nextepc/etc/nextepc/nextepc.conf || exit;

View File

@ -9,6 +9,8 @@
#include "s1ap_conv.h"
#include "s1ap_path.h"
extern int test_only_control_plane;
net_sock_t *testgtpu_enb_connect(void)
{
char buf[INET_ADDRSTRLEN];
@ -16,6 +18,8 @@ net_sock_t *testgtpu_enb_connect(void)
mme_context_t *mme = mme_self();
net_sock_t *sock = NULL;
if (test_only_control_plane) return (net_sock_t *)1;
if (!mme) return NULL;
rc = net_listen_ext(&sock, SOCK_DGRAM, IPPROTO_UDP,
@ -27,6 +31,8 @@ net_sock_t *testgtpu_enb_connect(void)
status_t testgtpu_enb_close(net_sock_t *sock)
{
if (test_only_control_plane) return CORE_OK;
return net_close(sock);
}
@ -89,6 +95,8 @@ int testgtpu_enb_send(net_sock_t *sock, c_uint32_t src_ip, c_uint32_t dst_ip)
} un;
} *icmp_h = NULL;
if (test_only_control_plane) return 0;
hi = mme_ue_first();
if (!hi) return -1;
mme_ue = mme_ue_this(hi);
@ -147,6 +155,8 @@ int testgtpu_enb_read(net_sock_t *sock, pkbuf_t *recvbuf)
{
int rc = 0;
if (test_only_control_plane) return 0;
while(1)
{
rc = net_read(sock, recvbuf->payload, recvbuf->len, 0);