magma / S1APTester

A test tool that simulates the s1aptest functionality of a LTE network
Other
55 stars 43 forks source link

Introduction

S1APTester implements a UE(s) and eNodeB simulator for LTE Radio Access Networks (RAN). The S1APTester is used to validate S1-C and S1-U Interfaces to an LTE EPC. It provides hooks for generating control and user plane procedures on the S1 Interface.

S1APTester is currently used as the S1 testing engine for the following projects:

Architecture

The Network Architecture of S1APTester is shown below

drawing

The S1APTester product contains the following components:

drawing

Compilation of S1APTester modules

S1APTester binary can be generated by executing below compilation steps:

Compile S1SIM Application

$ cd TestCntlrApp/build
$ make cleanall
$ make

On successful compilation, the “libtfw.so” library gets generated under TestCntlrApp/lib folder.

Compile Traffic Generator

$ cd Trfgen/build
$ make clean
$ make

On successful compilation, the “libtrfgen.so” library gets generated under Trfgen/lib folder.

Testing with Magma

Following points should be considered when using S1APTester with Magma

UE IP Address Configuration

While testing with Magma setup, the current configuration parameters in Magma allow allocation of only 243 UE IP addresses. We need to change the configuration in Magma codebase, in order to support allocation of more than 243 UE IP addresses.

The following mask value, i.e., 24 needs to be changed in the file: s1ap_wrapper.py (Filepath: magma/lte/gateway/python/integ_tests/s1aptests/s1ap_wrapper.py)

TEST_IP_BLOCK = "192.168.128.0/24"

Magma has reserved 11 IP addresses for internal purpose and 2 IP addresses (Subnet Zero and All-Ones Subnet) are not allocatable. Therefore, with the mask value of n, the maximum number of UE IP addresses allowed will be ((2^(32-n)) - 13).

Example:
For the mask value of 24, maximum number of allowed UE IP addresses = ((2^(32-24)) - 13) = 243
For the mask value of 20, maximum number of allowed UE IP addresses = ((2^(32-20)) - 13) = 4083
For the mask value of 17, maximum number of allowed UE IP addresses = ((2^(32-17)) - 13) = 32755

Decreasing the mask value will provide more number of UE IP addresses in the free IP address pool.

Note: The testcase s1aptests/test_scalability_attach_detach_multi_ue.py can be considered as a reference testcase for handling IP pool configuration and UE inactivity timer configuration to support large number of UEs

License

S1APTester is BSD License licensed, as found in the LICENSE file.