Project

General

Profile

Osmo-uecups » History » Version 4

laforge, 04/27/2020 02:52 PM

1 1 laforge
h1. osmo-uecups
2
3 2 laforge
*osmo-uecups* (for _UE Control/User Plane Separation_) is a special-purpose project which emulates the UE/MME/SGW/SGSN side of GTP tunnels.  This can be used in a variety of test use cases where a P-GW or GGSN (or GTP roaming hub) should be tested with a variety of GTP sessions/tunnels/bearers.
4 1 laforge
5
This project is currently under development, hence there's no documentation yet.
6
7 3 laforge
An initial announcment can be found in the Eclipse TITAN Forum at https://www.eclipse.org/forums/index.php/t/1103391/
8
9 4 laforge
10
h2. Usage in PGW testing
11
12
The diagram below illustrates how the @osmo-uecups-daemon@ is used in testing of a PGW:
13
14
{{graphviz_link()
15
digraph G {
16
  rankdir=LR;
17
  ATS [label="Test Suite"];
18
  PGW [label="PGW (under test)"];
19
  daemon [label="osmo-uecups-daemon",color="red"];
20
21
  ATS -> PGW [label="GTP2C"];
22
  ATS -> daemon [label="UECUPS/SCTP"];
23
24
  daemon -> PGW [label="GTP1U"];
25
26
  PGW -> Internet [label="Gi"];
27
  subgraph cluster_foo {
28
    label="netns";
29
    program [label="program\n(e.g. ping)"];
30
  }
31
  program -> daemon [label="IP"];
32
}
33
}}
34
35
h3. osmo-uecups-daemon
36
37
@osmo-uecups-daemon@ has the following functionality
38
39
* receives instructions from the Test Suite via a JSON based "UECUPS" protcol
40
** *create_tun* creates a tunnel and an associaed network namespace with tun device inside
41
** *destroy_tun* destroys a previously created tunnel
42
** *start_program* executes a specified command/program within the network namespace of the tunnel
43
** *reset_all_state* deletes all tunnels, tun devices, network namespaces and kills all started programs
44
* encapsulates packets arriving on the tun devices into GTP1U and sends them to the PGW
45
* decapsulates GTP1u received from the PGW and passses them via the respective tun device [in the respective netns]
46
47
h3. TTCN3 integration
48
49
There are the following TTCN3 modules for integration into TTCN3 test suites, specifically using Eclipse TITAN:
50
51
* *UECUPS_Types.ttcn* contains abstract types used for the UECUPS protocol with the daemon (encoding/decoding of JSON performed automatically/implicitly by TITAN)
52
* *UECUPS_CodecPort.ttcn* contains the definition of a transcoding port on top of the IPL4asp_PT (SCTP)
53
** *UECUPS_CodecPort_CtrlFunct.ttcn* and *UECUPS_CodecPort_CtrlFunctDef.cc* are related helpers
54
55
For an example using all of the above, see the code in 
56
http://git.osmocom.org/osmo-ttcn3-hacks/tree/pgw/PGW_Tests.ttcn
57
58
h2. Source Code
59 1 laforge
60
Source code can be found in git at https://git.osmocom.org/osmo-uecups/
Add picture from clipboard (Maximum size: 48.8 MB)