aboutsummaryrefslogtreecommitdiffstats
path: root/osmo-ran/split/jenkins-split.sh
blob: 5cecf4a41578ac3e3664332b7f2d684828de53ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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