5G core testing solution

Related tags

Testing corescope
Overview

CoreScope

CoreScope combines gNodeB and UE components without any radio transmission. It behaves like a UE and exposes an IP interface, but to the core network side, it directly connects to the AMF and UPF via the gNodeB.

Scope of the project is to connect the existing components of UE and gNodeB, to provide a convenient tool for testing 5G Core setups without the hassle of setting up a RAN infrastructure. Later, it should provide an actual UE simulator with all the fine-grained behavior that the radio connection introduces.

Further information, e.g., build instructions and usage can be found in the wiki.

Issues
  • Corescope Installation Error: cannot find linked files

    Corescope Installation Error: cannot find linked files

    Issue Description

    [100%] Linking CXX executable corescope
    /usr/bin/ld: cannot find -lsrsenb_upper
    /usr/bin/ld: cannot find -lsrsenb_rrc
    /usr/bin/ld: cannot find -lsrsenb_s1ap
    /usr/bin/ld: cannot find -lsrsenb_common
    /usr/bin/ld: cannot find -lsrsgnb_upper
    /usr/bin/ld: cannot find -lsrsgnb_ngap
    /usr/bin/ld: cannot find -lsrsue_upper
    /usr/bin/ld: cannot find -lsrsran_radio
    /usr/bin/ld: cannot find -lenb_cfg_parser
    collect2: error: ld returned 1 exit status
    make[2]: *** [corescope/src/CMakeFiles/corescope.dir/build.make:187: corescope/src/corescope] Error 1
    make[1]: *** [CMakeFiles/Makefile2:9193: corescope/src/CMakeFiles/corescope.dir/all] Error 2
    make: *** [Makefile:166: all] Error 2
    
    

    Setup Details

    While following the instructions provided here after using the following command:

    cmake .. -DCMAKE_INSTALL_PREFIX=~/<install location>
    

    and then executing

    make -j $(nproc)
    

    Current machine: Ubuntu 20.04.3 LTS

    opened by prpr2770 8
  • Wiki Sidebar Links Not Working

    Wiki Sidebar Links Not Working

    Hi,

    The sidebar on the wiki page is not referencing the correct links

    image

    [home]: https://github.com/softwareradiosystems/corescope/wiki
    [install]: https://github.com/softwareradiosystems/corescope/wiki/Installation
    [config]: https://github.com/softwareradiosystems/corescope/wiki/Configuration
    [features]: https://github.com/softwareradiosystems/corescope/wiki/Supported-Features
    [appnote]: https://github.com/softwareradiosystems/corescope/wiki/Application-Note
    

    This should be:

    [home]: https://github.com/srsran/corescope/wiki
    [install]: https://github.com/srsran/corescope/wiki/Installation
    [config]: https://github.com/srsran/corescope/wiki/Configuration
    [features]: https://github.com/srsran/corescope/wiki/Supported-Features
    [appnote]: https://github.com/srsran/corescope/wiki/Application-Note
    

    I opened this issue as I could not find a way to create a PR for the wiki separately.

    opened by infinitydon 1
  • Decoding error on NAS: 5GS tracking area identity list with more than one element

    Decoding error on NAS: 5GS tracking area identity list with more than one element

    Issue Description

    Corescope fails parsing the "5GS tracking area identity list" form the NAS-PDU inside a Registration accept message when the list contains more than one TAC.

    5GS tracking area identity list
        Element ID: 0x54
        Length: 43
        Partial tracking area list  1
            .00. .... = Type of list: list of TACs belonging to one PLMN or SNPN, with non-consecutive TAC values (0)
            ...0 1100 = Number of elements: 13 elements (12)
            Mobile Country Code (MCC): Unknown (1)
            Mobile Network Code (MNC): Unknown (01)
            TAC: 1
            TAC: 2
            TAC: 3
            TAC: 81
            TAC: 111
            TAC: 112
            TAC: 117
            TAC: 121
            TAC: 122
            TAC: 123
            TAC: 141
            TAC: 151
            TAC: 152
    

    Setup Details

    git rev a7fd3284b280cb2122badbc702d4804785139798 Running corescope against an instance of Open5Gcore from Fraunhofer FOKUS. The AMF has configured support for a total number of 13 TAC.

    Expected Behavior

    2022-01-19T15:15:09.111703 [NGAP ] [I] Tx NGAP SDU, UplinkNASTransport, rnti=0xb 2022-01-19T15:15:09.113997 [NGAP ] [I] Tx NGAP SDU, InitialContextSetupResponse, rnti=0xb 2022-01-19T15:15:09.114006 [RRC ] [D] Incoming data from NGAP, writing to UE RRC. RNTI=0xb, 70 Bytes.

    Actual Behaviour

    2022-01-19T15:05:04.949000 [NGAP ] [I] Tx NGAP SDU, UplinkNASTransport, rnti=0xc 2022-01-19T15:05:04.951365 [NGAP ] [I] Tx NGAP SDU, InitialContextSetupResponse, rnti=0xc 2022-01-19T15:05:04.951388 [ASN1 ] [E] [ 0] Decoding Failed (5GS tracking area identity list): Length (43) does not equal expected length 7 2022-01-19T15:05:04.951389 [ASN1 ] [E] [ 0] [/home/o5gc/src/srs/corescope/srsRAN/lib/src/asn1/nas_5g_msg.cc][524] Decoding failure. 2022-01-19T15:05:04.951389 [ASN1 ] [E] [ 0] [/home/o5gc/src/srs/corescope/srsRAN/lib/src/asn1/nas_5g_msg.cc][3929] Decoding failure. 2022-01-19T15:05:04.951389 [ASN1 ] [E] [ 0] [/home/o5gc/src/srs/corescope/srsRAN/lib/src/asn1/nas_5g_msg.cc][3905] Decoding failure.

    Steps to reproduce the problem

    Confige an AMF to send a Registration Accept message with a "5GS tracking area identity list" that contians more than one TAC entry.

    Additional Information

    [Any additional information, configuration or data that might be necessary to reproduce the issue]

    opened by bjoern-r 0
  • Sending of unexpected Configuration update complete NAS message.

    Sending of unexpected Configuration update complete NAS message.

    Issue Description

    corescope is sending an configuration update complete response when it is not requested to by the core. According to 3GPP TS 24.501 Section 5.4.4.3.:

    If "acknowledgement requested" is indicated in the Acknowledgement bit of the Configuration update indication IE in the CONFIGURATION UPDATE COMMAND message, the UE shall send a CONFIGURATION UPDATE COMPLETE message.

    Setup Details

    running corescope against an instance of of the open5gcore from Fraunhofer FOKUS.

    Expected Behavior

    No reply was expected to the configuration update command message.

    Actual Behaviour

    corescope replies with a configuration update complete message.

    Steps to reproduce the problem

    send a NAS PDU with the following contens to corescope:

    NG Application Protocol (DownlinkNASTransport)
        NGAP-PDU: initiatingMessage (0)
            initiatingMessage
                procedureCode: id-DownlinkNASTransport (4)
                criticality: ignore (1)
                value
                    DownlinkNASTransport
                        protocolIEs: 3 items
                            Item 0: id-AMF-UE-NGAP-ID
                            Item 1: id-RAN-UE-NGAP-ID
                            Item 2: id-NAS-PDU
                                ProtocolIE-Field
                                    id: id-NAS-PDU (38)
                                    criticality: reject (0)
                                    value
                                        NAS-PDU: 7e02ff3205d5027e0054431510004f00700065006e003600470063006f00720065450910…
                                            Non-Access-Stratum 5GS (NAS)PDU
                                                Security protected NAS 5GS message
                                                    Extended protocol discriminator: 5G mobility management messages (126)
                                                    0000 .... = Spare Half Octet: 0
                                                    .... 0010 = Security header type: Integrity protected and ciphered (2)
                                                    Message authentication code: 0xff3205d5
                                                    Sequence number: 2
                                                Plain NAS 5GS Message
                                                    Extended protocol discriminator: 5G mobility management messages (126)
                                                    0000 .... = Spare Half Octet: 0
                                                    .... 0000 = Security header type: Plain NAS message, not security protected (0)
                                                    Message type: Configuration update command (0x54)
                                                    Network Name - Full name for network
                                                    Network Name - Short Name
    

    Additional Information

    [Any additional information, configuration or data that might be necessary to reproduce the issue]

    opened by bjoern-r 0
Owner
srsRAN
Open Source 4G/5G from Software Radio Systems (SRS)
srsRAN
C++ Unit Testing Easier: A Header-only C++ unit testing framework

CUTE C++ Unit Testing Easier: A Header-only C++ unit testing framework usually available as part of the Cevelop C++ IDE (http://cevelop.com) Dependenc

Peter Sommerlad 32 Nov 9, 2021
Header-only C++11 library for property-based testing.

autocheck Header-only C++11 library for QuickCheck (and later, SmallCheck) testing. Please consult the wiki for documentation. Install conan remote ad

John Freeman 119 Apr 18, 2022
The fastest feature-rich C++11/14/17/20 single-header testing framework

master branch Windows All dev branch Windows All doctest is a new C++ testing framework but is by far the fastest both in compile times (by orders of

Viktor Kirilov 4k Jul 1, 2022
Googletest - Google Testing and Mocking Framework

GoogleTest OSS Builds Status Announcements Release 1.10.x Release 1.10.x is now available. Coming Soon Post 1.10.x googletest will follow Abseil Live

Google 26.7k Jun 23, 2022
Practical mutation testing tool for C and C++

Mull Mull is a tool for Mutation Testing based on LLVM/Clang with a strong focus on C and C++ languages. For installation and usage please refer to th

Mull Project 626 Jun 20, 2022
C++ xUnit-like testing framework without macros

tst C++ testing framework. Installation, documentation, tutorials See WiKi. Features xUnit-like concepts minimal use of preprocessor macros declarativ

cppfw 8 Jan 24, 2022
proftest is a C application for testing the quality of different operating system APIs for profiling.

proftest is a C application for testing the quality of different operating system APIs for profiling.

Felix Geisendörfer 5 Jul 23, 2021
c++ testing framework

iutest iutest - iris unit test framework Welcome to the iutest iutest is framework for writing C++ tests. Features An XUnit test framework. Header onl

srz_zumix 59 Jun 15, 2022
UT: C++20 μ(micro)/Unit Testing Framework

"If you liked it then you "should have put a"_test on it", Beyonce rule UT / μt | Motivation | Quick Start | Overview | Tutorial | Examples | User Gui

boost::ext 864 Jun 25, 2022
A micro unit-testing library for C/C++

µ-test A micro unit testing framework for C/C++ to get you up and running with unit-testing ASAP (even without libc). Usage Simply include the C and h

Trevor McKay 1 Dec 8, 2021
A tool to help in testing client/server robustness in the presence of malformed data.

Tool to assist in testing robustness of network-attached services in the presence of malformed data.

Peter Farley 0 Jun 11, 2022
Bayesian A/B testing calculations for C++

BayesTest C++ Bayesian A/B testing calculations for C++ Based on this post by Evan Miller Also available in Rust Installation Include the header in yo

Andrew Kane 1 Nov 30, 2021
C++ Testing using spies and fakes for isolation and simulation

ELFspy is a library for linux for writing tests using fakes and spies in C++. For very large call graphs, the testing of the higher nodes can be diffi

Robin Nicholson 46 Jun 12, 2022
A complete unit testing framework in a header

liblittletest A complete unit testing framework in a header liblittletest is an easy to use all-in-an-header testing framework; all you have to do in

Sebastiano Merlino 13 Nov 11, 2021
Modern c++17 unit testing framework on Microsoft Windows, Apple macOS, Linux, iOS and android.

tunit Modern c++17 unit testing framework on Windows, macOS, Linux, iOS and android. Continuous Integration build status Operating system Status Windo

Gammasoft 8 Apr 5, 2022
testing joystick under Linux environment, support monitoring disconnection state and auto recovery mode

qjoystick This qjoystick class is rewritten based on the library: https://github.com/drewnoakes/joystick. Please look at this library if you want to s

ibov 1 Oct 30, 2021
Simple C testing framework

MrTest Simple C testing framework Usage Copy the mrtest.c and mrtest.h file into your project. In order to use the mrtest main: create a .c file that

Maarten Raasveldt 3 Nov 14, 2021
Testing memleaks with /usr/share/bcc/tools/memleak

Testing memleaks with /usr/share/bcc/tools/memleak

Doug Horner 1 Dec 13, 2021
xtest is a C++ testing framework inspired by googletest.

xtest C++ testing framework inspired by googletest Explore the docs » Wiki · Report Bug · Request Feature Contents xtest Commence Prerequisites Ubuntu

Ayush Joshi 2 Apr 16, 2022