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