Commit Graph

60 Commits

Author SHA1 Message Date
Harald Welte d2394e9032 ggsn: Disable GTP-U tx sequence number by default
GTP-U transmit sequence numbers are entirely optional and probably
don't serve any real purpose in real-world deployments.

While OsmoGGSN in userspace implements support for it, the kernel GTP-U
implementation doesn't.  This means a number of tests fail against
kernel GTP-U only for that reason.

Let's switch all tests to disable GTP-U sequence numbers, and only
enable it in one specific test.  This way, we can execute the tests
also against kernel GTP-U.

Related: OS#3215
Change-Id: I666f5276749ef6a1a4dc170a3b9a747f626f6b2c
2018-04-26 09:09:32 +00:00
Harald Welte 3e0b039c56 ggsn: Fix typo: 'gptu' -> 'gtpu'
Change-Id: I1da2e0da6b94dc43c742ec551d3b5de100ce405f
2018-04-26 09:09:31 +00:00
Neels Hofmeyr fc0384a046 mask timestamps and source file nrs in expected-results.xml files
Prepare for upcoming updates with concise diffs.

Change-Id: Ic9f006aa8db1b477598605e0525faeb229b03641
2018-04-11 19:32:01 +02:00
Neels Hofmeyr 1fd6679d9d fix build: don't clean out expected-results.log: rename to *.xml
'make clean' as generated by ttcn3_makefilegen removes all *.log files, which
of course cleans out expected-results.log, which should not happen. Since this
is a junit XML file, rename the suffix to .xml.

Change-Id: Ic334f6b758eef865e3a497aa430691a3ae696d25
2018-04-11 19:29:18 +02:00
Stefan Sperling c479e4fa3b test GGSN support for optional GTP-U sequence numbers
Add VTY functionality to GGSN tests, and use the VTY to enable/disable
GTP-U Tx sequence numbers in the running osmo-ggsn.

The GTPU packet template now makes sequence numbers optional.
A template created with its sequence number set to 'omit' will result in
a packet without a sequence number, i.e. the 'sequence number present' bit
in the packet header is cleared, and the sequence number field is omitted
from the encoded GTPU T-PDU packet.

Re-use the existing TC_pdp4_clients_interact() test for testing the
behaviour of osmo-ggsn. This test is now run twice, once with and
once without GTP-U Tx sequence numbers. Verify that packets relayed by
osmo-ggsn match its "g-pdu tx-sequence-numbers" configuration setting.

Change-Id: I1dc299407c61b1c865035add44067b8ab89001b3
Related: OS#2519
2018-04-06 12:43:25 +00:00
Neels Hofmeyr 3cf797d7a5 add compare-results.sh, call from start-testsuite.sh
Compare current test results to the expected results, and exit in error on
discrepancies.

Add compare-result.sh: (trivially) grep junit xml output to determine which
tests passed and which didn't, and compare against an expected-result.log,
another junit file from a previous run. Summarize and determine success.

Include an "xfail" feature: tests that are expected to fail are marked as
"xfail", unexpected failures as "FAIL".

In various subdirs, copy the current jenkins jobs' junit xml outputs as
expected-results.log, so that we will start getting useful output in both
jenkins runs and manual local runs.

In start-testsuite.sh, after running the tests, invoke the results comparison.

Due to the single-line parsing nature, the script so far does not distinguish
between error and failure. I doubt that we actually need to do that though.

Related: OS#3136
Change-Id: I87d62a8be73d73a5eeff61a842e7c27a0066079d
2018-04-06 01:07:15 +02:00
Stefan Sperling cb782b99ff document the purpose of IP addresses used by GGSN tests
The purpose of the various IP addresses used by our GGSN tests is not
immediately clear. Add documentation based on the current status quo.

Change-Id: I079efcff3dab09d71330625f5b661cd81e42bf38
2018-04-04 08:07:25 +00:00
Stefan Sperling 6cd217e48b improve documentation of templates used in GGSN_Tests
Various improvements to the comments documenting packet templates
used in GGSN_Tests: fix IPv4 vs. IPv6 confusion, clearly indicate
whether templates are used for sending or for receiving/matching
packets, and add a missing comment.

Found while studying code to prepare for issue OS#2519.

Change-Id: I3bfc21a5ba74e0505457e4874f93501ad7c68b7b
Related: OS#2519
2018-04-01 08:42:01 +00:00
Neels Hofmeyr cd11223c0f ignore results of .ttcnpp files
Add another macro ignore_pp_results to gen_links.sh.inc and call from all
gen_links.sh files, to add results of *.ttcnpp files, i.e. generated *.ttcn
files, to .gitignore.

Change-Id: Ic7fb176226771212d7700dafaf27ac71f12a4a61
2018-03-16 18:25:58 +01:00
Neels Hofmeyr 1a4c4601d7 fix gen_links.sh: don't include source dir as link target
First of all, use one common place to define the gen_links() macro, in
gen_links.sh.inc.

In this new file, add a 'shift' to exclude the $DIR arg from also appearing in
$FILES.

This prevents the following wrong symlinks in the source dirs:

  M3UA_CNL113537/src/src
  MTP3asp_CNL113337/src/src
  SCCP_CNL113341/src/src

Change-Id: Ia8493e77df1ba8723f2c5d2a49816247b0fb55f7
2018-03-16 00:08:02 +01:00
Harald Welte 99ca30ce2e remove *.default from [EXECUTE] in *.default files
The problem is that the .cfg file cannot override the [EXECUTE]
provided list of tests

Change-Id: I7e1e0499b3b32014b25ae4b515263f57a4ea6daf
2018-03-13 14:30:55 +01:00
Harald Welte c69cf4e933 ggsn: Move GTP templates to separate GTP_Templates + Add GTP_Emulation
Change-Id: I384e59738a9e0fc0186b69f0806f217a2a8d8a4b
2018-02-18 10:26:54 +01:00
Harald Welte 328eb6d535 move GTP_CodecPort from ggsn to library (for sgsn reuse)
Change-Id: If1b25f3c4705fcf4763886b54c5ef1f7ae08628f
2018-02-18 10:26:45 +01:00
Harald Welte 84a2807822 ggsn: Switch over to new shared/common configuration file layout
Change-Id: I491819c8bad8efa45cee161ea6f47c3f97941a17
2018-02-14 21:40:12 +01:00
Max 6367d7b807 Don't symlink non-existent file
Change-Id: I10309f07fb207c027703f0b43a478c152a029b6d
2018-02-05 16:58:27 +01:00
Pau Espin 6c7285d682 ggsn_tests: Add test to validate if different pdp ctx can talk each other
It seems due to the current network configuration, pdp v4 ctx can talk
each other while pdp v6 ctx cannot.

Change-Id: I67c04b056cc5c092d357abbb084b7665f59eaf3a
2018-01-31 14:47:00 +01:00
Pau Espin 3d9338fb92 ggsn_tests: Add test case to validate packets forwarded vs dropped
New dependency is required: titan.ProtocolModules.ICMP
It tests that ICMP echo packets can be sent successfully (reply is
received or otherwise dest unreachable if routing is not set up
correctly during the test). It also tests some cases in which osmo-ggsn
is required to drop the packets (eg. unknown src ip unrelated to pdp
ctx). It also checks that IPv6 packets are dropped in IPv4 pdp ctx and
viceversa It also checks that IPv6 packets are dropped in IPv4 pdp ctx
and vice versa.

Change-Id: Ib9c6043a6cd3b6622782ec7e7fcd2815101755ba
2018-01-31 14:46:02 +01:00
Pau Espin 363ba48b1f ggsn_tests: Validate DNS PCO values
Change-Id: I54124cb5269c0992e6c72af1a1ecaa8e3202bf05
2018-01-29 18:43:35 +01:00
Pau Espin f69a438010 ggsn_tests: Configure expected GGSN DNS values and improve error message
Change-Id: Ie64ca0b4cda22fd358c8c304d5b3909fd9685948
2018-01-29 13:09:00 +01:00
Harald Welte 9182704cbc ggsn: Move random number helpers to Osmocom_Types.ttcn
Change-Id: I141289cbf1807e81d72f07ac1183fa48b2dc54af
2018-01-26 10:42:53 +01:00
Harald Welte 818b6e4225 Add "SourceInfoFormat := Single;" to all test configs
This will make sure that all log files will contain information about
the .ttcn source file name and line number that has caused the log,
which is extremely useful during debugging.

Change-Id: Id6785757f20279ba84b34747f878baf67d065b20
2018-01-17 11:11:29 +00:00
Harald Welte 20a58c6d6f generalize shared code from regen_makefile.sh into shared helper script
Change-Id: I86a738420851a7d9e3bdb2671f6862c3d505a4ba
2017-12-13 01:04:42 +01:00
Harald Welte 9fbe93f532 regen_makefile.sh: Fix TITAN 6.1.0 support
When introducing the rewriting for 6.3.0 we broke the 6.1.0 support.
Now the result should build on Debian with both 6.1.0 and 6.3.0

Change-Id: I263a6abd2d9eb15ce5778ef8dbfcdac2a228b77d
2017-12-13 00:50:11 +01:00
Harald Welte 6807982106 Makefile: clone dependencies into 'deps' folder
We used to rely on out-of-tree git clones to be prepared by the user.

This commit changes the system to make sure we clone all git repos
we depend upon into the 'deps' folder, and then setup the symlinks
to that folder.  As a result, we should be able to support
self-contained builds using the makefiles in this repo.
2017-12-12 16:30:53 +01:00
Harald Welte 140714d89d regen_makefile.sh: Add Regex's for TITAN 6.3.0
The TITAN 6.3.0 makefile generator needs some new regular expressions
for patching the generated makefile to work on Debian
2017-12-08 14:03:28 +01:00
Harald Welte e7096c1571 ggsn: verify IPv4 addr + byte order in IPCP PCO DNS addresses 2017-12-04 19:40:44 +01:00
Harald Welte eb9184ddb4 ggsn: Encode IPCP in IPCP Request, rather than using hard-coded hex string
We now have a proper definition of IPCP in IPCP_Types and can thus
encode/decode on the fly and avoid hand-crafted octetstrings.
2017-12-04 19:04:24 +01:00
Harald Welte 71a36023dc ggsn: Verify presence of DNS addresses in IPCP of PCO
If we request DNS in IPCP in PCO, we also expect a corresponding result.
2017-12-04 19:04:24 +01:00
Harald Welte 874f24bed5 Remove BSSAPP, BSSGP, BSSMAP, GTP, GTPv2, ISUP, LLC, MobileL3, NS, SNDCP
All of those now have separate upstream repositories on git://git.eclipse.org/gitroot/titan
and we don't need to keep a copy around
2017-11-19 10:07:54 +01:00
Harald Welte 04d74cdcde Add ASP_ConnId_ReadyToRelease in all translation ports using IPL4asp
This is required after update to IPL4asp R.29.A of 2017-Oct-17
2017-11-19 09:29:51 +01:00
Harald Welte bb5a19e53c ggsn_tests: Remove incomplete user plane testing code
In commit 0b7545dff1 I accidentially
committed incomplete support for user plane (GTP-U) testing to
the GGSN test.

This code has caused the jenkins tests since August 26th to fail,
let's revert it until this is fully implemented + tested.
2017-09-21 22:50:41 +08:00
Harald Welte ab4ca94c8c ggsn: Extend IPCP PDP IPv4 test with another PCO protocol beyond IPCP
This is to test for a bug that osmo-ggsn fixed in Icc2e6716c33d78d3c3e000f529806228d8aa155e
2017-09-07 18:41:52 +02:00
Harald Welte 244cd8acf7 sysinfo: Fix the TC_telnet test case VTY command order 2017-08-26 09:25:20 +02:00
Harald Welte 3ab91d6ae4 GGSN_Tests: Fix IPv4 PCODNS matching 2017-08-25 14:46:39 +02:00
Harald Welte 4d7722900a generalize 'start.sh' script for executing synamically linked testsuite 2017-08-19 15:27:10 +02:00
Harald Welte 8b4123f67f GGSN_Tests: Enable junit-xml generation 2017-08-19 15:18:13 +02:00
Harald Welte 303c19ad63 Add Native_Functions module for inet_addr / inet_ntoa 2017-08-19 13:52:36 +02:00
Harald Welte ddeecbb4ed GGSN_Tests: Make SGSN and GGSN addresses configurable via modulepar 2017-08-19 11:50:08 +02:00
Harald Welte 99ef9a446c GGSN_Tests: Verify EUA and PCO in PDP context creation
The EUA and PCO of the created PDP context mustmatc wat we sent in the
request.
2017-08-14 21:42:03 +02:00
Harald Welte 0ef285bbe9 GGSN_Tests: Comment on each test case 2017-08-13 20:06:01 +02:00
Harald Welte dca8005080 GGSN_Tests: Actually request the right IPv4 PCO according to the test case
Missing: Verification of returned PCO
2017-08-13 20:01:38 +02:00
Harald Welte 11dbc7b6cc GGSN_Test: Use randomized sequence numbers in every test 2017-08-13 18:57:56 +02:00
Harald Welte 41575e9bc2 GGSN_Tests: remove unneeded ctx argument from f_send_gtpc() 2017-08-13 13:49:57 +02:00
Harald Welte f48a907868 GGSN_Tests: Add config file 2017-08-13 13:29:52 +02:00
Harald Welte ed09743af5 GGSN_Tests: Randomize IMSIs and use different APN for v4 + v6 2017-08-13 13:28:49 +02:00
Harald Welte 0be142b7bf GGSN_Tests: Make sure f_init() body is traversed only once
We don't want the sequence numbers to be random-reinitialized
on every test case, but only once.
2017-08-13 13:28:10 +02:00
Harald Welte 5438b9dc27 GGSN_Tests: Sequence numbers are node-global and not per-PDP context 2017-08-13 13:27:48 +02:00
Harald Welte ed7a17750f GGSN: Test PDP Context activation wtih different PCOs 2017-08-09 20:26:20 +02:00
Harald Welte 231b94190c GGSN IPv6: Transmit Router Solicit, receive RouterAdv, transmit NeightSolicit 2017-08-09 17:16:31 +02:00
Harald Welte f1471e79cc link/use IP and ICMPv6 ProtocolModules
We will use them for router solicitation/advertisements soon
2017-08-09 01:34:51 +02:00