Osmo-uecups » History » Revision 4
Revision 3 (laforge, 04/16/2020 06:18 PM) → Revision 4/6 (laforge, 04/27/2020 02:52 PM)
h1. osmo-uecups *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. This project is currently under development, hence there's no documentation yet. An initial announcment can be found in the Eclipse TITAN Forum at https://www.eclipse.org/forums/index.php/t/1103391/ h2. Usage in PGW testing The diagram below illustrates how the @osmo-uecups-daemon@ is used in testing of a PGW: {{graphviz_link() digraph G { rankdir=LR; ATS [label="Test Suite"]; PGW [label="PGW (under test)"]; daemon [label="osmo-uecups-daemon",color="red"]; ATS -> PGW [label="GTP2C"]; ATS -> daemon [label="UECUPS/SCTP"]; daemon -> PGW [label="GTP1U"]; PGW -> Internet [label="Gi"]; subgraph cluster_foo { label="netns"; program [label="program\n(e.g. ping)"]; } program -> daemon [label="IP"]; } }} h3. osmo-uecups-daemon @osmo-uecups-daemon@ has the following functionality * receives instructions from the Test Suite via a JSON based "UECUPS" protcol ** *create_tun* creates a tunnel and an associaed network namespace with tun device inside ** *destroy_tun* destroys a previously created tunnel ** *start_program* executes a specified command/program within the network namespace of the tunnel ** *reset_all_state* deletes all tunnels, tun devices, network namespaces and kills all started programs * encapsulates packets arriving on the tun devices into GTP1U and sends them to the PGW * decapsulates GTP1u received from the PGW and passses them via the respective tun device [in the respective netns] h3. TTCN3 integration There are the following TTCN3 modules for integration into TTCN3 test suites, specifically using Eclipse TITAN: * *UECUPS_Types.ttcn* contains abstract types used for the UECUPS protocol with the daemon (encoding/decoding of JSON performed automatically/implicitly by TITAN) * *UECUPS_CodecPort.ttcn* contains the definition of a transcoding port on top of the IPL4asp_PT (SCTP) ** *UECUPS_CodecPort_CtrlFunct.ttcn* and *UECUPS_CodecPort_CtrlFunctDef.cc* are related helpers For an example using all of the above, see the code in http://git.osmocom.org/osmo-ttcn3-hacks/tree/pgw/PGW_Tests.ttcn h2. Source Code Cdoe Source code can be found in git at https://git.osmocom.org/osmo-uecups/