Commit
29f355720d9509ebfcec9422a607031d02cb904e
by Pau Espin Pedrol
ttcn3-asterisk: Add extra IP addr in ttcn3 docker for IMS Core
TTCN-3 docker container is emulating both the SIP UAs and the IMS Core. So far all the components being emulated there were running under the only local IP address available in the docker container. This means, both the SIP UAs and the IMS Core were using the same IP address.
This is actually causing problems for Asterisk, since on the VoLTE side it needs to be configured to identify the endpoint based on the IMS Core domain name. Since the default identify matching ordered in Asterisk is: "endpoint_identifier_order=ip,username,anonymous" That means it always first checks the source IP address, which means messages coming from local SIP UAs are misunderstood to be coming from the IMS Core (since ims.mnc001.mcc238.3gppnetwork.org resolves to same IP address).
The issue can be fixed by swapping the order to "username,ip", because then the well-known 50X extensions are matched before attempting to match by IP address. However, this is all deviating config for the expected usual network configuration, since the local IP network will be different than the IP address coming from VoLTE. Hence, let's instead properly separate the local SIP and VoLTE networks with different IP addresses, which then solves the issue.
Commit
da8b6e46d32b77c4648a7cfd70ca849118798d0d
by dwillmann
jenkins-common: Treat -asan builds the same as -master
This fixes the jenkins test failures seen in ttcn3-stp-test-asan. TTCN3 tries to connect to stp via TCP, but since the jenkins.sh script doesn't consider this a build from master the corresponding config is not added to osmo-stp.cfg.
Also change the function names from image_suffix_is_* to osmo_repo_is_* to better reflect what they are doing (instead of how).
Commit
9ca9bed0acf4fbf82fa56ada8be7f62cbbc9190d
by Vadim Yanitskiy
ttcn3-s1gw-test: fix using unassigned addr for osmo-s1gw
The S1GW container gets assigned the primary addr 172.18.10.100/24 by docker_network_params(). The secondary addr 172.18.10.200/24, which is used for eNB connections, needs to be assigned manually.
Commit
7be93fc721de12b6ff0b47fd346848e5107c68ee
by Vadim Yanitskiy
ttcn3-s1gw-test: start osmo-s1gw container with --user=root
For some reason, on Arch with docker 26.1.3 it implicitly starts with --user=root, while with docker 20.10.5 on Debian bookworm it starts with --user=build. This results in permission errors:
+ ip addr add 172.18.74.100/24 dev eth0 RTNETLINK answers: Operation not permitted + true + ip addr add 172.18.74.200/24 dev eth0 RTNETLINK answers: Operation not permitted
Pass --user=root explicitly to bring consistency and fix those. Hopefully, ttcn3-s1gw-test will be passing on Jenkins with this patch.
Change-Id: I5cc67d1c3192fd55560c16c8cc44b13b2c9b3e98 Fixes: 9ca9bed "ttcn3-s1gw-test: fix using unassigned addr for osmo-s1gw"
Commit
947e7841b8045c367a27bd35aecfff391cc1909e
by Pau Espin Pedrol
ttcn3-asterisk: pjsip.conf: Use reliable provisional responses if peer supports it
The default 100rel=yes won't use reliable provisional responses unless the peer "requires" it, while we should instead be using them if the peer "supports" it.
Commit
09c5598087d099e7478e672f435231196ab87127
by Pau Espin Pedrol
ttcn3-asterisk: Set mp_ims_imei matching pjsip.conf
Since recently, the testsuite validates the IMEI received at IMS Core over REGISTER Contact header matches the one configured at Asterisk config file. Hence, add the same value to Asterisk_Tests.cfg so it can match the value.
Commit
caec771293f23f8ba8a26783bd186fa803fa48ca
by Pau Espin Pedrol
asterisk-master: Fetch required branch directly
When I added the Dockerfile I initially wrote it in a 2 step fetch & build, to try to avoid recompiling the whole thing every time some patch from one of the devs was pushed to our building branch. This, whoever, creates problems sometimes due to how the build system for pjproject is generated when building asterisk, so let's drop the 2stage setup to avoid problems fetching from different branches, etc.
Commit
eb927b7697ee5fa8753e02dd382abff57639015e
by Pau Espin Pedrol
asterisk-master: Build from jolly/work branch by default
That one will not be the final branch, but it's the one where most of the development is happening. Hence, switch to that branch by default for now, so that jenkins nightly job runs that branch.
Commit
39c7794978ca91c6481556daaf188484bc95dc11
by Pau Espin Pedrol
asterisk: Allow alaw code from IMS until evs is supported
EVS codec is not yet fully supported, specially if no specific implementation of the EVS API is available. Let's allow using alway from/to IMS for now, so calls can be made and tests work.
Commit
f84c203eeae476ad7b50dc296d9a6ca6386b259e
by lynxis
osmo-epdg: add support for testing for latest
Create a new osmo-epdg-latest docker image. Use a different configuration for ttcn3-epdg-test if running the latest. The latest comes from the obs repository and has different paths for libraries.
Commit
0e47a7206e0c29e949538e6ac0c238b809b1c463
by Oliver Smith
seccomp_profile: import
Import the current default seccomp profile from docker, commit from current master branch. The next patch will re-enable the io_uring syscalls in the profile.
Commit
89da21a17d9ad59bdfe84a3796779ec3bf179bb7
by Pau Espin Pedrol
asterisk: Wait for dnsmasq resolver ready before starting Asterisk
Otherwise Asterisk wil lfaill to add the identify match at startup:
[2024-07-11 10:35:02.199] ERROR[14]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("ims.mnc001.mcc238.3gppnetwork.org", "(null)", ...): Temporary failure in name resolution [2024-07-11 10:35:02.199] ERROR[14]: res_pjsip_endpoint_identifier_ip.c:553 ip_identify_apply: Identify 'volte_ims' failed when adding resolution results of 'ims.mnc001.mcc238.3gppnetwork.org' [2024-07-11 10:35:02.199] ERROR[14]: res_sorcery_config.c:422 sorcery_config_internal_load: Could not create an object of type 'identify' with id 'volte_ims' from configuration file 'pjsip.conf'
Commit
42988c542c5297ca2071ef0b27bcf2ea2a5c76ea
by Oliver Smith
centos7: use vault.centos.org
The centos7 images try to use mirrorlist.centos.org to determine the fastest mirror, and then download binary packages from there. But mirrorlist.centos.org isn't online anymore. Use the vault instead.
Without this patch, the mirrors that can't be reached are ignored, and later on it fails to properly install packages because of missing dependencies.
Commit
d15697fa0b2094f98cac781ccdb8d01126484af0
by Pau Espin Pedrol
asterisk: dnsmasq.conf: Avoid forwarding queries to other DNS servers
This creates problems when requesting resolution of the IPv6 address. For some reason, dnsmasq was forwarding the request to the non-available google DNS servers, and Asterisk docker container pre-start commands checking for DNS resolution would never pass when run in jenkins node.
Commit
006f3179f9fc9ad95b9bf43bce19d4155163f943
by Pau Espin Pedrol
asterisk: Wait for Asterisk ready before starting testsuite
A recent commit made Asterisk wait for dnsmasq to be ready before starting it. This means Asterisk takes more time now to be ready itself, hence we need to delay launching the testsuite until it is ready. Otherwise, the entire set of tests may be run even before Asterisk gets to answer on the AMI socket.
Commit
5f8e407ca7ee56cbed77043d4c4f26f74fa8d8b0
by Pau Espin Pedrol
asterisk: extensions.conf: Allow extra MO call from SIP UA which HOLDed previous call
We need to keep track of the SIP UA using the IMS endpoint, so that when the IMS call is set on HOLD we can identidy that the same SIP UA can still initiate new calls on the IMS endpoint.
Commit
594e021b9b699600a2f89a16676b05446a64fbdc
by Pau Espin Pedrol
ttcn3-sgsn: Use 2nd IP address on emulated HNBGW
In 3G, both HNBGW and GGSN talk GTPv1U, and osmo-sgsn uses Direct Tunnel feature to connect both together. Since GTPv1U uses a fixed port, we need 2 IP addresses, one set for the emulated GGSN and one for the emulated HNBGW.
This is a preparation towards adding tests validating creation of PDP context in 3G, which was not yet tested.
Commit
82730ac8d1c9f67bb1083366995b99fc977a5581
by dwillmann
ttcn3-ggsn-test: Reduce timers for ggsn-test-kernel-torvalds
The TTCN3 test already assumes that t3 = 1 and n3 = 2 and sets the timers accordingly. The osmo-ggsn config for the non-kernel test already includes these timer values and doesn't need to be updated.
Our changes are now in the "inside-classes" branch.
Fix for: Collecting sphinx-argparse Cloning https://github.com/osmocom/sphinx-argparse (to revision master) to /tmp/pip-install-cff9hqce/sphinx-argparse_4b90c55018034988836549dbf04f94ad Running command git clone --filter=blob:none --quiet https://github.com/osmocom/sphinx-argparse /tmp/pip-install-cff9hqce/sphinx-argparse_4b90c55018034988836549dbf04f94ad WARNING: Did not find branch or tag 'master', assuming revision or ref. Running command git checkout -q master error: pathspec 'master' did not match any file(s) known to git
Commit
00e682457ab1c6ffbaa9f6a566073514d0ec11db
by Oliver Smith
ttcn3-epdg-test: remove latest code path
Use the same config in latest as in master, as a new version 0.1.0 has been released recently. This fixes the two currently failing tests on latest. The ttcn3-epdg-test has not been replaced by testenv (OS#6494) yet, so let's fix it here.
Commit
78b5c87737567be1add91d1d33f195b4bd0365e2
by Oliver Smith
ttcn3-epdg-test: fix osmo-epdg path for latest
Restore the proper path for osmo-epdg when running with -latest, which has been removed by accident in the earlier commit that should only have changed the config.
Fix for: /data/epdg.sh: line 14: /tmp/osmo-epdg/_build/default/bin/osmo-epdg: No such file or directory
Commit
e84d7566c178f1434e9a64c1d95e41f84dee6767
by Oliver Smith
ttcn3-epdg-test: restore osmo-epdg.latest.config
The osmo-epdg.latest.config is needed, as it has a different libdir: - {libdir, "/usr/lib"} + {libdir, "/tmp/osmo-epdg/_build/default/lib/gen_socket/priv/lib"}
Fix for: Failed to load NIF library: '/tmp/osmo-epdg/_build/default/lib/gen_socket/priv/lib/gen_socket_nif.so: cannot open shared object file: No such file or directory'
Commit
8b2711914b63d463d6dd3e1462d18643e1bdd558
by Oliver Smith
osmo-*-master: don't install libosmo-sccp-dev
The libosmo-sccp-dev package is no longer provided by libosmo-sccp. Without this patch, an older version of the library from debian packages gets installed, resulting in a conflict for sccp_types.h which is now in libosmo-sccp-dev.
Fix for: #6 8.585 dpkg: error processing archive /tmp/apt-dpkg-install-llkDLH/25-libosmo-sigtran-dev_1.9.0.3.fc4c.202409092026_amd64.deb (--unpack): #6 8.585 trying to overwrite '/usr/include/osmocom/sccp/sccp_types.h', which is also in package libosmo-sccp-dev:amd64 1.6.0+dfsg1-3
Commit
a749a0b4aefed649d8bc2c5012a8386a4ad838f1
by Oliver Smith
debian-bookworm-build-arm: FROM: add arm32v7
Use the arm32v7 architecture explicitly, instead of implicitly using the same architecture as the host. That way we can use the arm32v7 image on a raspberry pi 4, even if the host system is 64 bit arm.
Using 32 bit arm instead of aarch64 is needed for the osmo-trx jenkins jobs, which test -mfpu=neon and -mfpu=neon-vfpv4 build flags.
Commit
affe733c8c1194a7ece649d13c272b5820897f0f
by Oliver Smith
debian-buster-jenkins: remove pysim
This container is still used for osmo-gsm-tester_virtual (OS#6126). pysim doesn't build anymore for some reason since the new dependency on pyosmocom was added to it. Since we don't use pysim in osmo-gsm-tester, simply don't install it in this container anymore.
Commit
d6176d12f347626a40592bb7122e0cc8553376e8
by Oliver Smith
debian-bookworm-titan: chown 1000 for deps
Change the ownership of the "deps" directory to a not yet created user with the ID 1000. This user gets created when the gerrit verifications use the container for building. Changing the ownership of the deps directory allows using them and updating them as needed (e.g. if the patch in review changes a commit of one of the deps).
Chowning here once results in faster jobs, compared to if we did it every time the gerrit verifications job ran.
Creating the user here would result in conflicts with other containers depending on debian-bookworm-titan that may create their own user with the same UID.
Commit
e3946aefc6dbe1057a0de3ae290ff88d7cc0226e
by Pau Espin Pedrol
make/Makefile: Update git branch references for asterisk and pjproject
The branches were modified a while ago to point to a development branch while in heavy development phase. The work has been merged into feature branches now, so move to those now that bulk of work is done.
Commit
dd829a475dfda0cf6c0c07af8eb2358b8e9bd10d
by Oliver Smith
osmo-gsm-tester: use debian-bookworm-build
osmo-gsm-tester was the last user of debian-buster-jenkins, and it just broke again for some reason. Instead of adjusting debian-buster-jenkins again this time, I've adjusted osmo-gsm-tester to run with debian-bookworm-build instead so we can avoid the maintenance effort of keeping debian-buster-jenkins working, as well as the additional time needed to build this container.
We held off from upgrading to debian-bookworm-build, because no mongodb debian packages are available for bookworm. However in the meantime we have just installed the bullseye mongodb package in bookworm together with the older libssl from bullseye that it was build against - we did this in other containers already, so do this here too.
Other adjustments: * Pip needs --break-system-packages now (it is fine in a docker container) * Patchelf in bookworm is >= 0.11 (getting installed in the apt install call already), so we don't need to build it from source anymore. * Remove 'if [ "$(arch)" = "x86_64" ];' around the mongodb code. This was needed earlier when we used to build this container on arm devices too, but AFAIK we don't do that anymore and it wasn't really useful in the first place. (And if we do we can bring this back easily.) * Add rpm2cpio and cpio, because these are used during the osmo-gsm-tester_build-osmocom-bb job which will use this docker image with an upcoming osmo-ci patch (currently it is not using docker to build the Osmocom programs, but that leads to missing library errors once we upgrade to bookworm here). IMHO the build process should be reworked so that this is not necessary, but given that osmo-gsm-tester isn't really maintained currently, this is the bare minimum needed to migrate it away from debian buster.
Commit
57f680439f378f5bb5c6582297ae0636db6650f8
by laforge
ttcn3-bts-test: do not use respawn.sh
Re-spawning osmo-bts is no longer necessary. For quite some time now, it has been able to attempt OML link re-establishment in a loop instead of exit()ing.
Additionally, using respawn.sh makes crashes harder to detect. Whether we should restart the IUT process and continue executing the remaining test cases after a crash is debatable. However, none of the other testsuites (except ttcn3-pcu-test, which actually requires restarting osmo-pcu after each TC) use respawn.sh for that purpose.
Commit
9f3fa5ab3c64179efdb6ad9367071b9bbf774d8c
by Pau Espin Pedrol
ttcn3-bts: Allow running osmo-bts-trx with rt prio
osmo-ttcn3-hacks.git Change-Id I0251ed3ec0645617cf4e9bcc03e75c805bf1634c adds "policy rr" to VTY config of osmo-bts-trx. Allow the process to set it inside docker.
Commit
6b78751addc6a74eeeba00b227e6e3e2d0dfb54f
by Oliver Smith
debian-bookworm-build: remove pysispm, pydbus
Remove pysispm as it currently breaks building the container and as it is unlikely that we actually need this library as it is for switching on/off power strips.
I've seen it mentioned first in c9fa2a ("Introduce osmo-gsm-tester docker setup") from where it apparently was copy pasted to debian 10, 11 and 12 containers afterwards c1f302c2 ("Add debian-buster-jenkins docker setup").
Remove pydbus as well, it was apparently copy pasted with the same history and isn't used in Osmocom software.
Fix for: #17 30.93 ERROR: Could not find a version that satisfies the requirement pysispm (from versions: none) #17 30.93 ERROR: No matching distribution found for pysispm
Commit
ece9e817eaf1e1232e5aa0d814e8451c569fcf70
by Oliver Smith
osmo-ns-master: build without uring for debian 10
In preparation for running FR tests with debian 10, adjust osmo-ns-master to build libosmocore without uring support as liburing-dev is not packaged for debian 10.
Commit
7baa6bd3fd01ffe8248aa29791fed78624e3395e
by Oliver Smith
jenkins-common: support {latest,master}-debian10
It is required that we run the FR tests with debian 10. Adjust jenkins-common.sh so we can use IMAGE_SUFFIX=master-debian10 and IMAGE_SUFFIX=latest-debian10.
The related osmo-ci patch will configure jenkins to make use of this.