Open5G2GO: eNodeB Setup
Overview
An eNodeB (evolved Node B) is a base station in LTE/4G networks that handles radio transmission and reception for user equipment (UEs). To integrate a Baicells eNodeB with Open5G2GO, the eNodeB must establish a connection to the MME (Mobility Management Entity) using the S1AP protocol over SCTP.
The S1AP protocol is responsible for:
eNodeB registration and configuration
Mobility management
Session management
Signaling between the eNodeB and core network
Step 1: Register Your eNodeB in Open5G2GO
Before configuring the eNodeB hardware, you must register it in Open5G2GO's configuration file.
Edit the eNodeB Configuration File
Open the configuration file:
nano config/enodebs.yamlUpdate the eNodeB Entry
Replace the example values with your eNodeB's actual information:
enodebs:
- serial_number: "YOUR_SERIAL_NUMBER" # From eNodeB label or web UI
ip_address: "YOUR_ENODEB_IP" # Management IP for SNMP monitoring
name: "My-eNodeB" # Friendly name for dashboard
location: "Office Building A" # Physical location
enabled: trueField | Where to Find It |
|---|---|
| Label on eNodeB hardware, or eNodeB web UI Status page |
| Your eNodeB's management IP (check your network config) |
| Choose any friendly name |
| Physical location description |
Apply the Configuration
After saving the file, restart the backend service:
sudo docker compose -f docker-compose.prod.yml restart backendThe dashboard will now recognize and monitor your eNodeB.
Step 2: Gather Connection Parameters
Before configuring your eNodeB, gather the following information:
Parameter | Value | Notes |
|---|---|---|
MME IP Address | Your Docker host IP (e.g., 10.48.0.110) | This is the IP address where your Open5G2GO MME service is running |
MME SCTP Port | 36412 | Standard SCTP port for S1AP protocol |
MCC (Mobile Country Code) | 315 | Mozambique country code |
MNC (Mobile Network Code) | 010 | Mozambique network operator code |
TAC (Tracking Area Code) | 1 | Area code for location management |
Tip: To find your Docker host IP, run
hostname -Ion your host machine or check your network configuration. For Docker Desktop, this may be127.0.0.1or your machine's local network IP.
Step 3: Configure the eNodeB Hardware
Access the eNodeB Web Interface
Open a web browser
Navigate to the eNodeB's IP address (e.g.,
http://192.168.150.1)Enter your login credentials (default credentials may vary by firmware version typically admin:admin)
Configure Settings
Navigate to Quick Setting
Enter PLMNID: example ‘315010’ and click + icon
In the MME IP Address field, enter your Docker host IP address
Example:
192.168.48.11
In the SCTP Port field, enter
36412If necessary, set TAC and S1 port to match ‘Network’ config in SurfControl UI.
Click Save to apply the changes
Click ‘admin’ in header and ‘reboot’ to apply settings

You may need to remove MME IPSEC bindings in order to update default MME IPs which are Baicell’s Cloud EPC service. Jojn the community in our discord to ask any questions about eNodeb config.
The eNodeB will need to establish a network connection to the MME IP address. Ensure that: - The eNodeB and Docker host are on the same network or have routing configured - Firewall rules allow traffic on port 36412 (SCTP) - The Docker host's firewall is configured to accept S1AP connections
SNMP Monitoring Setup
SurfControl is capable of reading detailed status of Baicells eNodeb if SNMP is enabled.
In Baicells Management UI; go to BTS Setting > Management Server page
Update Source to ‘Specific Network’.
Update Source Network to your LAN subnet. See image below for example; 192.168.48.0/24

Verification
Check eNodeB Connection Status
In the eNodeB web interface, look for the status indicator
The eNodeB should display a "Connected" or "Registered" status
The MME connection should show as active
Check MME Logs for S1Setup
From your Docker host, examine the MME logs for S1Setup messages:
docker compose -f docker-compose.prod.yml logs mme | grep S1SetupYou should see output similar to:
mme_1 | [S1AP] S1-Setup-Request received from eNodeB
mme_1 | [S1AP] S1-Setup-Response sent to eNodeBThe presence of "S1-Setup-Response" indicates successful registration of the eNodeB.
Additional Verification Commands
View all MME logs:
docker compose -f docker-compose.prod.yml logs mmeCheck eNodeB connectivity:
docker compose -f docker-compose.prod.yml logs mme | grep -E "(eNodeB|connected|registered)"Troubleshooting
eNodeB Shows "Disconnected" Status
Verify the MME IP address is correct and reachable from the eNodeB
Check firewall rules on the Docker host to allow port 36412 (SCTP)
Review the MME logs for error messages:
docker compose logs mme
S1Setup Failures
Confirm the PLMN configuration (MCC=315, MNC=010) matches the eNodeB's PLMN settings
Verify the eNodeB firmware is compatible with Open5G2GO
Check that the MME service is running:
docker compose -f docker-compose.prod.yml ps
Network Connectivity Issues
Test connectivity from the eNodeB to the Docker host:
ping <docker_host_ip>Verify the eNodeB can resolve the MME hostname (if using a hostname instead of IP)
Check routing tables on both the eNodeB and Docker host
!!! note For additional support, check the MME logs for specific error codes and consult the eNodeB manufacturer's documentation for your specific firmware version.
Next Steps
Once the eNodeB is successfully connected:
Configure UE (User Equipment) devices to connect to the network
Set up HSS (Home Subscriber Server) subscriber entries for test users
Configure SGW (Serving Gateway) and PGW (Packet Data Network Gateway) settings as needed
Begin testing with UE devices and monitor performance through the Open5G2GO dashboard