GithubHelp home page GithubHelp logo

isabella232 / s1aptester Goto Github PK

View Code? Open in Web Editor NEW

This project forked from facebookarchive/s1aptester

0.0 0.0 0.0 9.03 MB

A test tool that simulates the s1aptest functionality of a LTE network

License: Other

Makefile 0.20% C++ 0.37% C 80.83% RPC 18.56% Logos 0.03% Shell 0.01%

s1aptester's Introduction

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:

  • Magma: An open-source software platform that gives network operators an open, flexible and extendable mobile core network solution.

Architecture

The Network Architecture of S1APTester is shown below

drawing

The S1APTester product contains the following components:

drawing

  • Test Controller Framework (tfwApp)
    • Exposes APIs towards the Test Controller Stub
    • Responsible for configuring and interacting with UE Application and EnodeB Application layers
  • UE Application (ueApp)
    • Simulates the UE
    • Maintains UE related configuration and call processing data. Also has state machines per UE
    • Has NAS codec and security modules to build the NAS messages
  • EnodeB Application (enbApp)
    • Simulates the EnodeB functionality
    • Maintains S1 Connection details
    • Has S1AP and eGTP protocol stacks.
    • Has TUCL Convergence layer, implements TCP and UDP layers
    • Responsible for setting up of S1 Control and User plane
  • Traffic Generator (Trfgen)
    • Provides API for trigerring User plane traffic over LTE bearers of a simulated UE.
    • It uses Iperf3 for traffic generation
  • Test Controller Stub (TestStub)
    • Contains example test cases which use the APIs provided by test framework for simulating various control and user plane procedures.
    • Triggers various test case events towards Test Controller Framework (TFW)
    • Receives and processes events from TFW

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.

License

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

s1aptester's People

Contributors

ardzoht avatar cgiraldo avatar jayashreeam avatar pruthvihebbani avatar rsarwad avatar ssanadhya avatar talkhasib avatar ulaskozat avatar vimal2828 avatar vinashakankitaman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.