open5gs got the Gy Thresholds fixed recently
(e078b33f0c4d6f34d8991f8ad211dd2d9ea977a0).
AS shown in 3GPP TS 29.244 C.2.1.1 diagram, in Diameter Gy the value
sets the trigger for the "remaining credit", not the "used credit".
"ThresholdPFCP = Quota - ThresholdGy"
The test needs to be adapted since it was wrong too.
Change-Id: Ia283ad4919813241e3c33465ba4be2d2e33f5e54
During TC_addr_pool_exhaustion, if all of the pdp context activations
were unsuccessful, teic_list is an empty list. We therefore cannot
unconditionally obtain its first element.
This patch avoids the related "Index overflow in a value of type
@PreGenRecordOf.PREGEN_RECORD_OF_OCTETSTRING: The index is 0, but the
value has only 0 elements."
Related: OS#6423
Change-Id: I7c7a84ed8343fb48e841248f86d37972f4674ed0
open5gs-smfd was recently modified to send RAT-Type inside
PS-Information instead of MSCC, since having it in the former is
supported since older spec releases and having it in the later creates
problems in some real world OCS implementation like PortaOne OCS.
Related: SYS#6837
Related: open5gs.git d0b31177cca360865ebc6ab0b89eee7ee4fc8d1a,
Related: open5gs.git 3b5e851f5d1328536052031e66a7b9b03c3057f6
Change-Id: I7ce77d08847a0876291f76e901e5c89c339db27d
Prepare to run the GGSN tests in different configurations:
* v4_only: one APN with v4
* v6_only: one APN with v6
* v4v6_only: one APN with v4v6
* all: multiple APNs with all of the above
Related: OS#6096
Related: docker-playground Ia2fe0c3ed4ccf06e72fd258d085e4a79cecd5f26
Change-Id: I6d94a8b18200fbb2119406827b74b83e912e3ecc
This allows the test to change the Result-Code being transmitted during
Gy CCA at any time.
Related: SYS#6845
Change-Id: I2c3b1057908c1c76a55c41a7f45728a0fdee3cf0
The Types are already split in the dependent modules in GTPC_Types and
GTPU_Types.
There's no point in keeping them together in the same file since those 2
protocols are mostly independent.
Furthermore, testsuites using GTPv2C + GTPv1U don't need GTPv1C.
Change-Id: Ic15c9a2e92828cbafb4dda7355ee534107051e2d
Use setverdict(fail, …) instead of shutting down the test. Otherwise we
don't close the PDP context. This fixes TC_pdp6_act_deact failing if it
runs after a failed TC_pdp4_act_update_teid.
Change-Id: Ib31481e79fc81983ae0c36f0512c6b7dba3f28a8
Those interfaces reuse messages from other Diameter RFCs, but changing
the contents of the messages, eg some Mandatory fields like
Service-Context-Id which are mandatory in RFC5006, doesn't even appear
in Gx CCR in TS 29.212.
Keeping them well separated helps in avoiding confusion on users fo the
messages.
Change-Id: Ibe0d5f263813d5083e020c942283f214983162b4
This allows more easily finding, understanding and using the tons of
templates coming from different specs.
Change-Id: I2e6b813a9e4ff98eef575aaaf46dbcf9f1a5d2d4
This Option is not mandatory, but open5gs-smfd started transmitting it
recently (ab64ff9514d8da121500be7b92c9d793ef20b894). Allow it.
Change-Id: Icf3e10dc599d41fb65051670fc3aec5ff0c67510
open5gs 125740727e558c7604897eda711d4d40f2906239 changed behavior and is
no longer sending the Used-Service-Unit AVP during INITIAL_REQUEST,
which makes sense since those values should be only initialized and
spec seems to more or less expect it that way, though receiving it at
INITIAL time should be accepted too AFAICT.
Related: https://github.com/open5gs/open5gs/pull/2721
Change-Id: Ia16a86ff10089974e0b5d49e594467fcd437ce7e
The params are set in GGSN_Tests.cfg and not in GGSN_Tests.default,
because those lower values are not really good default ones as per spec.
For instance when running against open5gs-smfd, these values should be
left to the default in code of 5 and 3 seconds, because open5gs-smfd
doesn't support changing the values through cfg file yet.
Related: OS#5485
Change-Id: I3798fba89c2c357afeaa83a73759442c6c433cea
Since osmo-ggsn.git Ia15c1cfd201d7c43e9a1d6ceb6725ddf392d2c65 osmo-ggsn
supports configuration of X3 timer, which should be set to (T3-RESPONSE
* N3-REQUESTS) configured at the peer.
The default values are 5 and 3 respectively, hence X3 is by default
5*3=15 seconds.
Let's use that default value for now.
Once new osmo-ggsn version is released, we can speed up test duration by
decreasing the values of the module parameters introduced in this commit
and configure VTY gtp timers at osmo-ggsn accordingly.
Related: OS#5485
Change-Id: I02c0982674b43317a5fc8f341c03eeeb1efee77f
in Diameter, the CC-Input/Output direction is defined as follows in
RFC4006:
"""
8.24. CC-Input-Octets AVP
The CC-Input-Octets AVP (AVP Code 412) is of type Unsigned64 and
contains the number of requested, granted, or used octets that can
be/have been received from the end user.
8.25. CC-Output-Octets AVP
The CC-Output-Octets AVP (AVP Code 414) is of type Unsigned64 and
contains the number of requested, granted, or used octets that can
be/have been sent to the end user.
"""
So:
* 3GPP uplink is from end user to PGW, and hence 'CC-Input-Octets'
* 3GPP downlink is to end user to PGW, and hence 'CC-Output-Octets'
This test started failing a few days ago since a bug was recently
fixed in open5gs which was swapping the counters in open5gs-upfd:
https://github.com/open5gs/open5gs/pull/1793f72a1edc6e
Change-Id: I2f64649ce70d85634f14b84eff98731f7711cbad
Multiple-Services-Indicator AVP is only meant to be sent in CCR Init.
Let's not expect it in Update nor in Termination CCR, open5gs stopped
sending it there recently in 9948fba05afb8e1b118f0c29a84ffe38c0f21b75.
Change-Id: Ic4d6be4bf28c65817ce912a8be10937db0b5dba9
All the AVP ecosystem in DIAMETER is quite a mess. There's AVPs defined
in several different specs, sometimes even with the same name and
different AVP code and vendor.
Hence, as we add more templates it becomes important to start using the
prefix in order to differentiate where they come from.
Change-Id: Iec7c51dae136629d6b754de4dd798e988ac51f6b
The Reporting-Reason can be in different places depending on its values.
In the case of TERMINATION, we expect it to be FINAL so we know its
location.
Change-Id: Id33b9bb2f7b469e03a0761dc8807770cfdf77fcc
As seen running a test:
GTP_Templates.ttcn:87 Dynamic test case error: The first argument of function int2oct(), which is 65536, does not fit in 2 octets.
Change-Id: Icbaf42879bade6f5b4e39144ec123bc1b3f893f8
ISDN-AddressString contains an initial byte at the start.
We didn't care so far because we were not yet checking the content of
msisdn, so the usual first '12'O byte was being considered as a header.
Let's store it in GTP format as before, but let's pass it as a
charstring when initializing the PdpContext, so that the human-style is
visible in the test for easy visualization/comparison (It will be
verified in a follow-up patch in Gy Diameter interface).
Change-Id: Ie1b65707d4b08f2201572e1fa44a1f9f985eb096
TS 29.060 states that it shall be included for primary PDP context
activation if the information is available, so let's add it by default.
Change-Id: I8c7e491a07cadfe09403504a82d34e412673a531
This IE is conditionally added if the HLR provides it to the SGSN.
Let's add it by default so that we test code paths where GGSN parses it.
Related: SYS#5925
Change-Id: Ia0f74041d2107afeaa36b94e33474370b7b07c0e
The new message is to be used by Gy interface emulation, which according
to RFC4006 uses AppId 4 "Credit Control Application". The application
is apparently not 3GPP vendor specific.
Change-Id: I0e33673d65140aad34d2efcae3c7f49154ceb99f
We'll start emulating other Diameter-based interfaces soon (Gy), so
let's rename existing stuff which is Gx specific.
The DIAMETER_Emulation only supports handling 1 application-id per
component, and that's fine anyway since the OCS is in general expected
to run in a different conn/node from PCRF.
Change-Id: I1eb03d907b46c4bb24491f390ef468e831190e08
Otherwise a new test may reuse the same GTP seqnum, and if it's still in
the gtp retransmit resp queue of the GGSN, it may be identified as a
duplicate retransmittion of a previous message (previous test) and send
back the previous response instead of processing the request.
Related: OS#5485
Change-Id: I1b04691987b883f63c95c0322a477db4a43df2b1
This test validates that changing the local TEID through UpdatePDPContext
is correctly followed by the GGSN.
Change-Id: Ic6af25866bf7efc2cabf029e49abaf15d5857592
The existing test TC_pdp46_act_deact_gtpu_access_wrong_global_saddr_ipv6
was wrong, because the global address was being finally encoded as a
link local address by f_gen_icmpv6_router_solicitation().
Let's rewrite the test and add a new one for source link local addresses
simlar to the ones used to test IPv6-only APNs.
Change-Id: I3d0790104abea7acb4fa5e33109fe93cc51d94ea