Project

General

Profile

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/
Add picture from clipboard (Maximum size: 48.8 MB)