Skip to main content

Firmware Management

Nokia AirScale Software Package Repository

Host and serve firmware packages for remote software updates


Overview

The Firmware Management page provides a centralized repository for Nokia AirScale base station software packages. Once a package is uploaded to RAN Monitor, it can be installed onto a base station in two ways:

Key Features

  • Upload firmware packages - Store Nokia AirScale .zip software packages
  • Direct install to base station - Download, activate, and roll back software from RAN Monitor without logging into each site
  • Post-reboot validation - Confirm the base station came up on the expected software build after a reset
  • HTTP file serving - Base stations download firmware via standard HTTP URLs
  • MD5 checksums - Automatic checksum calculation for integrity verification
  • URL copy - One-click copy of download URLs for WebEM configuration
  • Storage statistics - Monitor firmware repository disk usage

Workflow Overview


Accessing the Page

URL: https://<ran-monitor-ip>:9443/nokia/firmware

Navigation: Control Panel sidebar > Firmware

The Firmware Management page with upload section and available firmware list.


Storage Configuration

Default Storage Path

Firmware files are stored on the RAN Monitor server filesystem:

/var/firmware/nokia/
├── SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip
├── SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip.md5
├── SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip.metadata.json
├── SBTS24R1_ENB_0000_001093_000000_release_BTSSM_downloadable_A52.zip
├── SBTS24R1_ENB_0000_001093_000000_release_BTSSM_downloadable_A52.zip.md5
├── SBTS24R1_ENB_0000_001093_000000_release_BTSSM_downloadable_A52.zip.metadata.json
└── ...

For each firmware package, the following files are created:

  • .zip - The firmware package
  • .md5 - Cached MD5 checksum
  • .metadata.json - Cached metadata extracted from the package

Custom Storage Path

Configure an alternate storage location in config/runtime.exs:

config :ran_monitor,
firmware_storage_path: "/data/firmware/nokia"
ParameterTypeRequiredDefaultDescription
firmware_storage_pathStringNo/var/firmware/nokiaDirectory path for firmware file storage. Directory is created automatically if it does not exist.

Fallback Behavior

If the configured storage path cannot be created (e.g., permission denied), the system falls back to priv/firmware/nokia within the application directory.


Web UI Reference

Storage Overview

The top section displays repository statistics:

MetricDescription
Firmware FilesTotal number of firmware packages stored
Total SizeCombined size of all firmware files
Storage PathCurrent filesystem location for firmware storage

Upload Section

Upload Nokia AirScale firmware packages:

  1. Click the upload area or drag and drop a .zip file
  2. Verify the filename appears with size information
  3. Click Upload Firmware to store the file

Upload progress displays transfer speed and estimated time remaining.

Supported files: .zip files only (Nokia software packages)

Maximum file size: 15 GB

Upload progress displays:

  • Current upload speed (e.g., 15.37 MB/s)
  • Percentage complete
  • Bytes transferred / total size
  • Estimated time remaining (ETA)

Filename format: Nokia firmware packages follow the naming convention:

SBTS<release>_ENB_<build>_<variant>_release_BTSSM_downloadable_<suffix>.zip

Example: SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip

Firmware List

The table displays all uploaded firmware packages:

ColumnDescription
FilenameFull firmware package filename
ReleaseExtracted release version (e.g., SBTS25R1)
Build DateBuild timestamp extracted from firmware metadata
InfoButton to view detailed firmware metadata
SizeFile size in human-readable format
MD5MD5 checksum (click to copy)
DownloadsNumber of times the firmware has been downloaded
ActionsCopy URL, Download, Delete buttons

Firmware Metadata

Click the Info button on any firmware row to view detailed metadata extracted from the package:

The metadata modal displays comprehensive firmware package details.

FieldDescription
FilenameFull package filename
ReleaseBase station software release (e.g., SBTS25R1)
Build DateTimestamp when the firmware was built
SizeFile size
File ModifiedWhen the file was uploaded to RAN Monitor
Software VersionFull software version string (e.g., FTM_SBTS25R1_2025.05.27_0097)
PS ReleasePlatform software release version
Kernel VersionLinux kernel version
LTE ReleaseLTE software release (e.g., FL19A)
WCDMA ReleaseWCDMA software release (e.g., WBTSFP20C)
Supported Hardware UnitsList of compatible hardware modules (ASCE, ASCF, FCTJ, etc.)
MD5 ChecksumFile integrity checksum
Download URLFull URL for base station downloads

Metadata is automatically extracted from the firmware package on upload and cached for fast access.

Action Buttons

ButtonDescription
InfoView detailed firmware metadata in a modal
Copy URLCopy the firmware download URL to clipboard
DownloadDownload the firmware file directly
DeleteRemove the firmware file from storage

Download URL Row

Below each firmware entry, the full download URL is displayed:

http://<ran-monitor-ip>:4000/firmware/nokia/<filename>.zip

This URL is entered into WebEM's "Remote server" URL field.


MD5 Checksums

Automatic Calculation

MD5 checksums are calculated automatically when firmware files are listed. The checksum is cached in a .md5 file alongside the firmware package for fast subsequent lookups.

Checksum Files

For each firmware package, a corresponding .md5 file is created:

/var/firmware/nokia/
├── SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip
└── SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip.md5

The .md5 file contains the lowercase hexadecimal checksum:

a1b2c3d4e5f6789012345678abcdef01

Verification

Use the MD5 checksum to verify firmware integrity after download:

Linux/macOS:

md5sum SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip

Windows (PowerShell):

Get-FileHash -Algorithm MD5 SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip

Installing Firmware onto a Base Station

RAN Monitor can install an uploaded firmware package directly onto a base station — there is no need to log into each site's WebEM by hand. RAN Monitor connects to the base station's software management interface and carries out the software download, activation, and reboot on your behalf, then confirms the base station came back up on the expected software build.

The same operation can be driven two ways:

  • From the Firmware page in the web UI — point and click. See Via the Web UI.
  • From the JSON API — for automation and bulk rollouts. See Via the API.

Install Stages

An install mirrors the base station's own two-bank software model:

StageWhat happensSite impact
DownloadThe new software is transferred into the base station's passive (standby) software bank.None — the site stays in service on its current software.
ActivateThe base station switches to the newly downloaded software and resets onto it.The site is offline for approximately 10–15 minutes during the reset.

You can run the two stages together (download and activate in one operation) or separately — for example, download ahead of a maintenance window and activate later.

Rollback

A rollback activates the base station's passive software bank (the previously running software) and resets onto it. Use it to back out a problematic upgrade. Rollback does not involve a firmware file — it simply switches back to the software already present in the standby bank.

Post-Reboot Validation

Whenever an operation resets the base station (an activate or a rollback), RAN Monitor waits for the base station to return and confirms the active software bank matches the expected build. The operation is only reported as succeeded once this is confirmed. If the base station comes up on a different build, or does not return within the allowed time, the operation is reported as failed — so a green result always means the target software is genuinely running.

Operation Lifecycle

Because an install can take many minutes (download, activation, reset, and validation), the operation runs in the background. The web UI shows live progress; the API returns a job identifier that you poll for status.

StatusMeaning
runningThe operation is in progress (downloading and/or activating).
validatingThe base station has reset and RAN Monitor is confirming the running build.
succeededThe operation completed and (if it reset the base station) the expected build was confirmed.
failedThe operation failed. See the error field for the reason (e.g. transfer error, build mismatch, validation timeout).

Via the Web UI

From the Firmware page:

  1. Locate the firmware package in the list and click Push.
  2. Select the target base station from the device list (only registered base stations are shown).
  3. Choose the action:
    • Download to BTS — stage the software into the passive bank only (no reset; site stays in service).
    • Activate on BTS — download, switch to the new software, and reset (site goes offline for the reset).
    • Rollback to previous software — reactivate the passive bank and reset.
  4. Progress is shown live — the current step, a transfer progress bar, and, after a reset, a "validating" indicator while RAN Monitor confirms the base station has returned on the target build.
  5. On completion, the result reports the confirmed running software build (or the reason for failure).

The Push dialog installs an uploaded package onto a selected base station and reports live progress.

Note: Activation and rollback reboot the base station. The site is out of service for approximately 10–15 minutes. Schedule these for a maintenance window.

Via the API

The /api/nokia/firmware operations are served over HTTPS on the RAN Monitor API (port 8443). The upload endpoint is served on the web UI (same origin as the Firmware page).

Upload a Firmware Package

Store a package in the repository before installing it. The request body is the raw .zip file.

Endpoint: POST /api/firmware/upload?filename=<name>.zip

curl -k -X POST \
--data-binary @SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip \
"https://<ran-monitor-ip>:9443/api/firmware/upload?filename=SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip"

Response (200):

{
"ok": true,
"path": "/var/firmware/nokia/SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip",
"bytes": 9602426993
}
ParameterTypeRequiredDefaultDescription
filenameString (query)Yes-Target filename to store. Must be a .zip and follow the Nokia naming convention. Returns 409 already_exists if a file of that name is already present.

Trigger an Install

Endpoint: POST /api/nokia/firmware/install

curl -k -X POST "https://<ran-monitor-ip>:8443/api/nokia/firmware/install" \
-H "Content-Type: application/json" \
-d '{
"device": "2057_Guymon_TOY",
"filename": "SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip",
"activate": true
}'

Response (202 Accepted):

{
"data": {
"id": "6f1c8b2a-9d0e-4f3a-8c11-2b7e5a9d4c30",
"status": "running",
"device": "2057_Guymon_TOY",
"filename": "SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip",
"activate": true,
"status_url": "/api/nokia/firmware/install/6f1c8b2a-9d0e-4f3a-8c11-2b7e5a9d4c30"
}
}
ParameterTypeRequiredDefaultDescription
deviceStringYes-Base station name as registered in RAN Monitor.
filenameStringYes-Firmware .zip filename already uploaded to the repository.
activateBooleanNotrueWhen true, the base station switches to the new software and resets. When false, the software is only staged in the passive bank (no reset, site stays in service).

The install runs in the background; poll the status_url for progress. Error responses use { "error": { "code", "message" } } — for example 404 FIRMWARE_NOT_FOUND or 404 DEVICE_NOT_FOUND.

Trigger a Rollback

Endpoint: POST /api/nokia/firmware/rollback

curl -k -X POST "https://<ran-monitor-ip>:8443/api/nokia/firmware/rollback" \
-H "Content-Type: application/json" \
-d '{ "device": "2057_Guymon_TOY" }'

Response (202 Accepted): same shape as install, with "operation": "rollback".

ParameterTypeRequiredDefaultDescription
deviceStringYes-Base station name to roll back to its passive (previous) software bank.

Poll Operation Status

Endpoint: GET /api/nokia/firmware/install/<id>

curl -k "https://<ran-monitor-ip>:8443/api/nokia/firmware/install/6f1c8b2a-9d0e-4f3a-8c11-2b7e5a9d4c30"

Response (200):

{
"data": {
"id": "6f1c8b2a-9d0e-4f3a-8c11-2b7e5a9d4c30",
"operation": "install",
"status": "validating",
"device": "2057_Guymon_TOY",
"filename": "SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip",
"activate": true,
"step": "validating",
"progress": 100,
"status_line": "waiting for BTS to reboot onto SBTS25R1_ENB_0000_001046_000000",
"validated": { "active": "SBTS25R1_ENB_0000_001046_000000", "expected": "SBTS25R1_ENB_0000_001046_000000", "ok": true },
"error": null
}
}
FieldDescription
operationinstall or rollback.
statusOverall state: running, validating, succeeded, or failed.
stepCurrent phase (e.g. transfer, validating).
progressTransfer progress as a percentage (0–100).
status_lineHuman-readable description of the current activity.
validatedPost-reboot check: active (build the base station came up on), expected (target build), and ok (whether they match).
errorFailure reason when status is failed; null otherwise.

Base Station Software Update Workflow

This is the manual, base-station-driven alternative to the direct install above. Use it when you prefer to drive WebEM yourself, or when the base station must pull the package rather than being installed to.

Prerequisites

  • Firmware package uploaded to RAN Monitor
  • Network connectivity from base station to RAN Monitor
  • Access to base station WebEM interface

Step-by-Step Process

Detailed Steps

1. Upload Firmware to RAN Monitor

Navigate to the Firmware Management page and upload the software package:

  • Go to https://<ran-monitor-ip>:9443/nokia/firmware
  • Upload the .zip firmware package
  • Verify the file appears in the firmware list with correct MD5

2. Copy the Download URL

Click Copy URL next to the firmware package. The URL format is:

http://<ran-monitor-ip>:4000/firmware/nokia/<filename>.zip

3. Access WebEM Software Management

Open the base station's WebEM interface:

  • Navigate to Software Management > Software Update
  • View current BTS software versions (Active and Passive)

4. Configure Remote Server

In WebEM's "Download and activate software from" section:

  1. Select Remote server
  2. Paste the copied URL into the URL field
  3. Click Connect and Refresh

WebEM connects to RAN Monitor and retrieves the file listing.

5. Select Firmware and Start Update

  1. Select the firmware file from the Software file dropdown
  2. Optionally run Start SW Reboot Precheck to verify compatibility
  3. Check Activate software after download if immediate activation is desired
  4. Click Start to begin the software update

Post-Update Verification

After the update completes:

  1. Verify the new software version appears as Active in WebEM
  2. Check RAN Monitor for any new alarms from the base station
  3. Confirm cell service restoration via KPIs

Remote Software Update via Configuration Push

Instead of manually accessing WebEM on each base station, you can trigger software updates remotely by uploading a configuration snippet through RAN Monitor's configuration management feature.

How It Works

Configuration Snippet

Create an XML file containing the software download parameters. The base station will fetch the firmware from the specified URL when the configuration is activated.

Example: sw_update.xml

<?xml version="1.0" encoding="UTF-8"?>
<raml xmlns="raml21.xsd" version="2.1">
<cmData type="plan" scope="changes">
<managedObject class="com.nokia.srbts.btsswm:BTSSWM" distName="MRBTS-{site_id}/BTSSWM-1" operation="update">
<p name="swPkgUrl">http://{ran-monitor-ip}:4000/firmware/nokia/SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip</p>
<p name="swPkgActivate">true</p>
</managedObject>
</cmData>
</raml>

Replace:

  • {site_id} - The MRBTS ID of the target base station (e.g., 256, 2057)
  • {ran-monitor-ip} - The IP address or hostname of RAN Monitor accessible from the base station

Pushing the Configuration

  1. Navigate to the base station's detail page in RAN Monitor
  2. Click Config Ops to open configuration operations
  3. Upload the sw_update.xml snippet
  4. Click Validate to verify the configuration
  5. Click Activate to apply the configuration

The base station will download and install the firmware automatically.

Bulk Updates

To update multiple sites, create a separate XML snippet for each site (with the correct MRBTS ID) and push them sequentially through RAN Monitor, or use the API to automate the process.

Parameters Reference

ParameterDescription
swPkgUrlHTTP URL of the firmware package to download
swPkgActivateSet to true to automatically activate after download

Download Tracking

RAN Monitor tracks firmware downloads to help identify which base stations have retrieved software packages.

Tracked Information

For each download, the following information is recorded:

FieldDescription
IP AddressRemote IP address of the downloader
HostnameResolved hostname or matched AirScale name
TimestampDate and time of the download

Viewing Download History

The Downloads column in the firmware list shows the total download count. Hover over the count to see recent download details including IP addresses and timestamps.

Download tracking data is persisted to disk and survives application restarts.


API Access

List Firmware Files

Retrieve firmware inventory via REST API:

Endpoint: GET /api/firmware/nokia

Response:

{
"firmware": [
{
"filename": "SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip",
"size": 1073741824,
"size_formatted": "1.0 GB",
"modified": "2025-01-15T10:30:00Z",
"download_url": "http://ran-monitor:4000/firmware/nokia/SBTS25R1_ENB_0000_001046_000000_release_BTSSM_downloadable_A54.zip",
"metadata": {
"release": "SBTS25R1",
"build": "0000_001046_000000",
"variant": "release",
"suffix": "A54",
"type": "BTS Software"
}
}
],
"stats": {
"file_count": 3,
"total_size": 3221225472,
"total_size_formatted": "3.0 GB",
"storage_path": "/var/firmware/nokia"
}
}

Download Firmware File

Endpoint: GET /firmware/nokia/<filename>

Response: Binary file download with Content-Type: application/zip


Configuration Reference

Download URL Base

Configure the externally accessible base URL for firmware downloads:

config :ran_monitor,
firmware_base_url: "http://ran-monitor.example.com:4000"
ParameterTypeRequiredDefaultDescription
firmware_base_urlStringNohttp://localhost:4000Base URL used when generating download URLs. Set this to the externally accessible hostname/IP of the RAN Monitor server.

This setting affects the URLs displayed in the web UI and returned by the API. The actual file serving uses the application's configured HTTP port.


Troubleshooting

Upload Fails

Symptoms: File upload shows error or never completes

Possible causes:

  • File exceeds 15 GB maximum size
  • File is not a .zip file
  • Insufficient disk space in storage path
  • Permission denied on storage directory

Resolution:

  1. Verify file size is under 15 GB
  2. Confirm file extension is .zip
  3. Check available disk space: df -h /var/firmware/nokia
  4. Verify directory permissions: ls -la /var/firmware

Base Station Cannot Download

Symptoms: WebEM "Connect and Refresh" fails or download times out

Possible causes:

  • Network connectivity issue between base station and RAN Monitor
  • Firewall blocking HTTP port 4000
  • Incorrect URL (wrong IP or hostname)

Resolution:

  1. Verify network path: ping RAN Monitor from base station network
  2. Check firewall allows port 4000 inbound
  3. Confirm URL uses correct IP/hostname accessible from base station
  4. Test URL in browser from same network segment

MD5 Shows "calculating..."

Symptoms: MD5 column shows "calculating..." and never updates

Possible causes:

  • Very large file still being processed
  • File system permission issue preventing .md5 file creation

Resolution:

  1. Wait for calculation to complete (large files take longer)
  2. Click Refresh to reload the page
  3. Check storage directory permissions allow file creation

File Already Exists Error

Symptoms: Upload fails with "already exists" error

Resolution:

  1. Delete the existing file if replacing is intended
  2. Rename the new file if both versions are needed
  3. Verify you're not accidentally re-uploading the same file