# magma-access-gateway-operator **Repository Path**: mirrors_canonical/magma-access-gateway-operator ## Basic Information - **Project Name**: magma-access-gateway-operator - **Description**: Magma's 4G and 5G core, charmed! - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-02 - **Last Updated**: 2025-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

access gateway badge


Magma Access Gateway Operator

[![Get it from Charmhub](https://charmhub.io/static/images/badges/en/charmhub-black.svg)](https://charmhub.io/magma-access-gateway-operator) [Don't have Juju installed?](https://snapcraft.io/juju) # Description Magma is an open-source software platform that gives network operators a mobile core network solution. Magma has three major components: 1. **Access Gateway** 2. Orchestrator 3. Federation 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.
This charm uses version 1.8.0 of Magma Access Gateway.
For more information on Magma please visit the [official website](https://magmacore.org/). > :warning: Installing this charm will affect the target computer's networking configuration. > Make sure it is installed on designated hardware (personal computers are strongly discouraged). # System requirements ## Hardware (baremetal strongly recommended) - Processor: x86-64 dual-core processor (around 2GHz clock speed or faster) - Memory: 4GB RAM - Storage: 32GB or greater SSD > **NOTE:** For small networks (i.e. 10 eNBs, 10 active subscribers), Magma can produce > around 1 GB of logs per week. Most of these logs will go to /var/log/journal. > To avoid problems with insufficient disk space, it is recommended to configure log rotation > for systemd-journald. For more information please visit > [Ubuntu manuals](https://manpages.ubuntu.com/manpages/focal/man5/journald.conf.5.html). ## Networking At least two ethernet interfaces (SGi and S1) - SGi for internet connectivity - S1 for enodeB connectivity ## Operating System - Ubuntu 20.04 LTS ([Ubuntu installation guide](https://help.ubuntu.com/lts/installation-guide/amd64/index.html)) - Linux Kernel version `5.4` > :warning: Some clouds like AWS use newer kernel versions by default. If you want to downgrade your kernel, please refer to the following [guide](https://discourse.ubuntu.com/t/how-to-downgrade-the-kernel-on-ubuntu-20-04-to-the-5-4-lts-version/26459). # Usage Deploying the Magma Access Gateway requires a machine with two network interfaces, for the SGi interface (this interface will be used to route traffic to the Internet) and the S1 interface (this interface will be used to connect to the eNodeB). Production deployment are highly recommended to be deployed on physical hardware. ## 1. Install ### Using DHCP network configuration For testing the deployment, a VM with two DHCP networks attached will do. Use this command to deploy it: > :warning: The interface names will need to be adjusted based on your specific machine. ```bash juju deploy magma-access-gateway-operator --config sgi=enp0s1 --config s1=enp0s2 --channel edge ``` ### Using static network configuration For static network configuration, the easiest method is to use a YAML configuration file: ```yaml --- magma-access-gateway-operator: sgi: enp0s1 sgi-ipv4-address: 192.168.0.2/24 sgi-ipv4-gateway: 192.168.0.1 sgi-ipv6-address: fd7d:3797:378b:a502::2/64 sgi-ipv6-gateway: fd7d:3797:378b:a502::1 s1: enp0s2 s1-ipv4-address: 192.168.1.2/24 s1-ipv6-address: fd7d:3797:378b:a503::2/64 dns: '["8.8.8.8", "208.67.222.222"]' ``` Deploy the Access Gateway with this command: ```bash juju deploy magma-access-gateway-operator --config agw_config.yaml --channel edge ``` ## 2. Register AGW with an Orchestrator Start by using juju to relate the AGW to the orchestrator. The first step is to offer the orchestrator relation outside of the orchestrator model: ```bash juju offer orc8r-nginx:orchestrator ``` Then you can configure the AGW to connect to the orchestrator: ```bash juju relate magma-access-gateway-operator [[:]/].orc8r-nginx ``` Fetch AGW's `Hardware ID` and `Challenge Key`: ```bash juju run-action magma-access-gateway-operator/ get-access-gateway-secrets --wait ``` Navigate to "Equipment" on the NMS via the left navigation bar, hit "Add Gateway" on the upper right, and fill out the multi-step modal form. Use the secrets from above for the "Hardware UUID" and "Challenge Key" fields. ## 3. Verify the deployment Run the following command: ```bash juju run-action magma-access-gateway-operator/ post-install-checks --wait ``` Successful AGW deployment will be indicated by the `Magma AGW post-installation checks finished successfully.` message. > :warning: Success will only occur when attached with an Orchestrator. # Relations ## lte-core: Connect AGW to an enodeB It is possible to connect the AGW to an enodeB using the [lte-core interface](https://github.com/canonical/lte-core-interface). To relate AGW to [SRS-ENB-UE-Operator](https://github.com/charmed-osm/srs-enb-ue-operator) ```bash juju relate magma-access-gateway-operator ```