<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/docker-playground/+/21263">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  pespin: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Introduce osmo-ran docker image set up<br><br>See osmo-ran/README.md in this commit for a description.<br><br>Related: SYS#4889<br>Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969<br>---<br>M jenkins-common.sh<br>M make/Makefile<br>A osmo-ran/Dockerfile<br>A osmo-ran/Makefile<br>A osmo-ran/README.md<br>A osmo-ran/Release.key<br>A osmo-ran/jenkins.sh<br>A osmo-ran/osmocom/osmo-bsc.cfg<br>A osmo-ran/osmocom/osmo-bts-trx.cfg<br>A osmo-ran/osmocom/osmo-mgw.cfg<br>A osmo-ran/osmocom/osmo-pcu.cfg<br>A osmo-ran/osmocom/osmo-trx-ipc.cfg<br>A osmo-ran/osmocom/osmo-trx-uhd.cfg<br>A osmo-ran/split/jenkins-split.sh<br>A osmo-ran/split/ran-bsc_mgw/Dockerfile<br>A osmo-ran/split/ran-bsc_mgw/Makefile<br>A osmo-ran/split/ran-bsc_mgw/Release.key<br>A osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg<br>A osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg<br>A osmo-ran/split/ran-bts_pcu/Dockerfile<br>A osmo-ran/split/ran-bts_pcu/Makefile<br>A osmo-ran/split/ran-bts_pcu/Release.key<br>A osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg<br>A osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg<br>A osmo-ran/split/ran-trx-ipc/Dockerfile<br>A osmo-ran/split/ran-trx-ipc/Makefile<br>A osmo-ran/split/ran-trx-ipc/Release.key<br>A osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg<br>A osmo-ran/split/ran-trx-uhd/Dockerfile<br>A osmo-ran/split/ran-trx-uhd/Makefile<br>A osmo-ran/split/ran-trx-uhd/Release.key<br>A osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg<br>A systemd/Dockerfile<br>A systemd/Makefile<br>34 files changed, 1,278 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/jenkins-common.sh b/jenkins-common.sh</span><br><span>index fdcfd40..e172a4f 100644</span><br><span>--- a/jenkins-common.sh</span><br><span>+++ b/jenkins-common.sh</span><br><span>@@ -44,6 +44,7 @@</span><br><span> #        Dockerfile for multiple distributions, without duplicating configs for</span><br><span> #     each distribution. Dependencies listed in docker_depends() are built</span><br><span> #       automatically too.</span><br><span style="color: hsl(120, 100%, 40%);">+IMAGE_DIR_PREFIX=".."</span><br><span> docker_images_require() {</span><br><span>     local i</span><br><span>      local from_line</span><br><span>@@ -68,13 +69,13 @@</span><br><span> </span><br><span>                    # Pull upstream base images</span><br><span>                  pull_arg="--pull"</span><br><span style="color: hsl(0, 100%, 40%);">-                     from_line="$(grep '^FROM' ../$dir/Dockerfile)"</span><br><span style="color: hsl(120, 100%, 40%);">+                      from_line="$(grep '^FROM' ${IMAGE_DIR_PREFIX}/${dir}/Dockerfile)"</span><br><span>                  if echo "$from_line" | grep -q '$USER'; then</span><br><span>                               pull_arg=""</span><br><span>                        fi</span><br><span> </span><br><span>                       echo "Building image: $i (export NO_DOCKER_IMAGE_BUILD=1 to prevent this)"</span><br><span style="color: hsl(0, 100%, 40%);">-                    make -C "../$dir" \</span><br><span style="color: hsl(120, 100%, 40%);">+                 make -C "${IMAGE_DIR_PREFIX}/${dir}" \</span><br><span>                             PULL="$pull_arg" \</span><br><span>                                 UPSTREAM_DISTRO="$upstream_distro_arg" \</span><br><span>                           DISTRO="$distro_arg" \</span><br><span>@@ -108,6 +109,24 @@</span><br><span>      docker network create --internal --subnet $SUB4 --ipv6 --subnet $SUB6 $NET_NAME</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+network_bridge_create() {</span><br><span style="color: hsl(120, 100%, 40%);">+   NET=$1</span><br><span style="color: hsl(120, 100%, 40%);">+        if docker network ls | grep -q $NET_NAME; then</span><br><span style="color: hsl(120, 100%, 40%);">+                echo removing stale network and containers...</span><br><span style="color: hsl(120, 100%, 40%);">+         network_clean</span><br><span style="color: hsl(120, 100%, 40%);">+         network_remove</span><br><span style="color: hsl(120, 100%, 40%);">+        fi</span><br><span style="color: hsl(120, 100%, 40%);">+    SUB4="172.18.$NET.0/24"</span><br><span style="color: hsl(120, 100%, 40%);">+     SUB6="fd02:db8:$NET::/64"</span><br><span style="color: hsl(120, 100%, 40%);">+   echo Creating network $NET_NAME</span><br><span style="color: hsl(120, 100%, 40%);">+       docker network create \</span><br><span style="color: hsl(120, 100%, 40%);">+               --driver=bridge \</span><br><span style="color: hsl(120, 100%, 40%);">+             --subnet $SUB4 \</span><br><span style="color: hsl(120, 100%, 40%);">+              --ipv6 --subnet $SUB6 \</span><br><span style="color: hsl(120, 100%, 40%);">+               -o "com.docker.network.bridge.host_binding_ipv4"="172.18.$NET.1" \</span><br><span style="color: hsl(120, 100%, 40%);">+                $NET_NAME</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> network_remove() {</span><br><span>         echo Removing network $NET_NAME</span><br><span>      docker network remove $NET_NAME</span><br><span>diff --git a/make/Makefile b/make/Makefile</span><br><span>index 4f2263b..7bb0345 100644</span><br><span>--- a/make/Makefile</span><br><span>+++ b/make/Makefile</span><br><span>@@ -37,6 +37,8 @@</span><br><span> DISTRO?=debian-stretch</span><br><span> OSMOCOM_REPO_MIRROR?=http://download.opensuse.org</span><br><span> # Use if down: OSMOCOM_REPO_MIRROR=http://ftp.uni-stuttgart.de/opensuse</span><br><span style="color: hsl(120, 100%, 40%);">+OSMOCOM_REPO_VERSION?=latest</span><br><span style="color: hsl(120, 100%, 40%);">+# Use "nightly" to use the nightly repo</span><br><span> </span><br><span> RELEASE_SUPPORT := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))/.make-release-support</span><br><span> IMAGE?=$(REGISTRY_HOST)/$(USER)/$(NAME)</span><br><span>@@ -67,6 +69,7 @@</span><br><span>              --build-arg UPSTREAM_DISTRO=$(UPSTREAM_DISTRO) \</span><br><span>             --build-arg DISTRO=$(DISTRO) \</span><br><span>               --build-arg OSMOCOM_REPO_MIRROR=$(OSMOCOM_REPO_MIRROR) \</span><br><span style="color: hsl(120, 100%, 40%);">+              --build-arg OSMOCOM_REPO_VERSION=$(OSMOCOM_REPO_VERSION) \</span><br><span>           --build-arg LIBOSMOCORE_BRANCH=$(LIBOSMOCORE_BRANCH) \</span><br><span>               --build-arg OSMO_BB_BRANCH=$(OSMO_BB_BRANCH) \</span><br><span>               --build-arg OSMO_BSC_BRANCH=$(OSMO_BSC_BRANCH) \</span><br><span>diff --git a/osmo-ran/Dockerfile b/osmo-ran/Dockerfile</span><br><span>new file mode 100644</span><br><span>index 0000000..4b5195e</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/Dockerfile</span><br><span>@@ -0,0 +1,94 @@</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     USER</span><br><span style="color: hsl(120, 100%, 40%);">+FROM    $USER/systemd</span><br><span style="color: hsl(120, 100%, 40%);">+# Arguments used after FROM must be specified again</span><br><span style="color: hsl(120, 100%, 40%);">+ARG DISTRO</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     OSMOCOM_REPO_MIRROR="http://download.opensuse.org"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG       OSMOCOM_REPO_VERSION=latest</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MAINTAINER Pau Espin Pedrol <pespin@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ARG    OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG      OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY     Release.key /tmp/Release.key</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  gnupg && \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-key add /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+             rm /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+              echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \</span><br><span style="color: hsl(120, 100%, 40%);">+          ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \</span><br><span style="color: hsl(120, 100%, 40%);">+          dnf install -y dnf-utils wget && \</span><br><span style="color: hsl(120, 100%, 40%);">+            yum config-manager --set-enabled PowerTools && \</span><br><span style="color: hsl(120, 100%, 40%);">+              cd /etc/yum.repos.d/ && \</span><br><span style="color: hsl(120, 100%, 40%);">+             wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \</span><br><span style="color: hsl(120, 100%, 40%);">+              ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# we need to add this to invalidate the cache once the repository is updated.</span><br><span style="color: hsl(120, 100%, 40%);">+# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_DEBIAN/Release /tmp/Release</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        apt-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                   strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-bsc \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-bsc-ipaccess-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                     osmo-bts-trx \</span><br><span style="color: hsl(120, 100%, 40%);">+                        osmo-mgw \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-pcu \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-trx-ipc \</span><br><span style="color: hsl(120, 100%, 40%);">+                        osmo-trx-uhd && \</span><br><span style="color: hsl(120, 100%, 40%);">+             apt-get clean \</span><br><span style="color: hsl(120, 100%, 40%);">+               ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            dnf install -y \</span><br><span style="color: hsl(120, 100%, 40%);">+                      less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-bsc \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-bsc-ipaccess-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                     osmo-bts \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-mgw \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-pcu \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-trx-ipc \</span><br><span style="color: hsl(120, 100%, 40%);">+                        osmo-trx-uhd \</span><br><span style="color: hsl(120, 100%, 40%);">+                ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     systemctl enable osmo-bsc osmo-bts-trx osmo-mgw osmo-pcu</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+WORKDIR     /tmp</span><br><span style="color: hsl(120, 100%, 40%);">+RUN       cp -r /etc/osmocom /etc/osmocom-default</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME /data</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME   /etc/osmocom</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY    osmocom/* /etc/osmocom/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CMD  ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-bsc: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4242 4249</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-bts: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4241 4238</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-mgw: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4243 4267</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-pcu: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4240</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-trx: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+#EXPOSE    4237 4236</span><br><span>diff --git a/osmo-ran/Makefile b/osmo-ran/Makefile</span><br><span>new file mode 100644</span><br><span>index 0000000..80b1069</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/Makefile</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.200 -v bsc-vol:/data</span><br><span style="color: hsl(120, 100%, 40%);">+include ../make/Makefile</span><br><span>diff --git a/osmo-ran/README.md b/osmo-ran/README.md</span><br><span>new file mode 100644</span><br><span>index 0000000..db534a1</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/README.md</span><br><span>@@ -0,0 +1,55 @@</span><br><span style="color: hsl(120, 100%, 40%);">+This directory provides an environment to set up and run an Osmocom RAN</span><br><span style="color: hsl(120, 100%, 40%);">+(osmo-bts, osmo-pcu, osmo-bsc, osmo-mgw) managed by systemd, all run inside a</span><br><span style="color: hsl(120, 100%, 40%);">+docker container.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Easiest way to build + run the setup is to execute _jenkins.sh_ in this same</span><br><span style="color: hsl(120, 100%, 40%);">+directory.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+This script will build the Dockerfile image, then set up a bridge network on</span><br><span style="color: hsl(120, 100%, 40%);">+subnet `172.18.$SUBNET.0/24`, where the IP address `172.18.$SUBNET.200` is</span><br><span style="color: hsl(120, 100%, 40%);">+assigned to the internal network interface inside the docker container (and</span><br><span style="color: hsl(120, 100%, 40%);">+which RAN processes will be using), and `172.18.$SUBNET.1` is assigned to the</span><br><span style="color: hsl(120, 100%, 40%);">+bridge network interface outside the docker container. All The VTY and CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+ports are available on both `172.18.$SUBNET.200` and also on `172.18.$SUBNET.1`</span><br><span style="color: hsl(120, 100%, 40%);">+(through docker port mapping).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Shared directories between docker container and the host are mounted in</span><br><span style="color: hsl(120, 100%, 40%);">+_/tmp/logs/ran-$SUBNET/_ on the host, with _osmocom_ subdirectory mapping to</span><br><span style="color: hsl(120, 100%, 40%);">+container's _/etc/osmocom_, and _data_ to _/data:_.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The script has the following parameters (environment variables):</span><br><span style="color: hsl(120, 100%, 40%);">+- `SUBNET`: The IPv4 subnet to configure and use (`172.18.$SUBNET.0/24`) when</span><br><span style="color: hsl(120, 100%, 40%);">+  running the container (defaults to `25`)</span><br><span style="color: hsl(120, 100%, 40%);">+- `SGSN_IP`: The IP address where the SGSN outside the docker container listens to (Gb interface)</span><br><span style="color: hsl(120, 100%, 40%);">+- `STP_IP`: The IP address where the STP outside the docker container listens to (A interface)</span><br><span style="color: hsl(120, 100%, 40%);">+- `TRX_IP`: The IP address where the OsmoTRX outside the docker container listens to (TRXC/TRXD interface)</span><br><span style="color: hsl(120, 100%, 40%);">+- `IMAGE_SUFFIX`: Type of base image to use: Leave unset to build on top of</span><br><span style="color: hsl(120, 100%, 40%);">+  Debian (default), set to `centos8` to run on top of CentOS8 distribution</span><br><span style="color: hsl(120, 100%, 40%);">+- `OSMOCOM_REPO_VERSION`: Osmocom OBS repository version to use: `nightly` or `latest` (default).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The above IP addresses will be replaced by _jenkins.sh_ from tokens of the same</span><br><span style="color: hsl(120, 100%, 40%);">+name in the provided configuration files, available in _osmocom/_ directory,</span><br><span style="color: hsl(120, 100%, 40%);">+which will be then placer inside docker image's `/etc/osmocom/` directory, where</span><br><span style="color: hsl(120, 100%, 40%);">+the osmocom projects will read the configuration by default (see systemd</span><br><span style="color: hsl(120, 100%, 40%);">+services).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Example:</span><br><span style="color: hsl(120, 100%, 40%);">+Run Osmocom RAN on a Centos8 distro with osmocom's nightly repository on subnet 26:</span><br><span style="color: hsl(120, 100%, 40%);">+```</span><br><span style="color: hsl(120, 100%, 40%);">+OSMOCOM_REPO_VERSION="nightly" IMAGE_SUFFIX="centos8" SUBNET=26 ./jenkins.sh</span><br><span style="color: hsl(120, 100%, 40%);">+```</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+If several independent RANs are to be set up by the user, it's up to them to</span><br><span style="color: hsl(120, 100%, 40%);">+configure iptables rules to forbid access from one docker container to another.</span><br><span style="color: hsl(120, 100%, 40%);">+It should be doable pretty easily by rejecting connections between</span><br><span style="color: hsl(120, 100%, 40%);">+`172.18.$subnetA.0/24` and `172.18.$subnetB.0/24`.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The docker container started by _jenkins.sh_ is running systemd and hence is</span><br><span style="color: hsl(120, 100%, 40%);">+expected to run forever (until the container instance is killed through docker</span><br><span style="color: hsl(120, 100%, 40%);">+or by killing the process, eg. pressing CTRL+C on the terminal).</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+While the container is running, shell access to to it in order inspect the RAN</span><br><span style="color: hsl(120, 100%, 40%);">+processes managed by systemd can be obtained by using:</span><br><span style="color: hsl(120, 100%, 40%);">+```</span><br><span style="color: hsl(120, 100%, 40%);">+docker exec -it nonjenkins-ran-subnet$SUBNET bash</span><br><span style="color: hsl(120, 100%, 40%);">+```</span><br><span>diff --git a/osmo-ran/Release.key b/osmo-ran/Release.key</span><br><span>new file mode 100644</span><br><span>index 0000000..a737316</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/Release.key</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PGP PUBLIC KEY BLOCK-----</span><br><span style="color: hsl(120, 100%, 40%);">+Version: GnuPG v1.4.5 (GNU/Linux)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc</span><br><span style="color: hsl(120, 100%, 40%);">+a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl</span><br><span style="color: hsl(120, 100%, 40%);">+CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4</span><br><span style="color: hsl(120, 100%, 40%);">+5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee</span><br><span style="color: hsl(120, 100%, 40%);">+S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y</span><br><span style="color: hsl(120, 100%, 40%);">+CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy</span><br><span style="color: hsl(120, 100%, 40%);">+b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCXm/4</span><br><span style="color: hsl(120, 100%, 40%);">+pgIbAwUJEEzwqgYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3f/1AH</span><br><span style="color: hsl(120, 100%, 40%);">+/A7WVSpfM4wV/DMqZPTsSjChB4JyDotxpV7qHZzBC5aaP2dINZyi9PayIwZWbvCY</span><br><span style="color: hsl(120, 100%, 40%);">+VKvt+Fw8oCGC9F9mdh10Xe+ElHeVNSihzABPuu1RkRkb1nvkymScy0yxydodYOBi</span><br><span style="color: hsl(120, 100%, 40%);">+K4WQ+BhpijXWmYvOekIwbS5Hi9BHpfgK4TinK0xsvh1bVLeQJ8YjrnNFIAR2CnBa</span><br><span style="color: hsl(120, 100%, 40%);">+X7Y72Up/kKL08DdQzuS+mKrJtAQlGMtIsukWC2ajYQMkNwm8Gvhpn8za113dCkBW</span><br><span style="color: hsl(120, 100%, 40%);">+XAFnlQqQobKwC7b19QgEtJI/YpGSrRc6WaZxPyAjscbWQlFEAB900sVj4BWT55ig</span><br><span style="color: hsl(120, 100%, 40%);">+7O2uSdsCVhTuU7T0ztwsgvmIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v</span><br><span style="color: hsl(120, 100%, 40%);">+d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4=</span><br><span style="color: hsl(120, 100%, 40%);">+=/Tek</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PGP PUBLIC KEY BLOCK-----</span><br><span>diff --git a/osmo-ran/jenkins.sh b/osmo-ran/jenkins.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..1b5d93a</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/jenkins.sh</span><br><span>@@ -0,0 +1,47 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/sh</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+. ../jenkins-common.sh</span><br><span style="color: hsl(120, 100%, 40%);">+IMAGE_SUFFIX="${IMAGE_SUFFIX?centos8}"</span><br><span style="color: hsl(120, 100%, 40%);">+if [ "x$IMAGE_SUFFIX" != "x" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+  IMAGE_SUFFIX="-${IMAGE_SUFFIX}" # append dash</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+docker_images_require \</span><br><span style="color: hsl(120, 100%, 40%);">+  "systemd" \</span><br><span style="color: hsl(120, 100%, 40%);">+ "osmo-ran$IMAGE_SUFFIX"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+SUBNET=${SUBNET:-25}</span><br><span style="color: hsl(120, 100%, 40%);">+IPSUFFIX=200</span><br><span style="color: hsl(120, 100%, 40%);">+NET_NAME="osmo-ran-subnet$SUBNET"</span><br><span style="color: hsl(120, 100%, 40%);">+network_bridge_create $SUBNET</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+VOL_RAN_DIR="$VOL_BASE_DIR/ran-$SUBNET"</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir $VOL_RAN_DIR</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir $VOL_RAN_DIR/data</span><br><span style="color: hsl(120, 100%, 40%);">+mkdir $VOL_RAN_DIR/osmocom</span><br><span style="color: hsl(120, 100%, 40%);">+cp osmocom/* $VOL_RAN_DIR/osmocom/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+DOCKER_IN_IP="172.18.$SUBNET.$IPSUFFIX"</span><br><span style="color: hsl(120, 100%, 40%);">+SGSN_IP="${SGSN_IP:-192.168.30.1}"</span><br><span style="color: hsl(120, 100%, 40%);">+STP_IP="${STP_IP:-192.168.30.1}"</span><br><span style="color: hsl(120, 100%, 40%);">+TRX_IP="${TRX_IP:-192.168.30.100}"</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i "s/\$DOCKER_IN_IP/${DOCKER_IN_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i "s/\$SGSN_IP/${SGSN_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i "s/\$STP_IP/${STP_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+sed -i "s/\$TRX_IP/${TRX_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+echo Starting container with RAN</span><br><span style="color: hsl(120, 100%, 40%);">+docker run        --rm \</span><br><span style="color: hsl(120, 100%, 40%);">+                $(docker_network_params $SUBNET 200) \</span><br><span style="color: hsl(120, 100%, 40%);">+                --privileged \</span><br><span style="color: hsl(120, 100%, 40%);">+                --ulimit core=-1 \</span><br><span style="color: hsl(120, 100%, 40%);">+            -v /sys/fs/cgroup:/sys/fs/cgroup:ro \</span><br><span style="color: hsl(120, 100%, 40%);">+         -v $VOL_RAN_DIR/data:/data \</span><br><span style="color: hsl(120, 100%, 40%);">+          -v $VOL_RAN_DIR/osmocom:/etc/osmocom \</span><br><span style="color: hsl(120, 100%, 40%);">+                -p 4242:4242 -p 4249:4249 \</span><br><span style="color: hsl(120, 100%, 40%);">+           -p 4241:4241 -p 4238:4238 \</span><br><span style="color: hsl(120, 100%, 40%);">+           -p 4243:4243 -p 4267:4267 \</span><br><span style="color: hsl(120, 100%, 40%);">+           -p 4240:4240 -p 23010:23010 \</span><br><span style="color: hsl(120, 100%, 40%);">+         --name ${BUILD_TAG}-ran-subnet$SUBNET \</span><br><span style="color: hsl(120, 100%, 40%);">+               $DOCKER_ARGS \</span><br><span style="color: hsl(120, 100%, 40%);">+                $REPO_USER/osmo-ran$IMAGE_SUFFIX</span><br><span style="color: hsl(120, 100%, 40%);">+network_remove</span><br><span>diff --git a/osmo-ran/osmocom/osmo-bsc.cfg b/osmo-ran/osmocom/osmo-bsc.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..af53647</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/osmocom/osmo-bsc.cfg</span><br><span>@@ -0,0 +1,123 @@</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+e1_input</span><br><span style="color: hsl(120, 100%, 40%);">+ e1_line 0 driver ipa</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ network country code 234</span><br><span style="color: hsl(120, 100%, 40%);">+ mobile network code 70</span><br><span style="color: hsl(120, 100%, 40%);">+ encryption a5 0</span><br><span style="color: hsl(120, 100%, 40%);">+ neci 1</span><br><span style="color: hsl(120, 100%, 40%);">+ paging any use tch 0</span><br><span style="color: hsl(120, 100%, 40%);">+ handover 0</span><br><span style="color: hsl(120, 100%, 40%);">+ handover algorithm 1</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 window rxlev averaging 10</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 window rxqual averaging 1</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 window rxlev neighbor averaging 10</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 power budget interval 6</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 power budget hysteresis 3</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 maximum distance 9999</span><br><span style="color: hsl(120, 100%, 40%);">+ periodic location update 30</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+  type sysmobts</span><br><span style="color: hsl(120, 100%, 40%);">+  band DCS1800</span><br><span style="color: hsl(120, 100%, 40%);">+  cell_identity 0</span><br><span style="color: hsl(120, 100%, 40%);">+  location_area_code 5</span><br><span style="color: hsl(120, 100%, 40%);">+  base_station_id_code 63</span><br><span style="color: hsl(120, 100%, 40%);">+  ms max power 15</span><br><span style="color: hsl(120, 100%, 40%);">+  cell reselection hysteresis 4</span><br><span style="color: hsl(120, 100%, 40%);">+  rxlev access min 0</span><br><span style="color: hsl(120, 100%, 40%);">+  radio-link-timeout 32</span><br><span style="color: hsl(120, 100%, 40%);">+  channel allocator ascending</span><br><span style="color: hsl(120, 100%, 40%);">+  rach tx integer 9</span><br><span style="color: hsl(120, 100%, 40%);">+  rach max transmission 7</span><br><span style="color: hsl(120, 100%, 40%);">+  channel-description attach 1</span><br><span style="color: hsl(120, 100%, 40%);">+  channel-description bs-pa-mfrms 5</span><br><span style="color: hsl(120, 100%, 40%);">+  channel-description bs-ag-blks-res 1</span><br><span style="color: hsl(120, 100%, 40%);">+  early-classmark-sending forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+  ip.access unit_id 6969 0</span><br><span style="color: hsl(120, 100%, 40%);">+  oml ip.access stream_id 255 line 0</span><br><span style="color: hsl(120, 100%, 40%);">+  codec-support fr amr</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs mode egprs</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs routing area 0</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs network-control-order nc1</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs cell bvci 1800</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsei 1800</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsvc 0 nsvci 1800</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsvc 0 local udp port 23020</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsvc 0 remote udp port 23000</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsvc 0 remote ip $SGSN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+  trx 0</span><br><span style="color: hsl(120, 100%, 40%);">+   rf_locked 0</span><br><span style="color: hsl(120, 100%, 40%);">+   arfcn 871</span><br><span style="color: hsl(120, 100%, 40%);">+   nominal power 23</span><br><span style="color: hsl(120, 100%, 40%);">+   ! to use full TRX power, set max_power_red 0</span><br><span style="color: hsl(120, 100%, 40%);">+   max_power_red 4</span><br><span style="color: hsl(120, 100%, 40%);">+   rsl e1 tei 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 0</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config CCCH+SDCCH4</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 1</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 2</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 3</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 4</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 5</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 6</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+    !phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 7</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+    !phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+cs7 instance 0</span><br><span style="color: hsl(120, 100%, 40%);">+ point-code 0.0.2</span><br><span style="color: hsl(120, 100%, 40%);">+ asp asp0 2905 0 m3ua</span><br><span style="color: hsl(120, 100%, 40%);">+  local-ip $DOCKER_IN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+  remote-ip $STP_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ as as0 m3ua</span><br><span style="color: hsl(120, 100%, 40%);">+  asp asp0</span><br><span style="color: hsl(120, 100%, 40%);">+  routing-key 30 0.0.2</span><br><span style="color: hsl(120, 100%, 40%);">+  traffic-mode loadshare</span><br><span style="color: hsl(120, 100%, 40%);">+ sccp-address bsc_local</span><br><span style="color: hsl(120, 100%, 40%);">+  point-code 0.0.2</span><br><span style="color: hsl(120, 100%, 40%);">+  routing-indicator PC</span><br><span style="color: hsl(120, 100%, 40%);">+ sccp-address msc_remote</span><br><span style="color: hsl(120, 100%, 40%);">+  point-code 0.23.1</span><br><span style="color: hsl(120, 100%, 40%);">+  routing-indicator PC</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+msc 0</span><br><span style="color: hsl(120, 100%, 40%);">+ no bsc-welcome-text</span><br><span style="color: hsl(120, 100%, 40%);">+ no bsc-msc-lost-text</span><br><span style="color: hsl(120, 100%, 40%);">+ no bsc-grace-text</span><br><span style="color: hsl(120, 100%, 40%);">+ type normal</span><br><span style="color: hsl(120, 100%, 40%);">+ allow-emergency allow</span><br><span style="color: hsl(120, 100%, 40%);">+ codec-list hr3 fr3</span><br><span style="color: hsl(120, 100%, 40%);">+ !mgw remote-ip 192.168.30.1</span><br><span style="color: hsl(120, 100%, 40%);">+ mgw remote-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ mgw remote-port 2427</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 12_2k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 10_2k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 7_95k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 7_40k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 6_70k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 5_90k allowed</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 5_15k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 4_75k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ msc-addr msc_remote</span><br><span style="color: hsl(120, 100%, 40%);">+ bsc-addr bsc_local</span><br><span style="color: hsl(120, 100%, 40%);">+bsc</span><br><span style="color: hsl(120, 100%, 40%);">+ mid-call-timeout 0</span><br><span style="color: hsl(120, 100%, 40%);">+ no missing-msc-text</span><br><span>diff --git a/osmo-ran/osmocom/osmo-bts-trx.cfg b/osmo-ran/osmocom/osmo-bts-trx.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..20aeae0</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/osmocom/osmo-bts-trx.cfg</span><br><span>@@ -0,0 +1,36 @@</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+! OsmoBTS () configuration saved from vty</span><br><span style="color: hsl(120, 100%, 40%);">+!!</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+log stderr</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging timestamp 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level rsl notice</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level oml notice</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level rll notice</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level rr notice</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level meas error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level pag error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level l1c error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level l1p error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level dsp error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level abis error</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+phy 0</span><br><span style="color: hsl(120, 100%, 40%);">+ instance 0</span><br><span style="color: hsl(120, 100%, 40%);">+ osmotrx ip local $DOCKER_IN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ osmotrx ip remote $TRX_IP</span><br><span style="color: hsl(120, 100%, 40%);">+bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+ band 1800</span><br><span style="color: hsl(120, 100%, 40%);">+ ipa unit-id 6969 0</span><br><span style="color: hsl(120, 100%, 40%);">+ oml remote-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ gsmtap-sapi ccch</span><br><span style="color: hsl(120, 100%, 40%);">+ gsmtap-sapi pdtch</span><br><span style="color: hsl(120, 100%, 40%);">+ trx 0</span><br><span style="color: hsl(120, 100%, 40%);">+  phy 0 instance 0</span><br><span style="color: hsl(120, 100%, 40%);">+cpu-sched</span><br><span style="color: hsl(120, 100%, 40%);">+ policy rr 1</span><br><span>diff --git a/osmo-ran/osmocom/osmo-mgw.cfg b/osmo-ran/osmocom/osmo-mgw.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..421816f</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/osmocom/osmo-mgw.cfg</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+! MGCP configuration example</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+mgcp</span><br><span style="color: hsl(120, 100%, 40%);">+  bind ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp port-range 4002 16000</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp bind-ip $DOCKER_IN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp ip-probing</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp ip-tos 184</span><br><span style="color: hsl(120, 100%, 40%);">+  bind port 2427</span><br><span style="color: hsl(120, 100%, 40%);">+  sdp audio payload number 98</span><br><span style="color: hsl(120, 100%, 40%);">+  sdp audio payload name GSM</span><br><span style="color: hsl(120, 100%, 40%);">+  number endpoints 31</span><br><span style="color: hsl(120, 100%, 40%);">+  loop 0</span><br><span style="color: hsl(120, 100%, 40%);">+  force-realloc 1</span><br><span style="color: hsl(120, 100%, 40%);">+  rtcp-omit</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp-patch ssrc</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp-patch timestamp</span><br><span>diff --git a/osmo-ran/osmocom/osmo-pcu.cfg b/osmo-ran/osmocom/osmo-pcu.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..2e31cbc</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/osmocom/osmo-pcu.cfg</span><br><span>@@ -0,0 +1,11 @@</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+pcu</span><br><span style="color: hsl(120, 100%, 40%);">+ flow-control-interval 10</span><br><span style="color: hsl(120, 100%, 40%);">+ cs 2</span><br><span style="color: hsl(120, 100%, 40%);">+ alloc-algorithm dynamic</span><br><span style="color: hsl(120, 100%, 40%);">+ alpha 0</span><br><span style="color: hsl(120, 100%, 40%);">+ gamma 0</span><br><span>diff --git a/osmo-ran/osmocom/osmo-trx-ipc.cfg b/osmo-ran/osmocom/osmo-trx-ipc.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..3241950</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/osmocom/osmo-trx-ipc.cfg</span><br><span>@@ -0,0 +1,33 @@</span><br><span style="color: hsl(120, 100%, 40%);">+log stderr</span><br><span style="color: hsl(120, 100%, 40%);">+ logging filter all 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging timestamp 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print file basename</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level set-all notice</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+no login</span><br><span style="color: hsl(120, 100%, 40%);">+bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+cpu-sched</span><br><span style="color: hsl(120, 100%, 40%);">+ policy rr 18</span><br><span style="color: hsl(120, 100%, 40%);">+trx</span><br><span style="color: hsl(120, 100%, 40%);">+ bind-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ remote-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ ! 28 dB offset below is valid only for the B2xx in 1800 MHz band, see</span><br><span style="color: hsl(120, 100%, 40%);">+ ! https://osmocom.org/issues/4468 for more details</span><br><span style="color: hsl(120, 100%, 40%);">+ rssi-offset 28.000000</span><br><span style="color: hsl(120, 100%, 40%);">+ tx-sps 4</span><br><span style="color: hsl(120, 100%, 40%);">+ rx-sps 4</span><br><span style="color: hsl(120, 100%, 40%);">+ clock-ref external</span><br><span style="color: hsl(120, 100%, 40%);">+ egprs disable</span><br><span style="color: hsl(120, 100%, 40%);">+ ext-rach disable</span><br><span style="color: hsl(120, 100%, 40%);">+ dev-args ipc_msock=/tmp/ipc_sock0</span><br><span style="color: hsl(120, 100%, 40%);">+ multi-arfcn disable</span><br><span style="color: hsl(120, 100%, 40%);">+ chan 0</span><br><span style="color: hsl(120, 100%, 40%);">+  tx-path TX/RX</span><br><span style="color: hsl(120, 100%, 40%);">+  rx-path RX2</span><br><span style="color: hsl(120, 100%, 40%);">+ chan 1</span><br><span style="color: hsl(120, 100%, 40%);">+  tx-path TX/RX</span><br><span style="color: hsl(120, 100%, 40%);">+  rx-path RX2</span><br><span>diff --git a/osmo-ran/osmocom/osmo-trx-uhd.cfg b/osmo-ran/osmocom/osmo-trx-uhd.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..234a2ee</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/osmocom/osmo-trx-uhd.cfg</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+log stderr</span><br><span style="color: hsl(120, 100%, 40%);">+ logging filter all 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging timestamp 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print file basename</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level set-all notice</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+no login</span><br><span style="color: hsl(120, 100%, 40%);">+bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+cpu-sched</span><br><span style="color: hsl(120, 100%, 40%);">+ policy rr 18</span><br><span style="color: hsl(120, 100%, 40%);">+trx</span><br><span style="color: hsl(120, 100%, 40%);">+ bind-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ remote-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ egprs disable</span><br><span style="color: hsl(120, 100%, 40%);">+ tx-sps 4</span><br><span style="color: hsl(120, 100%, 40%);">+ rx-sps 4</span><br><span style="color: hsl(120, 100%, 40%);">+ clock-ref external</span><br><span style="color: hsl(120, 100%, 40%);">+ chan 0</span><br><span>diff --git a/osmo-ran/split/jenkins-split.sh b/osmo-ran/split/jenkins-split.sh</span><br><span>new file mode 100755</span><br><span>index 0000000..5cecf4a</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/jenkins-split.sh</span><br><span>@@ -0,0 +1,97 @@</span><br><span style="color: hsl(120, 100%, 40%);">+#!/bin/bash</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+. ../../jenkins-common.sh</span><br><span style="color: hsl(120, 100%, 40%);">+IMAGE_SUFFIX="${IMAGE_SUFFIX?centos8}"</span><br><span style="color: hsl(120, 100%, 40%);">+if [ "x$IMAGE_SUFFIX" != "x" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+ IMAGE_SUFFIX="-${IMAGE_SUFFIX}" # append dash</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+IMAGE_DIR_PREFIX="../.." docker_images_require \</span><br><span style="color: hsl(120, 100%, 40%);">+     "systemd"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+networks=()</span><br><span style="color: hsl(120, 100%, 40%);">+docker_names=()</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+SUBNET=${SUBNET:-25}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+NET_NAME="osmo-ran-subnet$subnet"</span><br><span style="color: hsl(120, 100%, 40%);">+networks+=("$NET_NAME")</span><br><span style="color: hsl(120, 100%, 40%);">+network_bridge_create $SUBNET</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#$1:image_name, $2: subnet, $3: ip suffix, $4: docker args</span><br><span style="color: hsl(120, 100%, 40%);">+run_image() {</span><br><span style="color: hsl(120, 100%, 40%);">+     local image_name=$1</span><br><span style="color: hsl(120, 100%, 40%);">+   local subnet=$2</span><br><span style="color: hsl(120, 100%, 40%);">+       local ipsuffix=$3</span><br><span style="color: hsl(120, 100%, 40%);">+     local docker_args=$4</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        IMAGE_DIR_PREFIX="."</span><br><span style="color: hsl(120, 100%, 40%);">+        docker_images_require \</span><br><span style="color: hsl(120, 100%, 40%);">+               $image_name</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ VOL_RAN_DIR="$VOL_BASE_DIR/$image_name-$subnet"</span><br><span style="color: hsl(120, 100%, 40%);">+     mkdir $VOL_RAN_DIR</span><br><span style="color: hsl(120, 100%, 40%);">+    mkdir $VOL_RAN_DIR/data</span><br><span style="color: hsl(120, 100%, 40%);">+       mkdir $VOL_RAN_DIR/osmocom</span><br><span style="color: hsl(120, 100%, 40%);">+    cp $IMAGE_DIR_PREFIX/${image_name}/osmocom/* $VOL_RAN_DIR/osmocom/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  DOCKER_IN_IP="172.18.$subnet.$ipsuffix"</span><br><span style="color: hsl(120, 100%, 40%);">+     SGSN_IP="${SGSN_IP:-192.168.30.1}"</span><br><span style="color: hsl(120, 100%, 40%);">+  STP_IP="${STP_IP:-192.168.30.1}"</span><br><span style="color: hsl(120, 100%, 40%);">+    BSC_IP="172.18.$SUBNET.200"</span><br><span style="color: hsl(120, 100%, 40%);">+ MGW_IP="172.18.$SUBNET.200"</span><br><span style="color: hsl(120, 100%, 40%);">+ BTS_IP="172.18.$SUBNET.201"</span><br><span style="color: hsl(120, 100%, 40%);">+ PCU_IP="172.18.$SUBNET.201"</span><br><span style="color: hsl(120, 100%, 40%);">+ TRX_IP="${TRX_IP:-172.18.$SUBNET.202}"</span><br><span style="color: hsl(120, 100%, 40%);">+      sed -i "s/\$DOCKER_IN_IP/${DOCKER_IN_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+  sed -i "s/\$SGSN_IP/${SGSN_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+    sed -i "s/\$STP_IP/${STP_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+      sed -i "s/\$BSC_IP/${BSC_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+      sed -i "s/\$MGW_IP/${MGW_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+      sed -i "s/\$BTS_IP/${BTS_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+      sed -i "s/\$PCU_IP/${PCU_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+      sed -i "s/\$TRX_IP/${TRX_IP}/g" $VOL_RAN_DIR/osmocom/*</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    echo Starting container with RAN</span><br><span style="color: hsl(120, 100%, 40%);">+      docker_name="${BUILD_TAG}-ran-${image_name}-subnet$subnet"</span><br><span style="color: hsl(120, 100%, 40%);">+  docker run      --rm \</span><br><span style="color: hsl(120, 100%, 40%);">+                        $(docker_network_params $subnet $ipsuffix) \</span><br><span style="color: hsl(120, 100%, 40%);">+                  --privileged \</span><br><span style="color: hsl(120, 100%, 40%);">+                        --ulimit core=-1 \</span><br><span style="color: hsl(120, 100%, 40%);">+                    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \</span><br><span style="color: hsl(120, 100%, 40%);">+                 -v $VOL_RAN_DIR/data:/data \</span><br><span style="color: hsl(120, 100%, 40%);">+                  -v $VOL_RAN_DIR/osmocom:/etc/osmocom \</span><br><span style="color: hsl(120, 100%, 40%);">+                        --name ${docker_name} -d \</span><br><span style="color: hsl(120, 100%, 40%);">+                    $docker_args \</span><br><span style="color: hsl(120, 100%, 40%);">+                        $REPO_USER/${image_name}${IMAGE_SUFFIX}</span><br><span style="color: hsl(120, 100%, 40%);">+       docker_names+=("$docker_name")</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+kill_containers() {</span><br><span style="color: hsl(120, 100%, 40%);">+    for i in "${docker_names[@]}"; do</span><br><span style="color: hsl(120, 100%, 40%);">+           docker kill $i</span><br><span style="color: hsl(120, 100%, 40%);">+        done</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+remove_networks() {</span><br><span style="color: hsl(120, 100%, 40%);">+        for i in "${networks[@]}"; do</span><br><span style="color: hsl(120, 100%, 40%);">+               NET_NAME="$i"</span><br><span style="color: hsl(120, 100%, 40%);">+               network_remove</span><br><span style="color: hsl(120, 100%, 40%);">+        done</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+sighandler() {</span><br><span style="color: hsl(120, 100%, 40%);">+     echo "SIGINT, exiting..."</span><br><span style="color: hsl(120, 100%, 40%);">+   kill_containers</span><br><span style="color: hsl(120, 100%, 40%);">+       remove_networks</span><br><span style="color: hsl(120, 100%, 40%);">+       exit 0</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+trap 'sighandler' SIGINT</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+run_image "ran-bsc_mgw" $SUBNET 200 "-p 4242:4242 -p 4249:4249 -p 4243:4243 -p 4267:4267"</span><br><span style="color: hsl(120, 100%, 40%);">+run_image "ran-bts_pcu" $SUBNET 201 "-p 4241:4241 -p 4238:4238 -p 4240:4240"</span><br><span style="color: hsl(120, 100%, 40%);">+run_image "ran-trx-uhd" $SUBNET 202 "-p 4237:4237 -p 4236:4236 -p 5700:5700 -p 5701:5701 -p 5702:5702 -v /dev/bus/usb:/dev/bus/usb"</span><br><span style="color: hsl(120, 100%, 40%);">+#run_image "ran-trx-ipc" $SUBNET 202 "-p 4237:4237 -p 4236:4236 -p 5700:5700 -p 5701:5701 -p 5702:5702 -v /tmp/ud:/tmp/ud --ipc=host"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+while true; do sleep 1000; done</span><br><span>diff --git a/osmo-ran/split/ran-bsc_mgw/Dockerfile b/osmo-ran/split/ran-bsc_mgw/Dockerfile</span><br><span>new file mode 100644</span><br><span>index 0000000..f75316f</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bsc_mgw/Dockerfile</span><br><span>@@ -0,0 +1,80 @@</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     USER</span><br><span style="color: hsl(120, 100%, 40%);">+FROM       $USER/systemd</span><br><span style="color: hsl(120, 100%, 40%);">+# Arguments used after FROM must be specified again</span><br><span style="color: hsl(120, 100%, 40%);">+ARG DISTRO</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     OSMOCOM_REPO_MIRROR="http://download.opensuse.org"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG       OSMOCOM_REPO_VERSION=latest</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MAINTAINER Pau Espin Pedrol <pespin@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ARG    OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG      OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY     Release.key /tmp/Release.key</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  gnupg && \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-key add /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+             rm /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+              echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \</span><br><span style="color: hsl(120, 100%, 40%);">+          ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \</span><br><span style="color: hsl(120, 100%, 40%);">+          dnf install -y dnf-utils wget && \</span><br><span style="color: hsl(120, 100%, 40%);">+            yum config-manager --set-enabled PowerTools && \</span><br><span style="color: hsl(120, 100%, 40%);">+              cd /etc/yum.repos.d/ && \</span><br><span style="color: hsl(120, 100%, 40%);">+             wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \</span><br><span style="color: hsl(120, 100%, 40%);">+              ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# we need to add this to invalidate the cache once the repository is updated.</span><br><span style="color: hsl(120, 100%, 40%);">+# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_DEBIAN/Release /tmp/Release</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        apt-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                   strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-bsc \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-bsc-ipaccess-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                     osmo-mgw && \</span><br><span style="color: hsl(120, 100%, 40%);">+         apt-get clean \</span><br><span style="color: hsl(120, 100%, 40%);">+               ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            dnf install -y \</span><br><span style="color: hsl(120, 100%, 40%);">+                      less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-bsc \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-bsc-ipaccess-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                     osmo-mgw \</span><br><span style="color: hsl(120, 100%, 40%);">+            ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     systemctl enable osmo-bsc osmo-mgw</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+WORKDIR   /tmp</span><br><span style="color: hsl(120, 100%, 40%);">+RUN       cp -r /etc/osmocom /etc/osmocom-default</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME /data</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME   /etc/osmocom</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY    osmocom/* /etc/osmocom/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CMD  ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-bsc: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4242 4249</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-mgw: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4243 4267</span><br><span>diff --git a/osmo-ran/split/ran-bsc_mgw/Makefile b/osmo-ran/split/ran-bsc_mgw/Makefile</span><br><span>new file mode 100644</span><br><span>index 0000000..0239a23</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bsc_mgw/Makefile</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.200 -v bsc-vol:/data</span><br><span style="color: hsl(120, 100%, 40%);">+include ../../../make/Makefile</span><br><span>diff --git a/osmo-ran/split/ran-bsc_mgw/Release.key b/osmo-ran/split/ran-bsc_mgw/Release.key</span><br><span>new file mode 100644</span><br><span>index 0000000..a737316</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bsc_mgw/Release.key</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PGP PUBLIC KEY BLOCK-----</span><br><span style="color: hsl(120, 100%, 40%);">+Version: GnuPG v1.4.5 (GNU/Linux)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc</span><br><span style="color: hsl(120, 100%, 40%);">+a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl</span><br><span style="color: hsl(120, 100%, 40%);">+CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4</span><br><span style="color: hsl(120, 100%, 40%);">+5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee</span><br><span style="color: hsl(120, 100%, 40%);">+S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y</span><br><span style="color: hsl(120, 100%, 40%);">+CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy</span><br><span style="color: hsl(120, 100%, 40%);">+b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCXm/4</span><br><span style="color: hsl(120, 100%, 40%);">+pgIbAwUJEEzwqgYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3f/1AH</span><br><span style="color: hsl(120, 100%, 40%);">+/A7WVSpfM4wV/DMqZPTsSjChB4JyDotxpV7qHZzBC5aaP2dINZyi9PayIwZWbvCY</span><br><span style="color: hsl(120, 100%, 40%);">+VKvt+Fw8oCGC9F9mdh10Xe+ElHeVNSihzABPuu1RkRkb1nvkymScy0yxydodYOBi</span><br><span style="color: hsl(120, 100%, 40%);">+K4WQ+BhpijXWmYvOekIwbS5Hi9BHpfgK4TinK0xsvh1bVLeQJ8YjrnNFIAR2CnBa</span><br><span style="color: hsl(120, 100%, 40%);">+X7Y72Up/kKL08DdQzuS+mKrJtAQlGMtIsukWC2ajYQMkNwm8Gvhpn8za113dCkBW</span><br><span style="color: hsl(120, 100%, 40%);">+XAFnlQqQobKwC7b19QgEtJI/YpGSrRc6WaZxPyAjscbWQlFEAB900sVj4BWT55ig</span><br><span style="color: hsl(120, 100%, 40%);">+7O2uSdsCVhTuU7T0ztwsgvmIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v</span><br><span style="color: hsl(120, 100%, 40%);">+d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4=</span><br><span style="color: hsl(120, 100%, 40%);">+=/Tek</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PGP PUBLIC KEY BLOCK-----</span><br><span>diff --git a/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg b/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..af53647</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-bsc.cfg</span><br><span>@@ -0,0 +1,123 @@</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+e1_input</span><br><span style="color: hsl(120, 100%, 40%);">+ e1_line 0 driver ipa</span><br><span style="color: hsl(120, 100%, 40%);">+network</span><br><span style="color: hsl(120, 100%, 40%);">+ network country code 234</span><br><span style="color: hsl(120, 100%, 40%);">+ mobile network code 70</span><br><span style="color: hsl(120, 100%, 40%);">+ encryption a5 0</span><br><span style="color: hsl(120, 100%, 40%);">+ neci 1</span><br><span style="color: hsl(120, 100%, 40%);">+ paging any use tch 0</span><br><span style="color: hsl(120, 100%, 40%);">+ handover 0</span><br><span style="color: hsl(120, 100%, 40%);">+ handover algorithm 1</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 window rxlev averaging 10</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 window rxqual averaging 1</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 window rxlev neighbor averaging 10</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 power budget interval 6</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 power budget hysteresis 3</span><br><span style="color: hsl(120, 100%, 40%);">+ handover1 maximum distance 9999</span><br><span style="color: hsl(120, 100%, 40%);">+ periodic location update 30</span><br><span style="color: hsl(120, 100%, 40%);">+ bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+  type sysmobts</span><br><span style="color: hsl(120, 100%, 40%);">+  band DCS1800</span><br><span style="color: hsl(120, 100%, 40%);">+  cell_identity 0</span><br><span style="color: hsl(120, 100%, 40%);">+  location_area_code 5</span><br><span style="color: hsl(120, 100%, 40%);">+  base_station_id_code 63</span><br><span style="color: hsl(120, 100%, 40%);">+  ms max power 15</span><br><span style="color: hsl(120, 100%, 40%);">+  cell reselection hysteresis 4</span><br><span style="color: hsl(120, 100%, 40%);">+  rxlev access min 0</span><br><span style="color: hsl(120, 100%, 40%);">+  radio-link-timeout 32</span><br><span style="color: hsl(120, 100%, 40%);">+  channel allocator ascending</span><br><span style="color: hsl(120, 100%, 40%);">+  rach tx integer 9</span><br><span style="color: hsl(120, 100%, 40%);">+  rach max transmission 7</span><br><span style="color: hsl(120, 100%, 40%);">+  channel-description attach 1</span><br><span style="color: hsl(120, 100%, 40%);">+  channel-description bs-pa-mfrms 5</span><br><span style="color: hsl(120, 100%, 40%);">+  channel-description bs-ag-blks-res 1</span><br><span style="color: hsl(120, 100%, 40%);">+  early-classmark-sending forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+  ip.access unit_id 6969 0</span><br><span style="color: hsl(120, 100%, 40%);">+  oml ip.access stream_id 255 line 0</span><br><span style="color: hsl(120, 100%, 40%);">+  codec-support fr amr</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs mode egprs</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs routing area 0</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs network-control-order nc1</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs cell bvci 1800</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsei 1800</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsvc 0 nsvci 1800</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsvc 0 local udp port 23020</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsvc 0 remote udp port 23000</span><br><span style="color: hsl(120, 100%, 40%);">+  gprs nsvc 0 remote ip $SGSN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+  trx 0</span><br><span style="color: hsl(120, 100%, 40%);">+   rf_locked 0</span><br><span style="color: hsl(120, 100%, 40%);">+   arfcn 871</span><br><span style="color: hsl(120, 100%, 40%);">+   nominal power 23</span><br><span style="color: hsl(120, 100%, 40%);">+   ! to use full TRX power, set max_power_red 0</span><br><span style="color: hsl(120, 100%, 40%);">+   max_power_red 4</span><br><span style="color: hsl(120, 100%, 40%);">+   rsl e1 tei 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 0</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config CCCH+SDCCH4</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 1</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 2</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 3</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 4</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 5</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 6</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+    !phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+   timeslot 7</span><br><span style="color: hsl(120, 100%, 40%);">+    phys_chan_config PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+    !phys_chan_config TCH/F</span><br><span style="color: hsl(120, 100%, 40%);">+    hopping enabled 0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+cs7 instance 0</span><br><span style="color: hsl(120, 100%, 40%);">+ point-code 0.0.2</span><br><span style="color: hsl(120, 100%, 40%);">+ asp asp0 2905 0 m3ua</span><br><span style="color: hsl(120, 100%, 40%);">+  local-ip $DOCKER_IN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+  remote-ip $STP_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ as as0 m3ua</span><br><span style="color: hsl(120, 100%, 40%);">+  asp asp0</span><br><span style="color: hsl(120, 100%, 40%);">+  routing-key 30 0.0.2</span><br><span style="color: hsl(120, 100%, 40%);">+  traffic-mode loadshare</span><br><span style="color: hsl(120, 100%, 40%);">+ sccp-address bsc_local</span><br><span style="color: hsl(120, 100%, 40%);">+  point-code 0.0.2</span><br><span style="color: hsl(120, 100%, 40%);">+  routing-indicator PC</span><br><span style="color: hsl(120, 100%, 40%);">+ sccp-address msc_remote</span><br><span style="color: hsl(120, 100%, 40%);">+  point-code 0.23.1</span><br><span style="color: hsl(120, 100%, 40%);">+  routing-indicator PC</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+msc 0</span><br><span style="color: hsl(120, 100%, 40%);">+ no bsc-welcome-text</span><br><span style="color: hsl(120, 100%, 40%);">+ no bsc-msc-lost-text</span><br><span style="color: hsl(120, 100%, 40%);">+ no bsc-grace-text</span><br><span style="color: hsl(120, 100%, 40%);">+ type normal</span><br><span style="color: hsl(120, 100%, 40%);">+ allow-emergency allow</span><br><span style="color: hsl(120, 100%, 40%);">+ codec-list hr3 fr3</span><br><span style="color: hsl(120, 100%, 40%);">+ !mgw remote-ip 192.168.30.1</span><br><span style="color: hsl(120, 100%, 40%);">+ mgw remote-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ mgw remote-port 2427</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 12_2k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 10_2k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 7_95k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 7_40k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 6_70k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 5_90k allowed</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 5_15k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ amr-config 4_75k forbidden</span><br><span style="color: hsl(120, 100%, 40%);">+ msc-addr msc_remote</span><br><span style="color: hsl(120, 100%, 40%);">+ bsc-addr bsc_local</span><br><span style="color: hsl(120, 100%, 40%);">+bsc</span><br><span style="color: hsl(120, 100%, 40%);">+ mid-call-timeout 0</span><br><span style="color: hsl(120, 100%, 40%);">+ no missing-msc-text</span><br><span>diff --git a/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg b/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..421816f</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bsc_mgw/osmocom/osmo-mgw.cfg</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+! MGCP configuration example</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+mgcp</span><br><span style="color: hsl(120, 100%, 40%);">+  bind ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp port-range 4002 16000</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp bind-ip $DOCKER_IN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp ip-probing</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp ip-tos 184</span><br><span style="color: hsl(120, 100%, 40%);">+  bind port 2427</span><br><span style="color: hsl(120, 100%, 40%);">+  sdp audio payload number 98</span><br><span style="color: hsl(120, 100%, 40%);">+  sdp audio payload name GSM</span><br><span style="color: hsl(120, 100%, 40%);">+  number endpoints 31</span><br><span style="color: hsl(120, 100%, 40%);">+  loop 0</span><br><span style="color: hsl(120, 100%, 40%);">+  force-realloc 1</span><br><span style="color: hsl(120, 100%, 40%);">+  rtcp-omit</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp-patch ssrc</span><br><span style="color: hsl(120, 100%, 40%);">+  rtp-patch timestamp</span><br><span>diff --git a/osmo-ran/split/ran-bts_pcu/Dockerfile b/osmo-ran/split/ran-bts_pcu/Dockerfile</span><br><span>new file mode 100644</span><br><span>index 0000000..68f710e</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bts_pcu/Dockerfile</span><br><span>@@ -0,0 +1,78 @@</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     USER</span><br><span style="color: hsl(120, 100%, 40%);">+FROM    $USER/systemd</span><br><span style="color: hsl(120, 100%, 40%);">+# Arguments used after FROM must be specified again</span><br><span style="color: hsl(120, 100%, 40%);">+ARG DISTRO</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     OSMOCOM_REPO_MIRROR="http://download.opensuse.org"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG       OSMOCOM_REPO_VERSION=latest</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MAINTAINER Pau Espin Pedrol <pespin@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ARG    OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG      OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY     Release.key /tmp/Release.key</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  gnupg && \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-key add /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+             rm /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+              echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \</span><br><span style="color: hsl(120, 100%, 40%);">+          ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \</span><br><span style="color: hsl(120, 100%, 40%);">+          dnf install -y dnf-utils wget && \</span><br><span style="color: hsl(120, 100%, 40%);">+            yum config-manager --set-enabled PowerTools && \</span><br><span style="color: hsl(120, 100%, 40%);">+              cd /etc/yum.repos.d/ && \</span><br><span style="color: hsl(120, 100%, 40%);">+             wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \</span><br><span style="color: hsl(120, 100%, 40%);">+              ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# we need to add this to invalidate the cache once the repository is updated.</span><br><span style="color: hsl(120, 100%, 40%);">+# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_DEBIAN/Release /tmp/Release</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        apt-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                   strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-bts-trx \</span><br><span style="color: hsl(120, 100%, 40%);">+                        osmo-pcu && \</span><br><span style="color: hsl(120, 100%, 40%);">+         apt-get clean \</span><br><span style="color: hsl(120, 100%, 40%);">+               ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            dnf install -y \</span><br><span style="color: hsl(120, 100%, 40%);">+                      less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-bts \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-pcu \</span><br><span style="color: hsl(120, 100%, 40%);">+            ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     systemctl enable osmo-bts-trx osmo-pcu</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+WORKDIR       /tmp</span><br><span style="color: hsl(120, 100%, 40%);">+RUN       cp -r /etc/osmocom /etc/osmocom-default</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME /data</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME   /etc/osmocom</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY    osmocom/* /etc/osmocom/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CMD  ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-bts: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4241 4238</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-pcu: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4240</span><br><span>diff --git a/osmo-ran/split/ran-bts_pcu/Makefile b/osmo-ran/split/ran-bts_pcu/Makefile</span><br><span>new file mode 100644</span><br><span>index 0000000..3d539d1</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bts_pcu/Makefile</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.201 -v bsc-vol:/data</span><br><span style="color: hsl(120, 100%, 40%);">+include ../../../make/Makefile</span><br><span>diff --git a/osmo-ran/split/ran-bts_pcu/Release.key b/osmo-ran/split/ran-bts_pcu/Release.key</span><br><span>new file mode 100644</span><br><span>index 0000000..a737316</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bts_pcu/Release.key</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PGP PUBLIC KEY BLOCK-----</span><br><span style="color: hsl(120, 100%, 40%);">+Version: GnuPG v1.4.5 (GNU/Linux)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc</span><br><span style="color: hsl(120, 100%, 40%);">+a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl</span><br><span style="color: hsl(120, 100%, 40%);">+CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4</span><br><span style="color: hsl(120, 100%, 40%);">+5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee</span><br><span style="color: hsl(120, 100%, 40%);">+S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y</span><br><span style="color: hsl(120, 100%, 40%);">+CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy</span><br><span style="color: hsl(120, 100%, 40%);">+b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCXm/4</span><br><span style="color: hsl(120, 100%, 40%);">+pgIbAwUJEEzwqgYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3f/1AH</span><br><span style="color: hsl(120, 100%, 40%);">+/A7WVSpfM4wV/DMqZPTsSjChB4JyDotxpV7qHZzBC5aaP2dINZyi9PayIwZWbvCY</span><br><span style="color: hsl(120, 100%, 40%);">+VKvt+Fw8oCGC9F9mdh10Xe+ElHeVNSihzABPuu1RkRkb1nvkymScy0yxydodYOBi</span><br><span style="color: hsl(120, 100%, 40%);">+K4WQ+BhpijXWmYvOekIwbS5Hi9BHpfgK4TinK0xsvh1bVLeQJ8YjrnNFIAR2CnBa</span><br><span style="color: hsl(120, 100%, 40%);">+X7Y72Up/kKL08DdQzuS+mKrJtAQlGMtIsukWC2ajYQMkNwm8Gvhpn8za113dCkBW</span><br><span style="color: hsl(120, 100%, 40%);">+XAFnlQqQobKwC7b19QgEtJI/YpGSrRc6WaZxPyAjscbWQlFEAB900sVj4BWT55ig</span><br><span style="color: hsl(120, 100%, 40%);">+7O2uSdsCVhTuU7T0ztwsgvmIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v</span><br><span style="color: hsl(120, 100%, 40%);">+d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4=</span><br><span style="color: hsl(120, 100%, 40%);">+=/Tek</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PGP PUBLIC KEY BLOCK-----</span><br><span>diff --git a/osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg b/osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..df20e5e</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bts_pcu/osmocom/osmo-bts-trx.cfg</span><br><span>@@ -0,0 +1,36 @@</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+! OsmoBTS () configuration saved from vty</span><br><span style="color: hsl(120, 100%, 40%);">+!!</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+log stderr</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging timestamp 0</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level rsl notice</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level oml notice</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level rll notice</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level rr notice</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level meas error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level pag error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level l1c error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level l1p error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level dsp error</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level abis error</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+phy 0</span><br><span style="color: hsl(120, 100%, 40%);">+ instance 0</span><br><span style="color: hsl(120, 100%, 40%);">+ osmotrx ip local $DOCKER_IN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ osmotrx ip remote $TRX_IP</span><br><span style="color: hsl(120, 100%, 40%);">+bts 0</span><br><span style="color: hsl(120, 100%, 40%);">+ band 1800</span><br><span style="color: hsl(120, 100%, 40%);">+ ipa unit-id 6969 0</span><br><span style="color: hsl(120, 100%, 40%);">+ oml remote-ip $BSC_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ gsmtap-sapi ccch</span><br><span style="color: hsl(120, 100%, 40%);">+ gsmtap-sapi pdtch</span><br><span style="color: hsl(120, 100%, 40%);">+ trx 0</span><br><span style="color: hsl(120, 100%, 40%);">+  phy 0 instance 0</span><br><span style="color: hsl(120, 100%, 40%);">+cpu-sched</span><br><span style="color: hsl(120, 100%, 40%);">+ policy rr 1</span><br><span>diff --git a/osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg b/osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..2e31cbc</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-bts_pcu/osmocom/osmo-pcu.cfg</span><br><span>@@ -0,0 +1,11 @@</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+ bind 0.0.0.0</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+pcu</span><br><span style="color: hsl(120, 100%, 40%);">+ flow-control-interval 10</span><br><span style="color: hsl(120, 100%, 40%);">+ cs 2</span><br><span style="color: hsl(120, 100%, 40%);">+ alloc-algorithm dynamic</span><br><span style="color: hsl(120, 100%, 40%);">+ alpha 0</span><br><span style="color: hsl(120, 100%, 40%);">+ gamma 0</span><br><span>diff --git a/osmo-ran/split/ran-trx-ipc/Dockerfile b/osmo-ran/split/ran-trx-ipc/Dockerfile</span><br><span>new file mode 100644</span><br><span>index 0000000..c5ce057</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-trx-ipc/Dockerfile</span><br><span>@@ -0,0 +1,76 @@</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     USER</span><br><span style="color: hsl(120, 100%, 40%);">+FROM   $USER/systemd</span><br><span style="color: hsl(120, 100%, 40%);">+# Arguments used after FROM must be specified again</span><br><span style="color: hsl(120, 100%, 40%);">+ARG DISTRO</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     OSMOCOM_REPO_MIRROR="http://download.opensuse.org"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG       OSMOCOM_REPO_VERSION=latest</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MAINTAINER Pau Espin Pedrol <pespin@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ARG    OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG      OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY     Release.key /tmp/Release.key</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  gnupg && \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-key add /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+             rm /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+              echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \</span><br><span style="color: hsl(120, 100%, 40%);">+          ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \</span><br><span style="color: hsl(120, 100%, 40%);">+          dnf install -y dnf-utils wget && \</span><br><span style="color: hsl(120, 100%, 40%);">+            yum config-manager --set-enabled PowerTools && \</span><br><span style="color: hsl(120, 100%, 40%);">+              cd /etc/yum.repos.d/ && \</span><br><span style="color: hsl(120, 100%, 40%);">+             wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \</span><br><span style="color: hsl(120, 100%, 40%);">+              ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# we need to add this to invalidate the cache once the repository is updated.</span><br><span style="color: hsl(120, 100%, 40%);">+# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_DEBIAN/Release /tmp/Release</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        apt-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                   strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-trx-ipc && \</span><br><span style="color: hsl(120, 100%, 40%);">+             apt-get clean \</span><br><span style="color: hsl(120, 100%, 40%);">+               ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            dnf install -y \</span><br><span style="color: hsl(120, 100%, 40%);">+                      less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-trx-ipc \</span><br><span style="color: hsl(120, 100%, 40%);">+                ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     systemctl enable osmo-trx-ipc</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+WORKDIR        /tmp</span><br><span style="color: hsl(120, 100%, 40%);">+RUN       cp -r /etc/osmocom /etc/osmocom-default</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME /data</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME   /etc/osmocom</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME    /tmp/ud</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY osmocom/* /etc/osmocom/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CMD  ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-trx-ipc: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4237 4236</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE        5700 5701 5702</span><br><span>diff --git a/osmo-ran/split/ran-trx-ipc/Makefile b/osmo-ran/split/ran-trx-ipc/Makefile</span><br><span>new file mode 100644</span><br><span>index 0000000..1d99f06</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-trx-ipc/Makefile</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.202 -v bsc-vol:/data</span><br><span style="color: hsl(120, 100%, 40%);">+include ../../../make/Makefile</span><br><span>diff --git a/osmo-ran/split/ran-trx-ipc/Release.key b/osmo-ran/split/ran-trx-ipc/Release.key</span><br><span>new file mode 100644</span><br><span>index 0000000..a737316</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-trx-ipc/Release.key</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PGP PUBLIC KEY BLOCK-----</span><br><span style="color: hsl(120, 100%, 40%);">+Version: GnuPG v1.4.5 (GNU/Linux)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc</span><br><span style="color: hsl(120, 100%, 40%);">+a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl</span><br><span style="color: hsl(120, 100%, 40%);">+CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4</span><br><span style="color: hsl(120, 100%, 40%);">+5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee</span><br><span style="color: hsl(120, 100%, 40%);">+S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y</span><br><span style="color: hsl(120, 100%, 40%);">+CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy</span><br><span style="color: hsl(120, 100%, 40%);">+b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCXm/4</span><br><span style="color: hsl(120, 100%, 40%);">+pgIbAwUJEEzwqgYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3f/1AH</span><br><span style="color: hsl(120, 100%, 40%);">+/A7WVSpfM4wV/DMqZPTsSjChB4JyDotxpV7qHZzBC5aaP2dINZyi9PayIwZWbvCY</span><br><span style="color: hsl(120, 100%, 40%);">+VKvt+Fw8oCGC9F9mdh10Xe+ElHeVNSihzABPuu1RkRkb1nvkymScy0yxydodYOBi</span><br><span style="color: hsl(120, 100%, 40%);">+K4WQ+BhpijXWmYvOekIwbS5Hi9BHpfgK4TinK0xsvh1bVLeQJ8YjrnNFIAR2CnBa</span><br><span style="color: hsl(120, 100%, 40%);">+X7Y72Up/kKL08DdQzuS+mKrJtAQlGMtIsukWC2ajYQMkNwm8Gvhpn8za113dCkBW</span><br><span style="color: hsl(120, 100%, 40%);">+XAFnlQqQobKwC7b19QgEtJI/YpGSrRc6WaZxPyAjscbWQlFEAB900sVj4BWT55ig</span><br><span style="color: hsl(120, 100%, 40%);">+7O2uSdsCVhTuU7T0ztwsgvmIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v</span><br><span style="color: hsl(120, 100%, 40%);">+d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4=</span><br><span style="color: hsl(120, 100%, 40%);">+=/Tek</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PGP PUBLIC KEY BLOCK-----</span><br><span>diff --git a/osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg b/osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..38a758c</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-trx-ipc/osmocom/osmo-trx-ipc.cfg</span><br><span>@@ -0,0 +1,29 @@</span><br><span style="color: hsl(120, 100%, 40%);">+log stderr</span><br><span style="color: hsl(120, 100%, 40%);">+ logging filter all 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging timestamp 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print file basename</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level set-all notice</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+cpu-sched</span><br><span style="color: hsl(120, 100%, 40%);">+ policy rr 18</span><br><span style="color: hsl(120, 100%, 40%);">+trx</span><br><span style="color: hsl(120, 100%, 40%);">+ bind-ip $DOCKER_IN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ remote-ip $BTS_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ ! 28 dB offset below is valid only for the B2xx in 1800 MHz band, see</span><br><span style="color: hsl(120, 100%, 40%);">+ ! https://osmocom.org/issues/4468 for more details</span><br><span style="color: hsl(120, 100%, 40%);">+ rssi-offset 28.000000</span><br><span style="color: hsl(120, 100%, 40%);">+ tx-sps 4</span><br><span style="color: hsl(120, 100%, 40%);">+ rx-sps 4</span><br><span style="color: hsl(120, 100%, 40%);">+ clock-ref external</span><br><span style="color: hsl(120, 100%, 40%);">+ egprs disable</span><br><span style="color: hsl(120, 100%, 40%);">+ ext-rach disable</span><br><span style="color: hsl(120, 100%, 40%);">+ dev-args ipc_msock=/tmp/ud/ipc_sock0</span><br><span style="color: hsl(120, 100%, 40%);">+ multi-arfcn disable</span><br><span style="color: hsl(120, 100%, 40%);">+ chan 0</span><br><span style="color: hsl(120, 100%, 40%);">+  tx-path TX/RX</span><br><span style="color: hsl(120, 100%, 40%);">+  rx-path RX2</span><br><span>diff --git a/osmo-ran/split/ran-trx-uhd/Dockerfile b/osmo-ran/split/ran-trx-uhd/Dockerfile</span><br><span>new file mode 100644</span><br><span>index 0000000..5fe0cc3</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-trx-uhd/Dockerfile</span><br><span>@@ -0,0 +1,79 @@</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     USER</span><br><span style="color: hsl(120, 100%, 40%);">+FROM  $USER/systemd</span><br><span style="color: hsl(120, 100%, 40%);">+# Arguments used after FROM must be specified again</span><br><span style="color: hsl(120, 100%, 40%);">+ARG DISTRO</span><br><span style="color: hsl(120, 100%, 40%);">+ARG     OSMOCOM_REPO_MIRROR="http://download.opensuse.org"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG       OSMOCOM_REPO_VERSION=latest</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MAINTAINER Pau Espin Pedrol <pespin@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ARG    OSMOCOM_REPO_DEBIAN="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/Debian_9.0/"</span><br><span style="color: hsl(120, 100%, 40%);">+ARG      OSMOCOM_REPO_CENTOS="$OSMOCOM_REPO_MIRROR/repositories/network:/osmocom:/$OSMOCOM_REPO_VERSION/CentOS_8/"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY     Release.key /tmp/Release.key</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  gnupg && \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-key add /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+             rm /tmp/Release.key && \</span><br><span style="color: hsl(120, 100%, 40%);">+              echo "deb " $OSMOCOM_REPO_DEBIAN " ./" > /etc/apt/sources.list.d/osmocom-$OSMOCOM_REPO_VERSION.list \</span><br><span style="color: hsl(120, 100%, 40%);">+          ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf && \</span><br><span style="color: hsl(120, 100%, 40%);">+          dnf install -y dnf-utils wget && \</span><br><span style="color: hsl(120, 100%, 40%);">+            yum config-manager --set-enabled PowerTools && \</span><br><span style="color: hsl(120, 100%, 40%);">+              cd /etc/yum.repos.d/ && \</span><br><span style="color: hsl(120, 100%, 40%);">+             wget ${OSMOCOM_REPO_CENTOS}/network:osmocom:$OSMOCOM_REPO_VERSION.repo \</span><br><span style="color: hsl(120, 100%, 40%);">+              ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# we need to add this to invalidate the cache once the repository is updated.</span><br><span style="color: hsl(120, 100%, 40%);">+# unfortunately Dockerfiles don't support a conditional ARG, so we need to add both DPKG + RPM</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_DEBIAN/Release /tmp/Release</span><br><span style="color: hsl(120, 100%, 40%);">+ADD  $OSMOCOM_REPO_CENTOS/repodata/repomd.xml /tmp/repomd.xml</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends \</span><br><span style="color: hsl(120, 100%, 40%);">+                  less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        apt-utils \</span><br><span style="color: hsl(120, 100%, 40%);">+                   strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 uhd-host \</span><br><span style="color: hsl(120, 100%, 40%);">+                    osmo-trx-uhd && \</span><br><span style="color: hsl(120, 100%, 40%);">+             apt-get clean \</span><br><span style="color: hsl(120, 100%, 40%);">+               ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            dnf install -y \</span><br><span style="color: hsl(120, 100%, 40%);">+                      less \</span><br><span style="color: hsl(120, 100%, 40%);">+                        strace \</span><br><span style="color: hsl(120, 100%, 40%);">+                      tcpdump \</span><br><span style="color: hsl(120, 100%, 40%);">+                     telnet \</span><br><span style="color: hsl(120, 100%, 40%);">+                      vim \</span><br><span style="color: hsl(120, 100%, 40%);">+                 osmo-trx-uhd \</span><br><span style="color: hsl(120, 100%, 40%);">+                ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     /usr/lib/uhd/utils/uhd_images_downloader.py</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+RUN      systemctl enable osmo-trx-uhd</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+WORKDIR        /tmp</span><br><span style="color: hsl(120, 100%, 40%);">+RUN       cp -r /etc/osmocom /etc/osmocom-default</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME /data</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME   /etc/osmocom</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME    /dev/bus/usb</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY    osmocom/* /etc/osmocom/</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CMD  ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#osmo-trx-ipc: VTY  CTRL</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE     4237 4236</span><br><span style="color: hsl(120, 100%, 40%);">+EXPOSE        5700 5701 5702</span><br><span>diff --git a/osmo-ran/split/ran-trx-uhd/Makefile b/osmo-ran/split/ran-trx-uhd/Makefile</span><br><span>new file mode 100644</span><br><span>index 0000000..1d99f06</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-trx-uhd/Makefile</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.202 -v bsc-vol:/data</span><br><span style="color: hsl(120, 100%, 40%);">+include ../../../make/Makefile</span><br><span>diff --git a/osmo-ran/split/ran-trx-uhd/Release.key b/osmo-ran/split/ran-trx-uhd/Release.key</span><br><span>new file mode 100644</span><br><span>index 0000000..a737316</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-trx-uhd/Release.key</span><br><span>@@ -0,0 +1,20 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-----BEGIN PGP PUBLIC KEY BLOCK-----</span><br><span style="color: hsl(120, 100%, 40%);">+Version: GnuPG v1.4.5 (GNU/Linux)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc</span><br><span style="color: hsl(120, 100%, 40%);">+a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl</span><br><span style="color: hsl(120, 100%, 40%);">+CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4</span><br><span style="color: hsl(120, 100%, 40%);">+5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee</span><br><span style="color: hsl(120, 100%, 40%);">+S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y</span><br><span style="color: hsl(120, 100%, 40%);">+CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy</span><br><span style="color: hsl(120, 100%, 40%);">+b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCXm/4</span><br><span style="color: hsl(120, 100%, 40%);">+pgIbAwUJEEzwqgYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3f/1AH</span><br><span style="color: hsl(120, 100%, 40%);">+/A7WVSpfM4wV/DMqZPTsSjChB4JyDotxpV7qHZzBC5aaP2dINZyi9PayIwZWbvCY</span><br><span style="color: hsl(120, 100%, 40%);">+VKvt+Fw8oCGC9F9mdh10Xe+ElHeVNSihzABPuu1RkRkb1nvkymScy0yxydodYOBi</span><br><span style="color: hsl(120, 100%, 40%);">+K4WQ+BhpijXWmYvOekIwbS5Hi9BHpfgK4TinK0xsvh1bVLeQJ8YjrnNFIAR2CnBa</span><br><span style="color: hsl(120, 100%, 40%);">+X7Y72Up/kKL08DdQzuS+mKrJtAQlGMtIsukWC2ajYQMkNwm8Gvhpn8za113dCkBW</span><br><span style="color: hsl(120, 100%, 40%);">+XAFnlQqQobKwC7b19QgEtJI/YpGSrRc6WaZxPyAjscbWQlFEAB900sVj4BWT55ig</span><br><span style="color: hsl(120, 100%, 40%);">+7O2uSdsCVhTuU7T0ztwsgvmIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v</span><br><span style="color: hsl(120, 100%, 40%);">+d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4=</span><br><span style="color: hsl(120, 100%, 40%);">+=/Tek</span><br><span style="color: hsl(120, 100%, 40%);">+-----END PGP PUBLIC KEY BLOCK-----</span><br><span>diff --git a/osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg b/osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg</span><br><span>new file mode 100644</span><br><span>index 0000000..02c92d3</span><br><span>--- /dev/null</span><br><span>+++ b/osmo-ran/split/ran-trx-uhd/osmocom/osmo-trx-uhd.cfg</span><br><span>@@ -0,0 +1,27 @@</span><br><span style="color: hsl(120, 100%, 40%);">+log stderr</span><br><span style="color: hsl(120, 100%, 40%);">+ logging filter all 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging color 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print category 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging timestamp 1</span><br><span style="color: hsl(120, 100%, 40%);">+ logging print file basename</span><br><span style="color: hsl(120, 100%, 40%);">+ logging level set-all notice</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+line vty</span><br><span style="color: hsl(120, 100%, 40%);">+ no login</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+cpu-sched</span><br><span style="color: hsl(120, 100%, 40%);">+ policy rr 18</span><br><span style="color: hsl(120, 100%, 40%);">+trx</span><br><span style="color: hsl(120, 100%, 40%);">+ bind-ip $DOCKER_IN_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ remote-ip $BTS_IP</span><br><span style="color: hsl(120, 100%, 40%);">+ ! 28 dB offset below is valid only for the B2xx in 1800 MHz band, see</span><br><span style="color: hsl(120, 100%, 40%);">+ ! https://osmocom.org/issues/4468 for more details</span><br><span style="color: hsl(120, 100%, 40%);">+ rssi-offset 28.000000</span><br><span style="color: hsl(120, 100%, 40%);">+ tx-sps 4</span><br><span style="color: hsl(120, 100%, 40%);">+ rx-sps 4</span><br><span style="color: hsl(120, 100%, 40%);">+ dev-args type=b200</span><br><span style="color: hsl(120, 100%, 40%);">+ clock-ref internal</span><br><span style="color: hsl(120, 100%, 40%);">+ egprs enable</span><br><span style="color: hsl(120, 100%, 40%);">+ ext-rach disable</span><br><span style="color: hsl(120, 100%, 40%);">+ multi-arfcn enable</span><br><span style="color: hsl(120, 100%, 40%);">+ chan 0</span><br><span>diff --git a/systemd/Dockerfile b/systemd/Dockerfile</span><br><span>new file mode 100644</span><br><span>index 0000000..8f1763d</span><br><span>--- /dev/null</span><br><span>+++ b/systemd/Dockerfile</span><br><span>@@ -0,0 +1,41 @@</span><br><span style="color: hsl(120, 100%, 40%);">+ARG      REGISTRY=docker.io</span><br><span style="color: hsl(120, 100%, 40%);">+ARG UPSTREAM_DISTRO=centos:centos8</span><br><span style="color: hsl(120, 100%, 40%);">+FROM    ${REGISTRY}/${UPSTREAM_DISTRO}</span><br><span style="color: hsl(120, 100%, 40%);">+# Arguments used after FROM must be specified again</span><br><span style="color: hsl(120, 100%, 40%);">+ARG        DISTRO</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MAINTAINER Pau Espin Pedrol <pespin@sysmocom.de></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# set up systemd</span><br><span style="color: hsl(120, 100%, 40%);">+# container=docker: systemd likes to know it is running inside a container</span><br><span style="color: hsl(120, 100%, 40%);">+ENV container docker</span><br><span style="color: hsl(120, 100%, 40%);">+RUN     case "$DISTRO" in \</span><br><span style="color: hsl(120, 100%, 40%);">+ debian*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            apt-get update && \</span><br><span style="color: hsl(120, 100%, 40%);">+           apt-get install -y --no-install-recommends systemd; \</span><br><span style="color: hsl(120, 100%, 40%);">+                 (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do test "$i" = "systemd-tmpfiles-setup.service" || rm -f $i; done); \</span><br><span style="color: hsl(120, 100%, 40%);">+                  rm -f /lib/systemd/system/multi-user.target.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                        rm -f /etc/systemd/system/*.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                        rm -f /lib/systemd/system/local-fs.target.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                  rm -f /lib/systemd/system/sockets.target.wants/*udev*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                      rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                   rm -f /lib/systemd/system/basic.target.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                     rm -f /lib/systemd/system/anaconda.target.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+          ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  centos*) \</span><br><span style="color: hsl(120, 100%, 40%);">+            yum -y install systemd; yum clean all; \</span><br><span style="color: hsl(120, 100%, 40%);">+                      (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do test "$i" = "systemd-tmpfiles-setup.service" || rm -f $i; done); \</span><br><span style="color: hsl(120, 100%, 40%);">+                  rm -f /lib/systemd/system/multi-user.target.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                        rm -f /etc/systemd/system/*.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                        rm -f /lib/systemd/system/local-fs.target.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                  rm -f /lib/systemd/system/sockets.target.wants/*udev*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                      rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                   rm -f /lib/systemd/system/basic.target.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+                     rm -f /lib/systemd/system/anaconda.target.wants/*; \</span><br><span style="color: hsl(120, 100%, 40%);">+          ;; \</span><br><span style="color: hsl(120, 100%, 40%);">+  esac</span><br><span style="color: hsl(120, 100%, 40%);">+VOLUME [ "/sys/fs/cgroup" ]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#RUN     systemctl enable osmo-bsc osmo-bts-trx osmo-mgw osmo-pcu</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+CMD ["/lib/systemd/systemd", "--system", "--unit=multi-user.target"]</span><br><span>diff --git a/systemd/Makefile b/systemd/Makefile</span><br><span>new file mode 100644</span><br><span>index 0000000..80b1069</span><br><span>--- /dev/null</span><br><span>+++ b/systemd/Makefile</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.25.200 -v bsc-vol:/data</span><br><span style="color: hsl(120, 100%, 40%);">+include ../make/Makefile</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/docker-playground/+/21263">change 21263</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/docker-playground/+/21263"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: docker-playground </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969 </div>
<div style="display:none"> Gerrit-Change-Number: 21263 </div>
<div style="display:none"> Gerrit-PatchSet: 8 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>