<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/docker-playground/+/17953">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">WIP: Add ttcn3-pgw-test<br><br>Change-Id: I69e2f5be8204cc4fd0cc0f4eb019ef1104121b60<br>---<br>A ttcn3-pgw-test/Dockerfile<br>A ttcn3-pgw-test/Makefile<br>A ttcn3-pgw-test/PGW_Tests.cfg<br>A ttcn3-pgw-test/freediameter-pgw.conf<br>A ttcn3-pgw-test/jenkins.sh<br>A ttcn3-pgw-test/osmo-uecups-daemon.cfg<br>A ttcn3-pgw-test/pgw.yaml<br>7 files changed, 418 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/53/17953/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/ttcn3-pgw-test/Dockerfile b/ttcn3-pgw-test/Dockerfile</span><br><span>new file mode 100644</span><br><span>index 0000000..5878f3b</span><br><span>--- /dev/null</span><br><span>+++ b/ttcn3-pgw-test/Dockerfile</span><br><span>@@ -0,0 +1,31 @@</span><br><span style="color: hsl(120, 100%, 40%);">+ARG   USER</span><br><span style="color: hsl(120, 100%, 40%);">+FROM      $USER/debian-stretch-titan</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN       git clone git://git.osmocom.org/osmo-ttcn3-hacks.git</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     cd osmo-ttcn3-hacks && \</span><br><span style="color: hsl(120, 100%, 40%);">+      git checkout -f -B master origin/master && \</span><br><span style="color: hsl(120, 100%, 40%);">+  make deps</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ARG        OSMO_TTCN3_BRANCH="master"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ADD     http://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     cd osmo-ttcn3-hacks && \</span><br><span style="color: hsl(120, 100%, 40%);">+      git fetch && \</span><br><span style="color: hsl(120, 100%, 40%);">+        git checkout $OSMO_TTCN3_BRANCH && \</span><br><span style="color: hsl(120, 100%, 40%);">+  (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_TTCN3_BRANCH || exit 1); \</span><br><span style="color: hsl(120, 100%, 40%);">+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \</span><br><span style="color: hsl(120, 100%, 40%);">+    make pgw</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME      /data</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN    ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-start.sh / && \</span><br><span style="color: hsl(120, 100%, 40%);">+ ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-stop.sh /</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY PGW_Tests.cfg /data/PGW_Tests.cfg</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CMD        cd /data && \</span><br><span style="color: hsl(120, 100%, 40%);">+ /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/pgw/PGW_Tests; \</span><br><span style="color: hsl(120, 100%, 40%);">+       exit_code=$?; \</span><br><span style="color: hsl(120, 100%, 40%);">+       /osmo-ttcn3-hacks/log_merge.sh PGW_Tests --rm; \</span><br><span style="color: hsl(120, 100%, 40%);">+      exit $exit_code</span><br><span>diff --git a/ttcn3-pgw-test/Makefile b/ttcn3-pgw-test/Makefile</span><br><span>new file mode 100644</span><br><span>index 0000000..8d0e10b</span><br><span>--- /dev/null</span><br><span>+++ b/ttcn3-pgw-test/Makefile</span><br><span>@@ -0,0 +1 @@</span><br><span style="color: hsl(120, 100%, 40%);">+include ../make/Makefile</span><br><span>diff --git a/ttcn3-pgw-test/PGW_Tests.cfg b/ttcn3-pgw-test/PGW_Tests.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..be84fce</span><br><span>--- /dev/null</span><br><span>+++ b/ttcn3-pgw-test/PGW_Tests.cfg</span><br><span>@@ -0,0 +1,24 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[ORDERED_INCLUDE]</span><br><span style="color: hsl(120, 100%, 40%);">+"/osmo-ttcn3-hacks/Common.cfg"</span><br><span style="color: hsl(120, 100%, 40%);">+"/osmo-ttcn3-hacks/pgw/PGW_Tests.default"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Local configuration below</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[LOGGING]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[TESTPORT_PARAMETERS]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[MODULE_PARAMETERS]</span><br><span style="color: hsl(120, 100%, 40%);">+PGW_Tests.mp_pgw_hostname := "172.18.18.10"</span><br><span style="color: hsl(120, 100%, 40%);">+PGW_Tests.mp_local_hostname_c := "172.18.18.202"</span><br><span style="color: hsl(120, 100%, 40%);">+PGW_Tests.mp_local_hostname_u := "172.18.18.20"</span><br><span style="color: hsl(120, 100%, 40%);">+PGW_Tests.mp_run_prog_as_user := "osmocom"</span><br><span style="color: hsl(120, 100%, 40%);">+PGW_Tests.mp_ping_hostname := "10.45.0.1"</span><br><span style="color: hsl(120, 100%, 40%);">+PGW_Tests.mp_pcrf_local_ip:= "172.18.18.202"</span><br><span style="color: hsl(120, 100%, 40%);">+GTPv2_Emulation.mp_uecups_host := "172.18.18.20"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[MAIN_CONTROLLER]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[EXECUTE]</span><br><span style="color: hsl(120, 100%, 40%);">+#PGW_Tests.control</span><br><span style="color: hsl(120, 100%, 40%);">+PGW_Tests.TC_createSession_ping4</span><br><span>diff --git a/ttcn3-pgw-test/freediameter-pgw.conf b/ttcn3-pgw-test/freediameter-pgw.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e2efe7d</span><br><span>--- /dev/null</span><br><span>+++ b/ttcn3-pgw-test/freediameter-pgw.conf</span><br><span>@@ -0,0 +1,266 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# This is a sample configuration file for freeDiameter daemon.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Most of the options can be omitted, as they default to reasonable values.</span><br><span style="color: hsl(120, 100%, 40%);">+# Only TLS-related options must be configured properly in usual setups.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# It is possible to use "include" keyword to import additional files</span><br><span style="color: hsl(120, 100%, 40%);">+# e.g.: include "/etc/freeDiameter.d/*.conf"</span><br><span style="color: hsl(120, 100%, 40%);">+# This is exactly equivalent as copy & paste the content of the included file(s) </span><br><span style="color: hsl(120, 100%, 40%);">+# where the "include" keyword is found.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  Peer identity and realm </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# The Diameter Identity of this daemon.</span><br><span style="color: hsl(120, 100%, 40%);">+# This must be a valid FQDN that resolves to the local host.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: hostname's FQDN</span><br><span style="color: hsl(120, 100%, 40%);">+#Identity = "aaa.koganei.freediameter.net";</span><br><span style="color: hsl(120, 100%, 40%);">+Identity = "pgw.localdomain";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# The Diameter Realm of this daemon.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: the domain part of Identity (after the first dot).</span><br><span style="color: hsl(120, 100%, 40%);">+#Realm = "koganei.freediameter.net";</span><br><span style="color: hsl(120, 100%, 40%);">+Realm = "localdomain";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  Transport protocol configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# The port this peer is listening on for incoming connections (TCP and SCTP).</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: 3868. Use 0 to disable.</span><br><span style="color: hsl(120, 100%, 40%);">+#Port = 3868;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# The port this peer is listening on for incoming TLS-protected connections (TCP and SCTP).</span><br><span style="color: hsl(120, 100%, 40%);">+# See TLS_old_method for more information about TLS flavours.</span><br><span style="color: hsl(120, 100%, 40%);">+# Note: we use TLS/SCTP instead of DTLS/SCTP at the moment. This will change in future version of freeDiameter.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: 5868. Use 0 to disable.</span><br><span style="color: hsl(120, 100%, 40%);">+#SecPort = 5868;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Use RFC3588 method for TLS protection, where TLS is negociated after CER/CEA exchange is completed </span><br><span style="color: hsl(120, 100%, 40%);">+# on the unsecure connection. The alternative is RFC6733 mechanism, where TLS protects also the </span><br><span style="color: hsl(120, 100%, 40%);">+# CER/CEA exchange on a dedicated secure port.</span><br><span style="color: hsl(120, 100%, 40%);">+# This parameter only affects outgoing connections. </span><br><span style="color: hsl(120, 100%, 40%);">+# The setting can be also defined per-peer (see Peers configuration section).</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: use RFC6733 method with separate port for TLS.</span><br><span style="color: hsl(120, 100%, 40%);">+#TLS_old_method;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Disable use of TCP protocol (only listen and connect over SCTP)</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : TCP enabled</span><br><span style="color: hsl(120, 100%, 40%);">+#No_TCP;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Disable use of SCTP protocol (only listen and connect over TCP)</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : SCTP enabled</span><br><span style="color: hsl(120, 100%, 40%);">+#No_SCTP;</span><br><span style="color: hsl(120, 100%, 40%);">+# This option is ignored if freeDiameter is compiled with DISABLE_SCTP option.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Prefer TCP instead of SCTP for establishing new connections.</span><br><span style="color: hsl(120, 100%, 40%);">+# This setting may be overwritten per peer in peer configuration blocs.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : SCTP is attempted first.</span><br><span style="color: hsl(120, 100%, 40%);">+#Prefer_TCP;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Default number of streams per SCTP associations.</span><br><span style="color: hsl(120, 100%, 40%);">+# This setting may be overwritten per peer basis.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : 30 streams</span><br><span style="color: hsl(120, 100%, 40%);">+#SCTP_streams = 30;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  Endpoint configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Disable use of IP addresses (only IPv6)</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : IP enabled</span><br><span style="color: hsl(120, 100%, 40%);">+#No_IP;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Disable use of IPv6 addresses (only IP)</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : IPv6 enabled</span><br><span style="color: hsl(120, 100%, 40%);">+#No_IPv6;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Specify local addresses the server must bind to</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : listen on all addresses available.</span><br><span style="color: hsl(120, 100%, 40%);">+#ListenOn = "202.249.37.5";</span><br><span style="color: hsl(120, 100%, 40%);">+#ListenOn = "2001:200:903:2::202:1";</span><br><span style="color: hsl(120, 100%, 40%);">+#ListenOn = "fe80::21c:5ff:fe98:7d62%eth0";</span><br><span style="color: hsl(120, 100%, 40%);">+ListenOn = "172.18.18.10";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  Server configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# How many Diameter peers are allowed to be connecting at the same time ?</span><br><span style="color: hsl(120, 100%, 40%);">+# This parameter limits the number of incoming connections from the time</span><br><span style="color: hsl(120, 100%, 40%);">+# the connection is accepted until the first CER is received.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: 5 unidentified clients in paralel.</span><br><span style="color: hsl(120, 100%, 40%);">+#ThreadsPerServer = 5;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  TLS Configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# TLS is managed by the GNUTLS library in the freeDiameter daemon.</span><br><span style="color: hsl(120, 100%, 40%);">+# You may find more information about parameters and special behaviors</span><br><span style="color: hsl(120, 100%, 40%);">+# in the relevant documentation.</span><br><span style="color: hsl(120, 100%, 40%);">+# http://www.gnu.org/software/gnutls/manual/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Credentials of the local peer</span><br><span style="color: hsl(120, 100%, 40%);">+# The X509 certificate and private key file to use for the local peer.</span><br><span style="color: hsl(120, 100%, 40%);">+# The files must contain PKCS-1 encoded RSA key, in PEM format.</span><br><span style="color: hsl(120, 100%, 40%);">+# (These parameters are passed to gnutls_certificate_set_x509_key_file function)</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : NO DEFAULT</span><br><span style="color: hsl(120, 100%, 40%);">+#TLS_Cred = "<x509 certif file.PEM>" , "<x509 private key file.PEM>";</span><br><span style="color: hsl(120, 100%, 40%);">+#TLS_Cred = "/etc/ssl/certs/freeDiameter.pem", "/etc/ssl/private/freeDiameter.key";</span><br><span style="color: hsl(120, 100%, 40%);">+TLS_Cred = "/usr/local/etc/freeDiameter/pgw.cert.pem", "/usr/local/etc/freeDiameter/pgw.key.pem";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Certificate authority / trust anchors</span><br><span style="color: hsl(120, 100%, 40%);">+# The file containing the list of trusted Certificate Authorities (PEM list)</span><br><span style="color: hsl(120, 100%, 40%);">+# (This parameter is passed to gnutls_certificate_set_x509_trust_file function)</span><br><span style="color: hsl(120, 100%, 40%);">+# The directive can appear several times to specify several files.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : GNUTLS default behavior</span><br><span style="color: hsl(120, 100%, 40%);">+#TLS_CA = "<file.PEM>";</span><br><span style="color: hsl(120, 100%, 40%);">+TLS_CA = "/usr/local/etc/freeDiameter/cacert.pem";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Certificate Revocation List file</span><br><span style="color: hsl(120, 100%, 40%);">+# The information about revoked certificates.</span><br><span style="color: hsl(120, 100%, 40%);">+# The file contains a list of trusted CRLs in PEM format. They should have been verified before. </span><br><span style="color: hsl(120, 100%, 40%);">+# (This parameter is passed to gnutls_certificate_set_x509_crl_file function)</span><br><span style="color: hsl(120, 100%, 40%);">+# Note: openssl CRL format might have interoperability issue with GNUTLS format.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : GNUTLS default behavior</span><br><span style="color: hsl(120, 100%, 40%);">+#TLS_CRL = "<file.PEM>";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# GNU TLS Priority string</span><br><span style="color: hsl(120, 100%, 40%);">+# This string allows to configure the behavior of GNUTLS key exchanges </span><br><span style="color: hsl(120, 100%, 40%);">+# algorithms. See gnutls_priority_init function documentation for information.</span><br><span style="color: hsl(120, 100%, 40%);">+# You should also refer to the Diameter required TLS support here:</span><br><span style="color: hsl(120, 100%, 40%);">+#   http://tools.ietf.org/html/rfc6733#section-13.1</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : "NORMAL"</span><br><span style="color: hsl(120, 100%, 40%);">+# Example: TLS_Prio = "NONE:+VERS-TLS1.1:+AES-128-CBC:+RSA:+SHA1:+COMP-NULL";</span><br><span style="color: hsl(120, 100%, 40%);">+#TLS_Prio = "NORMAL";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Diffie-Hellman parameters size</span><br><span style="color: hsl(120, 100%, 40%);">+# Set the number of bits for generated DH parameters</span><br><span style="color: hsl(120, 100%, 40%);">+# Valid value should be 768, 1024, 2048, 3072 or 4096.</span><br><span style="color: hsl(120, 100%, 40%);">+# (This parameter is passed to gnutls_dh_params_generate2 function, </span><br><span style="color: hsl(120, 100%, 40%);">+# it usually should match RSA key size)</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : 1024</span><br><span style="color: hsl(120, 100%, 40%);">+#TLS_DH_Bits = 1024;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Alternatively, you can specify a file to load the PKCS#3 encoded</span><br><span style="color: hsl(120, 100%, 40%);">+# DH parameters directly from. This accelerates the daemon start </span><br><span style="color: hsl(120, 100%, 40%);">+# but is slightly less secure. If this file is provided, the</span><br><span style="color: hsl(120, 100%, 40%);">+# TLS_DH_Bits parameters has no effect.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default : no default.</span><br><span style="color: hsl(120, 100%, 40%);">+#TLS_DH_File = "<file.PEM>";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  Timers configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# The Tc timer of this peer.</span><br><span style="color: hsl(120, 100%, 40%);">+# It is the delay before a new attempt is made to reconnect a disconnected peer.</span><br><span style="color: hsl(120, 100%, 40%);">+# The value is expressed in seconds. The recommended value is 30 seconds.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: 30</span><br><span style="color: hsl(120, 100%, 40%);">+TcTimer = 1;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# The Tw timer of this peer.</span><br><span style="color: hsl(120, 100%, 40%);">+# It is the delay before a watchdog message is sent, as described in RFC 3539.</span><br><span style="color: hsl(120, 100%, 40%);">+# The value is expressed in seconds. The default value is 30 seconds. Value must</span><br><span style="color: hsl(120, 100%, 40%);">+# be greater or equal to 6 seconds. See details in the RFC.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: 30</span><br><span style="color: hsl(120, 100%, 40%);">+#TwTimer = 30;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  Applications configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Disable the relaying of Diameter messages?</span><br><span style="color: hsl(120, 100%, 40%);">+# For messages not handled locally, the default behavior is to forward the</span><br><span style="color: hsl(120, 100%, 40%);">+# message to another peer if any is available, according to the routing </span><br><span style="color: hsl(120, 100%, 40%);">+# algorithms. In addition the "0xffffff" application is advertised in CER/CEA </span><br><span style="color: hsl(120, 100%, 40%);">+# exchanges.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: Relaying is enabled.</span><br><span style="color: hsl(120, 100%, 40%);">+#NoRelay;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Number of server threads that can handle incoming messages at the same time.</span><br><span style="color: hsl(120, 100%, 40%);">+# Default: 4</span><br><span style="color: hsl(120, 100%, 40%);">+#AppServThreads = 4;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Other applications are configured by loaded extensions.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  Extensions configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#  The freeDiameter framework merely provides support for</span><br><span style="color: hsl(120, 100%, 40%);">+# Diameter Base Protocol. The specific application behaviors,</span><br><span style="color: hsl(120, 100%, 40%);">+# as well as advanced functions, are provided</span><br><span style="color: hsl(120, 100%, 40%);">+# by loadable extensions (plug-ins).</span><br><span style="color: hsl(120, 100%, 40%);">+#  These extensions may in addition receive the name of a </span><br><span style="color: hsl(120, 100%, 40%);">+# configuration file, the format of which is extension-specific.</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Format:</span><br><span style="color: hsl(120, 100%, 40%);">+#LoadExtension = "/path/to/extension" [ : "/optional/configuration/file" ] ;</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Examples:</span><br><span style="color: hsl(120, 100%, 40%);">+#LoadExtension = "extensions/sample.fdx";</span><br><span style="color: hsl(120, 100%, 40%);">+#LoadExtension = "extensions/sample.fdx":"conf/sample.conf";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Extensions are named as follow:</span><br><span style="color: hsl(120, 100%, 40%);">+# dict_* for extensions that add content to the dictionary definitions.</span><br><span style="color: hsl(120, 100%, 40%);">+# dbg_*  for extensions useful only to retrieve more information on the framework execution.</span><br><span style="color: hsl(120, 100%, 40%);">+# acl_*  : Access control list, to control which peers are allowed to connect.</span><br><span style="color: hsl(120, 100%, 40%);">+# rt_*   : routing extensions that impact how messages are forwarded to other peers.</span><br><span style="color: hsl(120, 100%, 40%);">+# app_*  : applications, these extensions usually register callbacks to handle specific messages.</span><br><span style="color: hsl(120, 100%, 40%);">+# test_* : dummy extensions that are useful only in testing environments.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# The dbg_msg_dump.fdx extension allows you to tweak the way freeDiameter displays some</span><br><span style="color: hsl(120, 100%, 40%);">+# information about some events. This extension does not actually use a configuration file</span><br><span style="color: hsl(120, 100%, 40%);">+# but receives directly a parameter in the string passed to the extension. Here are some examples:</span><br><span style="color: hsl(120, 100%, 40%);">+## LoadExtension = "dbg_msg_dumps.fdx" : "0x1111"; # Removes all default hooks, very quiet even in case of errors.</span><br><span style="color: hsl(120, 100%, 40%);">+## LoadExtension = "dbg_msg_dumps.fdx" : "0x2222"; # Display all events with few details.</span><br><span style="color: hsl(120, 100%, 40%);">+## LoadExtension = "dbg_msg_dumps.fdx" : "0x0080"; # Dump complete information about sent and received messages.</span><br><span style="color: hsl(120, 100%, 40%);">+# The four digits respectively control: connections, routing decisions, sent/received messages, errors.</span><br><span style="color: hsl(120, 100%, 40%);">+# The values for each digit are:</span><br><span style="color: hsl(120, 100%, 40%);">+#  0 - default - keep the default behavior</span><br><span style="color: hsl(120, 100%, 40%);">+#  1 - quiet   - remove any specific log</span><br><span style="color: hsl(120, 100%, 40%);">+#  2 - compact - display only a summary of the information</span><br><span style="color: hsl(120, 100%, 40%);">+#  4 - full    - display the complete information on a single long line</span><br><span style="color: hsl(120, 100%, 40%);">+#  8 - tree    - display the complete information in an easier to read format spanning several lines.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+LoadExtension = "/usr/local/lib/x86_64-linux-gnu/freeDiameter/dbg_msg_dumps.fdx" : "0x8888";</span><br><span style="color: hsl(120, 100%, 40%);">+LoadExtension = "/usr/local/lib/x86_64-linux-gnu/freeDiameter/dict_rfc5777.fdx";</span><br><span style="color: hsl(120, 100%, 40%);">+LoadExtension = "/usr/local/lib/x86_64-linux-gnu/freeDiameter/dict_mip6i.fdx";</span><br><span style="color: hsl(120, 100%, 40%);">+LoadExtension = "/usr/local/lib/x86_64-linux-gnu/freeDiameter/dict_nasreq.fdx";</span><br><span style="color: hsl(120, 100%, 40%);">+LoadExtension = "/usr/local/lib/x86_64-linux-gnu/freeDiameter/dict_nas_mipv6.fdx";</span><br><span style="color: hsl(120, 100%, 40%);">+LoadExtension = "/usr/local/lib/x86_64-linux-gnu/freeDiameter/dict_dcca.fdx";</span><br><span style="color: hsl(120, 100%, 40%);">+LoadExtension = "/usr/local/lib/x86_64-linux-gnu/freeDiameter/dict_dcca_3gpp.fdx";</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span style="color: hsl(120, 100%, 40%);">+##  Peers configuration</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#  The local server listens for incoming connections. By default,</span><br><span style="color: hsl(120, 100%, 40%);">+# all unknown connecting peers are rejected. Extensions can override this behavior (e.g., acl_wl).</span><br><span style="color: hsl(120, 100%, 40%);">+# </span><br><span style="color: hsl(120, 100%, 40%);">+#  In addition to incoming connections, the local peer can</span><br><span style="color: hsl(120, 100%, 40%);">+# be configured to establish and maintain connections to some </span><br><span style="color: hsl(120, 100%, 40%);">+# Diameter nodes and allow connections from these nodes.</span><br><span style="color: hsl(120, 100%, 40%);">+#  This is achieved with the ConnectPeer directive described below.</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Note that the configured Diameter Identity MUST match</span><br><span style="color: hsl(120, 100%, 40%);">+# the information received inside CEA, or the connection will be aborted.</span><br><span style="color: hsl(120, 100%, 40%);">+#</span><br><span style="color: hsl(120, 100%, 40%);">+# Format:</span><br><span style="color: hsl(120, 100%, 40%);">+#ConnectPeer = "diameterid" [ { parameter1; parameter2; ...} ] ;</span><br><span style="color: hsl(120, 100%, 40%);">+# Parameters that can be specified in the peer's parameter list:</span><br><span style="color: hsl(120, 100%, 40%);">+#  No_TCP; No_SCTP; No_IP; No_IPv6; Prefer_TCP; TLS_old_method;</span><br><span style="color: hsl(120, 100%, 40%);">+#  No_TLS;       # assume transparent security instead of TLS. DTLS is not supported yet (will change in future versions).</span><br><span style="color: hsl(120, 100%, 40%);">+#  Port = 5868;  # The port to connect to</span><br><span style="color: hsl(120, 100%, 40%);">+#  TcTimer = 30;</span><br><span style="color: hsl(120, 100%, 40%);">+#  TwTimer = 30;</span><br><span style="color: hsl(120, 100%, 40%);">+#  ConnectTo = "202.249.37.5";</span><br><span style="color: hsl(120, 100%, 40%);">+#  ConnectTo = "2001:200:903:2::202:1";</span><br><span style="color: hsl(120, 100%, 40%);">+#  TLS_Prio = "NORMAL";</span><br><span style="color: hsl(120, 100%, 40%);">+#  Realm = "realm.net"; # Reject the peer if it does not advertise this realm.</span><br><span style="color: hsl(120, 100%, 40%);">+# Examples:</span><br><span style="color: hsl(120, 100%, 40%);">+#ConnectPeer = "aaa.wide.ad.jp";</span><br><span style="color: hsl(120, 100%, 40%);">+#ConnectPeer = "old.diameter.serv" { TcTimer = 60; TLS_old_method; No_SCTP; Port=3868; } ;</span><br><span style="color: hsl(120, 100%, 40%);">+ConnectPeer = "pcrf.localdomain" { ConnectTo = "172.18.18.202"; No_TLS; };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+##############################################################</span><br><span>diff --git a/ttcn3-pgw-test/jenkins.sh b/ttcn3-pgw-test/jenkins.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..4dcf889</span><br><span>--- /dev/null</span><br><span>+++ b/ttcn3-pgw-test/jenkins.sh</span><br><span>@@ -0,0 +1,59 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+. ../jenkins-common.sh</span><br><span style="color: hsl(120, 100%, 40%);">+IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}"</span><br><span style="color: hsl(120, 100%, 40%);">+docker_images_require \</span><br><span style="color: hsl(120, 100%, 40%);">+ "debian-buster-build" \</span><br><span style="color: hsl(120, 100%, 40%);">+     "open5gs-$IMAGE_SUFFIX" \</span><br><span style="color: hsl(120, 100%, 40%);">+   "osmo-uecups-master" \</span><br><span style="color: hsl(120, 100%, 40%);">+      "debian-stretch-titan" \</span><br><span style="color: hsl(120, 100%, 40%);">+    "ttcn3-pgw-test"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir $VOL_BASE_DIR/pgw-tester</span><br><span style="color: hsl(120, 100%, 40%);">+cp PGW_Tests.cfg $VOL_BASE_DIR/pgw-tester/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir $VOL_BASE_DIR/pgw</span><br><span style="color: hsl(120, 100%, 40%);">+cp pgw.yaml freediameter-pgw.conf $VOL_BASE_DIR/pgw/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir $VOL_BASE_DIR/osmo-uecups</span><br><span style="color: hsl(120, 100%, 40%);">+cp osmo-uecups-daemon.cfg $VOL_BASE_DIR/osmo-uecups/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+network_create 172.18.18.0/24</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# start container with pgw in background</span><br><span style="color: hsl(120, 100%, 40%);">+docker run     --cap-add=NET_ADMIN \</span><br><span style="color: hsl(120, 100%, 40%);">+         --device /dev/net/tun:/dev/net/tun \</span><br><span style="color: hsl(120, 100%, 40%);">+          --sysctl net.ipv6.conf.all.disable_ipv6=0 \</span><br><span style="color: hsl(120, 100%, 40%);">+           --rm \</span><br><span style="color: hsl(120, 100%, 40%);">+                --network $NET_NAME --ip 172.18.18.10 \</span><br><span style="color: hsl(120, 100%, 40%);">+               -v $VOL_BASE_DIR/pgw:/data \</span><br><span style="color: hsl(120, 100%, 40%);">+          --name ${BUILD_TAG}-pgw -d \</span><br><span style="color: hsl(120, 100%, 40%);">+          $REPO_USER/open5gs-$IMAGE_SUFFIX \</span><br><span style="color: hsl(120, 100%, 40%);">+            /bin/sh -c "open5gs-pgwd -c /data/pgw.yaml >/data/pgw.stdout 2>&1"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# start container with osmo-ugcups-daemon in background</span><br><span style="color: hsl(120, 100%, 40%);">+docker run   --cap-add=NET_ADMIN \</span><br><span style="color: hsl(120, 100%, 40%);">+         --device /dev/net/tun:/dev/net/tun \</span><br><span style="color: hsl(120, 100%, 40%);">+          --sysctl net.ipv6.conf.all.disable_ipv6=0 \</span><br><span style="color: hsl(120, 100%, 40%);">+           --rm \</span><br><span style="color: hsl(120, 100%, 40%);">+                --network $NET_NAME --ip 172.18.18.20 \</span><br><span style="color: hsl(120, 100%, 40%);">+               -v $VOL_BASE_DIR/osmo-uecups:/data \</span><br><span style="color: hsl(120, 100%, 40%);">+          --name ${BUILD_TAG}-uecups -d \</span><br><span style="color: hsl(120, 100%, 40%);">+               $REPO_USER/osmo-uecups-master \</span><br><span style="color: hsl(120, 100%, 40%);">+               /bin/sh -c "osmo-uecups-daemon -c /data/osmo-uecups-daemon.cfg >/data/uecups.stdout 2>&1"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# start docker container with testsuite in foreground</span><br><span style="color: hsl(120, 100%, 40%);">+docker run      --rm \</span><br><span style="color: hsl(120, 100%, 40%);">+                --sysctl net.ipv6.conf.all.disable_ipv6=0 \</span><br><span style="color: hsl(120, 100%, 40%);">+           --network $NET_NAME --ip 172.18.18.202 \</span><br><span style="color: hsl(120, 100%, 40%);">+              -v $VOL_BASE_DIR/pgw-tester:/data \</span><br><span style="color: hsl(120, 100%, 40%);">+           -e "TTCN3_PCAP_PATH=/data" \</span><br><span style="color: hsl(120, 100%, 40%);">+                --name ${BUILD_TAG}-pgw-test \</span><br><span style="color: hsl(120, 100%, 40%);">+                $REPO_USER/ttcn3-pgw-test</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# stop uecups + PGW after test has completed</span><br><span style="color: hsl(120, 100%, 40%);">+docker container stop ${BUILD_TAG}-uecups</span><br><span style="color: hsl(120, 100%, 40%);">+docker container stop ${BUILD_TAG}-pgw</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+network_remove</span><br><span style="color: hsl(120, 100%, 40%);">+collect_logs</span><br><span>diff --git a/ttcn3-pgw-test/osmo-uecups-daemon.cfg b/ttcn3-pgw-test/osmo-uecups-daemon.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..337655b</span><br><span>--- /dev/null</span><br><span>+++ b/ttcn3-pgw-test/osmo-uecups-daemon.cfg</span><br><span>@@ -0,0 +1,15 @@</span><br><span style="color: hsl(120, 100%, 40%);">+log file /data/osmo-uecups.log</span><br><span style="color: hsl(120, 100%, 40%);">+ logging filter all 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category-hex 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging timestamp 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print file 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level tun info</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level ep info</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level gt info</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level uecups info</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+uecups</span><br><span style="color: hsl(120, 100%, 40%);">+ local-ip 0.0.0.0</span><br><span>diff --git a/ttcn3-pgw-test/pgw.yaml b/ttcn3-pgw-test/pgw.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..966421c</span><br><span>--- /dev/null</span><br><span>+++ b/ttcn3-pgw-test/pgw.yaml</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+logger:</span><br><span style="color: hsl(120, 100%, 40%);">+    file: /data/pgw.log</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+parameter:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+pgw:</span><br><span style="color: hsl(120, 100%, 40%);">+    freeDiameter: /data/freediameter-pgw.conf</span><br><span style="color: hsl(120, 100%, 40%);">+    gtpc:</span><br><span style="color: hsl(120, 100%, 40%);">+      - addr: 172.18.18.10</span><br><span style="color: hsl(120, 100%, 40%);">+      - addr: ::1</span><br><span style="color: hsl(120, 100%, 40%);">+    gtpu:</span><br><span style="color: hsl(120, 100%, 40%);">+      - addr: 172.18.18.10</span><br><span style="color: hsl(120, 100%, 40%);">+      - addr: ::1</span><br><span style="color: hsl(120, 100%, 40%);">+    ue_pool:</span><br><span style="color: hsl(120, 100%, 40%);">+      - addr: 10.45.0.1/16</span><br><span style="color: hsl(120, 100%, 40%);">+      - addr: cafe::1/64</span><br><span style="color: hsl(120, 100%, 40%);">+    dns:</span><br><span style="color: hsl(120, 100%, 40%);">+      - 8.8.8.8</span><br><span style="color: hsl(120, 100%, 40%);">+      - 8.8.4.4</span><br><span style="color: hsl(120, 100%, 40%);">+      - 2001:4860:4860::8888</span><br><span style="color: hsl(120, 100%, 40%);">+      - 2001:4860:4860::8844</span><br><span style="color: hsl(120, 100%, 40%);">+    mtu: 1400</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/docker-playground/+/17953">change 17953</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/docker-playground/+/17953"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: docker-playground </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I69e2f5be8204cc4fd0cc0f4eb019ef1104121b60 </div>
<div style="display:none"> Gerrit-Change-Number: 17953 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>