All Projects → omec-project → ngic-rtc

omec-project / ngic-rtc

Licence: Apache-2.0 license
NGIC-RTC is Control User Plane Separated (CUPS) architecture 3GPP TS23501 based implementation of EPC Service and Packet Gateway functions (SGW, PGW)

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to ngic-rtc

ergw
erGW - Erlang implementations of GGSN or P-GW
Stars: ✭ 72 (+33.33%)
Mutual labels:  lte, pgw, 3gpp
go-pfcp
PFCP(Packet Forwarding Control Protocol) implementation in Golang.
Stars: ✭ 90 (+66.67%)
Mutual labels:  lte, cups
tp-link-modem-router
Goodies for TP-Link modem routers
Stars: ✭ 44 (-18.52%)
Mutual labels:  lte
osmo-msc
Osmocom implementation of 3GPP Mobile Swtiching Centre (MSC); mirrored from https://gitea.osmocom.org/cellular-infrastructure/osmo-msc
Stars: ✭ 21 (-61.11%)
Mutual labels:  3gpp
falcon
FALCON - Fast Analysis of LTE Control channels
Stars: ✭ 88 (+62.96%)
Mutual labels:  lte
srsRAN
Open source SDR 4G/5G software suite from Software Radio Systems (SRS)
Stars: ✭ 2,759 (+5009.26%)
Mutual labels:  lte
Awesome Cellular Hacking
Awesome-Cellular-Hacking
Stars: ✭ 1,827 (+3283.33%)
Mutual labels:  lte
bts-ce-lite
BTS-CE-Lite (Boda-Lite) is a cross platform vendor and technology agnostic telecommunication network management desktop application
Stars: ✭ 24 (-55.56%)
Mutual labels:  lte
my5G-core
Open source 5G core components based on 3GPP R15
Stars: ✭ 41 (-24.07%)
Mutual labels:  3gpp
bts-ce
Boda Telecom Suite Community Edition (BTS-CE) - An open source vendor and technology agnostic telecommunication network management platform
Stars: ✭ 28 (-48.15%)
Mutual labels:  lte
monster
MONSTeR is a framework built around the LTE system toolbox available in Matlab
Stars: ✭ 21 (-61.11%)
Mutual labels:  lte
blazor-adminlte
This project adapts ADMINLTE 3 so the components can be used from dotnet core Blazor / Server / Web Assembly
Stars: ✭ 182 (+237.04%)
Mutual labels:  lte
Srslte
Open source SDR 4G/5G software suite from Software Radio Systems (SRS)
Stars: ✭ 2,418 (+4377.78%)
Mutual labels:  lte
SDR-Detector
GSM Scanner, RTL-SDR, StingWatch, Meteor
Stars: ✭ 56 (+3.7%)
Mutual labels:  lte
bromelia
A Python micro framework for building Diameter protocol applications.
Stars: ✭ 26 (-51.85%)
Mutual labels:  3gpp
NetworkMode-Enabler
A simple Xposed module which adds "3G only", "4G only", "4G/3G"(for compatible devices) options to the network modes setting
Stars: ✭ 14 (-74.07%)
Mutual labels:  lte
HamLTE
4G LTE software radio implementation for radio amateurs
Stars: ✭ 33 (-38.89%)
Mutual labels:  lte
openbsc
Historical archive of ancient, unsupported old OpenBSC + OsmoNITB; Use OsmoBSC and OsmoMSC now! Mirrored from https://gitea.osmocom.org/cellular-infrastructure/openbsc
Stars: ✭ 52 (-3.7%)
Mutual labels:  3gpp
beboptwo4g
4G/LTE softmod for the Parrot Bebop 2
Stars: ✭ 50 (-7.41%)
Mutual labels:  lte
rssd
Rohde & Schwarz SCPI Driver (in Python)
Stars: ✭ 25 (-53.7%)
Mutual labels:  lte

💥 New features have been released to the e-utran-features branch include:

  • PFCP Support (Sxa,Sxb,Sxa/Sxb reference points)
  • Expanded E-UTRAN procedure support including handover scenarios
  • User Level Packet Copying feature captures session data
  • CSID implementation and UP recovery
  • UPF selection by DNS
  • Predefined Rules
  • UE sessions with multiple Bearer support.
  • Charging by volume and time notification.
  • Session level promotion/demotion due to handover

For more information take a look at the e-utran-features branch and supporting documentation.

Next Generation Infrastructure Core

Introduction

NGIC-RTC is a Control User Plane Separated (CUPS) architecture 3GPP TS23401 based implementation of Evolved Packet Core (EPC) Service and Packet Gateway functions (SGW, PGW) in a run to complete design to maximize packet processing performance per compute core. NGIC-RTC allows runtime configurable SGWC-SGWU <S5/S8>, PGWC-PGWU or SPGWC-SPGWU options.

Interface between Control and User/Data plane i.e. S-PGWC and S-PGWU is ZMQ push-pull mechanism over TCP transport. Options for UDP transport or SDN integration are available too.

                                       EPC Core
                             +-------------------------+
                             | +---------+ +---------+ |
                      Control| |  MME    | |  PCRF   | |
                       Signal| |         | |         | |
         +----------+  +-------+         | |         | |
+--+     |          |  |     | +-----+---+ +---+-----+ |
|UE+-----+          |  |     |       |         |       |
+--+     |          |  |     |   +-----------------+   |
         |          +--+     |   |   |s11      |Gx |   |
+--+     |  eNodeB  +--+     |   | +-------------+ |   |
|UE+-----+  (Base   |  |     |   | |    CP       | |   |
+--+     |  Station)|  |     |   | +-------------+ |   |   +--------------+
         |          |  |     |s1u| +-------------+ |sgi|   | External     |
+--+     |          |  +---------+ |    DP       | +-------+ Network      |
|UE+-----+          |  User  |   | +-------------+ |   |   |              |
+--+     +----------+  Data  |   |    NGIC NFV     |   |   |              |
              ||             |   +-----------------+   |   +--------------+
              ||             +-------------------------+
              ||
              ++

Feature List

The NGIC currently supports the following SAE-GW features:

  • PCC (Policy Control and Charging) rules configuration.
  • ADC (Application Detection and control) rules configuration.
  • Packet Filters for Service Data Flow (SDF) configuration.
  • Packet Selectors/Filters for ADC configuration.
  • UE sessions with multiple Bearer support.
  • SDF and APN based Qos Metering for MBR.
  • Charging by volume and asynchronous notification.
  • Enable command line or display stats periodically.
  • IPv4 support
  • Multiport support
  • Sponsored Domain Name support

High Level Design

The NGIC is divided into Control plane (CP) and Data plane (DP). CP is used to set the PCC rules, QoS profiles, and UE Session to DP via UDP or ZMQ communication performed by the cp_dp_api library. Currently ADC rules are static.

        +----------------+
        |                |
+-----> |    Control     |
 S11    |    Plane       |
<-----+ |                |
        |                |
        +-------+--------+
                |
                |
                | IPC
                |
                v
        +-----------------+
        |                 |
        |                 |
+-----> |     Data        | +--->
 S1U    |     Plane       |  SGi
<-----+ |                 | <---+
        |                 |
        +-----------------+

Below is a packet walk for the DP

          +-----------------------------------------------------------------------------------------------------+
          |                        NGIC Data Plane Flow Diagram.                                                |
          |                               +---------------------------------+           +-----------------+     |        Flow1
          |  +------+  +------+  +------+ |    UE session                   |  +------+ | SDF & ADC Filter|     |    <--------------+
          |  | CDR  |  | APN  |  | PCC  | | +--------------------------+    |  | PCC  | |                 |     |        Flow2
   Flow1  |  |Charg |  | Meter|  | Meter| | |Default            sdf1   |    |  |Gating| |    sdf1         |     |    <--------------+
<-------+ |  |ing   |  |      |  |      | | |Bearer             sdf3   |    |  |      | | <-----------+   |     |
   Flow2  |  |      |  |      |  | sdf1 | | +--------------------------+    |  | sdf1 | |    sdf2         |     |
<-------+ |  |per UE|  |per UE|  | sdf2 | |                                 |  | sdf2 | | <-----------+   |     |        Flow3
   Flow3  |  |per ADC  |      |  | sdf3 | |                                 |  | sdf3 | |                 |     |    <--------------+
<-------+ |  |per   |  |      |  | sdf4 | | +--------------------------+    |  | sdf4 | |                 |     |        Flow4
   Flow4  |  | bearer  |      |  |      | | |Dedicated          sdf2   |    |  |      | | <-----------+   |     |    <--------------+
<-------+ |  |      |  |      |  |      | | |Bearer             sdf4   |    |  |      | |    sdf3         |     |
          |  +------+  +------+  +------+ | +--------------------------+    |  |      | | <-----------+   |     |
          |                               |                                 |  +------+ |    sdf4         |     |
          |                               +---------------------------------+           +-----------------+     |
          |                                                                                                     |
          +-----------------------------------------------------------------------------------------------------+

The CP does session establishment and management by polling the configured S11 interface. Alternatively, the s11 interface may be bypassed to read/write packet capture (pcap) files, as the allocation of TEID and IP addresses are deterministic. The CP manages within its own data structures all required information to process the management of its connections, therefore tests may be performed independent of the data plane. The high level design of the control plane is shown below.

                  +-------------------------------------------------------------+
                  |                     NGIC Control Plane                      |
                  |   +------------------+                 +------------+       |
                  |   | Create Session   |_________________| IP         |       |
                  |   | Parser/Responder |                 | allocation |       |
                  |   +------------------+_______________  +------------+       |
                  |    |                                 \                      |
                  |    |  +------------------+            \___+-------------+   |
                  |    |  | Modify Bearer    |________________| UE/Session/ |   |
                  |    |  | Parser/Responder |                | Bearer data |   |
                  |    |  +------------------+      __________+-------------+   |
                  |    |   |  .                    /                        |   |
          +-----> |    |   |  .                   /          +------------+ |   |
         S11/pcap |    |   |  .                  /        ___| Packet     | |   |
          <-----+ |    |   |  +------------------+       /   | Filters    | |   |
                  |    |   |  | Create Bearer    |______/    +------------+ |   |
                  |    |   |  | Parser/Responder |                          |   |
                  |    |   |  +------------------+                          |   |
                  |    |   |   |  ...                                       |   |
                  |    |   |   |    +------------------+                    |   |
                  |    |   |   |    | Delete Session   |____________________|   |
                  |    |   |   |    | Parser/Responder |                        |
                  |    |   |   |    +------------------+                        |
                  |    |   |   |     |                                          |
                  |    |   |   |     |                                          |
                  |   +------------------+                                      |
                  |   |    CP_DP_API     |                                      |
                  |   +------------------+                                      |
                  +-----------||------------------------------------------------+
                              ||
                              \/
                              DP

Messages currently supported by the control plane include:

  GTP Echo Request (RX) / GTP Echo Reply (TX)
  Create Session Request (RX) / Create Session Reply (TX)
  Delete Session Request (RX) / Delete Session Reply (TX)
  Modify Bearer Request (RX) / Modify Bearer Reply (TX)
  Create Bearer Request (TX) / Create Bearer Reply (RX)
  Delete Bearer Request (TX) / Delete Bearer Reply (RX)
  Bearer Resource Command (RX - on the condition TAD operation type specifies addition or deletion of packet filter)

Error handling is not implemented as specified by 3GPP 29.274, specifically the MME will receive no indication of error. Messages indicating error type may be displayed to console output, depending on type of error.

Furthermore, the control plane expects the contents of these messages to contain certain Information Elements (IE). These may differ from all corner cases allowed by 3gpp 29.274, which will be ignored, and may drop messages if some IEs are not present.

For low level details on the Control Plane see CP_README.MD

Installation

Please refer INSTALL.MD for instructions to install and run CP and DP

Release Notes

Please refer RELEASE_NOTES.MD

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].