aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asterisk-master/Dockerfile33
-rw-r--r--centos7-build/Dockerfile7
-rw-r--r--centos7-obs-latest/Dockerfile7
-rw-r--r--common/Release.key16
-rwxr-xr-xcommon/ttcn3-docker-prepare.sh2
-rw-r--r--debian-bookworm-build-arm/Dockerfile5
-rw-r--r--debian-bookworm-build/Dockerfile7
-rw-r--r--debian-bookworm-erlang/Dockerfile3
-rw-r--r--debian-bookworm-obs-asan/Dockerfile38
-rw-r--r--debian-bookworm-obs-asan/Makefile3
-rw-r--r--debian-bookworm-obs-latest/Dockerfile5
-rw-r--r--debian-bullseye-erlang/Dockerfile3
-rw-r--r--debian-buster-build/Dockerfile1
-rw-r--r--dnsmasq/Dockerfile18
-rw-r--r--dnsmasq/Makefile2
-rw-r--r--jenkins-common.sh41
-rw-r--r--make/Makefile8
-rw-r--r--open5gs-master/Dockerfile10
-rw-r--r--osmo-bsc-master/Dockerfile80
-rw-r--r--osmo-bts-master/Dockerfile56
-rw-r--r--osmo-cbc-master/Dockerfile69
-rw-r--r--osmo-epdg-latest/Dockerfile32
-rw-r--r--osmo-epdg-latest/Makefile1
-rw-r--r--osmo-epdg-latest/osmo-epdg.config2
-rw-r--r--osmo-epdg-master/Dockerfile8
-rw-r--r--osmo-gbproxy-master/Dockerfile52
-rw-r--r--osmo-ggsn-master/Dockerfile29
-rw-r--r--osmo-hnbgw-master/Dockerfile84
-rw-r--r--osmo-hnodeb-master/Dockerfile54
-rw-r--r--osmo-mgw-master/Dockerfile58
-rw-r--r--osmo-msc-master/Dockerfile81
-rw-r--r--osmo-pcu-master/Dockerfile24
-rwxr-xr-xosmo-ran/jenkins.sh3
-rw-r--r--osmo-s1gw-master/Dockerfile24
-rw-r--r--osmo-s1gw-master/Makefile1
-rw-r--r--osmo-s1gw-master/osmo-s1gw.config2
-rw-r--r--osmo-sgsn-master/Dockerfile80
-rw-r--r--osmo-stp-master/Dockerfile50
-rw-r--r--osmo-uecups-master/Dockerfile54
-rw-r--r--osmocom-bb-host-master/Dockerfile6
-rwxr-xr-xscripts/kernel-test/smoke-test.sh2
-rw-r--r--seccomp_profile.json836
-rw-r--r--ttcn3-asterisk-ims-ue-test/Dockerfile3
-rwxr-xr-xttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh19
-rw-r--r--ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf81
-rw-r--r--ttcn3-asterisk-ims-ue-test/asterisk/logger.conf3
-rw-r--r--ttcn3-asterisk-ims-ue-test/asterisk/manager.conf2
-rw-r--r--ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf37
-rw-r--r--ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf15
-rwxr-xr-xttcn3-asterisk-ims-ue-test/jenkins.sh165
-rw-r--r--ttcn3-asterisk-ims-ue-test/ttcn3/Asterisk_Tests.cfg (renamed from ttcn3-asterisk-ims-ue-test/Asterisk_Tests.cfg)7
-rwxr-xr-xttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh25
-rwxr-xr-xttcn3-bsc-test-vamos/jenkins.sh4
-rwxr-xr-xttcn3-bsc-test/jenkins.sh4
-rw-r--r--ttcn3-bsc-test/osmo-bsc.cfg1
-rw-r--r--ttcn3-bsc-test/sccplite/BSC_Tests.cfg1
-rwxr-xr-xttcn3-bts-test/jenkins.sh16
-rw-r--r--ttcn3-bts-test/oml/BTS_Tests.cfg5
-rw-r--r--ttcn3-cbc-test/CBC_Tests.cfg4
-rwxr-xr-xttcn3-cbc-test/jenkins.sh5
-rwxr-xr-xttcn3-epdg-test/epdg.sh6
-rwxr-xr-xttcn3-epdg-test/jenkins.sh1
-rw-r--r--ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg1
-rwxr-xr-xttcn3-gbproxy-test-fr/jenkins.sh2
-rw-r--r--ttcn3-gbproxy-test/GBProxy_Tests.cfg3
-rwxr-xr-xttcn3-gbproxy-test/jenkins.sh2
-rwxr-xr-xttcn3-ggsn-test/jenkins-ogs.sh12
-rwxr-xr-xttcn3-ggsn-test/jenkins.sh13
-rw-r--r--ttcn3-ggsn-test/ogs/GGSN_Tests.cfg15
-rwxr-xr-xttcn3-ggsn-test/ogs/upfd-setup.sh2
-rwxr-xr-xttcn3-ggsn-test/ogs/upfd.sh15
-rw-r--r--ttcn3-ggsn-test/osmo-ggsn-kernel/v4_only/osmo-ggsn.cfg3
-rw-r--r--ttcn3-ggsn-test/osmo-ggsn-kernel/v4v6_only/osmo-ggsn.cfg3
-rw-r--r--ttcn3-ggsn-test/osmo-ggsn-kernel/v6_only/osmo-ggsn.cfg3
-rw-r--r--ttcn3-ggsn-test/ttcn3/all/GGSN_Tests.cfg6
-rwxr-xr-xttcn3-hlr-test/jenkins.sh2
-rw-r--r--ttcn3-hnbgw-test/HNBGW_Tests.cfg1
-rwxr-xr-xttcn3-hnbgw-test/jenkins.sh2
-rw-r--r--ttcn3-hnodeb-test/HNB_Tests.cfg15
-rwxr-xr-xttcn3-hnodeb-test/jenkins.sh2
-rw-r--r--ttcn3-hnodeb-test/osmo-hnodeb.cfg1
-rwxr-xr-xttcn3-hss-test-ogs/jenkins.sh2
-rw-r--r--ttcn3-mgw-test/MGCP_Test.cfg29
-rwxr-xr-xttcn3-mgw-test/jenkins.sh5
-rwxr-xr-xttcn3-msc-test/jenkins.sh2
-rw-r--r--ttcn3-pcu-test/PCU_Tests.cfg23
-rwxr-xr-xttcn3-pcu-test/jenkins-sns.sh2
-rwxr-xr-xttcn3-pcu-test/jenkins.sh4
-rw-r--r--ttcn3-pcu-test/sns/PCU_Tests.cfg5
-rw-r--r--ttcn3-pgw-test/PGW_Tests.cfg2
-rwxr-xr-xttcn3-pgw-test/jenkins.sh10
-rwxr-xr-xttcn3-remsim-test/jenkins.sh2
-rw-r--r--ttcn3-s1gw-test/Dockerfile14
-rw-r--r--ttcn3-s1gw-test/Makefile1
-rw-r--r--ttcn3-s1gw-test/S1GW_Tests.cfg17
-rwxr-xr-xttcn3-s1gw-test/jenkins.sh47
-rw-r--r--ttcn3-s1gw-test/osmo-s1gw.config35
-rwxr-xr-xttcn3-s1gw-test/s1gw.sh8
-rwxr-xr-xttcn3-sccp-test/jenkins.sh4
-rw-r--r--ttcn3-sgsn-test/SGSN_Tests.cfg2
-rwxr-xr-xttcn3-sgsn-test/jenkins.sh9
-rw-r--r--ttcn3-sgsn-test/osmo-stp.cfg4
-rwxr-xr-xttcn3-sgsn-test/ttcn3.sh16
-rw-r--r--ttcn3-sip-test/SIP_Tests.cfg4
-rwxr-xr-xttcn3-sip-test/jenkins.sh2
-rwxr-xr-xttcn3-smlc-test/jenkins.sh2
-rw-r--r--ttcn3-stp-test/STP_Tests.cfg1
-rwxr-xr-xttcn3-stp-test/jenkins.sh9
-rw-r--r--ttcn3-stp-test/osmo-stp-tcp.confmerge28
-rw-r--r--ttcn3-stp-test/osmo-stp.cfg27
-rwxr-xr-xttcn3-upf-test/jenkins.sh2
111 files changed, 2497 insertions, 225 deletions
diff --git a/asterisk-master/Dockerfile b/asterisk-master/Dockerfile
index 0281176..55734ba 100644
--- a/asterisk-master/Dockerfile
+++ b/asterisk-master/Dockerfile
@@ -28,6 +28,16 @@ RUN apt-get update && \
wget && \
apt-get clean
+# AMR support in asterisk, catched at configure time:
+RUN apt-get update && \
+apt-get upgrade -y && \
+DEBIAN_FRONTEND=noninteractive \
+apt-get install -y --no-install-recommends \
+ libopencore-amrnb-dev \
+ libopencore-amrwb-dev \
+ libvo-amrwbenc-dev && \
+apt-get clean
+
# create a user
ARG username=asterisk
RUN useradd -m ${username} && \
@@ -50,10 +60,13 @@ RUN cd pjproject && \
# clone asterisk
ARG ASTERISK_REMOTE=https://gitea.sysmocom.de/sysmocom/asterisk.git
+ARG ASTERISK_BRANCH=sysmocom/master
RUN git clone $ASTERISK_REMOTE
+ADD https://gitea.sysmocom.de/api/v1/repos/sysmocom/asterisk/git/refs/heads/$ASTERISK_BRANCH /tmp/asterisk-ver
+
RUN cd asterisk && \
- git fetch && git checkout -f -B sysmocom/master origin/sysmocom/master
+ git fetch && git checkout -f -B $ASTERISK_BRANCH origin/$ASTERISK_BRANCH
# Use pjproject from git repo above instead of downloading tar.gz:
RUN cd asterisk/third-party/pjproject && \
@@ -62,17 +75,9 @@ RUN cd asterisk/third-party/pjproject && \
RUN cd asterisk && \
./bootstrap.sh && \
./configure && \
- make "-j$(nproc)"
-
-ARG ASTERISK_BRANCH=sysmocom/master
-
-ADD https://gitea.sysmocom.de/api/v1/repos/sysmocom/asterisk/git/refs/heads/$ASTERISK_BRANCH /tmp/asterisk-ver
-
-# update the source code (if needed)
-RUN cd asterisk && \
- git fetch && git checkout -B $ASTERISK_BRANCH origin/$ASTERISK_BRANCH
-
-RUN cd asterisk && \
+ make menuselect.makeopts && \
+ menuselect/menuselect --enable codec_vevs menuselect.makeopts && \
+ menuselect/menuselect --check-deps menuselect.makeopts && \
make "-j$(nproc)" && \
make install && \
make samples && \
@@ -80,3 +85,7 @@ RUN cd asterisk && \
# Required to set up ipsec:
RUN setcap 'cap_net_admin,cap_sys_resource=ep' /usr/sbin/asterisk
+
+RUN cd asterisk/codec_server && \
+ make "-j$(nproc)" && \
+ cp cserver /usr/bin/cserver
diff --git a/centos7-build/Dockerfile b/centos7-build/Dockerfile
index f449d42..d4b152c 100644
--- a/centos7-build/Dockerfile
+++ b/centos7-build/Dockerfile
@@ -5,6 +5,13 @@ FROM ${REGISTRY}/${UPSTREAM_DISTRO}
ARG OSMOCOM_REPO_MIRROR="https://downloads.osmocom.org"
ARG OSMOCOM_REPO_PATH="packages/osmocom:"
+# Use vault.centos.org instead of mirrorlist.centos.org, which doesn't exist
+# anymore (see https://serverfault.com/a/1161847).
+RUN set -x && \
+ sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo && \
+ sed -i 's/^#.*baseurl=http/baseurl=http/g' /etc/yum.repos.d/*.repo && \
+ sed -i 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/*.repo
+
# Use dnf package manager instead of yum, so we can use all the dnf codepaths
# that were originally written for CentOS8 in this CentOS7 image too
RUN yum install -y dnf
diff --git a/centos7-obs-latest/Dockerfile b/centos7-obs-latest/Dockerfile
index 2c06882..7da0db3 100644
--- a/centos7-obs-latest/Dockerfile
+++ b/centos7-obs-latest/Dockerfile
@@ -6,6 +6,13 @@ ARG OSMOCOM_REPO_MIRROR="https://downloads.osmocom.org"
ARG OSMOCOM_REPO_PATH="packages/osmocom:"
ARG OSMOCOM_REPO_VERSION="latest"
+# Use vault.centos.org instead of mirrorlist.centos.org, which doesn't exist
+# anymore (see https://serverfault.com/a/1161847).
+RUN set -x && \
+ sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo && \
+ sed -i 's/^#.*baseurl=http/baseurl=http/g' /etc/yum.repos.d/*.repo && \
+ sed -i 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/*.repo
+
# Use dnf package manager instead of yum, so we can use all the dnf codepaths
# that were originally written for CentOS8 in this CentOS7 image too
RUN yum install -y dnf
diff --git a/common/Release.key b/common/Release.key
index ecca084..b4c019a 100644
--- a/common/Release.key
+++ b/common/Release.key
@@ -8,13 +8,13 @@ e93fLa2Cu8vhFBcVn6CuHeEhsmuMf6NLbQRNfNNCEEUYaZn7beMYtpZ7t1djsKx5
1xGm50OzI22FLu8lELQ9d7qMVGRG3WHYawX9BDteRybiyqxfwUHm1haWazRJtlGt
UWyzvwAb80BK1J2Nu5fbAa3w5CoEPAbUuCyrABEBAAG0JW9zbW9jb20gT0JTIFBy
b2plY3QgPG9zbW9jb21Ab3Ntb2NvbT6JAVQEEwEIAD4WIQRrKp83ktFetw1Oao+G
-pzC2U3JZcwUCYrMV4wIbAwUJBB6yjwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
-CRCGpzC2U3JZc4FRCACQQkKIrnvQ7n2u7GSmyVZa3I+oLoFXSGqaGyey5TW/nrMm
-vFDKU3qliHiuNSmUY35SnAhXUsvqOYppxVRoO1MLrqUvzMOnIWqkJpf8mtjGUnsW
-jyVeto7Rsjs75y2i1Hk+e7ljb/V65J3NlfrfEYWbqR9AKd53ReNXTdrQ0J05A38N
-GdI4Ld/2lNISAwaBmGhqdeKsLHpQw/JERU1TApVJR1whFiIwDF1rOCg9GPnNKIk7
-yRZdK267XzztrainX/cbPILyzUZEDhYs6wQuyACyQ1YUxZIxrwVfk7PMNay8CrLH
-z42B73Ne5IAj8+op/3iJafFONLm7YXiDUFN+QDYAiQEzBBMBCAAdFiEExoiYhHND
+pzC2U3JZcwUCZrNL8wIbAwUJCB7onwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
+CRCGpzC2U3JZc11RB/9oogcqTF30pPEwjjGvXF+WMiRFHl8aVvQIk9m+2KUcjlVk
+0q8+/guOg7KcVejPxyn2AQbTByWWgpH1o3BoDKWnvypURAV2uGOtCo6mUQop5yK0
+d50j9hwIXSwJWoD2r5OY+Gbs4dBzMGkKbnCED1n8324b8EN6m96eoL570Uq9vy4G
+gIp+QCpePu8AMdoCLR2w3J+TA4gLdDeH2cr7TgmwlDCp8e6R8FVmRt3SvunPmFz3
+FHDicv2f9ZoHXVLQ20DgWUyI1xOPlzBNJowgK9YnLPdIidE9i+EbvC1YA+6O/WMa
+kSUEyJLZS5mv2+T6ptgnCIgxrIoTu63O4Rsf5zV+iQEzBBMBCAAdFiEExoiYhHND
S7aVYlnqa51NyAUyjdsFAmKzE1UACgkQa51NyAUyjdvuZgf+OXmr//i7u7Gg7eWB
7e0qUsyCId9lXS8J437x3K6ciJfD7/6RSy8TFW5Nglm/uSkbyq582I8t+SoOirMD
E6cg9U/5+h5s46bAf+Kd2XS/6tLGeNLM18i4el8CP06NpFzDrsKu76uYFpyRiiHD
@@ -22,5 +22,5 @@ otBdtgxeLJ83LugGfZslF+/5cigJkAJMhAdVvGO8h85R6fba8ZSOKtMKkaQRfi76
nhyOrJPlLuS+DLEnHwdkOFgtKnxHdjM97K+Tx0gisb6uwaWroXfSLnhP8RTLLZZy
Z+noU1Hw3c+mn4c/NYbcC/uwHYHKRzuf9gHnQ3dGgv0Z5sbeLRVo92hjGj7Ftlyd
4hmKBg==
-=HxK4
+=5Cwc
-----END PGP PUBLIC KEY BLOCK-----
diff --git a/common/ttcn3-docker-prepare.sh b/common/ttcn3-docker-prepare.sh
index c2b28b9..2c18b53 100755
--- a/common/ttcn3-docker-prepare.sh
+++ b/common/ttcn3-docker-prepare.sh
@@ -14,7 +14,7 @@ OSMO_TTCN3_BRANCH=$1
shift
cd /osmo-ttcn3-hacks
-
+git remote set-url origin "https://gerrit.osmocom.org/osmo-ttcn3-hacks"
git fetch
git checkout "$OSMO_TTCN3_BRANCH"
diff --git a/debian-bookworm-build-arm/Dockerfile b/debian-bookworm-build-arm/Dockerfile
index d7e963b..9b725a7 100644
--- a/debian-bookworm-build-arm/Dockerfile
+++ b/debian-bookworm-build-arm/Dockerfile
@@ -17,9 +17,8 @@ COPY .common/Release.key /etc/apt/trusted.gpg.d/obs.osmocom.org.asc
# Configure build user, disable installing man pages
# * man pages: without them we avoid waiting for "generating manpages"
RUN set -x && \
- useradd --uid=${UID} build && \
- mkdir /build && \
- chown -R build:build /build /usr/local && \
+ useradd --uid=${UID} -d /build -m build && \
+ chown -R build:build /usr/local && \
\
echo "path-exclude=/usr/share/man/*" \
> /etc/dpkg/dpkg.cfg.d/exclude-man-pages && \
diff --git a/debian-bookworm-build/Dockerfile b/debian-bookworm-build/Dockerfile
index edca2d7..3efbc6e 100644
--- a/debian-bookworm-build/Dockerfile
+++ b/debian-bookworm-build/Dockerfile
@@ -18,9 +18,8 @@ COPY .common/Release.key /etc/apt/trusted.gpg.d/obs.osmocom.org.asc
# * /usr/local: osmo-python-tests's contrib/jenkins.sh writes there
# * man pages: without them we avoid waiting for "generating manpages"
RUN set -x && \
- useradd --uid=${UID} build && \
- mkdir /build && \
- chown -R build:build /build /usr/local && \
+ useradd --uid=${UID} -d /build -m build && \
+ chown -R build:build /usr/local && \
\
echo "path-exclude=/usr/share/man/*" \
> /etc/dpkg/dpkg.cfg.d/exclude-man-pages && \
@@ -177,7 +176,7 @@ RUN set -x && \
cat /tmp/pysim_requirements.txt && \
pip3 install --break-system-packages \
'git+https://github.com/eriwen/lcov-to-cobertura-xml.git' \
- 'git+https://github.com/osmocom/sphinx-argparse@master#egg=sphinx-argparse' \
+ 'git+https://github.com/osmocom/sphinx-argparse@inside-classes#egg=sphinx-argparse' \
'git+https://github.com/podshumok/python-smpplib.git' \
'pydbus' \
'pysispm' \
diff --git a/debian-bookworm-erlang/Dockerfile b/debian-bookworm-erlang/Dockerfile
index ec5ed52..60e7583 100644
--- a/debian-bookworm-erlang/Dockerfile
+++ b/debian-bookworm-erlang/Dockerfile
@@ -24,10 +24,11 @@ RUN set -x && \
apt-get install -y --no-install-recommends \
build-essential \
git \
+ iproute2 \
+ netcat-openbsd \
procps \
tcpdump \
vim \
- netcat-openbsd \
wget \
&& \
apt-get clean
diff --git a/debian-bookworm-obs-asan/Dockerfile b/debian-bookworm-obs-asan/Dockerfile
new file mode 100644
index 0000000..370b845
--- /dev/null
+++ b/debian-bookworm-obs-asan/Dockerfile
@@ -0,0 +1,38 @@
+ARG REGISTRY=docker.io
+ARG UPSTREAM_DISTRO=debian:bookworm
+FROM ${REGISTRY}/${UPSTREAM_DISTRO}
+
+# Arguments used after FROM must be specified again
+ARG OSMOCOM_REPO_MIRROR="https://downloads.osmocom.org"
+ARG OSMOCOM_REPO_PATH="packages/osmocom:"
+ARG OSMOCOM_REPO="${OSMOCOM_REPO_MIRROR}/${OSMOCOM_REPO_PATH}/nightly:/asan/Debian_12/"
+ARG UID
+
+# Copy from common dir
+COPY .common/respawn.sh /usr/local/bin/respawn.sh
+COPY .common/Release.key /usr/share/keyrings/osmocom-nightly-asan.asc
+
+# Configure build user, disable installing man pages
+# * /usr/local: osmo-python-tests's contrib/jenkins.sh writes there
+# * man pages: without them we avoid waiting for "generating manpages"
+RUN set -x && \
+ useradd --uid=${UID} -d /build -m build && \
+ chown -R build:build /usr/local && \
+ \
+ echo "path-exclude=/usr/share/man/*" \
+ > /etc/dpkg/dpkg.cfg.d/exclude-man-pages && \
+ rm -rf /usr/share/man/
+
+# Configure Osmocom nightly asan repository, add telnet for debugging
+RUN set -x && \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ ca-certificates \
+ telnet \
+ && \
+ apt-get clean && \
+ echo "deb [signed-by=/usr/share/keyrings/osmocom-nightly-asan.asc] $OSMOCOM_REPO ./" \
+ > /etc/apt/sources.list.d/osmocom-nightly-asan.list
+
+# Invalidate cache once the repository is updated
+ADD $OSMOCOM_REPO/Release /tmp/Release
diff --git a/debian-bookworm-obs-asan/Makefile b/debian-bookworm-obs-asan/Makefile
new file mode 100644
index 0000000..cdac90c
--- /dev/null
+++ b/debian-bookworm-obs-asan/Makefile
@@ -0,0 +1,3 @@
+UPSTREAM_DISTRO=debian:bookworm
+DISTRO=debian-bookworm
+include ../make/Makefile
diff --git a/debian-bookworm-obs-latest/Dockerfile b/debian-bookworm-obs-latest/Dockerfile
index 9451902..523afb6 100644
--- a/debian-bookworm-obs-latest/Dockerfile
+++ b/debian-bookworm-obs-latest/Dockerfile
@@ -16,9 +16,8 @@ COPY .common/Release.key /usr/share/keyrings/osmocom-latest.asc
# * /usr/local: osmo-python-tests's contrib/jenkins.sh writes there
# * man pages: without them we avoid waiting for "generating manpages"
RUN set -x && \
- useradd --uid=${UID} build && \
- mkdir /build && \
- chown -R build:build /build /usr/local && \
+ useradd --uid=${UID} -d /build -m build && \
+ chown -R build:build /usr/local && \
\
echo "path-exclude=/usr/share/man/*" \
> /etc/dpkg/dpkg.cfg.d/exclude-man-pages && \
diff --git a/debian-bullseye-erlang/Dockerfile b/debian-bullseye-erlang/Dockerfile
index 9a90c0c..4abb7b6 100644
--- a/debian-bullseye-erlang/Dockerfile
+++ b/debian-bullseye-erlang/Dockerfile
@@ -25,10 +25,11 @@ RUN apt-get update && \
apt-get -y install \
build-essential \
git \
+ iproute2 \
+ netcat-openbsd \
procps \
tcpdump \
vim \
- netcat-openbsd \
wget \
&& \
apt-get clean
diff --git a/debian-buster-build/Dockerfile b/debian-buster-build/Dockerfile
index 0d2b5b7..c54af17 100644
--- a/debian-buster-build/Dockerfile
+++ b/debian-buster-build/Dockerfile
@@ -39,6 +39,7 @@ RUN apt-get update && \
libgnutls28-dev \
libgps-dev \
libgsm1-dev \
+ libmnl-dev \
libncurses5-dev \
libnewlib-arm-none-eabi \
libortp-dev \
diff --git a/dnsmasq/Dockerfile b/dnsmasq/Dockerfile
new file mode 100644
index 0000000..61cd94a
--- /dev/null
+++ b/dnsmasq/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:stable
+
+LABEL name="dnsmasq" \
+ description="Dnsmasq Server" \
+ version="1.0" \
+ maintainer="pespin@sysmocom.de"
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ dnsmasq && \
+ apt-get clean
+
+EXPOSE 53/tcp \
+ 53/udp
+
+VOLUME /etc/dnsmasq
+
+CMD ["/bin/sh", "-c", "dnsmasq -d --log-queries=extra -C /data/dnsmasq.conf >/data/dnsmasq.log 2>&1"]
diff --git a/dnsmasq/Makefile b/dnsmasq/Makefile
new file mode 100644
index 0000000..59dce87
--- /dev/null
+++ b/dnsmasq/Makefile
@@ -0,0 +1,2 @@
+IMAGE=registry.sysmocom.de/dnsmasq
+include ../make/Makefile
diff --git a/jenkins-common.sh b/jenkins-common.sh
index eae0473..af52b7f 100644
--- a/jenkins-common.sh
+++ b/jenkins-common.sh
@@ -2,6 +2,9 @@ CACHE_DIR="$(realpath ../_cache)"
KERNEL_TEST_DIR="$(realpath ../scripts/kernel-test)"
DEBIAN_DEFAULT="bookworm"
+SUB4_PREFIX="172.18"
+SUB6_PREFIX="fd02:db8"
+
docker_image_exists() {
test -n "$(docker images -q "$REPO_USER/$1")"
}
@@ -21,8 +24,10 @@ docker_depends() {
osmo-*-centos7) echo "centos7-build" ;;
osmo-*-centos8) echo "centos8-build" ;;
osmo-*-latest) echo "debian-$DEBIAN_DEFAULT-obs-latest" ;;
+ osmo-*-asan) echo "debian-$DEBIAN_DEFAULT-obs-asan" ;;
osmo_dia2gsup-*) echo "debian-$DEBIAN_DEFAULT-erlang" ;;
osmo-epdg-*) echo "debian-$DEBIAN_DEFAULT-erlang" ;;
+ osmo-s1gw-*) echo "debian-$DEBIAN_DEFAULT-erlang" ;;
osmo-*) echo "debian-$DEBIAN_DEFAULT-build" ;;
open5gs-master) echo "debian-$DEBIAN_DEFAULT-build" ;;
ttcn3-*) echo "debian-bookworm-titan" ;;
@@ -78,6 +83,13 @@ docker_dir_from_image_name() {
# e.g. centos8-obs-2021q1 -> centos8-obs-latest
echo "$1" | sed 's/20[0-9][0-9]q.*$/latest/'
;;
+ osmo-*-asan)
+ # Build Osmocom programs from the asan repository with the
+ # "-latest" docker containers (osmo-mgw-latest/Dockerfile etc.)
+ # so they are completely built from the OBS packages instead of
+ # building some of it from git (as in *-master/Dockerfile).
+ echo "$1" | sed 's/-asan/-latest/'
+ ;;
*)
echo "$1"
;;
@@ -242,8 +254,8 @@ network_create() {
for i in $(seq 1 30); do
SUBNET="$(echo "($SUBNET + 1) % 256" | bc)"
NET_NAME="$SUITE_NAME-$SUBNET"
- SUB4="172.18.$SUBNET.0/24"
- SUB6="fd02:db8:$SUBNET::/64"
+ SUB4="$SUB4_PREFIX.$SUBNET.0/24"
+ SUB6="$SUB6_PREFIX:$SUBNET::/64"
set +x
echo "Creating network $NET_NAME, trying SUBNET=$SUBNET..."
set -x
@@ -282,8 +294,8 @@ network_bridge_create() {
network_clean
network_remove
fi
- SUB4="172.18.$NET.0/24"
- SUB6="fd02:db8:$NET::/64"
+ SUB4="$SUB4_PREFIX.$NET.0/24"
+ SUB6="$SUB6_PREFIX:$NET::/64"
set +x
echo "Creating network $NET_NAME"
set -x
@@ -291,7 +303,7 @@ network_bridge_create() {
--driver=bridge \
--subnet $SUB4 \
--ipv6 --subnet $SUB6 \
- -o "com.docker.network.bridge.host_binding_ipv4"="172.18.$NET.1" \
+ -o "com.docker.network.bridge.host_binding_ipv4"="$SUB4_PREFIX.$NET.1" \
$NET_NAME
}
@@ -360,8 +372,8 @@ network_replace_subnet_in_configs() {
sed \
-i \
-E \
- -e "s/172\.18\.[0-9]{1,3}\./172.18.$SUBNET./g" \
- -e "s/fd02:db8:[0-9]{1,3}:/fd02:db8:$SUBNET:/g" \
+ -e "s/172\.18\.[0-9]{1,3}\./$SUB4_PREFIX.$SUBNET./g" \
+ -e "s/$SUB6_PREFIX:[0-9]{1,3}:/$SUB6_PREFIX:$SUBNET:/g" \
"$i"
done
@@ -374,7 +386,7 @@ network_replace_subnet_in_configs() {
docker_network_params() {
NET=$1
ADDR_SUFIX=$2
- echo --network $NET_NAME --ip "172.18.$NET.$ADDR_SUFIX" --ip6 "fd02:db8:$NET::$ADDR_SUFIX"
+ echo --network $NET_NAME --ip "$SUB4_PREFIX.$NET.$ADDR_SUFIX" --ip6 "$SUB6_PREFIX:$NET::$ADDR_SUFIX"
}
fix_perms() {
@@ -528,24 +540,25 @@ kernel_test_wait_for_vm() {
exit 1
}
-# Check if IMAGE_SUFFIX starts with "latest" (e.g. "latest-centos8")
-image_suffix_is_latest() {
+# Check if the "latest" repo is used (e.g. "latest-centos8")
+osmo_repo_is_latest() {
case "$IMAGE_SUFFIX" in
latest*) return 0 ;;
*) return 1 ;;
esac
}
-# Check if IMAGE_SUFFIX starts with "master" (e.g. "master-centos8")
-image_suffix_is_master() {
+# Check if the "nightly" repo is used (e.g. "master-centos8")
+osmo_repo_is_nightly() {
case "$IMAGE_SUFFIX" in
master*) return 0 ;;
+ asan*) return 0 ;;
*) return 1 ;;
esac
}
-# Check if IMAGE_SUFFIX starts with "2023q1" (e.g. "2023q1-centos8")
-image_suffix_is_2023q1() {
+# Check if the "2023q1" repo is used (e.g. "2023q1-centos8")
+osmo_repo_is_2023q1() {
case "$IMAGE_SUFFIX" in
2023q1*) return 0 ;;
*) return 1 ;;
diff --git a/make/Makefile b/make/Makefile
index 24308e5..27414f3 100644
--- a/make/Makefile
+++ b/make/Makefile
@@ -17,8 +17,10 @@ REGISTRY_HOST?=docker.io
USERNAME?=$(USER)
UID=$(shell id -u)
NAME?=$(shell basename $(CURDIR))
-ASTERISK_BRANCH?=sysmocom/master
+ASTERISK_BRANCH?=jolly/work
LIBOSMOCORE_BRANCH?=master
+LIBOSMOABIS_BRANCH?=master
+LIBOSMONETIF_BRANCH?=master
OSMO_TTCN3_BRANCH?=master
OSMO_BB_BRANCH?=master
OSMO_BSC_BRANCH?=master
@@ -42,7 +44,7 @@ OSMO_SIP_BRANCH?=master
OSMO_STP_BRANCH?=master
OSMO_UECUPS_BRANCH?=master
OPEN5GS_BRANCH?=main
-PJPROJECT_BRANCH?=sysmocom/2.14
+PJPROJECT_BRANCH?=jolly/work
BUILD_ARGS?=
RUN_ARGS?=-it
UPSTREAM_DISTRO?=debian:bookworm
@@ -104,6 +106,8 @@ docker-build: .release
--build-arg OSMOCOM_REPO_TESTSUITE_MIRROR=$(OSMOCOM_REPO_TESTSUITE_MIRROR) \
--build-arg ASTERISK_BRANCH=$(ASTERISK_BRANCH) \
--build-arg LIBOSMOCORE_BRANCH=$(LIBOSMOCORE_BRANCH) \
+ --build-arg LIBOSMOABIS_BRANCH=$(LIBOSMOABIS_BRANCH) \
+ --build-arg LIBOSMONETIF_BRANCH=$(LIBOSMONETIF_BRANCH) \
--build-arg OSMO_BB_BRANCH=$(OSMO_BB_BRANCH) \
--build-arg OSMO_BSC_BRANCH=$(OSMO_BSC_BRANCH) \
--build-arg OSMO_BTS_BRANCH=$(OSMO_BTS_BRANCH) \
diff --git a/open5gs-master/Dockerfile b/open5gs-master/Dockerfile
index e9b3cf4..2280abb 100644
--- a/open5gs-master/Dockerfile
+++ b/open5gs-master/Dockerfile
@@ -43,6 +43,16 @@ RUN apt-get update && \
apt-get install -y \
mongodb-org
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ DEBIAN_FRONTEND=noninteractive \
+ apt-get install -y --no-install-recommends \
+ gdb \
+ libtalloc-dev \
+ valgrind \
+ tcpdump && \
+ apt-get clean
+
# create a user
ARG username=osmocom
RUN useradd -m ${username} && \
diff --git a/osmo-bsc-master/Dockerfile b/osmo-bsc-master/Dockerfile
index 65ec5d4..74a6d85 100644
--- a/osmo-bsc-master/Dockerfile
+++ b/osmo-bsc-master/Dockerfile
@@ -34,6 +34,84 @@ RUN case "$DISTRO" in \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG OSMO_STP_BRANCH="master"
+
+RUN git clone https://gerrit.osmocom.org/libosmo-sccp.git
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-sccp/+/$OSMO_STP_BRANCH?format=TEXT /tmp/commit
+RUN cd libosmo-sccp && \
+ git fetch && git checkout $OSMO_STP_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_STP_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ autoreconf -fi && \
+ ./configure --enable-sanitize && \
+ make "-j$(nproc)" install && \
+ install examples/.libs/sccp_demo_user /usr/local/bin/ && \
+ ldconfig
+
+ARG OSMO_MGW_BRANCH="master"
+
+RUN git clone https://gerrit.osmocom.org/osmo-mgw.git
+ADD https://gerrit.osmocom.org/plugins/gitiles/osmo-mgw/+/$OSMO_MGW_BRANCH?format=TEXT /tmp/commit-osmo-mgw
+
+RUN cd osmo-mgw && \
+ git fetch && git checkout $OSMO_MGW_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_MGW_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ autoreconf -fi && \
+ ./configure && \
+ make "-j$(nproc)" install && \
+ ldconfig
+
ARG OSMO_BSC_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-bsc.git
@@ -44,7 +122,7 @@ RUN cd osmo-bsc && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_BSC_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure && \
+ ./configure --enable-sanitize && \
make "-j$(nproc)" install
VOLUME /data
diff --git a/osmo-bts-master/Dockerfile b/osmo-bts-master/Dockerfile
index 8c43973..31dc06b 100644
--- a/osmo-bts-master/Dockerfile
+++ b/osmo-bts-master/Dockerfile
@@ -13,7 +13,8 @@ RUN case "$DISTRO" in \
libosmo-netif-dev \
libosmo-sccp-dev \
libsmpp34-dev \
- libgtp-dev && \
+ libgtp-dev \
+ gdb && \
apt-get clean \
;; \
centos*) \
@@ -33,6 +34,57 @@ RUN case "$DISTRO" in \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ --enable-libsctp \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_BTS_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-bts.git
@@ -43,7 +95,7 @@ RUN cd osmo-bts && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_BTS_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure --enable-trx && \
+ ./configure --enable-trx --enable-sanitize && \
make "-j$(nproc)" install
VOLUME /data
diff --git a/osmo-cbc-master/Dockerfile b/osmo-cbc-master/Dockerfile
index 0e90fc8..f3f527f 100644
--- a/osmo-cbc-master/Dockerfile
+++ b/osmo-cbc-master/Dockerfile
@@ -11,6 +11,8 @@ RUN case "$DISTRO" in \
libosmocore-dev \
libosmo-netif-dev \
libulfius-dev \
+ libsctp-dev \
+ gdb \
&& \
apt-get clean \
;; \
@@ -27,6 +29,68 @@ RUN case "$DISTRO" in \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-libsctp \
+ --enable-sanitize \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && ./configure \
+ --disable-doxygen \
+ --enable-libsctp \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && ./configure \
+ --disable-doxygen \
+ --enable-libsctp \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_CBC_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-cbc.git
@@ -37,7 +101,10 @@ RUN cd osmo-cbc && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_CBC_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure && \
+ export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" && \
+ ./configure --enable-sanitize && \
make "-j$(nproc)" install && \
ldconfig
diff --git a/osmo-epdg-latest/Dockerfile b/osmo-epdg-latest/Dockerfile
new file mode 100644
index 0000000..10f7437
--- /dev/null
+++ b/osmo-epdg-latest/Dockerfile
@@ -0,0 +1,32 @@
+ARG USER
+ARG DISTRO
+ARG OSMOCOM_REPO_VERSION="latest"
+FROM $USER/$DISTRO-erlang
+# Arguments used after FROM must be specified again
+ARG DISTRO
+
+WORKDIR /tmp
+
+# erlang repo is using build user
+USER root
+RUN case "$DISTRO" in \
+ debian*) \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ osmo-epdg && \
+ apt-get clean \
+ ;; \
+ centos*) \
+ dnf install -y \
+ osmo-epdg \
+ ;; \
+ esac
+
+WORKDIR /data
+
+VOLUME /data
+COPY osmo-epdg.config /data/osmo-epdg.config
+
+CMD ["/bin/sh", "-c", "ERL_FLAGS='-config /data/osmo-epdg.config' /usr/bin/osmo-epdg > /data/osmo-epdg.log 2>&1"]
+
+#EXPOSE
diff --git a/osmo-epdg-latest/Makefile b/osmo-epdg-latest/Makefile
new file mode 100644
index 0000000..8d0e10b
--- /dev/null
+++ b/osmo-epdg-latest/Makefile
@@ -0,0 +1 @@
+include ../make/Makefile
diff --git a/osmo-epdg-latest/osmo-epdg.config b/osmo-epdg-latest/osmo-epdg.config
new file mode 100644
index 0000000..be49216
--- /dev/null
+++ b/osmo-epdg-latest/osmo-epdg.config
@@ -0,0 +1,2 @@
+[{osmo_epdg, [
+]}].
diff --git a/osmo-epdg-master/Dockerfile b/osmo-epdg-master/Dockerfile
index cdef31e..a5e9b14 100644
--- a/osmo-epdg-master/Dockerfile
+++ b/osmo-epdg-master/Dockerfile
@@ -4,14 +4,6 @@ FROM $USER/$DISTRO-erlang
# Arguments used after FROM must be specified again
ARG DISTRO
-# $distro-erlang switched to user build, but we need to install more stuff beforehand:
-USER root
-RUN apt-get update && \
- apt-get install -y --no-install-recommends \
- iproute2 && \
- apt-get clean
-USER build
-
WORKDIR /tmp
ARG OSMO_EPDG_BRANCH="master"
diff --git a/osmo-gbproxy-master/Dockerfile b/osmo-gbproxy-master/Dockerfile
index 484bb88..a895459 100644
--- a/osmo-gbproxy-master/Dockerfile
+++ b/osmo-gbproxy-master/Dockerfile
@@ -28,6 +28,56 @@ RUN case "$DISTRO" in \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH?format=TEXT \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_GBPROXY_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-gbproxy.git
@@ -38,7 +88,7 @@ RUN cd osmo-gbproxy && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_GBPROXY_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure && \
+ ./configure --enable-sanitize && \
make "-j$(nproc)" install && \
ldconfig
diff --git a/osmo-ggsn-master/Dockerfile b/osmo-ggsn-master/Dockerfile
index 7f505d0..2c5a91f 100644
--- a/osmo-ggsn-master/Dockerfile
+++ b/osmo-ggsn-master/Dockerfile
@@ -33,8 +33,35 @@ RUN case "$DISTRO" in \
;; \
esac
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ DEBIAN_FRONTEND=noninteractive \
+ apt-get install -y --no-install-recommends \
+ gdb \
+ libtalloc-dev \
+ tcpdump && \
+ apt-get clean
+
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_GGSN_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-ggsn.git
@@ -45,7 +72,7 @@ RUN cd osmo-ggsn && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_GGSN_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure --enable-gtp-linux && \
+ ./configure --enable-gtp-linux --enable-sanitize && \
make "-j$(nproc)" install && \
ldconfig
diff --git a/osmo-hnbgw-master/Dockerfile b/osmo-hnbgw-master/Dockerfile
index f69a6b4..de830bd 100644
--- a/osmo-hnbgw-master/Dockerfile
+++ b/osmo-hnbgw-master/Dockerfile
@@ -6,6 +6,7 @@ ARG DISTRO
RUN apt-get update && \
apt-get install -y --no-install-recommends \
+ gdb \
libosmocore-dev \
libosmo-abis-dev \
libosmo-mgcp-client-dev \
@@ -16,11 +17,92 @@ RUN apt-get update && \
libosmo-hnbap-dev \
libasn1c-dev \
libosmo-pfcp-dev \
+ libosmo-mgcp-client-dev \
&& \
apt-get clean
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ --enable-libsctp \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ --enable-libsctp \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG OSMO_IUH_BRANCH="master"
+
+RUN git clone https://gerrit.osmocom.org/osmo-iuh.git
+ADD https://gerrit.osmocom.org/plugins/gitiles/osmo-iuh/+/$OSMO_IUH_BRANCH?format=TEXT /tmp/commit-osmo-iuh
+
+RUN cd osmo-iuh && \
+ git fetch && git checkout $OSMO_IUH_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_IUH_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ autoreconf -fi && \
+ ./configure && \
+ make "-j$(nproc)" install && \
+ ldconfig
+
+ARG OSMO_MGW_BRANCH="master"
+
+RUN git clone https://gerrit.osmocom.org/osmo-mgw.git
+ADD https://gerrit.osmocom.org/plugins/gitiles/osmo-mgw/+/$OSMO_MGW_BRANCH?format=TEXT /tmp/commit-osmo-mgw
+
+RUN cd osmo-mgw && \
+ git fetch && git checkout $OSMO_MGW_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_MGW_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ autoreconf -fi && \
+ ./configure && \
+ make "-j$(nproc)" install && \
+ ldconfig
+
ARG OSMO_HNBGW_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-hnbgw.git
@@ -31,7 +113,7 @@ RUN cd osmo-hnbgw && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_HNBGW_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure --enable-pfcp && \
+ ./configure --enable-pfcp --enable-sanitize && \
make "-j$(nproc)" install && \
ldconfig
diff --git a/osmo-hnodeb-master/Dockerfile b/osmo-hnodeb-master/Dockerfile
index ffdb639..4fd0f3e 100644
--- a/osmo-hnodeb-master/Dockerfile
+++ b/osmo-hnodeb-master/Dockerfile
@@ -15,6 +15,58 @@ RUN apt-get update && \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ --enable-libsctp \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ --enable-libsctp \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_IUH_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-iuh.git
@@ -39,7 +91,7 @@ RUN cd osmo-hnodeb && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_HNODEB_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure && \
+ ./configure --enable-sanitize && \
make "-j$(nproc)" install && \
ldconfig
diff --git a/osmo-mgw-master/Dockerfile b/osmo-mgw-master/Dockerfile
index 20b5b1a..1093ffb 100644
--- a/osmo-mgw-master/Dockerfile
+++ b/osmo-mgw-master/Dockerfile
@@ -8,6 +8,7 @@ RUN case "$DISTRO" in \
debian*) \
apt-get update && \
apt-get install -y --no-install-recommends \
+ gdb \
libosmocore-dev \
libosmo-abis-dev \
libosmo-netif-dev \
@@ -29,6 +30,58 @@ RUN case "$DISTRO" in \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ --enable-libsctp \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ --enable-libsctp \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_MGW_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-mgw.git
@@ -40,7 +93,10 @@ RUN cd osmo-mgw && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_MGW_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure && \
+ export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" && \
+ export CFLAGS="-g -O0 -fno-omit-frame-pointer" && \
+ export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" && \
+ ./configure --enable-sanitize && \
make "-j$(nproc)" install && \
ldconfig
diff --git a/osmo-msc-master/Dockerfile b/osmo-msc-master/Dockerfile
index 7a0362d..9ab5697 100644
--- a/osmo-msc-master/Dockerfile
+++ b/osmo-msc-master/Dockerfile
@@ -42,6 +42,85 @@ RUN case "$DISTRO" in \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ --enable-sanitize \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG OSMO_STP_BRANCH="master"
+
+RUN git clone https://gerrit.osmocom.org/libosmo-sccp.git
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-sccp/+/$OSMO_STP_BRANCH?format=TEXT /tmp/commit
+RUN cd libosmo-sccp && \
+ git fetch && git checkout $OSMO_STP_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_STP_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ autoreconf -fi && \
+ ./configure --enable-sanitize && \
+ make "-j$(nproc)" install && \
+ install examples/.libs/sccp_demo_user /usr/local/bin/ && \
+ ldconfig
+
+ARG OSMO_MGW_BRANCH="master"
+
+RUN git clone https://gerrit.osmocom.org/osmo-mgw.git
+ADD https://gerrit.osmocom.org/plugins/gitiles/osmo-mgw/+/$OSMO_MGW_BRANCH?format=TEXT /tmp/commit-osmo-mgw
+
+
+RUN cd osmo-mgw && \
+ git fetch && git checkout $OSMO_MGW_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_MGW_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ autoreconf -fi && \
+ ./configure && \
+ make "-j$(nproc)" install && \
+ ldconfig
+
ARG OSMO_MSC_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-msc.git
@@ -52,7 +131,7 @@ RUN cd osmo-msc && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_MSC_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
- ./configure --enable-smpp --enable-iu && \
+ ./configure --enable-smpp --enable-iu --enable-sanitize && \
make "-j$(nproc)" install
VOLUME /data
diff --git a/osmo-pcu-master/Dockerfile b/osmo-pcu-master/Dockerfile
index ac0fc1e..a108996 100644
--- a/osmo-pcu-master/Dockerfile
+++ b/osmo-pcu-master/Dockerfile
@@ -23,6 +23,25 @@ RUN case "$DISTRO" in \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --enable-force-io-select \
+ --prefix=/usr/local --enable-sanitize \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_PCU_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-pcu.git
@@ -32,9 +51,10 @@ RUN cd osmo-pcu && \
git fetch && git checkout $OSMO_PCU_BRANCH && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_PCU_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" && \
autoreconf -fi && \
- ./configure && \
- make "-j$(nproc)" install
+ ./configure --enable-sanitize && \
+ make "-j$(nproc)" V=1 install
VOLUME /data
diff --git a/osmo-ran/jenkins.sh b/osmo-ran/jenkins.sh
index 1b5d93a..120d2a0 100755
--- a/osmo-ran/jenkins.sh
+++ b/osmo-ran/jenkins.sh
@@ -9,6 +9,7 @@ docker_images_require \
"systemd" \
"osmo-ran$IMAGE_SUFFIX"
+SUB4_PREFIX=${SUB4_PREFIX:-"172.18"}
SUBNET=${SUBNET:-25}
IPSUFFIX=200
NET_NAME="osmo-ran-subnet$SUBNET"
@@ -20,7 +21,7 @@ mkdir $VOL_RAN_DIR/data
mkdir $VOL_RAN_DIR/osmocom
cp osmocom/* $VOL_RAN_DIR/osmocom/
-DOCKER_IN_IP="172.18.$SUBNET.$IPSUFFIX"
+DOCKER_IN_IP="$SUB4_PREFIX.$SUBNET.$IPSUFFIX"
SGSN_IP="${SGSN_IP:-192.168.30.1}"
STP_IP="${STP_IP:-192.168.30.1}"
TRX_IP="${TRX_IP:-192.168.30.100}"
diff --git a/osmo-s1gw-master/Dockerfile b/osmo-s1gw-master/Dockerfile
new file mode 100644
index 0000000..34028f8
--- /dev/null
+++ b/osmo-s1gw-master/Dockerfile
@@ -0,0 +1,24 @@
+ARG USER
+ARG DISTRO
+FROM $USER/$DISTRO-erlang
+# Arguments used after FROM must be specified again
+ARG DISTRO
+
+WORKDIR /tmp
+
+ARG OSMO_S1GW_BRANCH="master"
+
+RUN git clone https://gerrit.osmocom.org/erlang/osmo-s1gw.git
+ADD https://gerrit.osmocom.org/plugins/gitiles/erlang/osmo-s1gw/+/$OSMO_S1GW_BRANCH?format=TEXT /tmp/commit-osmo-s1gw
+
+RUN cd osmo-s1gw && \
+ git fetch && git checkout $OSMO_S1GW_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_S1GW_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ make build
+
+VOLUME /data
+
+COPY osmo-s1gw.config /data/osmo-s1gw.config
+
+CMD ["/bin/sh", "-c", "ERL_FLAGS='-config /data/osmo-s1gw.config' /tmp/osmo-s1gw/_build/default/bin/osmo-s1gw > /data/osmo-s1gw.log 2>&1"]
diff --git a/osmo-s1gw-master/Makefile b/osmo-s1gw-master/Makefile
new file mode 100644
index 0000000..8d0e10b
--- /dev/null
+++ b/osmo-s1gw-master/Makefile
@@ -0,0 +1 @@
+include ../make/Makefile
diff --git a/osmo-s1gw-master/osmo-s1gw.config b/osmo-s1gw-master/osmo-s1gw.config
new file mode 100644
index 0000000..ef48a29
--- /dev/null
+++ b/osmo-s1gw-master/osmo-s1gw.config
@@ -0,0 +1,2 @@
+[{osmo_s1gw, [
+]}].
diff --git a/osmo-sgsn-master/Dockerfile b/osmo-sgsn-master/Dockerfile
index edd912f..e7fa861 100644
--- a/osmo-sgsn-master/Dockerfile
+++ b/osmo-sgsn-master/Dockerfile
@@ -10,11 +10,9 @@ RUN case "$DISTRO" in \
apt-get install -y --no-install-recommends \
libosmocore-dev \
libosmo-abis-dev \
+ telnet \
libosmo-gsup-client-dev \
- libosmo-netif-dev \
libosmo-ranap-dev \
- libosmo-sccp-dev \
- libosmo-sigtran-dev \
libsmpp34-dev \
libgtp-dev \
libasn1c-dev && \
@@ -40,6 +38,82 @@ RUN case "$DISTRO" in \
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG OSMO_GGSN_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/osmo-ggsn
+ADD https://gerrit.osmocom.org/plugins/gitiles/osmo-ggsn/+/$OSMO_GGSN_BRANCH?format=TEXT /tmp/commit-osmo-ggsn
+
+RUN cd osmo-ggsn \
+ && git fetch && git checkout -f -B $OSMO_GGSN_BRANCH origin/$OSMO_GGSN_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG OSMO_STP_BRANCH="master"
+
+RUN git clone https://gerrit.osmocom.org/libosmo-sccp.git
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-sccp/+/$OSMO_STP_BRANCH?format=TEXT /tmp/commit
+RUN cd libosmo-sccp && \
+ git fetch && git checkout $OSMO_STP_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_STP_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
+ autoreconf -fi && \
+ ./configure && \
+ make "-j$(nproc)" install && \
+ install examples/.libs/sccp_demo_user /usr/local/bin/ && \
+ ldconfig
+
ARG OSMO_SGSN_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-sgsn.git
diff --git a/osmo-stp-master/Dockerfile b/osmo-stp-master/Dockerfile
index 2e6ecd6..66c2cb6 100644
--- a/osmo-stp-master/Dockerfile
+++ b/osmo-stp-master/Dockerfile
@@ -9,7 +9,8 @@ RUN case "$DISTRO" in \
apt-get update && \
apt-get install -y --no-install-recommends \
libosmocore-dev \
- libosmo-netif-dev && \
+ libosmo-netif-dev \
+ telnet libosmo-abis-dev && \
apt-get clean \
;; \
centos*) \
@@ -23,6 +24,53 @@ RUN case "$DISTRO" in \
WORKDIR /data
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ && make -j5 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_STP_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/libosmo-sccp.git
diff --git a/osmo-uecups-master/Dockerfile b/osmo-uecups-master/Dockerfile
index 793fe6b..b632e18 100644
--- a/osmo-uecups-master/Dockerfile
+++ b/osmo-uecups-master/Dockerfile
@@ -12,11 +12,62 @@ RUN apt-get update && \
libosmo-netif-dev \
libsctp-dev \
iputils-ping \
+ gdb \
strace && \
apt-get clean
WORKDIR /tmp
+# Download, build and install libosmocore
+ARG LIBOSMOCORE_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmocore
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmocore/+/$LIBOSMOCORE_BRANCH?format=TEXT /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr/local \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMOABIS_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-abis
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-abis/+/$LIBOSMOABIS_BRANCH?format=TEXT /tmp/commit-libosmoabis
+
+RUN cd libosmo-abis \
+ && git fetch && git checkout -f -B $LIBOSMOABIS_BRANCH origin/$LIBOSMOABIS_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
+ARG LIBOSMONETIF_BRANCH="master"
+RUN git clone https://gerrit.osmocom.org/libosmo-netif
+ADD https://gerrit.osmocom.org/plugins/gitiles/libosmo-netif/+/$LIBOSMONETIF_BRANCH?format=TEXT /tmp/commit-libosmonetif
+
+RUN cd libosmo-netif \
+ && git fetch && git checkout -f -B $LIBOSMONETIF_BRANCH origin/$LIBOSMONETIF_BRANCH \
+ && git rev-parse --abbrev-ref HEAD && git rev-parse HEAD \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --prefix=/usr/local \
+ && make -j8 \
+ && make install \
+ && make distclean && ldconfig
+
ARG OSMO_UECUPS_BRANCH="master"
RUN git clone https://gerrit.osmocom.org/osmo-uecups.git
@@ -27,6 +78,9 @@ RUN cd osmo-uecups && \
(git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_UECUPS_BRANCH || exit 1); \
git rev-parse --abbrev-ref HEAD && git rev-parse HEAD && \
autoreconf -fi && \
+ export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CFLAGS="-g -O0 -fno-omit-frame-pointer" \
+ && export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" && \
./configure && \
make "-j$(nproc)" install
diff --git a/osmocom-bb-host-master/Dockerfile b/osmocom-bb-host-master/Dockerfile
index efc9925..7ee010c 100644
--- a/osmocom-bb-host-master/Dockerfile
+++ b/osmocom-bb-host-master/Dockerfile
@@ -7,6 +7,7 @@ ARG OSMO_BB_BRANCH="master"
RUN apt-get update && \
apt-get install -y --no-install-recommends \
+ gdb \
libosmocore-dev && \
apt-get clean
@@ -22,7 +23,10 @@ RUN cd osmocom-bb && \
RUN cd osmocom-bb/src/host/trxcon && \
autoreconf -fi && \
- ./configure && \
+ export CPPFLAGS="-g -O0 -fno-omit-frame-pointer" && \
+ export CFLAGS="-g -O0 -fno-omit-frame-pointer" && \
+ export CXXFLAGS="-g -O0 -fno-omit-frame-pointer" && \
+ ./configure --enable-sanitize && \
make "-j$(nproc)" install
RUN cd osmocom-bb/src/host/virt_phy && \
diff --git a/scripts/kernel-test/smoke-test.sh b/scripts/kernel-test/smoke-test.sh
index b0570dd..21a2a4f 100755
--- a/scripts/kernel-test/smoke-test.sh
+++ b/scripts/kernel-test/smoke-test.sh
@@ -3,7 +3,7 @@
LOG=/tmp/smoke_test.log
-/kernel-test/run-qemu.sh SMOKE_TEST > "$LOG" 2>&1 || true
+/kernel-test/run-qemu.sh SMOKE_TEST 2>&1 | tee "$LOG" || true
if ! grep -q SMOKE_TEST_SUCCESS "$LOG"; then
cat "$LOG"
diff --git a/seccomp_profile.json b/seccomp_profile.json
new file mode 100644
index 0000000..70a0b63
--- /dev/null
+++ b/seccomp_profile.json
@@ -0,0 +1,836 @@
+{
+ "defaultAction": "SCMP_ACT_ERRNO",
+ "defaultErrnoRet": 1,
+ "archMap": [
+ {
+ "architecture": "SCMP_ARCH_X86_64",
+ "subArchitectures": [
+ "SCMP_ARCH_X86",
+ "SCMP_ARCH_X32"
+ ]
+ },
+ {
+ "architecture": "SCMP_ARCH_AARCH64",
+ "subArchitectures": [
+ "SCMP_ARCH_ARM"
+ ]
+ },
+ {
+ "architecture": "SCMP_ARCH_MIPS64",
+ "subArchitectures": [
+ "SCMP_ARCH_MIPS",
+ "SCMP_ARCH_MIPS64N32"
+ ]
+ },
+ {
+ "architecture": "SCMP_ARCH_MIPS64N32",
+ "subArchitectures": [
+ "SCMP_ARCH_MIPS",
+ "SCMP_ARCH_MIPS64"
+ ]
+ },
+ {
+ "architecture": "SCMP_ARCH_MIPSEL64",
+ "subArchitectures": [
+ "SCMP_ARCH_MIPSEL",
+ "SCMP_ARCH_MIPSEL64N32"
+ ]
+ },
+ {
+ "architecture": "SCMP_ARCH_MIPSEL64N32",
+ "subArchitectures": [
+ "SCMP_ARCH_MIPSEL",
+ "SCMP_ARCH_MIPSEL64"
+ ]
+ },
+ {
+ "architecture": "SCMP_ARCH_S390X",
+ "subArchitectures": [
+ "SCMP_ARCH_S390"
+ ]
+ },
+ {
+ "architecture": "SCMP_ARCH_RISCV64",
+ "subArchitectures": null
+ }
+ ],
+ "syscalls": [
+ {
+ "names": [
+ "accept",
+ "accept4",
+ "access",
+ "adjtimex",
+ "alarm",
+ "bind",
+ "brk",
+ "cachestat",
+ "capget",
+ "capset",
+ "chdir",
+ "chmod",
+ "chown",
+ "chown32",
+ "clock_adjtime",
+ "clock_adjtime64",
+ "clock_getres",
+ "clock_getres_time64",
+ "clock_gettime",
+ "clock_gettime64",
+ "clock_nanosleep",
+ "clock_nanosleep_time64",
+ "close",
+ "close_range",
+ "connect",
+ "copy_file_range",
+ "creat",
+ "dup",
+ "dup2",
+ "dup3",
+ "epoll_create",
+ "epoll_create1",
+ "epoll_ctl",
+ "epoll_ctl_old",
+ "epoll_pwait",
+ "epoll_pwait2",
+ "epoll_wait",
+ "epoll_wait_old",
+ "eventfd",
+ "eventfd2",
+ "execve",
+ "execveat",
+ "exit",
+ "exit_group",
+ "faccessat",
+ "faccessat2",
+ "fadvise64",
+ "fadvise64_64",
+ "fallocate",
+ "fanotify_mark",
+ "fchdir",
+ "fchmod",
+ "fchmodat",
+ "fchmodat2",
+ "fchown",
+ "fchown32",
+ "fchownat",
+ "fcntl",
+ "fcntl64",
+ "fdatasync",
+ "fgetxattr",
+ "flistxattr",
+ "flock",
+ "fork",
+ "fremovexattr",
+ "fsetxattr",
+ "fstat",
+ "fstat64",
+ "fstatat64",
+ "fstatfs",
+ "fstatfs64",
+ "fsync",
+ "ftruncate",
+ "ftruncate64",
+ "futex",
+ "futex_requeue",
+ "futex_time64",
+ "futex_wait",
+ "futex_waitv",
+ "futex_wake",
+ "futimesat",
+ "getcpu",
+ "getcwd",
+ "getdents",
+ "getdents64",
+ "getegid",
+ "getegid32",
+ "geteuid",
+ "geteuid32",
+ "getgid",
+ "getgid32",
+ "getgroups",
+ "getgroups32",
+ "getitimer",
+ "getpeername",
+ "getpgid",
+ "getpgrp",
+ "getpid",
+ "getppid",
+ "getpriority",
+ "getrandom",
+ "getresgid",
+ "getresgid32",
+ "getresuid",
+ "getresuid32",
+ "getrlimit",
+ "get_robust_list",
+ "getrusage",
+ "getsid",
+ "getsockname",
+ "getsockopt",
+ "get_thread_area",
+ "gettid",
+ "gettimeofday",
+ "getuid",
+ "getuid32",
+ "getxattr",
+ "inotify_add_watch",
+ "inotify_init",
+ "inotify_init1",
+ "inotify_rm_watch",
+ "io_cancel",
+ "ioctl",
+ "io_destroy",
+ "io_getevents",
+ "io_pgetevents",
+ "io_pgetevents_time64",
+ "ioprio_get",
+ "ioprio_set",
+ "io_setup",
+ "io_submit",
+ "io_uring_enter",
+ "io_uring_register",
+ "io_uring_setup",
+ "ipc",
+ "kill",
+ "landlock_add_rule",
+ "landlock_create_ruleset",
+ "landlock_restrict_self",
+ "lchown",
+ "lchown32",
+ "lgetxattr",
+ "link",
+ "linkat",
+ "listen",
+ "listxattr",
+ "llistxattr",
+ "_llseek",
+ "lremovexattr",
+ "lseek",
+ "lsetxattr",
+ "lstat",
+ "lstat64",
+ "madvise",
+ "map_shadow_stack",
+ "membarrier",
+ "memfd_create",
+ "memfd_secret",
+ "mincore",
+ "mkdir",
+ "mkdirat",
+ "mknod",
+ "mknodat",
+ "mlock",
+ "mlock2",
+ "mlockall",
+ "mmap",
+ "mmap2",
+ "mprotect",
+ "mq_getsetattr",
+ "mq_notify",
+ "mq_open",
+ "mq_timedreceive",
+ "mq_timedreceive_time64",
+ "mq_timedsend",
+ "mq_timedsend_time64",
+ "mq_unlink",
+ "mremap",
+ "msgctl",
+ "msgget",
+ "msgrcv",
+ "msgsnd",
+ "msync",
+ "munlock",
+ "munlockall",
+ "munmap",
+ "name_to_handle_at",
+ "nanosleep",
+ "newfstatat",
+ "_newselect",
+ "open",
+ "openat",
+ "openat2",
+ "pause",
+ "pidfd_open",
+ "pidfd_send_signal",
+ "pipe",
+ "pipe2",
+ "pkey_alloc",
+ "pkey_free",
+ "pkey_mprotect",
+ "poll",
+ "ppoll",
+ "ppoll_time64",
+ "prctl",
+ "pread64",
+ "preadv",
+ "preadv2",
+ "prlimit64",
+ "process_mrelease",
+ "pselect6",
+ "pselect6_time64",
+ "pwrite64",
+ "pwritev",
+ "pwritev2",
+ "read",
+ "readahead",
+ "readlink",
+ "readlinkat",
+ "readv",
+ "recv",
+ "recvfrom",
+ "recvmmsg",
+ "recvmmsg_time64",
+ "recvmsg",
+ "remap_file_pages",
+ "removexattr",
+ "rename",
+ "renameat",
+ "renameat2",
+ "restart_syscall",
+ "rmdir",
+ "rseq",
+ "rt_sigaction",
+ "rt_sigpending",
+ "rt_sigprocmask",
+ "rt_sigqueueinfo",
+ "rt_sigreturn",
+ "rt_sigsuspend",
+ "rt_sigtimedwait",
+ "rt_sigtimedwait_time64",
+ "rt_tgsigqueueinfo",
+ "sched_getaffinity",
+ "sched_getattr",
+ "sched_getparam",
+ "sched_get_priority_max",
+ "sched_get_priority_min",
+ "sched_getscheduler",
+ "sched_rr_get_interval",
+ "sched_rr_get_interval_time64",
+ "sched_setaffinity",
+ "sched_setattr",
+ "sched_setparam",
+ "sched_setscheduler",
+ "sched_yield",
+ "seccomp",
+ "select",
+ "semctl",
+ "semget",
+ "semop",
+ "semtimedop",
+ "semtimedop_time64",
+ "send",
+ "sendfile",
+ "sendfile64",
+ "sendmmsg",
+ "sendmsg",
+ "sendto",
+ "setfsgid",
+ "setfsgid32",
+ "setfsuid",
+ "setfsuid32",
+ "setgid",
+ "setgid32",
+ "setgroups",
+ "setgroups32",
+ "setitimer",
+ "setpgid",
+ "setpriority",
+ "setregid",
+ "setregid32",
+ "setresgid",
+ "setresgid32",
+ "setresuid",
+ "setresuid32",
+ "setreuid",
+ "setreuid32",
+ "setrlimit",
+ "set_robust_list",
+ "setsid",
+ "setsockopt",
+ "set_thread_area",
+ "set_tid_address",
+ "setuid",
+ "setuid32",
+ "setxattr",
+ "shmat",
+ "shmctl",
+ "shmdt",
+ "shmget",
+ "shutdown",
+ "sigaltstack",
+ "signalfd",
+ "signalfd4",
+ "sigprocmask",
+ "sigreturn",
+ "socketcall",
+ "socketpair",
+ "splice",
+ "stat",
+ "stat64",
+ "statfs",
+ "statfs64",
+ "statx",
+ "symlink",
+ "symlinkat",
+ "sync",
+ "sync_file_range",
+ "syncfs",
+ "sysinfo",
+ "tee",
+ "tgkill",
+ "time",
+ "timer_create",
+ "timer_delete",
+ "timer_getoverrun",
+ "timer_gettime",
+ "timer_gettime64",
+ "timer_settime",
+ "timer_settime64",
+ "timerfd_create",
+ "timerfd_gettime",
+ "timerfd_gettime64",
+ "timerfd_settime",
+ "timerfd_settime64",
+ "times",
+ "tkill",
+ "truncate",
+ "truncate64",
+ "ugetrlimit",
+ "umask",
+ "uname",
+ "unlink",
+ "unlinkat",
+ "utime",
+ "utimensat",
+ "utimensat_time64",
+ "utimes",
+ "vfork",
+ "vmsplice",
+ "wait4",
+ "waitid",
+ "waitpid",
+ "write",
+ "writev"
+ ],
+ "action": "SCMP_ACT_ALLOW"
+ },
+ {
+ "names": [
+ "process_vm_readv",
+ "process_vm_writev",
+ "ptrace"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "minKernel": "4.8"
+ }
+ },
+ {
+ "names": [
+ "socket"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "args": [
+ {
+ "index": 0,
+ "value": 40,
+ "op": "SCMP_CMP_NE"
+ }
+ ]
+ },
+ {
+ "names": [
+ "personality"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "args": [
+ {
+ "index": 0,
+ "value": 0,
+ "op": "SCMP_CMP_EQ"
+ }
+ ]
+ },
+ {
+ "names": [
+ "personality"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "args": [
+ {
+ "index": 0,
+ "value": 8,
+ "op": "SCMP_CMP_EQ"
+ }
+ ]
+ },
+ {
+ "names": [
+ "personality"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "args": [
+ {
+ "index": 0,
+ "value": 131072,
+ "op": "SCMP_CMP_EQ"
+ }
+ ]
+ },
+ {
+ "names": [
+ "personality"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "args": [
+ {
+ "index": 0,
+ "value": 131080,
+ "op": "SCMP_CMP_EQ"
+ }
+ ]
+ },
+ {
+ "names": [
+ "personality"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "args": [
+ {
+ "index": 0,
+ "value": 4294967295,
+ "op": "SCMP_CMP_EQ"
+ }
+ ]
+ },
+ {
+ "names": [
+ "sync_file_range2",
+ "swapcontext"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "arches": [
+ "ppc64le"
+ ]
+ }
+ },
+ {
+ "names": [
+ "arm_fadvise64_64",
+ "arm_sync_file_range",
+ "sync_file_range2",
+ "breakpoint",
+ "cacheflush",
+ "set_tls"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "arches": [
+ "arm",
+ "arm64"
+ ]
+ }
+ },
+ {
+ "names": [
+ "arch_prctl"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "arches": [
+ "amd64",
+ "x32"
+ ]
+ }
+ },
+ {
+ "names": [
+ "modify_ldt"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "arches": [
+ "amd64",
+ "x32",
+ "x86"
+ ]
+ }
+ },
+ {
+ "names": [
+ "s390_pci_mmio_read",
+ "s390_pci_mmio_write",
+ "s390_runtime_instr"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "arches": [
+ "s390",
+ "s390x"
+ ]
+ }
+ },
+ {
+ "names": [
+ "riscv_flush_icache"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "arches": [
+ "riscv64"
+ ]
+ }
+ },
+ {
+ "names": [
+ "open_by_handle_at"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_DAC_READ_SEARCH"
+ ]
+ }
+ },
+ {
+ "names": [
+ "bpf",
+ "clone",
+ "clone3",
+ "fanotify_init",
+ "fsconfig",
+ "fsmount",
+ "fsopen",
+ "fspick",
+ "lookup_dcookie",
+ "mount",
+ "mount_setattr",
+ "move_mount",
+ "open_tree",
+ "perf_event_open",
+ "quotactl",
+ "quotactl_fd",
+ "setdomainname",
+ "sethostname",
+ "setns",
+ "syslog",
+ "umount",
+ "umount2",
+ "unshare"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_ADMIN"
+ ]
+ }
+ },
+ {
+ "names": [
+ "clone"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "args": [
+ {
+ "index": 0,
+ "value": 2114060288,
+ "op": "SCMP_CMP_MASKED_EQ"
+ }
+ ],
+ "excludes": {
+ "caps": [
+ "CAP_SYS_ADMIN"
+ ],
+ "arches": [
+ "s390",
+ "s390x"
+ ]
+ }
+ },
+ {
+ "names": [
+ "clone"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "args": [
+ {
+ "index": 1,
+ "value": 2114060288,
+ "op": "SCMP_CMP_MASKED_EQ"
+ }
+ ],
+ "comment": "s390 parameter ordering for clone is different",
+ "includes": {
+ "arches": [
+ "s390",
+ "s390x"
+ ]
+ },
+ "excludes": {
+ "caps": [
+ "CAP_SYS_ADMIN"
+ ]
+ }
+ },
+ {
+ "names": [
+ "clone3"
+ ],
+ "action": "SCMP_ACT_ERRNO",
+ "errnoRet": 38,
+ "excludes": {
+ "caps": [
+ "CAP_SYS_ADMIN"
+ ]
+ }
+ },
+ {
+ "names": [
+ "reboot"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_BOOT"
+ ]
+ }
+ },
+ {
+ "names": [
+ "chroot"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_CHROOT"
+ ]
+ }
+ },
+ {
+ "names": [
+ "delete_module",
+ "init_module",
+ "finit_module"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_MODULE"
+ ]
+ }
+ },
+ {
+ "names": [
+ "acct"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_PACCT"
+ ]
+ }
+ },
+ {
+ "names": [
+ "kcmp",
+ "pidfd_getfd",
+ "process_madvise",
+ "process_vm_readv",
+ "process_vm_writev",
+ "ptrace"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_PTRACE"
+ ]
+ }
+ },
+ {
+ "names": [
+ "iopl",
+ "ioperm"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_RAWIO"
+ ]
+ }
+ },
+ {
+ "names": [
+ "settimeofday",
+ "stime",
+ "clock_settime",
+ "clock_settime64"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_TIME"
+ ]
+ }
+ },
+ {
+ "names": [
+ "vhangup"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_TTY_CONFIG"
+ ]
+ }
+ },
+ {
+ "names": [
+ "get_mempolicy",
+ "mbind",
+ "set_mempolicy",
+ "set_mempolicy_home_node"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYS_NICE"
+ ]
+ }
+ },
+ {
+ "names": [
+ "syslog"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_SYSLOG"
+ ]
+ }
+ },
+ {
+ "names": [
+ "bpf"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_BPF"
+ ]
+ }
+ },
+ {
+ "names": [
+ "perf_event_open"
+ ],
+ "action": "SCMP_ACT_ALLOW",
+ "includes": {
+ "caps": [
+ "CAP_PERFMON"
+ ]
+ }
+ }
+ ]
+}
diff --git a/ttcn3-asterisk-ims-ue-test/Dockerfile b/ttcn3-asterisk-ims-ue-test/Dockerfile
index 1a2f8aa..3f37803 100644
--- a/ttcn3-asterisk-ims-ue-test/Dockerfile
+++ b/ttcn3-asterisk-ims-ue-test/Dockerfile
@@ -8,6 +8,7 @@ RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" asterisk
VOLUME /data
-COPY Asterisk_Tests.cfg /data/Asterisk_Tests.cfg
+COPY ttcn3/Asterisk_Tests.cfg /data/Asterisk_Tests.cfg
+COPY ttcn3/ttcn3.sh /data/ttcn3.sh
CMD ttcn3-docker-run asterisk Asterisk_Tests
diff --git a/ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh b/ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh
index b31015f..4dbbe93 100755
--- a/ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh
+++ b/ttcn3-asterisk-ims-ue-test/asterisk/asterisk.sh
@@ -2,8 +2,15 @@
set +e
set -x
+if [[ -z "${DNS_IPADDR}" ]]; then
+ echo "env var DNS_IPADDR undefined!"
+ exit 1
+fi
+
ASTERISK_CFG_PATH="/etc/asterisk"
+echo "nameserver $DNS_IPADDR" > /etc/resolv.conf
+
#rm -rf "${ASTERISK_CFG_PATH}"
#mkdir -p "${ASTERISK_CFG_PATH}"
@@ -16,4 +23,16 @@ cp /data/manager.conf "${ASTERISK_CFG_PATH}/"
cp /data/logger.conf "${ASTERISK_CFG_PATH}/"
cat /data/extensions.conf >>"${ASTERISK_CFG_PATH}/extensions.conf"
+echo "Starting codec server..."
+/usr/bin/cserver &
+
+SERVER_NAME="ims.mnc001.mcc238.3gppnetwork.org"
+for i in $(seq 30); do
+ set -e
+ ping -q -w 3 -c 1 "$SERVER_NAME" && break
+ set +e
+ echo "[$i] DNS resolution $SERVER_NAME not ready, waiting..."
+ sleep 1
+done
+
/usr/sbin/asterisk -C "${ASTERISK_CFG_PATH}/asterisk.conf" -f -g -vvvvv -ddddd
diff --git a/ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf b/ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf
index 3c78a2d..e2ec574 100644
--- a/ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf
+++ b/ttcn3-asterisk-ims-ue-test/asterisk/extensions.conf
@@ -1,7 +1,14 @@
-[get-valid-endpoints]
+[globals]
+; local SIP UA Channels (PJSIP/50X-*) using the IMS endpoint are put in this group.
+; This group is used as a semaphore/mutex by using COUNT_GROUP() on it.
+IMS_GROUP=ims_group
+; Stores channel name of local SIP UA (PJSIP/50X-*) using the IMS service (in a call)
+; This is used to figure out which local SIP UA can create extra calls due to having its other IMS calls on HOLD.
+IMS_PEER=none
+[get-valid-endpoints-500]
+; usage: no arguments, returns DIALGROUP object of registered and valid 050x endpoints
exten => s,1,Verbose(5, Entering get-valid-endpoints gosub.)
- ; usage: no arguments, returns DIALGROUP object of registered and valid 050x endpoints
same => n,Set(ENDPOINT_1_STATE=${DEVICE_STATE(PJSIP/0501)})
same => n,Set(ENDPOINT_2_STATE=${DEVICE_STATE(PJSIP/0502)})
same => n,Set(ENDPOINT_3_STATE=${DEVICE_STATE(PJSIP/0503)})
@@ -17,21 +24,85 @@ exten => s,1,Verbose(5, Entering get-valid-endpoints gosub.)
same => n,ExecIf($[${ENDPOINT_4_EXPR} = 0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0504))
same => n,Return(${DIALGROUP(CALL_VALID_LIST)})
+
[from-phone]
+; Local SIP UA calls 500, broadcast to all other available local SIP UAs:
exten => 0500,1,Verbose(5,${EXTEN}: Call all registered pjsips from ${CALLERID(num)})
- same => n,Gosub(get-valid-endpoints,s,1())
+ same => n,Gosub(get-valid-endpoints-500,s,1())
same => n,Set(DIALGROUP(CALL_EVERYONE_LIST)=${GOSUB_RETVAL})
same => n,Set(DIALGROUP(CALL_EVERYONE_LIST,del)=PJSIP/${CALLERID(num)}) ; remove the caller
same => n,Dial(${DIALGROUP(CALL_EVERYONE_LIST)})
same => n,Hangup(16)
+; Local SIP UA calls 50X, call the target local SIP UA:
exten => _050X,1,Verbose(5,${EXTEN}: Call pjsip endpoint from ${CALLERID(num)})
same => n,Dial(PJSIP/${EXTEN})
same => n,Hangup(16)
-exten => _X,1,Verbose(5,${EXTEN}: Call external number from ${CALLERID(num)})
- same => n,Dial(PJSIP/${EXTEN}@973171)
+; MO Call SIP UA -> IMS:
+exten => _X.!,1,Verbose(5,${EXTEN}: Call external number from ${CALLERID(num)}, IMS DEVICE_STATE=${DEVICE_STATE(PJSIP/volte_ims)}, IMS_PEER=${GLOBAL(IMS_PEER)})
+ ; Allow only 1 MO call towards IMS, or extra ones if the same SIP UA has put previous call(s) on HOLD:
+ same => n,Set(GROUP()=${GLOBAL(IMS_GROUP)})
+ same => n,Set(ALLOW_EXTRA_CALL=$[ $["${DEVICE_STATE(PJSIP/volte_ims)}" == "ONHOLD"] & $["${GLOBAL(IMS_PEER)}" == "PJSIP/${CALLERID(num)}"] ])
+ same => n,GotoIf($[ $[ ${GROUP_COUNT(${GLOBAL(IMS_GROUP)})} > 1] & !${ALLOW_EXTRA_CALL} ]?999)
+ same => n,Set(GLOBAL(IMS_PEER)=PJSIP/${CALLERID(num)})
+ same => n,Dial(PJSIP/${EXTEN}@volte_ims)
+ ; Channel is removed from GROUP() automatically when it is destroyed after the call finishes.
+ ; It's fine leaving IMS_PEER set since anyway it's only checked in the case where there's a call in place (GROUP_COUNT()>1),
+ ; so it will be set properly whenever an initial call enters the exclusion zone guarded by GROUP_COUNT().
same => n,Hangup(16)
+ ; Reject path:
+ same => 999,Verbose(1,${EXTEN}: VoLTE client already busy (${GROUP_COUNT(${GLOBAL(IMS_GROUP)})}, ${GLOBAL(IMS_PEER)}) rejecting call from SIP UA ${CALLERID(num)})
+ same => n,Set(DIALSTATUS=CHANUNAVAIL)
+
+
+[get-valid-endpoints-from-volte-ims]
+; usage: no arguments, returns DIALGROUP object of registered and valid 050x endpoints
+exten => s,1,Verbose(5, Entering get-valid-endpoints-500 gosub.)
+ same => n,Set(ENDPOINT_1_STATE=${DEVICE_STATE(PJSIP/0501)})
+ same => n,Set(ENDPOINT_2_STATE=${DEVICE_STATE(PJSIP/0502)})
+ same => n,Set(ENDPOINT_3_STATE=${DEVICE_STATE(PJSIP/0503)})
+ same => n,Set(ENDPOINT_4_STATE=${DEVICE_STATE(PJSIP/0504)})
+ same => n,Set(ENDPOINT_1_EXPR=$[$["${ENDPOINT_1_STATE}" = "NOT_INUSE"] | $["${ENDPOINT_1_STATE}" = "ONHOLD"]])
+ same => n,Set(ENDPOINT_2_EXPR=$[$["${ENDPOINT_2_STATE}" = "NOT_INUSE"] | $["${ENDPOINT_2_STATE}" = "ONHOLD"]])
+ same => n,Set(ENDPOINT_3_EXPR=$[$["${ENDPOINT_3_STATE}" = "NOT_INUSE"] | $["${ENDPOINT_3_STATE}" = "ONHOLD"]])
+ same => n,Set(ENDPOINT_4_EXPR=$[$["${ENDPOINT_4_STATE}" = "NOT_INUSE"] | $["${ENDPOINT_4_STATE}" = "ONHOLD"]])
+ same => n,Set(DIALGROUP(CALL_VALID_LIST)=) ; clear list
+ same => n,ExecIf($[${ENDPOINT_1_EXPR} != 0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0501))
+ same => n,ExecIf($[${ENDPOINT_2_EXPR} != 0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0502))
+ same => n,ExecIf($[${ENDPOINT_3_EXPR} != 0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0503))
+ same => n,ExecIf($[${ENDPOINT_4_EXPR} != 0]?Set(DIALGROUP(CALL_VALID_LIST,add)=PJSIP/0504))
+ same => n,Return(${DIALGROUP(CALL_VALID_LIST)})
+
+[volte-ims-call-established]
+; no arguments, SUB to set global variable IMS_PEER to the Channel name of the SIP UA (501-504) using the IMS endpoint
+; This SUB (Dial(U())) runs under the Channel context of the SIP UA who answered the MT call.
+exten => s,1,Verbose(5, PJSIP/${CALLERID(num)}: Entering volte-ims-call-established gosub.)
+ same => n,Set(GLOBAL(IMS_PEER)=PJSIP/${CALLERID(num)})
+ same => n,Return()
+
+[volte_ims]
+
+; MT Call IMS -> SIP UA:
+exten => _X.!,1,Verbose(5,${EXTEN}: Call internal number from ${CALLERID(num)}, IMS DEVICE_STATE=${DEVICE_STATE(PJSIP/volte_ims)}, IMS_PEER=${GLOBAL(IMS_PEER)})
+ ; If IMS endpoint is already in use, reject it (999):
+ same => n,Set(GROUP()=${GLOBAL(IMS_GROUP)})
+ same => n,GotoIf($[${GROUP_COUNT(${GLOBAL(IMS_GROUP)})} > 1]?999)
+ ; Figure out SIP UAs to ring:
+ same => n,Gosub(get-valid-endpoints-from-volte-ims,s,1())
+ same => n,Set(DIALGROUP(CALL_EVERYONE_LIST)=${GOSUB_RETVAL})
+ ; Process call establishment:
+ same => n,WaitForPrecondition(10,2000)
+ ; OUTBOUND_GROUP var tells Dial() app to set the GROUP() of the newly created channel (501-504) instead of the calling channel (volte_ims).
+ ; This way IMS_GROUP always contains channels PJSIP/50X:
+ same => n,Set(OUTBOUND_GROUP=${GLOBAL(IMS_GROUP)})
+ ; Once a SIP UA answers the call, volte-ims-call-established takes care of updating IMS_PEER with the new PJSIP/50X channel name:
+ same => n,Dial(${DIALGROUP(CALL_EVERYONE_LIST)},,U(volte-ims-call-established))
+ ; Channel is removed from GROUP() automatically when it is destroyed after the call finishes.
+ same => n,Hangup(16)
+ ; Reject path:
+ same => 999,Verbose(1,${EXTEN}: VoLTE client already busy (${GROUP_COUNT(${GLOBAL(IMS_GROUP)})}, ${GLOBAL(IMS_PEER)}) rejecting call from IMS ${CALLERID(num)})
+ same => n,Set(DIALSTATUS=BUSY)
diff --git a/ttcn3-asterisk-ims-ue-test/asterisk/logger.conf b/ttcn3-asterisk-ims-ue-test/asterisk/logger.conf
index 292e624..47a91b1 100644
--- a/ttcn3-asterisk-ims-ue-test/asterisk/logger.conf
+++ b/ttcn3-asterisk-ims-ue-test/asterisk/logger.conf
@@ -1,3 +1,6 @@
+[general]
+dateformat = %F %T.%3q
+
[logfiles]
;messages = notice,warning,error
;console = verbose,notice,warning,error,debug,trace,dtmf
diff --git a/ttcn3-asterisk-ims-ue-test/asterisk/manager.conf b/ttcn3-asterisk-ims-ue-test/asterisk/manager.conf
index 67f7b02..a5cbe11 100644
--- a/ttcn3-asterisk-ims-ue-test/asterisk/manager.conf
+++ b/ttcn3-asterisk-ims-ue-test/asterisk/manager.conf
@@ -8,6 +8,6 @@ bindaddr = 172.18.11.10
[test_user]
secret = 1234
;deny=0.0.0.0/0.0.0.0
-permit=172.18.11.103/255.255.0.0
+permit=172.18.11.103/24
read = all,system,call,log,verbose,command,agent,user
write = all,system,call,log,verbose,command,agent,user
diff --git a/ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf b/ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf
index 07f68ba..c1403b4 100644
--- a/ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf
+++ b/ttcn3-asterisk-ims-ue-test/asterisk/pjsip.conf
@@ -1,3 +1,6 @@
+[global]
+allow_sending_180_after_183=yes
+
;############
; LOCAL SIP
;############
@@ -77,44 +80,58 @@ password=secret
type=transport
protocol=tcp
bind=172.18.11.10:5060
-ims_port_c=5555
-ims_port_s=5060
+sec_port_c_min=5555
+sec_port_c_max=5559
+sec_port_s_min=5060
+sec_port_s_max=5069
+p_access_network_info=3GPP-E-UTRAN-FDD\; utran-cell-id-3gpp=2380100010000101
[volte_ims]
type=registration
transport=transport-tcp
outbound_auth=volte_ims
-server_uri=sip:172.18.11.103
-client_uri=sip:238010000090828@172.18.11.103
+server_uri=sip:ims.mnc001.mcc238.3gppnetwork.org
+client_uri=sip:238010000090828@ims.mnc001.mcc238.3gppnetwork.org
retry_interval=30
fatal_retry_interval=30
expiration=600000
-ims_aka=yes
+volte=yes
contact_user=volte_ims
+imei=35876110-027790-0
endpoint=volte_ims
line=yes
+manual_register=yes
[volte_ims]
type=endpoint
context=volte_ims
disallow=all
allow=vevs
+transport=transport-tcp
outbound_auth=volte_ims
aors=volte_ims
rewrite_contact=yes
-from_user=238010000090828
-from_domain=172.18.11.103
+direct_media=no
+volte=yes
+100rel=peer_supported
+moh_passthrough=yes
[volte_ims]
type=auth
auth_type=ims_aka
-username=238010000090828@172.18.11.103
-usim_ami=no
+username=238010000090828@ims.mnc001.mcc238.3gppnetwork.org
+usim_ami=yes
usim_opc=775A1F887D2AD66F9719C2C79F847B50
usim_k=D534E07854B75E475C667A856AA31F9C
usim_sqn=000000011000
[volte_ims]
type=aor
-contact=sip:238010000090828@172.18.11.103
+contact=sip:238010000090828@ims.mnc001.mcc238.3gppnetwork.org
max_contacts=1
+
+[volte_ims]
+type=identify
+endpoint=volte_ims
+match=ims.mnc001.mcc238.3gppnetwork.org
+;match=172.18.11.10
diff --git a/ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf b/ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf
new file mode 100644
index 0000000..63a8566
--- /dev/null
+++ b/ttcn3-asterisk-ims-ue-test/dnsmasq/dnsmasq.conf
@@ -0,0 +1,15 @@
+#log all dns queries
+log-queries
+#dont use hosts nameservers
+no-resolv
+listen-address=::1,fd02:db8:11::200,127.0.0.1,172.18.11.200
+
+# PCSCF IP!
+host-record=ims.mnc001.mcc238.3gppnetwork.org,172.18.11.104
+srv-host=_sip._tcp.ims.mnc001.mcc238.3gppnetwork.org,ims.mnc001.mcc238.3gppnetwork.org,5060
+srv-host=_sip._udp.ims.mnc001.mcc238.3gppnetwork.org,ims.mnc001.mcc238.3gppnetwork.org,5060
+
+#naptr-record= <name> ,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>]
+#naptr-record=ims.mnc001.mcc238.3gppnetwork.org, 2, 0 ,s ,SIP+D2U ,"" ,_sip._udp.ims.mnc001.mcc238.3gppnetwork.org
+naptr-record=ims.mnc001.mcc238.3gppnetwork.org,0,0,s,SIP+D2U,!(.*)!_sip._udp.\1!
+naptr-record=ims.mnc001.mcc238.3gppnetwork.org,0,0,s,SIP+D2T,!(.*)!_sip._tcp.\1! \ No newline at end of file
diff --git a/ttcn3-asterisk-ims-ue-test/jenkins.sh b/ttcn3-asterisk-ims-ue-test/jenkins.sh
index 98d27b8..0707cb9 100755
--- a/ttcn3-asterisk-ims-ue-test/jenkins.sh
+++ b/ttcn3-asterisk-ims-ue-test/jenkins.sh
@@ -1,48 +1,143 @@
#!/bin/sh
+TEST_CONFIGS_ALL="ipv4 ipv6"
+TEST_CONFIGS="${TEST_CONFIGS:-$TEST_CONFIGS_ALL}"
+
. ../jenkins-common.sh
IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}"
docker_images_require \
"asterisk-$IMAGE_SUFFIX" \
- "ttcn3-asterisk-ims-ue-test"
+ "ttcn3-asterisk-ims-ue-test" \
+ "dnsmasq"
set_clean_up_trap
set -e
-mkdir $VOL_BASE_DIR/asterisk-ims-ue-tester
-mkdir $VOL_BASE_DIR/asterisk-ims-ue-tester/unix
-cp Asterisk_Tests.cfg $VOL_BASE_DIR/asterisk-ims-ue-tester/
-write_mp_osmo_repo "$VOL_BASE_DIR/asterisk-ims-ue-tester/Asterisk_Tests.cfg"
+clean_up() {
+ local i
+ local log
+
+ # Add a suffix to the class names in the junit-xml log
+ for i in $TEST_CONFIGS; do
+ if [ "$i" = "all" ]; then
+ continue
+ fi
+
+ for log in "$VOL_BASE_DIR"/asterisk-ims-ue-tester-"$i"/junit-xml-*.log; do
+ if ! [ -e "$log" ]; then
+ continue
+ fi
+ sed -i "s/classname='\([^']\+\)'/classname='\1_$i'/g" "$log"
+ done
+ done
+}
+
+# Start container with dnsmasq in background
+start_dnsmasq() {
+ local test_config="$1"
+ echo Starting container with dnsmasq
+ docker run --rm \
+ --cap-add=NET_ADMIN \
+ $(docker_network_params $SUBNET $DNS_IP_SUFFIX) \
+ --ulimit core=-1 \
+ -v "$VOL_BASE_DIR/dnsmasq-${test_config}:/data" \
+ --name ${BUILD_TAG}-dnsmasq -d \
+ $DOCKER_ARGS \
+ $REPO_USER/dnsmasq
+}
-mkdir $VOL_BASE_DIR/asterisk
-cp asterisk/* $VOL_BASE_DIR/asterisk/
+# Start container with Asterisk in background
+start_asterisk() {
+ local test_config="$1"
+ echo Starting container with Asterisk
+ docker run --rm \
+ --cap-add=NET_ADMIN \
+ --cap-add=SYS_RESOURCE \
+ $(docker_network_params $SUBNET $ASTERISK_IP_SUFFIX) \
+ -e "DNS_IPADDR=${DNS_IPADDR}" \
+ --ulimit core=-1 \
+ -v "$VOL_BASE_DIR/asterisk-${test_config}:/data" \
+ --name "${BUILD_TAG}-asterisk" -d \
+ $DOCKER_ARGS \
+ "$REPO_USER/asterisk-$IMAGE_SUFFIX" \
+ /bin/sh -c "/data/asterisk.sh >/data/asterisk.console.log 2>&1"
+}
+
+# Start docker container with testsuite in foreground
+start_testsuite() {
+ local test_config="$1"
+ echo Starting container with Asterisk testsuite
+ docker run --rm \
+ --cap-add=NET_ADMIN \
+ --cap-add=SYS_RESOURCE \
+ $(docker_network_params $SUBNET $TTCN3_IP_SUFFIX) \
+ --ulimit core=-1 \
+ -e "TTCN3_PCAP_PATH=/data" \
+ -e "EXTRA_IPADDR=${EXTRA_IPADDR}" \
+ -e "ASTERISK_IPADDR=${ASTERISK_IPADDR}" \
+ -v "$VOL_BASE_DIR/asterisk-ims-ue-tester-${test_config}:/data" \
+ --name "${BUILD_TAG}-ttcn3-asterisk-ims-ue-test" \
+ $DOCKER_ARGS \
+ "$REPO_USER/ttcn3-asterisk-ims-ue-test" \
+ /data/ttcn3.sh
+}
network_create
-network_replace_subnet_in_configs
-
-echo Starting container with Asterisk
-docker run --rm \
- --cap-add=NET_ADMIN \
- --cap-add=SYS_RESOURCE \
- $(docker_network_params $SUBNET 10) \
- --ulimit core=-1 \
- -v $VOL_BASE_DIR/asterisk:/data \
- --name ${BUILD_TAG}-asterisk -d \
- $DOCKER_ARGS \
- $REPO_USER/asterisk-$IMAGE_SUFFIX \
- /bin/sh -c "/data/asterisk.sh >/data/asterisk.console.log 2>&1"
-
-# Leave some time for asterisk to start:
-sleep 3
-
-echo Starting container with Asterisk testsuite
-docker run --rm \
- --cap-add=NET_ADMIN \
- --cap-add=SYS_RESOURCE \
- $(docker_network_params $SUBNET 103) \
- --ulimit core=-1 \
- -e "TTCN3_PCAP_PATH=/data" \
- -v $VOL_BASE_DIR/asterisk-ims-ue-tester:/data \
- --name ${BUILD_TAG}-ttcn3-asterisk-ims-ue-test \
- $DOCKER_ARGS \
- $REPO_USER/ttcn3-asterisk-ims-ue-test
+
+for i in $TEST_CONFIGS; do
+ if ! test_config_enabled "$i"; then
+ continue
+ fi
+
+ mkdir "${VOL_BASE_DIR}/dnsmasq-${i}"
+ cp dnsmasq/* "${VOL_BASE_DIR}/dnsmasq-${i}/"
+
+ mkdir "${VOL_BASE_DIR}/asterisk-ims-ue-tester-${i}"
+ mkdir "${VOL_BASE_DIR}/asterisk-ims-ue-tester-${i}/unix"
+ cp "ttcn3/ttcn3.sh" "${VOL_BASE_DIR}/asterisk-ims-ue-tester-${i}/"
+ cp "ttcn3/Asterisk_Tests.cfg" "${VOL_BASE_DIR}/asterisk-ims-ue-tester-${i}/"
+ write_mp_osmo_repo "${VOL_BASE_DIR}/asterisk-ims-ue-tester-${i}/Asterisk_Tests.cfg"
+
+ mkdir "$VOL_BASE_DIR/asterisk-${i}"
+ cp asterisk/* "$VOL_BASE_DIR/asterisk-${i}/"
+
+ network_replace_subnet_in_configs
+ ASTERISK_IP_SUFFIX="10"
+ TTCN3_IP_SUFFIX="103"
+ IMSCORE_IP_SUFFIX="104"
+ DNS_IP_SUFFIX="200"
+
+ if [ "$i" = "ipv4" ]; then
+ NETMASK_PREFIX="24"
+ SUBNET_IP_PREFIX="$SUB4_PREFIX.$SUBNET"
+ ASTERISK_IPADDR="${SUBNET_IP_PREFIX}.${ASTERISK_IP_SUFFIX}"
+ DNS_IPADDR="${SUBNET_IP_PREFIX}.${DNS_IP_SUFFIX}"
+ EXTRA_IPADDR="${SUBNET_IP_PREFIX}.${IMSCORE_IP_SUFFIX}/${NETMASK_PREFIX}"
+ elif [ "$i" = "ipv6" ]; then
+ NETMASK_PREFIX="64"
+ SUBNET_IP_PREFIX="$SUB6_PREFIX:$SUBNET"
+ ASTERISK_IPADDR="${SUBNET_IP_PREFIX}::${ASTERISK_IP_SUFFIX}"
+ DNS_IPADDR="${SUBNET_IP_PREFIX}::${DNS_IP_SUFFIX}"
+ EXTRA_IPADDR="${SUBNET_IP_PREFIX}::${IMSCORE_IP_SUFFIX}/${NETMASK_PREFIX}"
+
+ # Replace IPv4 addresses with IPv6 ones:
+ REPLACE_V4_TO_V6_EXPR="s,${SUB4_PREFIX}\.${SUBNET}\.,${SUB6_PREFIX}:${SUBNET}::,g"
+ REPLACE_V4_TO_V6_PORT_EXPR="s,${SUB4_PREFIX}\.${SUBNET}\.${ASTERISK_IP_SUFFIX}:,[${ASTERISK_IPADDR}]:,g"
+ sed -i -E -e "${REPLACE_V4_TO_V6_EXPR}" "${VOL_BASE_DIR}/dnsmasq-${i}"/*.conf
+ sed -i -E -e "s,${SUB4_PREFIX}\.${SUBNET}\.${TTCN3_IP_SUFFIX}/24,${SUB6_PREFIX}:${SUBNET}::${TTCN3_IP_SUFFIX}/${NETMASK_PREFIX},g" "${VOL_BASE_DIR}/asterisk-${i}"/manager.conf
+ sed -i -E -e "s,${SUB4},${SUB6},g" "${VOL_BASE_DIR}/asterisk-${i}"/*.conf
+ sed -i -E -e "${REPLACE_V4_TO_V6_PORT_EXPR}" "${VOL_BASE_DIR}/asterisk-${i}"/*.conf
+ sed -i -E -e "${REPLACE_V4_TO_V6_EXPR}" "${VOL_BASE_DIR}/asterisk-${i}"/*.conf
+ sed -i -E -e "${REPLACE_V4_TO_V6_EXPR}" "${VOL_BASE_DIR}/asterisk-ims-ue-tester-${i}"/*.cfg
+ fi
+
+ start_dnsmasq "$i"
+ start_asterisk "$i"
+ start_testsuite "$i"
+
+ docker_kill_wait "$BUILD_TAG"-asterisk || true
+ docker_kill_wait "$BUILD_TAG"-dnsmasq || true
+ # For some reason we need to wait a bit until recreating dnsmasq docker,
+ # otherwise it says "container name X is already in use by container Y":
+ sleep 1
+done
diff --git a/ttcn3-asterisk-ims-ue-test/Asterisk_Tests.cfg b/ttcn3-asterisk-ims-ue-test/ttcn3/Asterisk_Tests.cfg
index d183cad..52cf985 100644
--- a/ttcn3-asterisk-ims-ue-test/Asterisk_Tests.cfg
+++ b/ttcn3-asterisk-ims-ue-test/ttcn3/Asterisk_Tests.cfg
@@ -9,7 +9,7 @@ Asterisk_Tests_LOCAL_SIP_EMU.SIP.default_local_address := "172.18.11.103"
Asterisk_Tests_LOCAL_SIP_EMU.SIP.local_sip_port := "5061"
Asterisk_Tests_LOCAL_SIP_EMU.SIP.default_dest_address := "172.18.11.10"
Asterisk_Tests_LOCAL_SIP_EMU.SIP.default_dest_port := "5094"
-Asterisk_Tests_IMS_SIP_EMU.SIP.default_local_address := "172.18.11.103"
+Asterisk_Tests_IMS_SIP_EMU.SIP.default_local_address := "172.18.11.104"
Asterisk_Tests_IMS_SIP_EMU.SIP.local_sip_port := "5060"
# Disabled for Server mode:
#Asterisk_Tests_IMS_SIP_EMU.SIP.default_dest_address := "172.18.11.10"
@@ -20,9 +20,12 @@ Asterisk_Tests.mp_local_sip_host := "172.18.11.103"
Asterisk_Tests.mp_remote_sip_host := "172.18.11.10"
Asterisk_Tests.mp_local_sip_port := 5061
Asterisk_Tests.mp_remote_sip_port := 5094
-Asterisk_Tests.mp_local_ims_host := "172.18.11.103"
+Asterisk_Tests.mp_local_ims_host := "172.18.11.104"
Asterisk_Tests.mp_local_ims_port := 5060
+Asterisk_Tests.mp_ims_domain := "ims.mnc001.mcc238.3gppnetwork.org"
Asterisk_Tests.mp_ims_imsi := "238010000090828"
+Asterisk_Tests.mp_ims_imei := "35876110-027790-0"
+Asterisk_Tests.mp_ami_local_host := "172.18.11.103"
Asterisk_Tests.mp_ami_remote_host := "172.18.11.10"
IMS_ConnectionHandler.mp_ipsec_setup_script_path := "/osmo-ttcn3-hacks/asterisk/IMS_ipsec_setup.sh"
diff --git a/ttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh b/ttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh
new file mode 100755
index 0000000..5787d1f
--- /dev/null
+++ b/ttcn3-asterisk-ims-ue-test/ttcn3/ttcn3.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+set +e
+set -x
+
+if [[ -z "${EXTRA_IPADDR}" ]]; then
+ echo "env var EXTRA_IPADDR undefined!"
+ exit 1
+fi
+
+ip addr add "${EXTRA_IPADDR}" dev eth0
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=782042
+# IPv6 addresses may take an extra while to be available ('tentative' state):
+while [ -n "$(ip -6 addr show tentative)" ]; do sleep 1; done
+
+# Wait for Asterisk to be ready, which in turn may be waiting for dnsmasq to be ready...
+for i in $(seq 100); do
+ set -e
+ netcat -z -v "${ASTERISK_IPADDR}" 5038 && break
+ set +e
+ echo "[$i] Asterisk AMI ${ASTERISK_IPADDR} (port 5038) not ready, waiting..."
+ sleep 1
+done
+
+ttcn3-docker-run asterisk Asterisk_Tests
diff --git a/ttcn3-bsc-test-vamos/jenkins.sh b/ttcn3-bsc-test-vamos/jenkins.sh
index 219d813..e9a130d 100755
--- a/ttcn3-bsc-test-vamos/jenkins.sh
+++ b/ttcn3-bsc-test-vamos/jenkins.sh
@@ -59,7 +59,7 @@ for i in `seq 0 2`; do
/bin/sh -c "/usr/local/bin/respawn.sh \
osmo-bts-omldummy \
$BTS_FEATURES \
- 172.18.$SUBNET.20 \
+ $SUB4_PREFIX.$SUBNET.20 \
$((i + 1234)) \
1 \
>>/data/osmo-bts-omldummy-${i}.log 2>&1"
@@ -70,7 +70,7 @@ docker run --rm \
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4242" \
-v $VOL_BASE_DIR/bsc-tester:/data \
--name ${BUILD_TAG}-ttcn3-bsc-test \
diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh
index 0a3128c..f0274ad 100755
--- a/ttcn3-bsc-test/jenkins.sh
+++ b/ttcn3-bsc-test/jenkins.sh
@@ -59,7 +59,7 @@ for i in "0 1" "1 1" "2 4"; do
/bin/sh -c "/usr/local/bin/respawn.sh \
osmo-bts-omldummy \
$BTS_FEATURES \
- 172.18.$SUBNET.20 \
+ $SUB4_PREFIX.$SUBNET.20 \
$(($1 + 1234)) \
$2 \
>>/data/osmo-bts-omldummy-$1.log 2>&1"
@@ -74,7 +74,7 @@ docker run --rm \
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4242" \
-v $VOL_BASE_DIR/bsc-tester:/data \
--name ${BUILD_TAG}-ttcn3-bsc-test \
diff --git a/ttcn3-bsc-test/osmo-bsc.cfg b/ttcn3-bsc-test/osmo-bsc.cfg
index 7cd8e1d..ceea9c8 100644
--- a/ttcn3-bsc-test/osmo-bsc.cfg
+++ b/ttcn3-bsc-test/osmo-bsc.cfg
@@ -43,6 +43,7 @@ log stderr
logging level lsua notice
logging level lm3ua notice
logging level lmgcp notice
+ logging level set-all debug
!
stats interval 0
stats reporter statsd
diff --git a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg
index 5103e2e..8b9ff84 100644
--- a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg
+++ b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg
@@ -31,3 +31,4 @@ BSC_Tests.mp_enable_lcs_tests := false;
[EXECUTE]
BSC_Tests.control
+#BSC_Tests.TC_assignment_codec_amr_f
diff --git a/ttcn3-bts-test/jenkins.sh b/ttcn3-bts-test/jenkins.sh
index 38e3760..40c00ac 100755
--- a/ttcn3-bts-test/jenkins.sh
+++ b/ttcn3-bts-test/jenkins.sh
@@ -72,11 +72,11 @@ start_fake_trx() {
--log-file-level DEBUG \
--log-file-time \
--log-level INFO \
- -R 172.18.$SUBNET.20 \
- -r 172.18.$SUBNET.22 \
- --trx TRX1@172.18.$SUBNET.20:5700/1 \
- --trx TRX2@172.18.$SUBNET.20:5700/2 \
- --trx TRX3@172.18.$SUBNET.20:5700/3 \
+ -R $SUB4_PREFIX.$SUBNET.20 \
+ -r $SUB4_PREFIX.$SUBNET.22 \
+ --trx TRX1@$SUB4_PREFIX.$SUBNET.20:5700/1 \
+ --trx TRX2@$SUB4_PREFIX.$SUBNET.20:5700/2 \
+ --trx TRX3@$SUB4_PREFIX.$SUBNET.20:5700/3 \
>>/data/fake_trx.out 2>&1"
}
@@ -91,7 +91,7 @@ start_trxcon() {
$DOCKER_ARGS \
$REPO_USER/osmocom-bb-host-master \
/bin/sh -c "trxcon \
- -i 172.18.$SUBNET.21 \
+ -i $SUB4_PREFIX.$SUBNET.21 \
-s /data/unix/osmocom_l2 \
>>/data/trxcon.log 2>&1"
}
@@ -116,7 +116,7 @@ start_testsuite() {
$(docker_network_params $SUBNET 10) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4241" \
-v $VOL_BASE_DIR/bts-tester-${variant}:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
@@ -126,7 +126,7 @@ start_testsuite() {
}
set_pcuif_version() {
- if image_suffix_is_2023q1; then
+ if osmo_repo_is_2023q1; then
sed -i 's/PCUIF_Types.mp_pcuif_version := 12/PCUIF_Types.mp_pcuif_version := 10/g' $1
fi
}
diff --git a/ttcn3-bts-test/oml/BTS_Tests.cfg b/ttcn3-bts-test/oml/BTS_Tests.cfg
index 1311336..b7f9403 100644
--- a/ttcn3-bts-test/oml/BTS_Tests.cfg
+++ b/ttcn3-bts-test/oml/BTS_Tests.cfg
@@ -24,4 +24,7 @@ PCUIF_Types.mp_pcuif_version := 12;
[MAIN_CONTROLLER]
[EXECUTE]
-BTS_Tests_OML.control
+#BTS_Tests_OML.control
+#BTS_Tests_OML.TC_bts_opstart
+#BTS_Tests_OML.TC_bts_opstart
+BTS_Tests_OML.TC_ipa_osmo_pcu_anr_fwd
diff --git a/ttcn3-cbc-test/CBC_Tests.cfg b/ttcn3-cbc-test/CBC_Tests.cfg
index 6e7ab21..c32a8e9 100644
--- a/ttcn3-cbc-test/CBC_Tests.cfg
+++ b/ttcn3-cbc-test/CBC_Tests.cfg
@@ -16,3 +16,7 @@ CBC_Tests.mp_cbc_host := "172.18.27.20";
[EXECUTE]
CBC_Tests.control
+#CBC_Tests.TC_ecbe_create_delete_cgi
+#CBC_Tests.TC_ecbe_create_delete_bsc_server
+#CBC_Tests.TC_cell_failure_restart_active_bsc
+#CBC_Tests.TC_cell_failure_restart_active_mme
diff --git a/ttcn3-cbc-test/jenkins.sh b/ttcn3-cbc-test/jenkins.sh
index 6026df0..7ce3ba8 100755
--- a/ttcn3-cbc-test/jenkins.sh
+++ b/ttcn3-cbc-test/jenkins.sh
@@ -26,14 +26,15 @@ docker run --rm \
-v $VOL_BASE_DIR/cbc:/data \
--name ${BUILD_TAG}-cbc -d \
$DOCKER_ARGS \
- $REPO_USER/osmo-cbc-$IMAGE_SUFFIX
+ $REPO_USER/osmo-cbc-$IMAGE_SUFFIX \
+ /bin/sh -c "gdb -ex 'run' -ex 'bt' --arg osmo-cbc -c /data/osmo-cbc.cfg >/data/osmo-cbc.log 2>&1"
echo Starting container with CBC testsuite
docker run --rm \
$(docker_network_params $SUBNET 100) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4264" \
-v $VOL_BASE_DIR/cbc-tester:/data \
--name ${BUILD_TAG}-ttcn3-cbc-test \
diff --git a/ttcn3-epdg-test/epdg.sh b/ttcn3-epdg-test/epdg.sh
index 2614bf9..3de913d 100755
--- a/ttcn3-epdg-test/epdg.sh
+++ b/ttcn3-epdg-test/epdg.sh
@@ -11,7 +11,11 @@ ip link add $UE_IFACE type dummy
ip addr add $UE_ADDR dev $UE_IFACE
ip link set $UE_IFACE up
ip rule add from $UE_SUBNET table 45
-ERL_FLAGS='-config /data/osmo-epdg.config' /tmp/osmo-epdg/_build/default/bin/osmo-epdg &
+if [ "$IMAGE_SUFFIX" = "latest" ]; then
+ ERL_FLAGS='-config /data/osmo-epdg.config' /usr/bin/osmo-epdg &
+else
+ ERL_FLAGS='-config /data/osmo-epdg.config' /tmp/osmo-epdg/_build/default/bin/osmo-epdg &
+fi
MYPID=$!
# We cannot set a route for the interface until it is created by osmo-epdg...
diff --git a/ttcn3-epdg-test/jenkins.sh b/ttcn3-epdg-test/jenkins.sh
index cdd3a5e..0b7edf5 100755
--- a/ttcn3-epdg-test/jenkins.sh
+++ b/ttcn3-epdg-test/jenkins.sh
@@ -28,6 +28,7 @@ echo Starting container with osmo-epdg
docker run --rm \
$(docker_network_params $SUBNET 20) \
-u root \
+ -e IMAGE_SUFFIX=$IMAGE_SUFFIX \
--ulimit core=-1 \
--cap-add=NET_ADMIN \
--device /dev/net/tun:/dev/net/tun \
diff --git a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg
index ce4623a..d03db07 100644
--- a/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg
+++ b/ttcn3-gbproxy-test-fr/GBProxy_Tests.cfg
@@ -150,3 +150,4 @@ GBProxy_Tests.mp_nsconfig_pcu := {
[EXECUTE]
GBProxy_Tests.control
+#GBProxy_Tests.TC_BVC_bringup
diff --git a/ttcn3-gbproxy-test-fr/jenkins.sh b/ttcn3-gbproxy-test-fr/jenkins.sh
index 72dc4af..9d90129 100755
--- a/ttcn3-gbproxy-test-fr/jenkins.sh
+++ b/ttcn3-gbproxy-test-fr/jenkins.sh
@@ -61,7 +61,7 @@ docker run --rm \
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4246" \
-e "WAIT_FOR_NETDEV=hdlc8" \
-v $VOL_BASE_DIR/gbproxy-tester:/data \
diff --git a/ttcn3-gbproxy-test/GBProxy_Tests.cfg b/ttcn3-gbproxy-test/GBProxy_Tests.cfg
index e1d6573..16a2598 100644
--- a/ttcn3-gbproxy-test/GBProxy_Tests.cfg
+++ b/ttcn3-gbproxy-test/GBProxy_Tests.cfg
@@ -100,4 +100,5 @@ GBProxy_Tests.mp_nsconfig_pcu := {
[MAIN_CONTROLLER]
[EXECUTE]
-GBProxy_Tests.control
+#GBProxy_Tests.control
+GBProxy_Tests.TC_rim_from_eutran
diff --git a/ttcn3-gbproxy-test/jenkins.sh b/ttcn3-gbproxy-test/jenkins.sh
index 861be39..c07f389 100755
--- a/ttcn3-gbproxy-test/jenkins.sh
+++ b/ttcn3-gbproxy-test/jenkins.sh
@@ -39,7 +39,7 @@ docker run --rm \
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4246" \
-v $VOL_BASE_DIR/gbproxy-tester:/data \
--name ${BUILD_TAG}-ttcn3-gbproxy-test \
diff --git a/ttcn3-ggsn-test/jenkins-ogs.sh b/ttcn3-ggsn-test/jenkins-ogs.sh
index 07952bc..1e73b0a 100755
--- a/ttcn3-ggsn-test/jenkins-ogs.sh
+++ b/ttcn3-ggsn-test/jenkins-ogs.sh
@@ -32,12 +32,13 @@ docker run --cap-add=NET_ADMIN \
--ulimit core=-1 \
-v $VOL_BASE_DIR/ggsn:/data \
--name ${BUILD_TAG}-ggsn-ogs-smf -d \
+ --expose 9090 \
$DOCKER_ARGS \
$(docker_network_params $SUBNET 201) \
$REPO_USER/open5gs-$IMAGE_SUFFIX \
- /bin/sh -c "open5gs-smfd -c /data/open5gs-smf-$IMAGE_SUFFIX.yaml >/data/open5gs-smfd.out 2>&1"
- #/bin/sh -c "gdb -ex 'handle SIG32 pass nostop noprint' -ex 'run' -ex 'bt' --arg open5gs-smfd -c /data/open5gs-smf-$IMAGE_SUFFIX.yaml >/data/open5gs-smfd.out 2>&1"
- #/bin/sh -c "valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes open5gs-smfd -c /data/open5gs-smf-$IMAGE_SUFFIX.yaml >/data/open5gs-smfd.out 2>&1"
+ /bin/sh -c "gdb -ex 'handle SIG32 pass nostop noprint' -ex 'run' -ex 'bt' --arg open5gs-smfd -c /data/open5gs-smf-$IMAGE_SUFFIX.yaml >/data/open5gs-smfd.out 2>&1"
+ #/bin/sh -c "valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes open5gs-smfd -c /data/open5gs-smf.yaml >/data/open5gs-smfd.out 2>&1"
+#/bin/sh -c "open5gs-smfd -c /data/open5gs-smf.yaml >/data/open5gs-smfd.out 2>&1"
docker run --cap-add=NET_ADMIN \
--device /dev/net/tun:/dev/net/tun \
@@ -61,3 +62,8 @@ docker run --rm \
--name ${BUILD_TAG}-ggsn-test \
$DOCKER_ARGS \
$REPO_USER/ttcn3-ggsn-test
+
+# let some time to tcpdump upf.pcap to fill
+sleep 5
+#echo "press a key"
+#read
diff --git a/ttcn3-ggsn-test/jenkins.sh b/ttcn3-ggsn-test/jenkins.sh
index 7c9c7ac..b0282f4 100755
--- a/ttcn3-ggsn-test/jenkins.sh
+++ b/ttcn3-ggsn-test/jenkins.sh
@@ -61,13 +61,13 @@ start_ggsn() {
-v "$KERNEL_TEST_DIR:/kernel-test:ro"
-v "$CACHE_DIR:/cache"
"
- OSMO_SUT_HOST="172.18.$SUBNET.200"
+ OSMO_SUT_HOST="$SUB4_PREFIX.$SUBNET.200"
else
GGSN_DOCKER_ARGS="
$(docker_network_params $SUBNET 201)
"
- OSMO_SUT_HOST="172.18.$SUBNET.201"
+ OSMO_SUT_HOST="$SUB4_PREFIX.$SUBNET.201"
fi
docker run --rm \
--cap-add=NET_ADMIN \
@@ -79,7 +79,8 @@ start_ggsn() {
$DOCKER_ARGS \
$GGSN_DOCKER_ARGS \
$REPO_USER/osmo-ggsn-$IMAGE_SUFFIX \
- /bin/sh -c "$GGSN_CMD >/data/osmo-ggsn.log 2>&1"
+ /bin/sh -c "gdb -ex 'run' -ex 'bt' --arg $GGSN_CMD >/data/osmo-ggsn.log 2>&1"
+# /bin/sh -c "$GGSN_CMD >/data/osmo-ggsn.log 2>&1"
kernel_test_wait_for_vm "$VOL_BASE_DIR/ggsn-$test_config/osmo-ggsn.log"
}
@@ -109,11 +110,7 @@ else
CONFIGS_DIR="osmo-ggsn"
fi
-for i in $TEST_CONFIGS_ALL; do
- if ! test_config_enabled "$i"; then
- continue
- fi
-
+for i in $TEST_CONFIGS; do
# OS#6106: Currently it is not possible to configure multiple APNs with
# gtpu-mode kernel-gtp in OsmoGGSN, because it cannot share the GTP-U
# bind socket between tunnels.
diff --git a/ttcn3-ggsn-test/ogs/GGSN_Tests.cfg b/ttcn3-ggsn-test/ogs/GGSN_Tests.cfg
index da69999..a96797a 100644
--- a/ttcn3-ggsn-test/ogs/GGSN_Tests.cfg
+++ b/ttcn3-ggsn-test/ogs/GGSN_Tests.cfg
@@ -4,6 +4,8 @@
[LOGGING]
*.JUnitLogger.testsuite_name := "GGSN_Tests"
+*.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | MATCHING |MATCHING_PROBLEM
+FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | MATCHING | DEBUG_ENCDEC;
[TESTPORT_PARAMETERS]
*.GGSNVTY.CTRL_HOSTNAME := "172.18.3.201"
@@ -21,4 +23,15 @@ GGSN_Tests.m_ggsn_ip6_dns1 := "fd02:db8:3::222"
GGSN_Tests.m_ggsn_impl := GGSN_IMPL_OPEN5GS
[EXECUTE]
-GGSN_Tests.control
+#GGSN_Tests.control
+#GGSN_Tests.TC_pdp4_act_deact_gtpu_access
+#GGSN_Tests.TC_pdp4_act_deact
+#GGSN_Tests.TC_pdp4_act_deact_ipcp
+#GGSN_Tests.TC_act_deact_retrans_duplicate
+#GGSN_Tests.TC_pdp46_act_deact_gtpu_access_wrong_ll_saddr_ipv6
+#GGSN_Tests.TC_pdp46_act_deact_gtpu_access_wrong_ll_saddr_ipv6
+#GGSN_Tests.TC_pdp4_act_update_teid
+#GGSN_Tests.TC_act_deact_retrans_duplicate
+#GGSN_Tests.TC_gy_charging_cc_time
+#GGSN_Tests.TC_lots_of_concurrent_pdp_ctx
+GGSN_Tests.TC_gy_charging_volume_quota_threshold
diff --git a/ttcn3-ggsn-test/ogs/upfd-setup.sh b/ttcn3-ggsn-test/ogs/upfd-setup.sh
index b185ac0..376293f 100755
--- a/ttcn3-ggsn-test/ogs/upfd-setup.sh
+++ b/ttcn3-ggsn-test/ogs/upfd-setup.sh
@@ -23,6 +23,8 @@ add_addr "ogstun6" "2001:780:44:2000:0:0:0:1/56"
add_addr "ogstun46" "176.16.32.1/20"
add_addr "ogstun46" "2001:780:44:2100:0:0:0:1/56"
+#echo "0" > /proc/sys/net/ipv6/conf/ogstun4/accept_ra
+
ip link set ogstun4 up
ip link set ogstun6 up
ip link set ogstun46 up
diff --git a/ttcn3-ggsn-test/ogs/upfd.sh b/ttcn3-ggsn-test/ogs/upfd.sh
index 9089701..0841ff8 100755
--- a/ttcn3-ggsn-test/ogs/upfd.sh
+++ b/ttcn3-ggsn-test/ogs/upfd.sh
@@ -2,7 +2,22 @@
set -e
set -x
/data/upfd-setup.sh
+tcpdump -i any -vvv -w /data/upfd.pcap &
upfd_bin="$(command -v open5gs-upfd)"
# so_bindtodevice cfg requires CAP_NET_RAW:
setcap cap_net_raw+ep "$upfd_bin"
su - osmocom -c "$upfd_bin $*"
+
+# Wait for up to 2 seconds if we keep receiving traffinc from packet dumper,
+# otherwise we might lose last packets from test.
+i=0
+prev_count=-1
+count=$(stat --format="%s" "/data/upfd.pcap")
+while [ $count -gt $prev_count ] && [ $i -lt 2 ]
+do
+ echo "Waiting for packet dumper to finish... $i (prev_count=$prev_count, count=$count)"
+ sleep 1
+ prev_count=$count
+ count=$(stat --format="%s" "/data/upfd.pcap")
+ i=$((i+1))
+done
diff --git a/ttcn3-ggsn-test/osmo-ggsn-kernel/v4_only/osmo-ggsn.cfg b/ttcn3-ggsn-test/osmo-ggsn-kernel/v4_only/osmo-ggsn.cfg
index d8b67a2..f2fdfab 100644
--- a/ttcn3-ggsn-test/osmo-ggsn-kernel/v4_only/osmo-ggsn.cfg
+++ b/ttcn3-ggsn-test/osmo-ggsn-kernel/v4_only/osmo-ggsn.cfg
@@ -25,6 +25,9 @@ line vty
ggsn ggsn0
gtp state-dir /tmp
gtp bind-ip 172.18.3.201
+ timer gtp T3 1
+ timer gtp T1003 2
+ timer gtp X3 2
apn internet
gtpu-mode kernel-gtp
tun-device tun4
diff --git a/ttcn3-ggsn-test/osmo-ggsn-kernel/v4v6_only/osmo-ggsn.cfg b/ttcn3-ggsn-test/osmo-ggsn-kernel/v4v6_only/osmo-ggsn.cfg
index c3f32f7..c605691 100644
--- a/ttcn3-ggsn-test/osmo-ggsn-kernel/v4v6_only/osmo-ggsn.cfg
+++ b/ttcn3-ggsn-test/osmo-ggsn-kernel/v4v6_only/osmo-ggsn.cfg
@@ -25,6 +25,9 @@ line vty
ggsn ggsn0
gtp state-dir /tmp
gtp bind-ip 172.18.3.201
+ timer gtp T3 1
+ timer gtp T1003 2
+ timer gtp X3 2
apn inet46
gtpu-mode kernel-gtp
tun-device tun46
diff --git a/ttcn3-ggsn-test/osmo-ggsn-kernel/v6_only/osmo-ggsn.cfg b/ttcn3-ggsn-test/osmo-ggsn-kernel/v6_only/osmo-ggsn.cfg
index 9de035f..a54bcdf 100644
--- a/ttcn3-ggsn-test/osmo-ggsn-kernel/v6_only/osmo-ggsn.cfg
+++ b/ttcn3-ggsn-test/osmo-ggsn-kernel/v6_only/osmo-ggsn.cfg
@@ -25,6 +25,9 @@ line vty
ggsn ggsn0
gtp state-dir /tmp
gtp bind-ip 172.18.3.201
+ timer gtp T3 1
+ timer gtp T1003 2
+ timer gtp X3 2
apn inet6
gtpu-mode kernel-gtp
tun-device tun6
diff --git a/ttcn3-ggsn-test/ttcn3/all/GGSN_Tests.cfg b/ttcn3-ggsn-test/ttcn3/all/GGSN_Tests.cfg
index f715d9f..ef2fd65 100644
--- a/ttcn3-ggsn-test/ttcn3/all/GGSN_Tests.cfg
+++ b/ttcn3-ggsn-test/ttcn3/all/GGSN_Tests.cfg
@@ -28,3 +28,9 @@ GGSN_Tests.m_ggsn_conf := GGSN_CONF_ALL
[EXECUTE]
GGSN_Tests.control
+#GGSN_Tests.TC_pdp4_act_update_teic
+#GGSN_Tests.TC_pdp4_act_update_teid
+#GGSN_Tests.TC_pdp46_act_deact_apn4
+#GGSN_Tests.TC_pdp4_act_deact_gtpu_access
+#GGSN_Tests.TC_lots_of_concurrent_pdp_ctx
+#GGSN_Tests.TC_addr_pool_exhaustion
diff --git a/ttcn3-hlr-test/jenkins.sh b/ttcn3-hlr-test/jenkins.sh
index 66d102e..c716add 100755
--- a/ttcn3-hlr-test/jenkins.sh
+++ b/ttcn3-hlr-test/jenkins.sh
@@ -34,7 +34,7 @@ docker run --rm \
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4258" \
-v $VOL_BASE_DIR/hlr-tester:/data \
--name ${BUILD_TAG}-ttcn3-hlr-test \
diff --git a/ttcn3-hnbgw-test/HNBGW_Tests.cfg b/ttcn3-hnbgw-test/HNBGW_Tests.cfg
index a23f3c1..d264d42 100644
--- a/ttcn3-hnbgw-test/HNBGW_Tests.cfg
+++ b/ttcn3-hnbgw-test/HNBGW_Tests.cfg
@@ -118,3 +118,4 @@ HNBGW_Tests.mp_hnbgw_timer_x31 := 5;
[EXECUTE]
HNBGW_Tests.control
+#HNBGW_Tests.TC_hnb_register_duplicate_reuse_sctp_assoc
diff --git a/ttcn3-hnbgw-test/jenkins.sh b/ttcn3-hnbgw-test/jenkins.sh
index 21647ed..d886378 100755
--- a/ttcn3-hnbgw-test/jenkins.sh
+++ b/ttcn3-hnbgw-test/jenkins.sh
@@ -67,7 +67,7 @@ run_tests() {
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4261" \
-v $base_dir/hnbgw-tester:/data \
-v $base_dir/unix:/data/unix \
diff --git a/ttcn3-hnodeb-test/HNB_Tests.cfg b/ttcn3-hnodeb-test/HNB_Tests.cfg
index 677e12b..71d1cea 100644
--- a/ttcn3-hnodeb-test/HNB_Tests.cfg
+++ b/ttcn3-hnodeb-test/HNB_Tests.cfg
@@ -4,10 +4,18 @@
[LOGGING]
*.JUnitLogger.testsuite_name := "HNB_Tests"
+FileMask := LOG_ALL | TTCN_MATCHING | TTCN_DEBUG
[TESTPORT_PARAMETERS]
*.HNBVTY.CTRL_HOSTNAME := "172.18.33.20";
*.STATSVTY.CTRL_HOSTNAME := "172.18.33.20";
+*.IPL4.debug := "YES";
+*.Iuh.debug := "YES";
+system.SCTP_PORT.debug := "yes";
+system.SCTP_SimpleClientPort.debug := "yes"
+system.SCTP_SimpleServerPort.debug := "yes"
+system.SCTP_ClientPort.debug := "yes"
+system.SCTP_ServerPort.debug := "yes"
[MODULE_PARAMETERS]
HNB_Tests.mp_hnodeb_ip := "172.18.33.20";
@@ -18,3 +26,10 @@ HNB_Tests.mp_hnbllif_sk_path := "/data/unix/ll_sock";
[EXECUTE]
HNB_Tests.control
+#HNB_Tests.TC_hnb_register_request_accept
+#HNB_Tests.TC_hnb_register_request_reject
+#HNB_Tests.TC_ps_mo_gtp_ping_pong
+#HNB_Tests.TC_ps_mo_gtp_ping_pong
+#HNB_Tests.TC_paging
+#HNB_Tests.TC_cs_mo_call_audio_v0
+#HNB_Tests.TC_cs_mo_call
diff --git a/ttcn3-hnodeb-test/jenkins.sh b/ttcn3-hnodeb-test/jenkins.sh
index cdc47b0..d3ae816 100755
--- a/ttcn3-hnodeb-test/jenkins.sh
+++ b/ttcn3-hnodeb-test/jenkins.sh
@@ -38,7 +38,7 @@ docker run --rm \
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4273" \
-v $VOL_BASE_DIR/hnodeb-tester:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-hnodeb-test/osmo-hnodeb.cfg b/ttcn3-hnodeb-test/osmo-hnodeb.cfg
index 7d24700..621aa57 100644
--- a/ttcn3-hnodeb-test/osmo-hnodeb.cfg
+++ b/ttcn3-hnodeb-test/osmo-hnodeb.cfg
@@ -7,6 +7,7 @@ log stderr
logging filter all 1
logging color 1
logging print category 1
+ logging print category-hex 0
logging timestamp 1
logging print extended-timestamp 1
logging level set-all debug
diff --git a/ttcn3-hss-test-ogs/jenkins.sh b/ttcn3-hss-test-ogs/jenkins.sh
index eb60835..d8932aa 100755
--- a/ttcn3-hss-test-ogs/jenkins.sh
+++ b/ttcn3-hss-test-ogs/jenkins.sh
@@ -24,7 +24,7 @@ cp ogs/freediameter.conf $VOL_BASE_DIR/hss/
network_create
network_replace_subnet_in_configs
-MONGOD_ADDR="172.18.$SUBNET.103"
+MONGOD_ADDR="$SUB4_PREFIX.$SUBNET.103"
DBCTL="open5gs-dbctl --db_uri=mongodb://$MONGOD_ADDR/open5gs"
# start container with mongod in background
diff --git a/ttcn3-mgw-test/MGCP_Test.cfg b/ttcn3-mgw-test/MGCP_Test.cfg
index 5a9d9e6..00dd436 100644
--- a/ttcn3-mgw-test/MGCP_Test.cfg
+++ b/ttcn3-mgw-test/MGCP_Test.cfg
@@ -19,3 +19,32 @@ mp_num_endpoints := 300;
[EXECUTE]
MGCP_Test.control
+#MGCP_Test.TC_crcx
+#MGCP_Test.TC_crcx_mdcx_ip4
+#MGCP_Test.TC_crcx_mdcx_ip6
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_ipv4_ipv6
+#MGCP_Test.TC_crcx_osmux_257
+
+#MGCP_Test.TC_crcx_osmux_fixed_twice
+#MGCP_Test.TC_one_crcx_receive_only_osmux
+#MGCP_Test.TC_one_crcx_loopback_osmux
+#MGCP_Test.TC_two_crcx_and_rtp_osmux
+#MGCP_Test.TC_two_crcx_and_rtp_osmux_bidir
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_wildcard
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_fixed
+#MGCP_Test.TC_two_crcx_and_rtp_osmux_bidir_ipv6
+#MGCP_Test.TC_two_crcx_and_rtp_osmux_bidir_ipv4_ipv6
+#MGCP_Test.TC_two_crcx_and_rtp_osmux_bidir_ipv6_ipv4
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_ipv6
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_ipv4_ipv6
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_ipv6_ipv4
+
+#MGCP_Test.TC_two_crcx_and_rtp_osmux_bidir
+#MGCP_Test.TC_two_crcx_and_rtp_osmux_bidir_amr_bwe
+#MGCP_Test.TC_two_crcx_and_rtp_osmux_bidir_ipv4_ipv6
+#MGCP_Test.TC_two_crcx_and_rtp_osmux_bidir_ipv6
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_ipv4_ipv6
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_ipv6
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_wildcard
+#MGCP_Test.TC_two_crcx_mdcx_and_rtp_osmux_wildcard
diff --git a/ttcn3-mgw-test/jenkins.sh b/ttcn3-mgw-test/jenkins.sh
index 5395fa3..9cb7f31 100755
--- a/ttcn3-mgw-test/jenkins.sh
+++ b/ttcn3-mgw-test/jenkins.sh
@@ -26,7 +26,8 @@ docker run --rm \
-v $VOL_BASE_DIR/mgw:/data \
--name ${BUILD_TAG}-mgw -d \
$DOCKER_ARGS \
- $REPO_USER/osmo-mgw-$IMAGE_SUFFIX
+ $REPO_USER/osmo-mgw-$IMAGE_SUFFIX \
+ /bin/sh -c "gdb -ex 'run' -ex 'bt' --arg osmo-mgw -c /data/osmo-mgw.cfg >/data/osmo-mgw.log 2>&1"
# start docker container with testsuite in foreground
docker run --rm \
@@ -34,7 +35,7 @@ docker run --rm \
--ulimit core=-1 \
-v $VOL_BASE_DIR/mgw-tester:/data \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.180" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.180" \
-e "OSMO_SUT_PORT=4243" \
--name ${BUILD_TAG}-ttcn3-mgw-test \
$DOCKER_ARGS \
diff --git a/ttcn3-msc-test/jenkins.sh b/ttcn3-msc-test/jenkins.sh
index 6a0f3d5..46844d5 100755
--- a/ttcn3-msc-test/jenkins.sh
+++ b/ttcn3-msc-test/jenkins.sh
@@ -51,7 +51,7 @@ docker run --rm \
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4254" \
-v $VOL_BASE_DIR/msc-tester:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-pcu-test/PCU_Tests.cfg b/ttcn3-pcu-test/PCU_Tests.cfg
index 8404f79..d26ac3f 100644
--- a/ttcn3-pcu-test/PCU_Tests.cfg
+++ b/ttcn3-pcu-test/PCU_Tests.cfg
@@ -41,4 +41,25 @@ PCUIF_Types.mp_pcuif_version := 12
[EXECUTE]
PCU_Tests.control
-PCU_Tests_NS.control
+#PCU_Tests_NS.control
+#PCU_Tests.TC_anr_dl_tbf_success
+#PCU_Tests.TC_anr_dl_tbf_success_si2_partial
+#PCU_Tests.TC_anr_dl_tbf_success_si2_partial_multi_measorder
+#PCU_Tests.TC_anr_dl_tbf_finished
+#PCU_Tests.TC_nacc_outbound_success
+
+#PCU_Tests.TC_ta_ptcch_idle
+#PCU_Tests.TC_n3105_max_t3195
+#PCU_Tests.TC_pdch_energy_saving
+#PCU_Tests.TC_mo_ping_pong_with_ul_racap
+#PCU_Tests.TC_ul_tbf_reestablish_with_pkt_dl_ack_nack
+#PCU_Tests.TC_ul_tbf_finished_pkt_dl_ass_pch
+#PCU_Tests.TC_ul_tbf_1phase_while_dl_ass_pch
+
+#PCU_Tests.TC_cs_max_dl
+#PCU_Tests.TC_dl_flow_more_blocks
+#PCU_Tests.TC_mt_ping_pong
+#PCU_Tests.TC_mt_ping_pong_with_dl_racap
+#PCU_Tests.TC_paging_cs_from_sgsn_sign_ptmsi
+#PCU_Tests.TC_paging_cs_from_sgsn_sign
+#PCU_Tests.TC_paging_cs_from_sgsn_ptp
diff --git a/ttcn3-pcu-test/jenkins-sns.sh b/ttcn3-pcu-test/jenkins-sns.sh
index c42ad18..4f55612 100755
--- a/ttcn3-pcu-test/jenkins-sns.sh
+++ b/ttcn3-pcu-test/jenkins-sns.sh
@@ -10,7 +10,7 @@ set_clean_up_trap
set -e
set_pcuif_version() {
- if image_suffix_is_2023q1; then
+ if osmo_repo_is_2023q1; then
sed -i 's/PCUIF_Types.mp_pcuif_version := 12/PCUIF_Types.mp_pcuif_version := 10/g' $1
fi
}
diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh
index f92a08e..6147a73 100755
--- a/ttcn3-pcu-test/jenkins.sh
+++ b/ttcn3-pcu-test/jenkins.sh
@@ -10,7 +10,7 @@ set_clean_up_trap
set -e
set_pcuif_version() {
- if image_suffix_is_2023q1; then
+ if osmo_repo_is_2023q1; then
sed -i 's/PCUIF_Types.mp_pcuif_version := 12/PCUIF_Types.mp_pcuif_version := 10/g' $1
fi
}
@@ -46,7 +46,7 @@ docker run --rm \
$(docker_network_params $SUBNET 10) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.101" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.101" \
-e "OSMO_SUT_PORT=4240" \
-v $VOL_BASE_DIR/pcu-tester:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-pcu-test/sns/PCU_Tests.cfg b/ttcn3-pcu-test/sns/PCU_Tests.cfg
index 2b11462..3da0a29 100644
--- a/ttcn3-pcu-test/sns/PCU_Tests.cfg
+++ b/ttcn3-pcu-test/sns/PCU_Tests.cfg
@@ -64,4 +64,7 @@ PCUIF_Types.mp_pcuif_version := 12
[MAIN_CONTROLLER]
[EXECUTE]
-PCU_Tests_SNS.control
+#PCU_Tests_SNS.control
+PCU_Tests_SNS.TC_sns_del
+PCU_Tests_SNS.TC_sns_chg_weight
+PCU_Tests_SNS.TC_pcuif_rach
diff --git a/ttcn3-pgw-test/PGW_Tests.cfg b/ttcn3-pgw-test/PGW_Tests.cfg
index 5d3ff45..58ae6df 100644
--- a/ttcn3-pgw-test/PGW_Tests.cfg
+++ b/ttcn3-pgw-test/PGW_Tests.cfg
@@ -23,4 +23,4 @@ GTPv2_Emulation.mp_uecups_host := "172.18.18.20"
[MAIN_CONTROLLER]
[EXECUTE]
-PGW_Tests.control
+PGW_Tests.control \ No newline at end of file
diff --git a/ttcn3-pgw-test/jenkins.sh b/ttcn3-pgw-test/jenkins.sh
index 3e10a13..7de97c7 100755
--- a/ttcn3-pgw-test/jenkins.sh
+++ b/ttcn3-pgw-test/jenkins.sh
@@ -59,10 +59,10 @@ docker run --cap-add=NET_ADMIN \
--name ${BUILD_TAG}-smf -d \
$DOCKER_ARGS \
$REPO_USER/open5gs-$IMAGE_SUFFIX \
- /bin/sh -c "open5gs-smfd -c /data/open5gs-smf-$IMAGE_SUFFIX.yaml >/data/open5gs-smfd.out 2>&1"
- #/bin/sh -c "gdb -ex 'handle SIG32 pass nostop noprint' -ex 'run' -ex 'bt' --arg open5gs-smfd -c /data/open5gs-smf-$IMAGE_SUFFIX.yaml >/data/open5gs-smfd.out 2>&1"
+ /bin/sh -c "gdb -ex 'handle SIG32 pass nostop noprint' -ex 'run' -ex 'bt' --arg open5gs-smfd -c /data/open5gs-smf-$IMAGE_SUFFIX.yaml >/data/open5gs-smfd.out 2>&1"
+# /bin/sh -c "open5gs-smfd -c /data/open5gs-smf.yaml >/data/open5gs-smfd.out 2>&1"
-# start container with osmo-ugcups-daemon in background; SYS_ADMIN required for CLONE_NEWNS
+# start container with osmo-uecups-daemon in background; SYS_ADMIN required for CLONE_NEWNS
docker run --cap-add=NET_ADMIN --cap-add=SYS_ADMIN \
--device /dev/net/tun:/dev/net/tun \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
@@ -71,10 +71,12 @@ docker run --cap-add=NET_ADMIN --cap-add=SYS_ADMIN \
--ulimit core=-1 \
-v $VOL_BASE_DIR/osmo-uecups:/data \
-e "WORKDIR=/data" \
+ -e "ASAN_OPTIONS=print_stacktrace=1:abort_on_error=1:fast_unwind_on_fatal=1" \
--name ${BUILD_TAG}-uecups -d \
$DOCKER_ARGS \
$REPO_USER/osmo-uecups-$IMAGE_SUFFIX \
- /bin/sh -c "osmo-uecups-daemon -c /data/osmo-uecups-daemon.cfg >/data/osmo-uecups-daemon.log 2>&1"
+ /bin/sh -c "gdb -ex 'handle SIG32 pass nostop noprint' -ex 'run' -ex 'bt' --arg osmo-uecups-daemon -c /data/osmo-uecups-daemon.cfg >/data/osmo-uecups-daemon.log 2>&1"
+# /bin/sh -c "osmo-uecups-daemon -c /data/osmo-uecups-daemon.cfg >/data/osmo-uecups-daemon.log 2>&1"
# start docker container with testsuite in foreground
docker run --rm \
diff --git a/ttcn3-remsim-test/jenkins.sh b/ttcn3-remsim-test/jenkins.sh
index 158a352..281b00d 100755
--- a/ttcn3-remsim-test/jenkins.sh
+++ b/ttcn3-remsim-test/jenkins.sh
@@ -32,7 +32,7 @@ start_bankd() {
$REPO_USER/osmo-remsim-$IMAGE_SUFFIX \
/bin/sh -c "pcscd; \
osmo-remsim-bankd \
- -i 172.18.$SUBNET.10 \
+ -i $SUB4_PREFIX.$SUBNET.10 \
>/data/osmo-remsim-bankd.log 2>&1"
}
diff --git a/ttcn3-s1gw-test/Dockerfile b/ttcn3-s1gw-test/Dockerfile
new file mode 100644
index 0000000..296cd02
--- /dev/null
+++ b/ttcn3-s1gw-test/Dockerfile
@@ -0,0 +1,14 @@
+ARG REGISTRY
+ARG USER
+FROM $REGISTRY/$USER/debian-bookworm-titan
+
+ARG OSMO_TTCN3_BRANCH="master"
+
+ADD https://gerrit.osmocom.org/plugins/gitiles/osmo-ttcn3-hacks/+/$OSMO_TTCN3_BRANCH?format=TEXT /tmp/commit
+RUN ttcn3-docker-prepare "$OSMO_TTCN3_BRANCH" s1gw
+
+VOLUME /data
+
+COPY S1GW_Tests.cfg /data/S1GW_Tests.cfg
+
+CMD ttcn3-docker-run s1gw S1GW_Tests
diff --git a/ttcn3-s1gw-test/Makefile b/ttcn3-s1gw-test/Makefile
new file mode 100644
index 0000000..8d0e10b
--- /dev/null
+++ b/ttcn3-s1gw-test/Makefile
@@ -0,0 +1 @@
+include ../make/Makefile
diff --git a/ttcn3-s1gw-test/S1GW_Tests.cfg b/ttcn3-s1gw-test/S1GW_Tests.cfg
new file mode 100644
index 0000000..a81c95e
--- /dev/null
+++ b/ttcn3-s1gw-test/S1GW_Tests.cfg
@@ -0,0 +1,17 @@
+[ORDERED_INCLUDE]
+"/osmo-ttcn3-hacks/Common.cfg"
+"/osmo-ttcn3-hacks/s1gw/S1GW_Tests.default"
+
+[LOGGING]
+
+[TESTPORT_PARAMETERS]
+
+[MODULE_PARAMETERS]
+S1GW_Tests.mp_s1gw_enb_ip := "172.18.10.200";
+S1GW_Tests.mp_s1gw_mme_ip := "172.18.10.100";
+S1GW_Tests.mp_mme_bind_ip := "172.18.10.101";
+
+[MAIN_CONTROLLER]
+
+[EXECUTE]
+S1GW_Tests.control
diff --git a/ttcn3-s1gw-test/jenkins.sh b/ttcn3-s1gw-test/jenkins.sh
new file mode 100755
index 0000000..f00987d
--- /dev/null
+++ b/ttcn3-s1gw-test/jenkins.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+. ../jenkins-common.sh
+IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}"
+docker_images_require \
+ "osmo-s1gw-$IMAGE_SUFFIX" \
+ "ttcn3-s1gw-test"
+
+set_clean_up_trap
+set -e
+
+mkdir $VOL_BASE_DIR/s1gw-tester
+cp S1GW_Tests.cfg $VOL_BASE_DIR/s1gw-tester/
+write_mp_osmo_repo "$VOL_BASE_DIR/s1gw-tester/S1GW_Tests.cfg"
+
+mkdir $VOL_BASE_DIR/s1gw
+cp s1gw.sh $VOL_BASE_DIR/s1gw/
+cp osmo-s1gw.config $VOL_BASE_DIR/s1gw/
+
+network_create
+network_replace_subnet_in_configs
+
+echo "Starting container with osmo-s1gw"
+docker run --rm \
+ $(docker_network_params $SUBNET 100) \
+ --user=root \
+ --ulimit core=-1 \
+ --cap-add=NET_ADMIN \
+ -e "ERL_FLAGS=-config /data/osmo-s1gw.config" \
+ -v $VOL_BASE_DIR/s1gw:/data \
+ --name ${BUILD_TAG}-s1gw -d \
+ $DOCKER_ARGS \
+ $REPO_USER/osmo-s1gw-$IMAGE_SUFFIX \
+ /bin/sh -c "/data/s1gw.sh > /data/osmo-s1gw.log 2>&1"
+
+# Give some time to osmo-s1gw to be fully started; it's a bit slow...
+sleep 2
+
+echo "Starting container with the S1GW testsuite"
+docker run --rm \
+ $(docker_network_params $SUBNET 101) \
+ --ulimit core=-1 \
+ -e "TTCN3_PCAP_PATH=/data" \
+ -v $VOL_BASE_DIR/s1gw-tester:/data \
+ --name ${BUILD_TAG}-ttcn3-s1gw-test \
+ $DOCKER_ARGS \
+ $REPO_USER/ttcn3-s1gw-test
diff --git a/ttcn3-s1gw-test/osmo-s1gw.config b/ttcn3-s1gw-test/osmo-s1gw.config
new file mode 100644
index 0000000..b621ef9
--- /dev/null
+++ b/ttcn3-s1gw-test/osmo-s1gw.config
@@ -0,0 +1,35 @@
+%% -*- erlang -*-
+
+[%% ================================================================================
+ %% application config
+ %%
+ %% eNB S1GW
+ %% +-----+ +----------------+
+ %% | ... | --> | s1gw_bind_addr | MME
+ %% +-----+ +----------------+ +-----------------+
+ %% | mme_loc_addr | --> | mme_rem_addr |
+ %% +----------------+ +-----------------+
+ %% ================================================================================
+ {osmo_s1gw,
+ [{s1gw_bind_addr, "172.18.10.200"}, %% S1GW bind address for incoming eNB connections
+ {mme_loc_addr, "172.18.10.100"}, %% local address for outgoing connections to the MME
+ {mme_rem_addr, "172.18.10.101"} %% remote address for outgoing connections to the MME
+ ]},
+ %% ================================================================================
+ %% kernel config
+ %% ================================================================================
+ {kernel,
+ [{logger_level, debug},
+ {logger,
+ [{handler, default, logger_std_h,
+ #{level => debug,
+ formatter => {logger_formatter,
+ #{template => [time, " ",
+ "[", level, "]",
+ {pid, [" ", pid, ""], ""},
+ {prefix, [" ", prefix, " ::"], ""},
+ " ", msg,
+ {mfa, [" (", mfa, ":", line, ")"], ""},
+ "\n"]}}}}]}]}].
+
+%% vim:set ts=2 sw=2 et:
diff --git a/ttcn3-s1gw-test/s1gw.sh b/ttcn3-s1gw-test/s1gw.sh
new file mode 100755
index 0000000..e212aa2
--- /dev/null
+++ b/ttcn3-s1gw-test/s1gw.sh
@@ -0,0 +1,8 @@
+#!/bin/sh -ex
+
+# the subnet prefix is to be modified by network_replace_subnet_in_configs()
+ip addr add 172.18.10.100/24 dev eth0 || true # primary address already set by docker_network_params()
+ip addr add 172.18.10.200/24 dev eth0 # secondary address for eNB -> S1GW connections
+
+# drop the root privileges and finally start osmo-s1gw
+su build -c "/tmp/osmo-s1gw/_build/default/bin/osmo-s1gw"
diff --git a/ttcn3-sccp-test/jenkins.sh b/ttcn3-sccp-test/jenkins.sh
index 7eadd5d..03a630c 100755
--- a/ttcn3-sccp-test/jenkins.sh
+++ b/ttcn3-sccp-test/jenkins.sh
@@ -29,8 +29,8 @@ docker run --rm \
$DOCKER_ARGS \
$REPO_USER/osmo-stp-master \
/bin/sh -c "sccp_demo_user \
- -l 172.18.$SUBNET.200 \
- -r 172.18.$SUBNET.203 \
+ -l $SUB4_PREFIX.$SUBNET.200 \
+ -r $SUB4_PREFIX.$SUBNET.203 \
-C /data/sccp_demo_user.cfg \
>>/data/sccp_demo_user.log 2>&1"
diff --git a/ttcn3-sgsn-test/SGSN_Tests.cfg b/ttcn3-sgsn-test/SGSN_Tests.cfg
index d3d1ee7..40694ee 100644
--- a/ttcn3-sgsn-test/SGSN_Tests.cfg
+++ b/ttcn3-sgsn-test/SGSN_Tests.cfg
@@ -61,7 +61,7 @@ SGSN_Tests.mp_nsconfig := {
}
SGSN_Tests.mp_ranap_cfg := {
{
- sctp_addr := { 23908, "172.18.8.103", 2905, "172.18.8.200" }
+ sctp_addr := { 23908, "172.18.8.104", 2905, "172.18.8.200" }
}
}
SGSN_Tests.mp_hlr_ip := "172.18.8.103"
diff --git a/ttcn3-sgsn-test/jenkins.sh b/ttcn3-sgsn-test/jenkins.sh
index 9238096..b047d80 100755
--- a/ttcn3-sgsn-test/jenkins.sh
+++ b/ttcn3-sgsn-test/jenkins.sh
@@ -11,6 +11,7 @@ set_clean_up_trap
set -e
mkdir $VOL_BASE_DIR/sgsn-tester
+cp "ttcn3.sh" "$VOL_BASE_DIR/sgsn-tester/"
cp SGSN_Tests.cfg $VOL_BASE_DIR/sgsn-tester/
write_mp_osmo_repo "$VOL_BASE_DIR/sgsn-tester/SGSN_Tests.cfg"
@@ -24,6 +25,7 @@ mkdir $VOL_BASE_DIR/unix
network_create
network_replace_subnet_in_configs
+TTCN3_RAN_IPADDR="$SUB4_PREFIX.$SUBNET.104"
echo Starting container with STP
docker run --rm \
@@ -46,12 +48,15 @@ docker run --rm \
echo Starting container with SGSN testsuite
docker run --rm \
+ --cap-add=NET_ADMIN \
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4245" \
+ -e "EXTRA_IPADDR=${TTCN3_RAN_IPADDR}" \
-v $VOL_BASE_DIR/sgsn-tester:/data \
--name ${BUILD_TAG}-ttcn3-sgsn-test \
$DOCKER_ARGS \
- $REPO_USER/ttcn3-sgsn-test
+ $REPO_USER/ttcn3-sgsn-test \
+ /data/ttcn3.sh
diff --git a/ttcn3-sgsn-test/osmo-stp.cfg b/ttcn3-sgsn-test/osmo-stp.cfg
index f1b6f49..3a7d0ab 100644
--- a/ttcn3-sgsn-test/osmo-stp.cfg
+++ b/ttcn3-sgsn-test/osmo-stp.cfg
@@ -22,8 +22,8 @@ cs7 instance 0
asp virt-rnc0-0 23908 2905 m3ua
local-ip 172.18.8.200
local-ip fd02:db8:8::200
- remote-ip 172.18.8.103
- remote-ip fd02:db8:8::103
+ remote-ip 172.18.8.104
+ remote-ip fd02:db8:8::104
role sg
sctp-role server
as virt-rnc0 m3ua
diff --git a/ttcn3-sgsn-test/ttcn3.sh b/ttcn3-sgsn-test/ttcn3.sh
new file mode 100755
index 0000000..9100bfa
--- /dev/null
+++ b/ttcn3-sgsn-test/ttcn3.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+set +e
+set -x
+
+if [[ -z "${EXTRA_IPADDR}" ]]; then
+ echo "env var EXTRA_IPADDR undefined!"
+ exit 1
+fi
+
+ip addr add "${EXTRA_IPADDR}" dev eth0
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=782042
+# IPv6 addresses may take an extra while to be available ('tentative' state):
+while [ -n "$(ip -6 addr show tentative)" ]; do sleep 1; done
+
+ttcn3-docker-run sgsn SGSN_Tests
diff --git a/ttcn3-sip-test/SIP_Tests.cfg b/ttcn3-sip-test/SIP_Tests.cfg
index 2904e76..a720a76 100644
--- a/ttcn3-sip-test/SIP_Tests.cfg
+++ b/ttcn3-sip-test/SIP_Tests.cfg
@@ -18,3 +18,7 @@ SIP_Tests.mp_mncc := "/data/unix/mncc"
[EXECUTE]
SIP_Tests.control
+#SIP_Tests.TC_mo_success_rel_gsm
+#SIP_Tests.TC_mt_success_rel_sip
+#SIP_Tests.TC_mt_success_rel_gsm_ipv6
+#SIP_Tests.TC_mt_success_rel_sip
diff --git a/ttcn3-sip-test/jenkins.sh b/ttcn3-sip-test/jenkins.sh
index 5ccbdf5..6558875 100755
--- a/ttcn3-sip-test/jenkins.sh
+++ b/ttcn3-sip-test/jenkins.sh
@@ -39,7 +39,7 @@ docker run --rm \
$(docker_network_params $SUBNET 103) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.10" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.10" \
-e "OSMO_SUT_PORT=4256" \
-v $VOL_BASE_DIR/sip-tester:/data \
-v $VOL_BASE_DIR/unix:/data/unix \
diff --git a/ttcn3-smlc-test/jenkins.sh b/ttcn3-smlc-test/jenkins.sh
index ab284b3..5bcdcbe 100755
--- a/ttcn3-smlc-test/jenkins.sh
+++ b/ttcn3-smlc-test/jenkins.sh
@@ -47,7 +47,7 @@ docker run --rm \
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4271" \
-v $VOL_BASE_DIR/smlc-tester:/data \
--name ${BUILD_TAG}-ttcn3-smlc-test \
diff --git a/ttcn3-stp-test/STP_Tests.cfg b/ttcn3-stp-test/STP_Tests.cfg
index 15baf7e..e324dac 100644
--- a/ttcn3-stp-test/STP_Tests.cfg
+++ b/ttcn3-stp-test/STP_Tests.cfg
@@ -21,3 +21,4 @@ STP_Tests_M3UA.mp_local_m3ua_ip := { "172.18.19.203", "fd02:db8:19::203" };
STP_Tests_M3UA.control
STP_Tests_IPA.control
STP_Tests.control
+#STP_Tests.TC_m3ua_to_ipa
diff --git a/ttcn3-stp-test/jenkins.sh b/ttcn3-stp-test/jenkins.sh
index 4f90a4d..35393e3 100755
--- a/ttcn3-stp-test/jenkins.sh
+++ b/ttcn3-stp-test/jenkins.sh
@@ -16,13 +16,6 @@ write_mp_osmo_repo "$VOL_BASE_DIR/stp-tester/STP_Tests.cfg"
mkdir $VOL_BASE_DIR/stp
cp osmo-stp.cfg $VOL_BASE_DIR/stp/
-# XXX: M3UA-over-TCP is not supported by osmo-stp <= 1.8.1
-if image_suffix_is_master; then
- osmo-config-merge ./osmo-stp.cfg \
- ./osmo-stp-tcp.confmerge \
- > "$VOL_BASE_DIR/stp/osmo-stp.cfg"
-fi
-
network_create
network_replace_subnet_in_configs
@@ -40,7 +33,7 @@ docker run --rm \
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.200" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.200" \
-e "OSMO_SUT_PORT=4239" \
-v $VOL_BASE_DIR/stp-tester:/data \
--name ${BUILD_TAG}-ttcn3-stp-test \
diff --git a/ttcn3-stp-test/osmo-stp-tcp.confmerge b/ttcn3-stp-test/osmo-stp-tcp.confmerge
deleted file mode 100644
index 8772c35..0000000
--- a/ttcn3-stp-test/osmo-stp-tcp.confmerge
+++ /dev/null
@@ -1,28 +0,0 @@
-cs7 instance 0
- asp asp-sender-tcp 9999 2905 m3ua tcp
- local-ip 172.18.19.200
- local-ip fd02:db8:19::200
- remote-ip 172.18.19.203
- remote-ip fd02:db8:19::203
- role sg
- transport-role server
- asp asp-client0-tcp 10002 2906 m3ua tcp
- local-ip 172.18.19.200
- local-ip fd02:db8:19::200
- remote-ip 172.18.19.203
- remote-ip fd02:db8:19::203
- role asp
- transport-role client
- as as-sender-tcp m3ua
- asp asp-sender-tcp
- routing-key 1123 123
- as as-client-tcp m3ua
- routing-key 1155 155
- asp asp-client0-tcp
- route-table system
- update route 123 16777215 linkset as-sender-tcp
- update route 155 16777215 linkset as-client-tcp
- listen m3ua 2905 tcp
- local-ip 172.18.19.200
- local-ip fd02:db8:19::200
- accept-asp-connections dynamic-permitted
diff --git a/ttcn3-stp-test/osmo-stp.cfg b/ttcn3-stp-test/osmo-stp.cfg
index 28e2363..16181c2 100644
--- a/ttcn3-stp-test/osmo-stp.cfg
+++ b/ttcn3-stp-test/osmo-stp.cfg
@@ -21,6 +21,33 @@ line vty
!
cs7 instance 0
point-code format 24
+ asp asp-sender-tcp 9999 2905 m3ua tcp
+ local-ip 172.18.19.200
+ local-ip fd02:db8:19::200
+ remote-ip 172.18.19.203
+ remote-ip fd02:db8:19::203
+ role sg
+ transport-role server
+ asp asp-client0-tcp 10002 2906 m3ua tcp
+ local-ip 172.18.19.200
+ local-ip fd02:db8:19::200
+ remote-ip 172.18.19.203
+ remote-ip fd02:db8:19::203
+ role asp
+ transport-role client
+ as as-sender-tcp m3ua
+ asp asp-sender-tcp
+ routing-key 1123 123
+ as as-client-tcp m3ua
+ routing-key 1155 155
+ asp asp-client0-tcp
+ route-table system
+ update route 123 16777215 linkset as-sender-tcp
+ update route 155 16777215 linkset as-client-tcp
+ listen m3ua 2905 tcp
+ local-ip 172.18.19.200
+ local-ip fd02:db8:19::200
+ accept-asp-connections dynamic-permitted
!
!M3UA AS/ASP:
!
diff --git a/ttcn3-upf-test/jenkins.sh b/ttcn3-upf-test/jenkins.sh
index 8bb19e2..47b892c 100755
--- a/ttcn3-upf-test/jenkins.sh
+++ b/ttcn3-upf-test/jenkins.sh
@@ -33,7 +33,7 @@ docker run --rm \
$(docker_network_params $SUBNET 203) \
--ulimit core=-1 \
-e "TTCN3_PCAP_PATH=/data" \
- -e "OSMO_SUT_HOST=172.18.$SUBNET.20" \
+ -e "OSMO_SUT_HOST=$SUB4_PREFIX.$SUBNET.20" \
-e "OSMO_SUT_PORT=4275" \
-v $VOL_BASE_DIR/upf-tester:/data \
--name ${BUILD_TAG}-ttcn3-upf-test \