Convert Figma logo to code with AI

magma logomagma

Platform for building access networks and modular network services

1,728
615
1,728
383

Top Related Projects

2,001

Open5GS is a C-language Open Source implementation for 5G Core and EPC, i.e. the core network of LTE/NR network (Release-17)

Open source SDR 4G software suite from Software Radio Systems (SRS) https://docs.srsran.com/projects/4g

1,994

Open source 5G core network based on 3GPP R15

Quick Overview

Magma is an open-source mobile network platform that aims to simplify and accelerate the development of mobile network infrastructure. It provides a flexible and scalable solution for building and managing cellular networks, supporting various technologies such as LTE, 5G, and WiFi.

Pros

  • Highly scalable and modular architecture
  • Supports multiple access technologies (LTE, 5G, WiFi)
  • Open-source with a growing community of contributors
  • Designed for easy integration with existing network infrastructure

Cons

  • Relatively complex setup process for beginners
  • Limited documentation for some advanced features
  • May require significant resources for large-scale deployments
  • Still evolving, which can lead to occasional stability issues

Getting Started

To get started with Magma, follow these steps:

  1. Clone the repository:

    git clone https://github.com/magma/magma.git
    cd magma
    
  2. Install dependencies:

    sudo apt-get update
    sudo apt-get install -y curl make virtualenv
    
  3. Build Magma:

    cd lte/gateway
    make run
    
  4. Configure your network settings in the Orchestrator web interface.

  5. Deploy Access Gateways and configure them to connect to your Orchestrator.

For detailed instructions and advanced configuration options, refer to the official Magma documentation.

Competitor Comparisons

2,001

Open5GS is a C-language Open Source implementation for 5G Core and EPC, i.e. the core network of LTE/NR network (Release-17)

Pros of Open5GS

  • Lightweight and efficient implementation of 5G core network functions
  • Easier to set up and configure for small-scale deployments
  • More focused on core network functionality, making it simpler for specific use cases

Cons of Open5GS

  • Less comprehensive ecosystem compared to Magma
  • Limited support for advanced features like network slicing and edge computing
  • Smaller community and fewer integrations with third-party tools

Code Comparison

Open5GS (C language):

ogs_socknode_t *ngap_client(ogs_socknode_t *node)
{
    ogs_assert(node);
    ogs_assert(node->sock);

    node->poll.read = ngap_recv_handler;
    node->poll.write = ngap_write_handler;

    return node;
}

Magma (Python language):

def create_service(mconfig: MagmaD, loop: asyncio.AbstractEventLoop):
    """Create magmad service"""
    service = MagmaService('magmad', mconfig, loop=loop)

    # Start services
    service.loop.create_task(service.run())
    return service

The code snippets demonstrate the different languages and approaches used in each project. Open5GS focuses on low-level networking in C, while Magma uses Python for higher-level service management.

Open source SDR 4G software suite from Software Radio Systems (SRS) https://docs.srsran.com/projects/4g

Pros of srsRAN_4G

  • Focused specifically on 4G/LTE implementation, providing a more specialized solution
  • Lighter weight and potentially easier to deploy for smaller-scale or research-oriented projects
  • More active development and frequent updates

Cons of srsRAN_4G

  • Limited to 4G/LTE, while Magma supports multiple generations (2G, 3G, 4G, 5G)
  • Less comprehensive network management features compared to Magma's end-to-end solution
  • Smaller community and ecosystem compared to Magma's backing by major tech companies

Code Comparison

srsRAN_4G (C++):

int srslte_ue_dl_decode_pdsch(srslte_ue_dl_t* q,
                              cf_t*           sf_symbols[SRSLTE_MAX_PORTS],
                              srslte_pdsch_cfg_t*  pdsch_cfg,
                              srslte_pdsch_res_t*  data)
{
  // PDSCH decoding implementation
}

Magma (Python):

def allocate_ip_address(self, sid: SubscriberID) -> AllocateIPAddressResponse:
    """
    Allocate an IP address for a subscriber.
    """
    # IP allocation implementation

The code snippets highlight the different focus areas: srsRAN_4G deals with low-level signal processing, while Magma handles higher-level network management tasks.

1,994

Open source 5G core network based on 3GPP R15

Pros of free5gc

  • More focused on 5G core network implementation
  • Lighter weight and potentially easier to deploy
  • Stronger adherence to 3GPP standards

Cons of free5gc

  • Less comprehensive ecosystem compared to Magma
  • Fewer integrations with existing network components
  • Limited support for legacy networks (2G/3G)

Code Comparison

free5gc (Go):

func (smf *SMF) HandlePDUSessionEstablishmentRequest(req *nasMessage.PDUSessionEstablishmentRequest) {
    // Implementation details
}

Magma (C++):

void MagmaService::HandleSessionRequest(const SessionRequest& request) {
    // Implementation details
}

Both projects aim to provide open-source 5G core network solutions, but they differ in their approach and focus. free5gc is more specialized in 5G core implementation, while Magma offers a broader range of features and network support.

free5gc is written primarily in Go, which can lead to easier deployment and maintenance. Magma, on the other hand, uses a mix of languages including C++ and Python, potentially offering more flexibility but with increased complexity.

Magma provides a more comprehensive solution for mobile network operators, including support for older network generations and integration with various network components. free5gc, while more focused on 5G, may be a better choice for those specifically looking to implement a standards-compliant 5G core network.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Magma

Connecting the Next Billion People

License GitHub Release PR's Welcome GitHub contributors GitHub last commit GitHub commit activity the past week CodeCov

Magma is an open-source software platform that gives network operators an open, flexible and extendable mobile core network solution. Magma enables better connectivity by:

  • Allowing operators to offer cellular service without vendor lock-in with a modern, open source core network
  • Enabling operators to manage their networks more efficiently with more automation, less downtime, better predictability, and more agility to add new services and applications
  • Enabling federation between existing MNOs and new infrastructure providers for expanding rural infrastructure
  • Allowing operators who are constrained with licensed spectrum to add capacity and reach by using Wi-Fi and CBRS

Documentation

Join the Magma community

Direct detailed technical questions to the GitHub Discussions page. Your question might already have an answer, and if not we want the answer you get to be available in the future.

Contact us in real-time using Slack: magmacore workspace.

Magma Architecture

The figure below shows the high-level Magma architecture. Magma is 3GPP generation (2G, 3G, 4G or upcoming 5G networks) and access network agnostic (cellular or WiFi). It can flexibly support a radio access network with minimal development and deployment effort.

Magma has three major components

  • Access Gateway. The Access Gateway (AGW) provides network services and policy enforcement. In an LTE network, the AGW implements an evolved packet core (EPC), and a combination of an AAA and a PGW. It works with existing, unmodified commercial radio hardware.

  • Orchestrator. Orchestrator is a cloud service that provides a simple and consistent way to configure and monitor the wireless network securely. The Orchestrator can be hosted on a public/private cloud. The metrics acquired through the platform allows you to see the analytics and traffic flows of the wireless users through the Magma web UI.

  • Federation Gateway. The Federation Gateway integrates the MNO core network with Magma by using standard 3GPP interfaces to existing MNO components. It acts as a proxy between the Magma AGW and the operator's network and facilitates core functions, such as authentication, data plans, policy enforcement, and charging to stay uniform between an existing MNO network and the expanded network with Magma.

Magma architecture diagram

License

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

The EPC originates from OAI (OpenAirInterface Software Alliance) and is offered under the same BSD-3-Clause License.

Risks

The Magma materials are provided in accordance with the licenses made available in the LICENSE file. Prior to using the materials, it is highly recommended that you test and verify that the materials meet your specific requirements, including, without limitation, any and all security and performance requirements.

Security

Responsible disclosures from independent researchers are gratefully accepted. See the Security Policy for submission details and Security Overview for Contributors to learn about other ways of contributing.

We appreciate very much the valuable disclosures (and often fixes) from the following security researchers:

  • Nathaniel Bennett (University of Florida). The contributions by Mr. Bennett required deep knowledge of code, networking, security, and Magma. We're grateful.
  • Yilu Dong, Tianchang Yang, Abdullah Al Ishtiaq, Syed Md Mukit Rashid, Ali Ranjbar, Kai Tu, Tianwei Wu, Md Sultan Mahmud, Syed Rafiul Hussain (The Pennsylvania State University)
  • Guarang Maheta
  • Phi Trần