diff --git a/ttcn3-bsc-test/.release b/ttcn3-bsc-test/.release new file mode 100644 index 00000000..ce2aef5a --- /dev/null +++ b/ttcn3-bsc-test/.release @@ -0,0 +1,2 @@ +release=0.1.0 +tag=ttcn3-bsc-test-0.1.0 diff --git a/ttcn3-bsc-test/BSC_Tests.cfg b/ttcn3-bsc-test/BSC_Tests.cfg new file mode 100644 index 00000000..f6196651 --- /dev/null +++ b/ttcn3-bsc-test/BSC_Tests.cfg @@ -0,0 +1,39 @@ +[LOGGING] +#FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; +#ConsoleMask := ERROR | WARNING | TESTCASE | TTCN_MATCHING | DEBUG_ENCDEC +#FileMask := LOG_ALL | TTCN_MATCHING; +BSSAP.FileMask := LOG_NOTHING; +"VirtMSC-M3UA".FileMask := ERROR | WARNING; +"VirtMSC-SCCP".FileMask := ERROR | WARNING; +"IPA0-RSL-IPA".FileMask := ERROR | WARNING; +"IPA0-CTRL-IPA".FileMask := ERROR | WARNING; +mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; + +LogSourceInfo := Yes +SourceInfoFormat := Single +LoggerPlugins := { JUnitLogger := "libjunitlogger2" } +#*.JUnitLogger.filename_stem := "MyJunitLogFile" +*.JUnitLogger.testsuite_name := "BSC_Tests" + +[TESTPORT_PARAMETERS] +#*.*.udpReuseAddress := "yes"; + +[MODULE_PARAMETERS] +BSC_Tests.mp_bsc_ip := "172.18.0.20"; +#BSC_Tests.mp_bsc_rsl_port := 3003; +#BSC_Tests.mp_bsc_ctrl_port := 3003; +BSSAP_Adapter.mp_sctp_addr := { 23905, "172.18.0.203", 2905, "172.18.0.200" }; + + +#mp_ipa_mgcp_uses_osmo_ext := true; + +#mp_mgcp_uses_udp := true; +#mp_callagent_ip := "127.0.0.1"; +#mp_callagent_udp_port := 2727; +#mp_mgw_ip := "127.0.0.1"; +#mp_mgw_udp_port := 2427; + +[MAIN_CONTROLLER] + +[EXECUTE] +BSC_Tests.control diff --git a/ttcn3-bsc-test/Dockerfile b/ttcn3-bsc-test/Dockerfile new file mode 100644 index 00000000..00c94c94 --- /dev/null +++ b/ttcn3-bsc-test/Dockerfile @@ -0,0 +1,25 @@ +FROM laforge/debian-stretch-titan + +RUN mkdir /root/projects && (cd /root/projects && ln -sf / git) +RUN git clone git://git.osmocom.org/osmo-ttcn3-hacks.git + +RUN cd osmo-ttcn3-hacks && \ + git checkout -f -B master origin/master && \ + make deps + +RUN git config --global user.email docker@dock.er && \ + git config --global user.name "Dock Er" + +ADD http://git.osmocom.org/osmo-ttcn3-hacks/patch /tmp/commit +RUN cd osmo-ttcn3-hacks && \ + git checkout -f -B master origin/master && \ + git cherry-pick 5ce5241d6d460e9b36a908ac7072d8ea68df08db && \ + make bsc + +VOLUME /data + +COPY BSC_Tests.cfg /data/BSC_Tests.cfg + +CMD cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/bsc/BSC_Tests && \ + ttcn3_logmerge BSC*.log diff --git a/ttcn3-bsc-test/Makefile b/ttcn3-bsc-test/Makefile new file mode 100644 index 00000000..42de2104 --- /dev/null +++ b/ttcn3-bsc-test/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.0.202 -v ggsn-test-vol:/data + +include ../make/Makefile diff --git a/ttcn3-bsc-test/jenkins.sh b/ttcn3-bsc-test/jenkins.sh new file mode 100755 index 00000000..03be9fe1 --- /dev/null +++ b/ttcn3-bsc-test/jenkins.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +# non-jenkins execution: assume local user name +if [ "x$REPO_USER" = "x" ]; then + REPO_USER=$USER +fi + +# non-jenkins execution: put logs in /tmp +if [ "x$WORKSPACE" = "x" ]; then + WORKSPACE=/tmp +fi + +VOL_BASE_DIR=`mktemp -d` +mkdir $VOL_BASE_DIR/bsc-tester +cp BSC_Tests.cfg $VOL_BASE_DIR/bsc-tester/ + +mkdir $VOL_BASE_DIR/stp +cp osmo-stp.cfg $VOL_BASE_DIR/stp/ + +mkdir $VOL_BASE_DIR/bsc +cp osmo-bsc.cfg $VOL_BASE_DIR/bsc/ + +echo Starting container with STP +docker run --rm \ + --network sigtran --ip 172.18.0.200 \ + -v $VOL_BASE_DIR/stp:/data \ + --name stp -d \ + $REPO_USER/osmo-stp-master + +echo Starting container with BSC +docker run --rm \ + --network sigtran --ip 172.18.0.20 \ + -v $VOL_BASE_DIR/bsc:/data \ + --name bsc -d \ + $REPO_USER/osmo-bsc-master + +for i in `seq 0 2`; do + echo Starting container with OML for BTS$i + docker run --rm \ + --network sigtran --ip 172.18.0.10$i \ + --name bts$i -d \ + $REPO_USER/osmo-bts-omldummy ./respawn.sh 172.18.0.20 $((i + 1234)) +done + +echo Starting container with BSC testsuite +docker run --rm \ + --network sigtran --ip 172.18.0.203 \ + -v $VOL_BASE_DIR/bsc-tester:/data \ + --name ttcn3-bsc-test \ + $REPO_USER/ttcn3-bsc-test + +echo Stopping containers +for i in `seq 0 2`; do + docker container kill bts$i +done +docker container kill bsc +docker container kill stp + +rm -rf $WORKSPACE/logs +mkdir -p $WORKSPACE/logs +cp -a $VOL_BASE_DIR/* $WORKSPACE/logs/ +#rm -rf $VOL_BASE_DIR diff --git a/ttcn3-bsc-test/osmo-bsc.cfg b/ttcn3-bsc-test/osmo-bsc.cfg new file mode 100644 index 00000000..38fa655a --- /dev/null +++ b/ttcn3-bsc-test/osmo-bsc.cfg @@ -0,0 +1,388 @@ +! +! OsmoBSC (1.0.1.122-630df) configuration saved from vty +!! +password foo +! +log stderr + logging filter all 1 + logging color 1 + logging print category 0 + logging timestamp 0 + logging level all everything + logging level rll notice + logging level cc notice + logging level mm notice + logging level rr notice + logging level rsl notice + logging level nm info + logging level mncc notice + logging level pag notice + logging level meas notice + logging level sccp notice + logging level msc notice + logging level mgcp notice + logging level ho notice + logging level db notice + logging level ref notice + logging level gprs debug + logging level ns info + logging level bssgp debug + logging level llc debug + logging level sndcp debug + logging level nat notice + logging level ctrl notice + logging level smpp debug + logging level filter debug + logging level ranap debug + logging level sua debug + logging level pcu debug + logging level vlr debug + logging level iucs debug + logging level sigtran debug + logging level lglobal notice + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl notice + logging level lgtp notice + logging level lstats notice + logging level lgsup notice + logging level loap notice + logging level lss7 notice + logging level lsccp notice + logging level lsua notice + logging level lm3ua notice + logging level lmgcp notice +! +stats interval 5 +! +line vty + no login +! +e1_input + e1_line 0 driver ipa + e1_line 0 port 0 + no e1_line 0 keepalive +cs7 instance 0 + asp asp-clnt-msc-0 2905 2905 m3ua + remote-ip 172.18.0.200 +network + network country code 1 + mobile network code 1 + short name OsmoBSC + long name OsmoBSC + location updating reject cause 13 + encryption a5 0 + neci 1 + paging any use tch 0 + rrlp mode none + mm info 1 + handover 0 + handover window rxlev averaging 10 + handover window rxqual averaging 1 + handover window rxlev neighbor averaging 10 + handover power budget interval 6 + handover power budget hysteresis 3 + handover maximum distance 9999 + dyn_ts_allow_tch_f 1 + periodic location update 30 + timer t3113 10 + bts 0 + type sysmobts + band DCS1800 + cell_identity 0 + location_area_code 1 + dtx uplink force + dtx downlink + 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-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1234 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr + gprs mode gprs + gprs 11bit_rach_support_for_egprs 0 + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1234 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1234 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1234 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + 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 TCH/F + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 + bts 1 + type sysmobts + band DCS1800 + cell_identity 1 + location_area_code 2 + dtx uplink force + dtx downlink + 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-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1235 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr + gprs mode gprs + gprs 11bit_rach_support_for_egprs 0 + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1235 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1235 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1235 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + 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 TCH/F + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 + bts 2 + type sysmobts + band DCS1800 + cell_identity 1 + location_area_code 1 + dtx uplink force + dtx downlink + 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-descrption attach 1 + channel-descrption bs-pa-mfrms 5 + channel-descrption bs-ag-blks-res 1 + early-classmark-sending forbidden + ip.access unit_id 1236 0 + oml ip.access stream_id 255 line 0 + neighbor-list mode manual-si5 + neighbor-list add arfcn 100 + neighbor-list add arfcn 200 + si5 neighbor-list add arfcn 10 + si5 neighbor-list add arfcn 20 + codec-support fr + gprs mode gprs + gprs 11bit_rach_support_for_egprs 0 + gprs routing area 0 + gprs network-control-order nc0 + gprs cell bvci 1236 + gprs cell timer blocking-timer 3 + gprs cell timer blocking-retries 3 + gprs cell timer unblocking-retries 3 + gprs cell timer reset-timer 3 + gprs cell timer reset-retries 3 + gprs cell timer suspend-timer 10 + gprs cell timer suspend-retries 3 + gprs cell timer resume-timer 10 + gprs cell timer resume-retries 3 + gprs cell timer capability-update-timer 10 + gprs cell timer capability-update-retries 3 + gprs nsei 1236 + gprs ns timer tns-block 3 + gprs ns timer tns-block-retries 3 + gprs ns timer tns-reset 3 + gprs ns timer tns-reset-retries 3 + gprs ns timer tns-test 30 + gprs ns timer tns-alive 3 + gprs ns timer tns-alive-retries 10 + gprs nsvc 0 nsvci 1236 + gprs nsvc 0 local udp port 23000 + gprs nsvc 0 remote udp port 23000 + gprs nsvc 0 remote ip 192.168.100.239 + gprs nsvc 1 nsvci 0 + gprs nsvc 1 local udp port 0 + gprs nsvc 1 remote udp port 0 + gprs nsvc 1 remote ip 0.0.0.0 + no force-combined-si + trx 0 + rf_locked 0 + arfcn 871 + nominal power 23 + max_power_red 20 + 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 TCH/F + hopping enabled 0 + timeslot 6 + phys_chan_config PDCH + hopping enabled 0 + timeslot 7 + phys_chan_config PDCH + hopping enabled 0 +msc 0 + ip.access rtp-base 4000 + timeout-ping 20 + timeout-pong 5 + no timeout-ping advanced + no bsc-welcome-text + no bsc-msc-lost-text + no bsc-grace-text + dest 192.168.100.11 6666 0 + type normal + allow-emergency allow + 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 + codec-list fr1 fr2 fr3 +bsc + mid-call-timeout 0 + no missing-msc-text + access-list-name bsc-list +ctrl + bind 0.0.0.0 diff --git a/ttcn3-bsc-test/osmo-stp.cfg b/ttcn3-bsc-test/osmo-stp.cfg new file mode 100644 index 00000000..2649a225 --- /dev/null +++ b/ttcn3-bsc-test/osmo-stp.cfg @@ -0,0 +1,48 @@ +! +! OsmoSTP (0.8.1) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 1 + logging print category 1 + logging timestamp 0 + logging level all everything + logging level lglobal notice + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl notice + logging level lgtp notice + logging level lstats notice + logging level lgsup notice + logging level loap notice + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp notice +! +line vty + no login +! +cs7 instance 0 + xua rkm routing-key-allocation dynamic-permitted + asp virt-msc0-0 23905 2905 m3ua + local-ip 172.18.0.200 + remote-ip 172.18.0.203 + as mahlzeit ipa + routing-key 1 0.23.4 + point-code override dpc 0.23.1 + as virt-msc0 m3ua + asp virt-msc0-0 + routing-key 0 0.23.1 + route-table system + update route 0.23.1 7.255.7 linkset virt-msc0 + listen m3ua 2905 + accept-asp-connections dynamic-permitted + listen ipa 5000 + accept-asp-connections dynamic-permitted