Skip to content
Success

Changes

Summary

  1. ruff.toml: new file (details)
  2. Cosmetic: testenv: fix line length (details)
  3. testenv: improve --config argument parsing (details)
  4. ggsn: testenv: fix paths in copy= and clean= (details)
  5. ggsn: testenv: add libosmocore-utils to package= (details)
  6. library: add generic Mutex API for parallel components (details)
  7. library/PFCP_Emulation: a better PDU routing concept (details)
  8. library: as_pfcp_ignore(): log SeqNr of received PDUs (details)
  9. s1gw: f_init_pfcp(): use 'PFCPEM' as the prefix (details)
  10. s1gw: make number of eNBs configurable via module params (details)
  11. Revert "s1gw: cache PFCP Recovery Timestamp in ConnHdlr" (details)
  12. s1gw: move PFCP association handling into a dedicated ConnHdlr (details)
  13. s1gw: add multi-eNB variants of TC_e_rab_setup (details)
  14. s1gw: add f_ConnHdlrList_all_done() (details)
  15. s1gw: f_ConnHdlr_rx_erab_release_cmd(): fix wrong template (details)
  16. s1gw: add TC_e_rab_release_ind (details)
  17. s1gw: f_ConnHdlr_erab_release_cmd(): add missing logging (details)
  18. library/s1ap: fix wrong IE ID in E-RABReleaseListBearerRelComp (details)
  19. library/s1ap: fix wrong field in S1AP-RABReleaseInd (details)
  20. library/s1ap: add templates for INITIAL CONTEXT SETUP (details)
  21. library/s1ap: fix wrong IDs in {ts,tr}_S1AP_InitialCtxSetupResp (details)
  22. library/s1ap: comment out optional IE in tr_S1AP_InitialCtxSetupResp (details)
  23. library/pfcp: fix template restriction in PFCP_Session_Est_Resp (details)
  24. library/pfcp: make Cause IE configurable in all templates (details)
  25. s1gw: TC_e_rab_setup: complete E-RAB release (details)
  26. s1gw: separate f_ConnHdlr_session_{establish,modify}() (details)
  27. s1gw: add testcases for INITIAL CONTEXT SETUP (details)
  28. testenv: podman: disable send_redirects (details)
  29. s1gw: add TC_initial_ctx_setup_failure (details)
  30. s1gw: move MME_UE_S1AP_ID to ConnHdlrPars (details)
  31. testenv: requirements: find programs in /usr/sbin (details)
  32. testenv: podman: remove mongodb-org.list (details)
  33. testenv: podman: don't install GUI packages (details)
  34. ggsn: osmo-ggsn.src.cfg: tweak log output (details)
  35. ggsn: testenv: replace dummy netdev with bridge (details)
  36. testenv: osmo-dev: build with gtp_linux.opts (details)
  37. testenv: bridge: change default IPs 201 -> 1 (details)
  38. ggsn: testenv: run SUT on bridge instead of lo (details)
  39. ggsn: testenv: change VTY IP (details)
  40. testenv: support running SUT in QEMU (details)
  41. ggsn: testenv: support running osmo-ggsn in QEMU (details)
  42. Cosmetic: ggsn: fix copy paste error (details)
Commit 157897523e54762ec3739cd7842c7b5f5d724ac2 by Oliver Smith
ruff.toml: new file

Add a file in the root dir of the repository to allow running
"ruff format" in order to auto-format the code with expected max line
length, PEP-8, etc.

Replace _testenv/pyproject.toml with .ruff.toml in the root directory of
the repository, so we can exclude "compare-results.py" which doesn't
follow that code style. Otherwise it would get formatted too when
running "ruff format" in the root dir of the repository.

Change-Id: I97ed1ececba85008ca754cf91bf46522e168a894
The file was added.ruff.toml
The file was removed_testenv/pyproject.toml
Commit a2ea0ac52a14d315d9769e80e979f51c68122685 by Oliver Smith
Cosmetic: testenv: fix line length

Run "ruff format", so there isn't a diff anymore when running it on
future patches.

Change-Id: I766a07c6d54d0da11ad47acce1fc07b4b3a4801b
The file was modified_testenv/testenv/podman.py
Commit 6f020365e24375e3788a4d73622d72b67fc2d9ad by Oliver Smith
testenv: improve --config argument parsing

* Support using wildcards for the config names via fnmatch as that makes
  it much easier to run the ggsn tests against all osmo-ggsn config
  variations, and update the examples in "testenv.py -h" to illustrate
  this.
* Fix that it didn't complain about an invalid --config argument, as
  long as there was a valid --config argument before it.
* Let raise_error_config_arg only output the invalid --config argument
  instead of all of them.
* Complain if "--config all" is used in combination with another
  --config argument.
* Sort testenv*.cfg files found alphabetically, so they are always
  executed in the same order.

Change-Id: I66b976b0332be523c084a6b5d38d0f62134b495d
The file was modified_testenv/testenv/testenv_cfg.py
The file was modified_testenv/testenv/testdir.py
The file was modified_testenv/testenv/__init__.py
Commit 9cc15715929078970d773b5a419fbbe928a84620 by Oliver Smith
ggsn: testenv: fix paths in copy= and clean=

I had moved osmo-ggsn related files to the osmo-ggsn directory and
forgot to adjust testenv_osmo_ggsn_{v4,v6,v4v6}_only.cfg. Fix it by
changing it like it is in testenv_osmo_ggsn_all.cfg

Change-Id: Ibc8aeb43ff594a6b26699f81b29abc31b9b5b71f
The file was modifiedggsn_tests/testenv_osmo_ggsn_v4v6_only.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_v6_only.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_v4_only.cfg
Commit b8c0bc745c5d86fd9d5b292e77a54e28505525f7 by Oliver Smith
ggsn: testenv: add libosmocore-utils to package=

Add libosmocore-utils, so osmo-config-merge is installed when running
with --binary-repo too. The osmo-config-merge program is used in
osmo-ggsn/testenv.sh to merge the configs.

Change-Id: I7d97e0f923d928e9b51ff41d50b28706e0e6790b
The file was modifiedggsn_tests/testenv_osmo_ggsn_v4v6_only.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_v4_only.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_all.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_v6_only.cfg
Commit faa6fc2d3083e1d074a3a3e6ca8714c920a6d453 by laforge
library: add generic Mutex API for parallel components

In certain scenarios, it's required to ensure that only one of multiple
parallel components executes a specific code block at any given time.

This, for example, is the case for the S1GW testsuite, where we want to
simulate multiple eNBs establishing E-RABs.  Each new E-RAB triggers the
IUT (osmo-s1gw) to send a PFCP Session Establishment Request, and there
is no way for the PFCPEM to correlate which session belongs to which eNB.
This problem can be solved by ensuring that only one eNB is triggering
the PFCP Session Establishment Request(s) at a time.

This patch implements a generic Mutex API, which can also be used
by other testsuites that orchestrate multiple parallel components.

Change-Id: Id71f43bd5fc78d4bb4417d6c01fcff8112ea6032
The file was addedlibrary/Mutex.ttcn
Commit aaa88deeb3ef7f53f9867438ee7fcad9b7df8e11 by laforge
library/PFCP_Emulation: a better PDU routing concept

In recently merged 2962d170 I wrongly assumed, that SEID of outgoing
PFCP PDUs can be used to correlate and route the incoming PDUs.  In
fact, the PFCP peers use two different SEID values, negotiating them
using the F-SEID IE.

We could have implemented a logic to look for F-SEID in the outgoing
PDUs, store and then use it for routing.  However, a more flexible
approach is to allow the the PFCP_ConnHdlr components to subscribe
and unsubscribe to/from specific SEID values explicitly.

In this spirit, let's allow the PFCP_ConnHdlr components to subscribe
and unsubscribe to/from broadcast PDUs (i.e. those, for which the
PFCPEM component could not find a single recipient) explicitly.

Implicit routing using the SeqNr remains unchanged and will be
performed by the PFCPEM component automatically like before.

Change-Id: I25802471519fa297ad4cb2b056adaa6748b00af2
Related: 2962d170 "library/PFCP_Emulation: fix routing of incoming PDUs"
The file was modifiedlibrary/PFCP_Emulation.ttcn
The file was modifiedhnbgw/HNBGW_Tests.ttcn
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
Commit 19ef9f42928774f09248f907795c6cbf8c31cf84 by laforge
library: as_pfcp_ignore(): log SeqNr of received PDUs

Printing the PFCP PDU template ('?' by default) is not very informative
when reading logs.  Printing the message type of the received PDU is
not informative either, because message types are defined as numbers
in PFCP_Types.ttcn.  Printing the whole PDU is way too verbose, and
would be redundant given that the PFCPEM component already does print
all received PDUs.  Let's print the sequence number.

Change-Id: I803ff46def4ae0182310bc01e753fe0c05112836
The file was modifiedlibrary/PFCP_Emulation.ttcn
Commit d6bfbe2de135f1ee38ec75859296b4eaad9f55ad by laforge
s1gw: f_init_pfcp(): use 'PFCPEM' as the prefix

Make it clear that it's the PFCP EMulation component.

Change-Id: Ia5413313cffb265f83ea0850e31dfb35274c28ba
The file was modifieds1gw/S1GW_Tests.ttcn
Commit 69a58d44359e08e4c29d84b22c6a2b949a4a7178 by laforge
s1gw: make number of eNBs configurable via module params

... so that we can scale the number of eNBs simulated in the
*_multi TCs without having to touch and compile code.

Change-Id: Ia80b9118e66a5d6721b89d3ba068227d30dcc01f
The file was modifieds1gw/S1GW_Tests.ttcn
Commit ff60a63c2aa656978cfdaf5958e21fadf8462ef5 by laforge
Revert "s1gw: cache PFCP Recovery Timestamp in ConnHdlr"

This reverts commit 7ad95e1cfb00d269069bd052c44a9cae9027f763.

A follow-up commit will remove the need for each ConnHdlr to call
f_ConnHdlr_register_pfcp(), that among with handling the PFCP
association retrieves a PFCP Recovery Timestamp from the PFCPEM.

Caching the PFCP Recovery Timestamp value is not really worth it,
since it's rarely used and can always be retrieved on demand.

Change-Id: I3b1c488e3ec251c7659cd9bc3197cca2f9d03144
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
The file was modifieds1gw/S1GW_Tests.ttcn
Commit 17f589464ba4063f12f3b03a9a958f492ad6d88f by laforge
s1gw: move PFCP association handling into a dedicated ConnHdlr

Previously, the PFCP association request from the IUT was handled by
the first ConnHdlr component (idx := 0).  While this approach has
worked, it fails when multiple ConnHdlr instances (idx > 0) are spawned.

The problem arises when other ConnHdlr (idx > 0) instances initiate
PFCP procedures before the first ConnHdlr (idx := 0) has established
the association, so we end up playing races.

This patch introduces a dedicated ConnHdlr component to handle the
PFCP association independently.  Once the association is established,
the actual test ConnHdlr instances are spawned, ensuring a more
reliable and orderly process.

Change-Id: I5e1a14105a35b785bf598dc2a8c436ea6fb6b0f1
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
The file was modifieds1gw/S1GW_Tests.ttcn
Commit 2f6d76c9dd982fbf9c6660e875fb6d3aa3beced6 by laforge
s1gw: add multi-eNB variants of TC_e_rab_setup

The idea is to simulate multiple eNBs establishing one or more
E-RAB(s) simultaneously.  In order to achieve that, use the new
Mutex API to ensure that only one ConnHdlr component is triggering
PFCP session establishment at any given time.

The problem is that there is no way for the PFCPEM component to
correlate which PFCP session belongs to which eNB when multiple
ConnHdlr instances establish E-RAB(s) in parallel.  This can be
solved by making a part of the test scenario synchronous.

Change-Id: I9e2eb25a7ae78ff623b94802d881af4894d0cacd
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
The file was modifieds1gw/S1GW_Tests.ttcn
The file was modifieds1gw/expected-results.xml
The file was modifieds1gw/gen_links.sh
Commit fb40c1f25de90fd95dc9553f5db3209967008c66 by laforge
s1gw: add f_ConnHdlrList_all_done()

Change-Id: I20c472dd8ce7f5a25c349cc079bd5bd873be2950
The file was modifieds1gw/S1GW_Tests.ttcn
Commit a2624ff32a4a342c51c62ca4e74ca8f7afa3a538 by laforge
s1gw: f_ConnHdlr_rx_erab_release_cmd(): fix wrong template

Change-Id: Ib6b9f346216aaa9587025e1c580876611e6fa7bc
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
Commit bb187e8180d52b615ec84a407e9caad0207b49fa by laforge
s1gw: add TC_e_rab_release_ind

Change-Id: Icc28a596b7646441761cc3f56653c5f7b3ddaaca
The file was modifieds1gw/S1GW_Tests.ttcn
The file was modifieds1gw/expected-results.xml
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
Commit e87acf9c5fb7ec3dc79115ba3ec7ed1f735024ac by laforge
s1gw: f_ConnHdlr_erab_release_cmd(): add missing logging

Change-Id: I6e4574ebda2459f0a5f23ee51a21a883d079c54a
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
Commit 1fb6689026a791e745160f04ea7d03f39c777b27 by laforge
library/s1ap: fix wrong IE ID in E-RABReleaseListBearerRelComp

Change-Id: I22e80f418787c10ccd002e30a329c0271cdd1b8a
Fixes: e59e681c "library/s1ap: add E-RAB RELEASE templates"
The file was modifiedlibrary/s1ap/S1AP_Templates.ttcn
Commit 1f8173137b53a0069fcdd3c9c012a7633875e0b4 by laforge
library/s1ap: fix wrong field in S1AP-RABReleaseInd

Change-Id: I7a24b6401a19a6e37392083b26657bcb45b35cbe
Fixes: e59e681c "library/s1ap: add E-RAB RELEASE templates"
The file was modifiedlibrary/s1ap/S1AP_Templates.ttcn
Commit 15b2f739bcadfc52aee9b12ceed99e91da55dd57 by laforge
library/s1ap: add templates for INITIAL CONTEXT SETUP

Change-Id: I249e34ce91c874d4b6628d367672b58a77da041e
The file was modifiedlibrary/s1ap/S1AP_Templates.ttcn
Commit a9b2b0f4f977e669136a8e87ea7bbe501b07dc96 by laforge
library/s1ap: fix wrong IDs in {ts,tr}_S1AP_InitialCtxSetupResp

Change-Id: I752f202e891f7f6ff4f8f33b56de90c99c4ab456
Fixes: ce818da5b "library: Add S1AP Templates"
The file was modifiedlibrary/s1ap/S1AP_Templates.ttcn
Commit 860e924b4188f70098eeeb617b78c2b1ad26ea24 by Vadim Yanitskiy
library/s1ap: comment out optional IE in tr_S1AP_InitialCtxSetupResp

Change-Id: I4765036be69ff10adb8c510d4092834c4e923229
The file was modifiedlibrary/s1ap/S1AP_Templates.ttcn
Commit 889be0f14ffdb241f08a6e52576fd09cef802a10 by Vadim Yanitskiy
library/pfcp: fix template restriction in PFCP_Session_Est_Resp

Change-Id: Icf070443ffb7cfff84559db40459d0e9629ad024
The file was modifiedlibrary/PFCP_Templates.ttcn
Commit 8eab02345f91067909e5240f3e66192f0dd4917a by Vadim Yanitskiy
library/pfcp: make Cause IE configurable in all templates

Change-Id: I76e52d3450cca87f5fead0f834fa58ce4902ddd8
The file was modifiedlibrary/PFCP_Templates.ttcn
Commit 1fef9e09d547faa1be822e76358ca9f07ad7e381 by Vadim Yanitskiy
s1gw: TC_e_rab_setup: complete E-RAB release

The MME originated E-RAB RELEASE procedure includes both:

* [ENB <- MME] E-RAB RELEASE COMMAND, and
* [ENB -> MME] E-RAB RELEASE RESPONSE.

The later was overlooked in a99224c9, so add it.

Change-Id: I856248d825b6ecf0635590b7bf02593cfae893d3
Fixes: a99224c9 "s1gw: TC_e_rab_setup: also test E-RAB release"
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
The file was modifieds1gw/S1GW_Tests.ttcn
Commit 4609bbbc67e2366807423281861a6d81cbd8c9d8 by Vadim Yanitskiy
s1gw: separate f_ConnHdlr_session_{establish,modify}()

Change-Id: I95dc3be975a8f51f7535b96d1580ef70b85fa2e0
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
Commit 89064cc591ba3bae7c3b6040f1b510b56acf42d8 by Vadim Yanitskiy
s1gw: add testcases for INITIAL CONTEXT SETUP

Change-Id: I72e3ab932fee1de0fce8ddf4041b8f2174416bc1
The file was modifieds1gw/S1GW_Tests.ttcn
The file was modifieds1gw/expected-results.xml
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
Commit 7108643171a3fc71a75e4ff7434b5252c7df5b2e by Oliver Smith
testenv: podman: disable send_redirects

When starting podman, set the following sysctls to avoid ICMP redirects.
ICMP redirects lead to test failures (TC_pdp4_clients_interact in the
GGSN testsuite), and should not be sent in the test environment in
general.

  net.ipv4.conf.all.send_redirects=0
  net.ipv4.conf.default.send_redirects=0

It is really needed to set both "all" and "default", or otherwise ICMP
redirects still show up. I've seen setting both in this patch:
https://patchwork.kernel.org/project/linux-kselftest/patch/1570719055-25110-4-git-send-email-yanhaishuang@cmss.chinamobile.com/

Fixes: OS#6575
Change-Id: Ie27668f38b80c52ffef4e17b3fe64f0c9109bdea
The file was modified_testenv/testenv/podman.py
Commit 26f4e4bd0286db4262a3dc8c8d378e1a7e850272 by Vadim Yanitskiy
s1gw: add TC_initial_ctx_setup_failure

Change-Id: I969ea6813c9b805d116a974c70ab5f6e6e721e48
The file was modifieds1gw/S1GW_Tests.ttcn
The file was modifieds1gw/expected-results.xml
Commit 78be044dadea4470caca6104fd8f53fc490efbf8 by Vadim Yanitskiy
s1gw: move MME_UE_S1AP_ID to ConnHdlrPars

Change-Id: Idac24c54529073855f75bef7bcec87fc68b66e1e
The file was modifieds1gw/S1GW_ConnHdlr.ttcn
The file was modifieds1gw/S1GW_Tests.ttcn
Commit 32662ad138fdd36fb9962e59711d1e9514417793 by Oliver Smith
testenv: requirements: find programs in /usr/sbin

Fix that testenv complains about a missing setcap program, if it is in
/usr/sbin/setcap and /usr/sbin is not in PATH as it is the case with
Debian. We actually run setcap with sudo when it is needed, and in that
case /usr/sbin gets added to PATH in Debian.

Fix for:
  [testenv] Missing program: setcap

Change-Id: Ibbccba013ac38415ef46467f97bef846b848cf39
The file was modified_testenv/testenv/requirements.py
Commit 23a36504bbed820c4025220577f8dee67b7196e3 by Oliver Smith
testenv: podman: remove mongodb-org.list

Remove mongodb-org.list at the end of building the podman image, as we
only need to install mongodb once in the container but won't use the
repository afterwards. This avoids checking the mongodb repository in
"apt update".

Change-Id: I5a0455a4dbf8a31366bff65fd011fd5494b64ea7
The file was modified_testenv/data/podman/Dockerfile
Commit d2a8a91a86bdc300252aef6f78d052c14e2a47d4 by Oliver Smith
testenv: podman: don't install GUI packages

Install erlang-nox and use the pre-built rebar3 as linked from
rebar3.org, instead of using the Debian package to avoid pulling in
~600 MB of GUI dependencies.

Related: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1083096
Change-Id: I27f58d1f102cf85ff7ff301c52696b65150e2898
The file was modified_testenv/data/podman/Dockerfile
Commit c84c196c6bcd3dc78c5f42fb9c3e3944a6fa88c7 by Oliver Smith
ggsn: osmo-ggsn.src.cfg: tweak log output

* Print log levels.
* Don't print categories as hex.
* Print the basename at the end of the line.
* Remove "logging level lgtp debug", there already is
  "logging level lgtp info" further above, and this is a more sensible
  setting. With "debug" there are way too many log messages in e.g.
  TC_lots_of_concurrent_pdp_ctx.

Change-Id: I771d07645ea6da91f2c93f0954d99a37c866629a
The file was modifiedggsn_tests/osmo-ggsn/osmo-ggsn.src.cfg
Commit 2d00ff393d38f569a817c50ea1d94f16a38c2e50 by Oliver Smith
ggsn: testenv: replace dummy netdev with bridge

Replace the dummy netdev that was used as network device reachable
through the GTP tunnel that can answer ICMP, with a bridge device. The
bridge device fulfils the same purpose, plus it can be used in a future
patch to connect osmo-ggsn when it is running in QEMU with the
testsuite.

Change-Id: I102d5b9ed0b3cafc263ad489ed4d4652f5e6dac8
The file was modifiedggsn_tests/open5gs/testenv.sh
The file was added_testenv/data/scripts/add_remove_testenv0_bridge.sh
The file was modified_testenv/data/podman/Dockerfile
The file was modified_testenv/testenv/requirements.py
The file was modifiedggsn_tests/osmo-ggsn/testenv.sh
Commit b05196bd87251d29d0369d30a3688a49309cbb43 by Oliver Smith
testenv: osmo-dev: build with gtp_linux.opts

Run the osmo-ggsn ./configure with --enable-gtp-linux, in preparation
for testing kernel gtp-u with testenv too.

Related: https://gitea.osmocom.org/osmocom/osmo-dev/src/branch/master/gtp_linux.opts
Change-Id: Ia8ea5494597e0fedae93f501c8bc7d6115543f36
The file was modified_testenv/testenv/osmo_dev.py
Commit 5ac9dc135751a053684a0d572a73879f4b41dd97 by Oliver Smith
testenv: bridge: change default IPs 201 -> 1

During code review it was decided that we want to keep the 127.0.0.1
(and other 127.0.0.x) IPs in the configs, so one can start the testsuite
with osmo-ggsn directly on the host without using testenv scripts too,
with the same config.

The testenv script for osmo-ggsn will replace 127.0.0.x with 172.18.3.x
on the fly before the testsuite starts, so we can run osmo-ggsn
optionally in QEMU on 172.18.3.2, which will be bridged to the host.

172.18.3.1 will be used by the GGSN testsuite now, instead of
172.18.3.201 as previously planned, so change the default IP of the
bridge. The bridge is not used for another testsuite yet.

Add the 201 IPs as EXTRA_IPS for the non-QEMU case, as they are
configured as DNS IPs and tests need to be able to reach them.

Change-Id: Ied055e6e4d6214fd5247694e697a35a1e8ff1966
The file was modifiedggsn_tests/osmo-ggsn/testenv.sh
The file was modified_testenv/data/scripts/add_remove_testenv0_bridge.sh
The file was modifiedggsn_tests/open5gs/testenv.sh
Commit d82c9efed9bc44302d0bf428a0234727c961037e by Oliver Smith
ggsn: testenv: run SUT on bridge instead of lo

Replace IPs in testenv.sh so the SUT runs on 172.18.3.2 (testenv0
bridge) instead of 127.0.0.2 (lo). Later on when we can optionally use
QEMU with osmo-ggsn to test kernel GTP-U. It will then run on this IP as
well. So with this change we can use the same IP for both the QEMU and
non-QEMU case.

Change-Id: Ib768603b0050fe62baff39cab982a850eb91f49a
The file was modifiedggsn_tests/osmo-ggsn/testenv.sh
Commit fffa8ec1f928afe200e94e5a5c4561c2251bf38f by Oliver Smith
ggsn: testenv: change VTY IP

Access the VTY of osmo-ggsn via 172.18.3.2 (127.0.0.2 if running without
testenv), so the testsuite can access the VTY when osmo-ggsn optionally
runs in QEMU too (through the bridge).

Change-Id: I054c19041b3027e7f66d925f031002fefe011c58
The file was modifiedggsn_tests/testenv_osmo_ggsn_v6_only.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_all.cfg
The file was modifiedggsn_tests/osmo-ggsn/osmo-ggsn.src.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_v4v6_only.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_v4_only.cfg
The file was modifiedggsn_tests/GGSN_Tests.cfg
Commit caaa0d631b8a8a4f8ed426455c36ca7e94c62ba0 by Oliver Smith
testenv: support running SUT in QEMU

Add two new arguments -C|--custom-kernel and -D|--debian-kernel. If any
of these is set, pass an environment variable TESTENV_QEMU_KERNEL with
the path to the kernel when running commands from testenv.cfg.

These commands can then source the new qemu_functions.sh and use it to
build an initramfs with the SUT and depending libraries on the fly, and
start up QEMU to boot right to starting the SUT. All of that takes about
~1s on my system with kvm. Without kvm ~5s.

A follow-up patch will adjust the ggsn testenv configs to optionally run
osmo-ggsn in QEMU for testing kernel GTP-U.

These scripts are based on scripts/kernel-tests from docker-playground.

Related: osmo-ci Id64a1a778fa38eec20498c36b390332f75d7d3f5
Change-Id: Ic9cb7092fd029b7ba530fc755b5d4d73a9d86350
The file was modified_testenv/testenv/cmd.py
The file was modified_testenv/testenv/podman.py
The file was modified_testenv/testenv/testenv_cfg.py
The file was modified.gitignore
The file was added_testenv/data/scripts/qemu/qemu_functions.sh
The file was modified_testenv/data/podman/Dockerfile
The file was added_testenv/data/scripts/qemu/qemu_ifup.sh
The file was added_testenv/data/scripts/qemu/qemu_wait.sh
The file was modified_testenv/README.md
The file was modified_testenv/testenv/__init__.py
The file was modified_testenv/testenv/requirements.py
The file was added_testenv/data/scripts/qemu/qemu_init.sh
Commit 69aa39abf63ffd19aecb3502dec7251c0e77350d by Oliver Smith
ggsn: testenv: support running osmo-ggsn in QEMU

Run osmo-ggsn optionally in QEMU, to test the kernel GTP-U feature
with different kernels.

Related: OS#3208
Change-Id: I3f9db4325d5928c809cc99bc82d9cb82bf9e71eb
The file was addedggsn_tests/osmo-ggsn/run.sh
The file was modifiedggsn_tests/testenv_osmo_ggsn_v4_only.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_v6_only.cfg
The file was modifiedggsn_tests/testenv_osmo_ggsn_v4v6_only.cfg
The file was modifiedggsn_tests/osmo-ggsn/testenv.sh
The file was modifiedggsn_tests/testenv_osmo_ggsn_all.cfg
Commit ed4ccbf3ee288c599a357a5d89ef39bae4256b0d by Oliver Smith
Cosmetic: ggsn: fix copy paste error

Change-Id: Iad2424036ff3dd45a9cd67f28249fbb06e657e62
The file was modifiedggsn_tests/GGSN_Tests.ttcn