aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-01-30 16:29:08 +0100
committerlaforge <laforge@osmocom.org>2020-03-01 19:23:00 +0000
commitc9fa2a88082da04661495286ae77c266a82aaab7 (patch)
treeb28f611fef398be831ed2ae1bb5701767abe2cfa
parentdc6979956cdedd01e0e761b4719ce30cc6f7c8e8 (diff)
Introduce osmo-gsm-tester docker setup
This set up allows running a typical osmo-gsm-tester set up with a main unit (ogt-master) attached to one (or more) slaves where resources are located and processes are run. As an example, current config allows running an iperf3 test over an srsLTE stack using the ZeroMQ backend. Change-Id: Iac7c0b613048ce332642d3957c55cc7c53b56d42
-rw-r--r--make/Makefile2
-rw-r--r--osmo-gsm-tester/Dockerfile135
-rw-r--r--osmo-gsm-tester/Makefile3
-rw-r--r--osmo-gsm-tester/Release.key20
-rwxr-xr-xosmo-gsm-tester/jenkins.sh56
-rwxr-xr-xosmo-gsm-tester/osmo-gsm-tester.sh14
-rw-r--r--osmo-gsm-tester/resources.conf60
-rw-r--r--osmo-gsm-tester/ssh/authorized_keys1
-rw-r--r--osmo-gsm-tester/ssh/config3
-rw-r--r--osmo-gsm-tester/ssh/id_rsa38
-rw-r--r--osmo-gsm-tester/ssh/id_rsa.pub1
-rw-r--r--osmo-gsm-tester/ssh/known_hosts1
12 files changed, 334 insertions, 0 deletions
diff --git a/make/Makefile b/make/Makefile
index 83f56ae..b10c665 100644
--- a/make/Makefile
+++ b/make/Makefile
@@ -21,6 +21,7 @@ OSMO_BB_BRANCH?=master
OSMO_BSC_BRANCH?=master
OSMO_BTS_BRANCH?=master
OSMO_GGSN_BRANCH?=master
+OSMO_GSM_TESTER_BRANCH?=master
OSMO_HLR_BRANCH?=master
OSMO_IUH_BRANCH?=master
OSMO_MGW_BRANCH?=master
@@ -59,6 +60,7 @@ docker-build: .release
--build-arg OSMO_BSC_BRANCH=$(OSMO_BSC_BRANCH) \
--build-arg OSMO_BTS_BRANCH=$(OSMO_BTS_BRANCH) \
--build-arg OSMO_GGSN_BRANCH=$(OSMO_GGSN_BRANCH) \
+ --build-arg OSMO_GSM_TESTER_BRANCH=$(OSMO_GSM_TESTER_BRANCH) \
--build-arg OSMO_HLR_BRANCH=$(OSMO_HLR_BRANCH) \
--build-arg OSMO_IUH_BRANCH=$(OSMO_IUH_BRANCH) \
--build-arg OSMO_MGW_BRANCH=$(OSMO_MGW_BRANCH) \
diff --git a/osmo-gsm-tester/Dockerfile b/osmo-gsm-tester/Dockerfile
new file mode 100644
index 0000000..40e7e1a
--- /dev/null
+++ b/osmo-gsm-tester/Dockerfile
@@ -0,0 +1,135 @@
+ARG USER
+FROM $USER/debian-stretch-build
+
+MAINTAINER Pau Espin Pedrol <pespin@sysmocom.de>
+
+# Create jenkins user
+RUN useradd -ms /bin/bash jenkins
+# Create osmo-gsm-tester group and add user to it
+RUN groupadd osmo-gsm-tester
+RUN usermod -a -G osmo-gsm-tester jenkins
+
+# install osmo-gsm-tester dependencies
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ dbus \
+ tcpdump \
+ sqlite3 \
+ python3 \
+ python3-setuptools \
+ python3-yaml \
+ python3-mako \
+ python3-gi \
+ python3-wheel \
+ ofono \
+ patchelf \
+ sudo \
+ libcap2-bin \
+ python3-pip \
+ udhcpc \
+ iperf3 \
+ locales
+
+# install osmo-gsm-tester pip dependencies
+RUN pip3 install \
+ "git+https://github.com/podshumok/python-smpplib.git@master#egg=smpplib" \
+ pydbus \
+ pyusb \
+ pysispm
+
+# install srsLTE runtime dependencies
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ cmake \
+ libfftw3-dev \
+ libmbedtls-dev \
+ libboost-program-options-dev \
+ libconfig++-dev \
+ libsctp-dev \
+ libpcsclite-dev \
+ libuhd-dev \
+ libczmq-dev
+
+# Intall sshd:
+RUN apt-get update && apt-get install -y openssh-server
+RUN mkdir /var/run/sshd
+COPY ssh /root/.ssh
+COPY --chown=jenkins:jenkins ssh /home/jenkins/.ssh
+RUN chmod -R 0700 /home/jenkins/.ssh /root/.ssh
+
+# Create directories for slaves with correct file permissions:
+RUN mkdir -p /osmo-gsm-tester-srsue \
+ /osmo-gsm-tester-srsenb \
+ /osmo-gsm-tester-srsepc \
+ /osmo-gsm-tester-trx
+RUN chown -R jenkins:jenkins \
+ /osmo-gsm-tester-srsue \
+ /osmo-gsm-tester-srsenb \
+ /osmo-gsm-tester-srsepc \
+ /osmo-gsm-tester-trx
+
+# Set a UTF-8 locale
+RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
+ dpkg-reconfigure --frontend=noninteractive locales && \
+ update-locale LANG=en_US.UTF-8
+ENV LANG en_US.UTF-8
+
+# We require a newer patchelf for srsue (OS#4389)
+ADD https://nixos.org/releases/patchelf/patchelf-0.10/patchelf-0.10.tar.bz2 /tmp/patchelf-0.10.tar.bz2
+RUN cd /tmp && \
+ tar -jxf /tmp/patchelf-0.10.tar.bz2 && \
+ cd patchelf-0.10 && \
+ ./configure --prefix=/opt && \
+ make && \
+ mkdir -p /opt/bin/ && \
+ cp src/patchelf /opt/bin/patchelf-v0.10
+
+ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/"
+
+COPY Release.key /tmp/Release.key
+
+RUN apt-key add /tmp/Release.key && \
+ rm /tmp/Release.key && \
+ echo "deb " $OSMOCOM_REPO " ./" > /etc/apt/sources.list.d/osmocom-nightly.list
+
+ADD $OSMOCOM_REPO/Release /tmp/Release
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ telnet \
+ libosmocore-dev \
+ libosmo-abis-dev \
+ libosmo-gsup-client-dev \
+ libosmo-netif-dev \
+ libosmo-ranap-dev \
+ libosmo-sccp-dev \
+ libosmo-sigtran-dev \
+ libsmpp34-dev \
+ libgtp-dev \
+ libasn1c-dev && \
+ apt-get clean
+
+WORKDIR /tmp
+
+ARG OSMO_GSM_TESTER_BRANCH="master"
+
+RUN git clone git://git.osmocom.org/osmo-gsm-tester.git
+ADD http://git.osmocom.org/osmo-gsm-tester/patch?h=$OSMO_GSM_TESTER_BRANCH /tmp/commit
+
+RUN cd osmo-gsm-tester && \
+ git fetch && git checkout $OSMO_GSM_TESTER_BRANCH && \
+ (git symbolic-ref -q HEAD && git reset --hard origin/$OSMO_GSM_TESTER_BRANCH || exit 1); \
+ git rev-parse --abbrev-ref HEAD && git rev-parse HEAD
+
+# Copy several scripts and permission for osmo-gsm-tester:
+RUN mkdir -p /usr/local/bin/ && cp osmo-gsm-tester/utils/bin/* /usr/local/bin/
+RUN mkdir -p /etc/sudoers.d/ && cp osmo-gsm-tester/utils/sudoers.d/* /etc/sudoers.d/
+
+VOLUME /data
+COPY resources.conf /tmp/osmo-gsm-tester/example/resources.conf
+
+ENV OSMO_GSM_TESTER_CONF /tmp/osmo-gsm-tester/example
+
+WORKDIR /data
+CMD ["/bin/sh", "-c", "/data/osmo-gsm-tester.sh >/data/osmo-gsm-tester.log 2>&1"]
+
+EXPOSE 22/tcp
diff --git a/osmo-gsm-tester/Makefile b/osmo-gsm-tester/Makefile
new file mode 100644
index 0000000..03366a0
--- /dev/null
+++ b/osmo-gsm-tester/Makefile
@@ -0,0 +1,3 @@
+RUN_ARGS?=--rm --privileged --cap-add=NET_ADMIN --device /dev/net/tun:/dev/net/tun --network sigtran --ip 172.18.50.21 -v ogt-vol:/data
+
+include ../make/Makefile
diff --git a/osmo-gsm-tester/Release.key b/osmo-gsm-tester/Release.key
new file mode 100644
index 0000000..e656238
--- /dev/null
+++ b/osmo-gsm-tester/Release.key
@@ -0,0 +1,20 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.5 (GNU/Linux)
+
+mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc
+a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl
+CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4
+5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee
+S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y
+CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy
+b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCWmMc
+aQIbAwUJDEAUbQYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3fjsoI
+ALSXmXzFCpTxg8a6tvXkqddY/qAmeBMNUf7hslI9wN3leNmCrnuHS8TbHWYJZgtw
+8M5fKL3aRQYaIiqqm1XOUF0OqwYNDj5V3y38mM68NYOkzgSP7foMwZp9Y0TlGhtI
+L8weA+2RUjB4hwwGMAYMqkRZyKW3NhPqdlGGoXac1ilwEyGXFHdOLbkhtyS+P2yb
+/EvaKIN5cMLzRZKeYgdp9WuAirV+yV/SDbgvabW098lrWhGLltlRRDQgMV883p8I
+ERMI1wlLFZGnHL3mfBWGeQ24M/DaBOdXQDtfBLCJ9nGztmDBUb8i6GFWU7nD2TGi
+8mYUsED1ZDwO/0jdvJ4gSluIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v
+d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4=
+=Gvly
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/osmo-gsm-tester/jenkins.sh b/osmo-gsm-tester/jenkins.sh
new file mode 100755
index 0000000..16552f9
--- /dev/null
+++ b/osmo-gsm-tester/jenkins.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# This docket env allows running a typical osmo-gsm-tester setup with a main
+# unit (ogt-master) running osmo-gsm-tester process, and using another docker
+# container as a remote host where to run child processes.
+#
+# Trial directory must be set in the parent host's /tmp/trial path, which will
+# then be mounted to ogt-master and used my osmo-gsm-tester.
+#
+# osmo-gsm-tester parameters and suites are passed in osmo-gsm-tester.sh in same
+# directory as this script.
+#
+# Log files can be found in host's /tmp/logs/ directory.
+
+. ../jenkins-common.sh
+IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}"
+docker_images_require \
+ "debian-stretch-build" \
+ "osmo-gsm-tester"
+
+network_create 172.18.50.0/24
+
+mkdir $VOL_BASE_DIR/ogt-slave
+
+mkdir $VOL_BASE_DIR/ogt-master
+cp osmo-gsm-tester.sh $VOL_BASE_DIR/ogt-master/
+
+echo Starting container with osmo-gsm-tester slave
+docker run --rm \
+ --cap-add=NET_ADMIN \
+ --cap-add=SYS_ADMIN \
+ --device /dev/net/tun:/dev/net/tun \
+ --network $NET_NAME \
+ --ip 172.18.50.100 \
+ -v $VOL_BASE_DIR/ogt-slave:/data \
+ --name ${BUILD_TAG}-ogt-slave -d \
+ $REPO_USER/osmo-gsm-tester \
+ /bin/sh -c "/usr/sbin/sshd -D -e >/data/sshd.log 2>&1"
+
+echo Starting container with osmo-gsm-tester main unit
+docker run --rm \
+ --cap-add=NET_ADMIN \
+ --cap-add=SYS_ADMIN \
+ --device /dev/net/tun:/dev/net/tun \
+ --network $NET_NAME \
+ --ip 172.18.50.2 \
+ -v $VOL_BASE_DIR/ogt-master:/data \
+ -v /tmp/trial:/tmp/trial \
+ --name ${BUILD_TAG}-ogt-master \
+ $REPO_USER/osmo-gsm-tester
+
+echo Stopping containers
+docker container kill ${BUILD_TAG}-ogt-slave
+
+network_remove
+collect_logs
diff --git a/osmo-gsm-tester/osmo-gsm-tester.sh b/osmo-gsm-tester/osmo-gsm-tester.sh
new file mode 100755
index 0000000..bfd303b
--- /dev/null
+++ b/osmo-gsm-tester/osmo-gsm-tester.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+# Add local IP addresses required by osmo-gsm-tester resources:
+ip addr add 172.18.50.2/24 dev eth0
+ip addr add 172.18.50.3/24 dev eth0
+ip addr add 172.18.50.4/24 dev eth0
+ip addr add 172.18.50.5/24 dev eth0
+ip addr add 172.18.50.6/24 dev eth0
+ip addr add 172.18.50.7/24 dev eth0
+ip addr add 172.18.50.8/24 dev eth0
+ip addr add 172.18.50.9/24 dev eth0
+ip addr add 172.18.50.10/24 dev eth0
+
+su -c "python3 -u /tmp/osmo-gsm-tester/src/osmo-gsm-tester.py /tmp/trial -T -l dbg -s 4g -t iperf3" -m jenkins
diff --git a/osmo-gsm-tester/resources.conf b/osmo-gsm-tester/resources.conf
new file mode 100644
index 0000000..1120178
--- /dev/null
+++ b/osmo-gsm-tester/resources.conf
@@ -0,0 +1,60 @@
+# all hardware and interfaces available to this osmo-gsm-tester
+
+ip_address:
+- addr: 172.18.50.2
+- addr: 172.18.50.3
+- addr: 172.18.50.4
+- addr: 172.18.50.5
+- addr: 172.18.50.6
+- addr: 172.18.50.7
+- addr: 172.18.50.8
+- addr: 172.18.50.9
+- addr: 172.18.50.10
+
+run_node:
+- run_type: ssh
+ run_addr: 172.18.50.100
+ ssh_user: jenkins
+ ssh_addr: 172.18.50.100
+
+bts:
+- label: Ettus B200
+ type: osmo-bts-trx
+ ipa_unit_id: 6
+ addr: 172.18.50.3
+ band: GSM-1800
+ ciphers: [a5_0, a5_1, a5_3]
+ osmo_trx:
+ type: uhd
+ launch_trx: true
+ remote_user: jenkins
+ trx_ip: 172.18.50.100
+ dev_args: "type=b200,serial=306BD11"
+ clock_reference: external
+ multi_arfcn: true
+
+enb:
+- label: srsENB-zmq
+ type: srsenb
+ remote_user: jenkins
+ addr: 172.18.50.100
+
+arfcn:
+ - arfcn: 512
+ band: GSM-1800
+
+modem:
+- label: sierra_1st
+ path: '/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5/1-5.4/1-5.4.1/1-5.4.1.2'
+ ki: 'EBAB63D06C3F546A16C977CB40E57C68'
+ auth_algo: 'comp128v1'
+ ciphers: [a5_0, a5_1]
+ features: ['sms', 'voice', 'ussd', 'sim']
+
+- label: srsUE-zmq_1
+ type: srsue
+ remote_user: jenkins
+ addr: 172.18.50.100
+ imsi: '001010123456789'
+ ki: '8CCBE85A62C6DC7AC2A9886F4BBC3146'
+ auth_algo: 'xor'
diff --git a/osmo-gsm-tester/ssh/authorized_keys b/osmo-gsm-tester/ssh/authorized_keys
new file mode 100644
index 0000000..5d58f36
--- /dev/null
+++ b/osmo-gsm-tester/ssh/authorized_keys
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGYP7+YrCjZ04y+4arcB8Iv72g64nYJJvu+M66EDWVMr2Gvb0yHLvi/jeIfHlI3TvxBvouwX4wuFnLlI5BNvrwB0rCPnDzzPfX+osnAmqvBbVWFbAQkq4y9+tTiwqhAPV+PVW/AkTGoDGdiMdDL12AwT9HHRKCZUZBdPV3SmKqxRTI+pFZTROROulWMCBEn7LnEiQiqrcS2t79dDLFmbnZ75c9lOewHZfGgLUUwj5b+CHKwLNiFhJYdVq6LtyJ11D/sktEs+yyKbn7/1mbGy9Uwe2Rk+521XdmuHow86f9tOPvdRVqm7kzugkANOe2qz4PvT167bQHhm3I975d86fEeC6Ro+OvDDxARxLsCBFFZxmbNMg2+Ggt5y7l0GUa5lyjY+prKGrQ2ZWHASlwby8FCGe8fFzaJbag6841xiHE0PKPSySAnVq2gUHcLMAdsjCZsfAi0i15VDfKrd1W3Zlu6ikE9II/N89gVCVHI53Nnb7L9W445C8ido9qDSLEgOM= pespin@pespin-thinkpad
diff --git a/osmo-gsm-tester/ssh/config b/osmo-gsm-tester/ssh/config
new file mode 100644
index 0000000..6e350e5
--- /dev/null
+++ b/osmo-gsm-tester/ssh/config
@@ -0,0 +1,3 @@
+Host 172.18.50.*
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/osmo-gsm-tester/ssh/id_rsa b/osmo-gsm-tester/ssh/id_rsa
new file mode 100644
index 0000000..8e9fab8
--- /dev/null
+++ b/osmo-gsm-tester/ssh/id_rsa
@@ -0,0 +1,38 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+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
+-----END OPENSSH PRIVATE KEY-----
diff --git a/osmo-gsm-tester/ssh/id_rsa.pub b/osmo-gsm-tester/ssh/id_rsa.pub
new file mode 100644
index 0000000..5d58f36
--- /dev/null
+++ b/osmo-gsm-tester/ssh/id_rsa.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGYP7+YrCjZ04y+4arcB8Iv72g64nYJJvu+M66EDWVMr2Gvb0yHLvi/jeIfHlI3TvxBvouwX4wuFnLlI5BNvrwB0rCPnDzzPfX+osnAmqvBbVWFbAQkq4y9+tTiwqhAPV+PVW/AkTGoDGdiMdDL12AwT9HHRKCZUZBdPV3SmKqxRTI+pFZTROROulWMCBEn7LnEiQiqrcS2t79dDLFmbnZ75c9lOewHZfGgLUUwj5b+CHKwLNiFhJYdVq6LtyJ11D/sktEs+yyKbn7/1mbGy9Uwe2Rk+521XdmuHow86f9tOPvdRVqm7kzugkANOe2qz4PvT167bQHhm3I975d86fEeC6Ro+OvDDxARxLsCBFFZxmbNMg2+Ggt5y7l0GUa5lyjY+prKGrQ2ZWHASlwby8FCGe8fFzaJbag6841xiHE0PKPSySAnVq2gUHcLMAdsjCZsfAi0i15VDfKrd1W3Zlu6ikE9II/N89gVCVHI53Nnb7L9W445C8ido9qDSLEgOM= pespin@pespin-thinkpad
diff --git a/osmo-gsm-tester/ssh/known_hosts b/osmo-gsm-tester/ssh/known_hosts
new file mode 100644
index 0000000..5b4d64b
--- /dev/null
+++ b/osmo-gsm-tester/ssh/known_hosts
@@ -0,0 +1 @@
+|1|eVQDORaCD0M0PU3796H/UNBd7UY=|HOZgOCC2cv57PWiBdDr60diz68A= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIW6ho8F4O1Mr9kTFbQAWTa7hB8UoaDzRha2ycVE8JmGRgX/L2iy4SeqlDDizoOT2kk4KBRWU0QxUWsxoUfzN6o=