Frequently Asked Questions
This section lists some of the commonly asked questions related to Magma operation.
Access Gateway
How can I check the status of eNodeB(s) connected on a particular gateway?
- Run
sudo enodebd_cli.py get_all_status
to check eNodeB(s) status. - NOTE: Output of this command will only show eNodeB(s) configured with TR069 protocol.
How can I see different interfaces of gateway?
- Run
sudo ip addr
to see all configured interfaces. - Commonly, interface
eth0
is used for internet connectivity andeth1
is used for RAN connectivity. - You may run
ping google.com -I eth0
to check AGW connectivity with internet. - Also, you may run
ping <eNodeB IP> -I eth1
to check AGW connectivity with eNodeB. You can get eNodeB IP fromenodeb_cli
as mentioned in above question.
How can I see attached subscribers list on a particular gateway and their browsing status?
- Run
sudo mobility_cli.py get_subscriber_table
, to see all attached subscribers. - Note down the IP obtained by the user from above command, then run
sudo pipelined_cli.py debug display_flows | grep <USER IP>
for packet flow info of that user.
How can I check services running on a gateway and their status?
- Check all services:
sudo service magma@* status
. - Check specific service:
sudo service magma@<SERVICE_NAME> status
. e.g.sudo service magma@enodebd status
.
How can I collect logs for a particular service?
- Run
sudo journalctl -fu magma@<SERVICE NAME>
, e.g. for enodeb service, runsudo journalctl -fu magma@enodebd
.
How can I check the status of the OVS module on a gateway?
- Run
sudo ovs-vsctl show
to check.
How can I capture packets for troubleshooting?
- You can use general purpose tcpdump command to capture traffic at any of your interfaces. e.g. run
sudo tcpdump -i eth1 -w /tmp/capture.pcap
to capture packet at eth1 interface.
What are the common troubleshooting logs in gateway?
- syslog:
/var/log/syslogs
. - MME logs:
/var/log/mme.log
. - eNodeB logs:
/var/log/enodebd.log
.
Where can I find the configuration of a gateway?
- File
/var/opt/magma/configs/gateway.mconfig
is the configuration streamed down from Orchestrator. - Any custom static configs will also be in directory
/var/opt/magma/configs
with a.yml
extension. - Default static configs are located at
/etc/magma/configs
. - systemd unit files are located at
/etc/system/systemd
.
How can I restart gateway services?
- There are 2 options to restart gateway services. First from CLI and other from NMS UI.
- To restart services from CLI, login to AGW node, then perform below steps:
- Run
sudo service magma@* stop
to stop services. - Then, run
sudo service magma@magmad restart
to restart services.
- Run
- To restart services from NMS UI, perform below steps:
- Login to NMS UI and go to Gateways option from left hand pane menu.
- Then, click on edit option against the gateway for which you wish to reboot services.
- From the popup window, select tab COMMANDS. Then, check section Reboot.
- Click on Restart Services to restart all AGW services.
How can I reboot the gateway?
- There are 2 options to reboot gateway. First from CLI and other from NMS UI.
- To reboot AGW from CLI, login to AGW node, then run
sudo init 6
to reboot whole AGW node. - To reboot AGW from NMS UI, perform below steps:
- Login to NMS UI and go to Gateways option from left hand pane menu.
- Then, click on edit option against the gateway which you wish to reboot.
- From the popup window, select tab COMMANDS. Then, check section Reboot.
- Click on Reboot to reboot the AGW node.
Does the AGW support IPv6?
- IPv6 and dual stack IPv4v6 session support is implemented for Magma v1.7 and later.
How to change hardware UUID of AGW?
- Hardware UUID is in
/etc/snowflake
. - Delete file
/etc/snowflake
and restart magma@magmad systemd service, which will create new one. - NOTE If you reinstall magma, the UUID hardware ID will change.
How to switch between info/debug mode in mme logs?
- Modify
/var/opt/magma/configs/mme.yml
and add the line"log_level: DEBUG"
, - Restart the mme service with
sudo service magma@mme restart
. - NOTE Expect impact of service while doing above procedure.
What's the command to flush the redis state?
- The command in AGW
redis-cli -p 6380 FLUSHALL
will flush the redis state
Where can I get more information about services running in Magma?
How can I detach/purge a subscriber from AGW?
- The command
s6a_service_cli.py delete <IMSI>,<IMSI>
will detach the list of subscriber from MME. - Detached subscribers will need to reattach to the network.
How to change MME IP address?
- Edit the IP address of eth1 interface:
sudo vim /etc/network/interfaces.d/eth1
- Then restart network manager:
sudo systemctl restart networking
- And check IP again:
ip a s eth1
How can I check if a given subscriber is idle or connected?
- SSH into the the AGW
- Fetch the subscriber's state using its IMSI:
state_cli.py parse IMSI716770120257790:MME
- Looking at the
ecm_state
configuration, the value:- 0 - Indicates the user is IDLE
- 1 - Indicates the user is CONNECTED
Orchestrator
How can I check production pods in Orchestrator running on Kubernetes?
- For all pods:
kubectl --namespace orc8r get pods
. - Logs of a particular pod:
kubectl --namespace orc8r logs -f <CONTROLLER PODNAME>
. - NOTE: In above commands, please use the actual namespace after
--namespace
you have chosen to install orc8r in.
How can I test Orchestrator connection with Gateway?
- Login to Gateway, then run
sudo checkin_cli.py
.
Where can I find API endpoint?
- If you have followed the install guide, it'll be at
https://api.youdomain.com/swagger/v1/ui/
. - You will need to load the
admin_operator.pfx
certificate into your keychain/browser, otherwise, API access will be blocked.
How can I use Swagger UI to trigger API request?
- Open Swagger UI, then got to interested section, e.g. EnodeBs.
- Then click on API trigger action button e.g. GET, PUT, DELETE etc.
- Click on Try it out button on right hand side.
- Put in the required inputs and click Execute.
How can I check the services running in Orchestrator?
- List the running pods with
kubectl --namespace orc8r get pods
- Grab the name of orc8r-controller pods, they are in the format
orc8r-controller-xxxxxxxxxx-yyyyy
- Collect the state of services on each pod:
kubectl --namespace orc8r exec orc8r-controller-xxxxxxxxxx-yyyyy bash -- supervisorctl status
How to verify which services are running in Orc8r-controller?
- Get the controller pods:
kubectl --namespace orc8r get pods
. - Execute the command in the pod:
kubectl --namespace orc8r exec <CONTROLLER PODNAME> supervisorctl status
.
NMS
What is an NMS (Network Management System)?
- NMS is a simple UI based solution provided to manage, configuring, and monitor the network effectively. You can monitor various network metrics, configure and monitor alerts, subscribers, gateways, eNodeBs etc.
How can I check various network metrics over NMS?
- Login to NMS UI, then click Metrics on the left hand side menu to check various network metrics available.
How can I configure an alert on NMS?
- Login to NMS UI, then click on Alert on left hand side menu. Go to tab Alert Rules to configure rule for alert.
How can I make sure Gateway is properly connected with NMS?
- Login to NMS and select Gateway from left hand side menu bar.
- You can see all the Gateways configured in NMS.
- Check for the Green light besides any particular Gateway, if it is green that means it is properly connected.
How can I restart eNodeB from NMS?
- Login to NMS UI and go to Gateways option from left hand pane menu.
- Then, click on edit option against the gateway with which eNodeB is connected.
- From the popup window, select tab COMMANDS. Then, check section Reboot eNodeB.
- Enter eNodeB serial ID of eNodeB and click on Reboot to reboot that particular eNodeB.
- Note:Only those eNodeBs can be rebooted in this manner which are configured with TR069 protocol.
How to enable events and log aggregation?
- Network Management → Equipment → Gateways → Select the Gateway → Config → Aggregations → Edit → Enable Log and Even Aggregations.
- Make sure
fluentd_address
andfluentd_port
is added incontrol_proxy.yml
on AGW.
How to enable pre-defined alerts on NMS?
- Administrative Tools → Alerts → Select Network → Sync Alert.
Miscellaneous
How to disable dhcp in AGW for eNB?
- Network Management → Equipment → Gateways → Select the Gateway → Config → RAN → Edit → Disable eNodeB DHCP service.
What is a core dump?
- When AGW services crash with a segmentation fault, a core dump is generated.
- Core dumps are generated in format
core-<timestamp>-<process_name>[-<PID>]
under/tmp
folder. - Use GDB tool to analyse them as
cd /tmp/<core-directory>/
gunzip <core gzip file>
gdb /usr/local/bin/<process name> <unzipped core file>
.