Amarisoft

LTE MDT

The purpose of this tutorial is to show how to configure and trigger MDT (Minimization of Driving Test). 'Drive Test' is a kind of testing in which you drive a testing vehicle around a certain route measuring various network performance (e.g, Cell Power, Interference) or UE performance (e.g, Call Drop, Throughput, Handover performance, Cell Reselection Performance etc). Usually during this period, you would collect a lot of protocol logs from UE and analyze by yourself or send them to developers when they have serious problems.

MDT is a feature introduced in 3GPP with the attempt to utilize normal UEs in the field to collect those information and report it to network which hopefully replace driving test as much as possible. According to 37.320, MDT has very wide spectrum as follows.

The MDT that Amarisoft support is Measurement Report from UE and this tutorial is also about this category.

NOTE : For further details of MDT, refer to this note

Table of Contents

Introduction

Minimization of Drive Tests (MDT) is a significant feature standardized by the 3GPP to revolutionize the way mobile network performance data is collected and analyzed. Traditionally, assessing radio network quality and user experience relied heavily on extensive 'drive tests,' which involved deploying specialized vehicles equipped with measurement equipment to traverse target areas while capturing key performance indicators (KPIs) such as signal strength, interference levels, handover success rates, and call drop statistics. While effective, this approach is resource-intensive, costly, and limited in spatial and temporal coverage. MDT addresses these limitations by harnessing the ubiquity of commercial User Equipment (UE) in the field, enabling the network to remotely configure, trigger, and collect measurement reports from regular devices during normal operation. Architecturally, MDT operates through a collaborative mechanism between the UE, the radio access network (eNodeB or gNodeB), and the core network, leveraging control plane signaling to instruct UEs to perform specific measurements and report their results. MDT is further categorized into network-initiated measurements (performed by the base station) and UE-initiated measurements (performed and reported by the UE), with the latter being the focus of this tutorial and widely supported by platforms such as Amarisoft. By facilitating large-scale, real-time, and cost-effective monitoring of network performance, MDT plays a pivotal role in automated optimization, troubleshooting, and quality assurance within modern LTE and NR ecosystems. Its deployment reduces reliance on manual drive testing, contributes to continuous service improvement, and supports advanced features such as self-organizing networks (SON). Understanding how to configure and trigger MDT is essential for network engineers, testers, and operators seeking to leverage field data for proactive network management and enhanced user experience.

Summary of the Tutorial

This tutorial demonstrates the procedure for performing a Logged Measurement Report test (MDT - Minimization of Drive Tests) using Amarisoft Callbox and UEs. The focus is on configuring the environment, executing the test scenario, and analyzing the results to validate logged measurement reporting following a Radio Link Failure (RLF) event.

This tutorial provides a step-by-step methodology to configure, execute, and verify the logged measurement reporting process, focusing on configuration steps, test execution, and log verification while maintaining the necessary technical structure and format.

Test Setup

Test setup for this tutorial is as shown below.

TestSetup multiUE 01

Key Configuration Parameters

Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.

Test 1 : Logged Measurement Report

In this test, I am going to show you the most basic method of operation for MDT. High level sequence of operation in this test is

Configuration

For Callbox (eNB) configuration, I used enb-mdt.cfg which is copied and modified from enb.default.cfg

In terms of configuration, it is super simple to enable tun setup for each UE. There is only one parameter to configure. It is automatic_ue_info_request. Setting this to true will let eNB to send a request to UE asking for the logged measurement when UE notifies to eNB the presence of the logged measurement result.

Perform the test

First make it sure that UE is in connected mode with eNB or gNB.

Power on UE and wait until the call gets connected.

Then trigger the logged measurement using Remote API '{"message":"rrc_logged_meas_config", ...}

[root@CBC-2023010100 enb]# ./ws.js enb '{"message":"rrc_logged_meas_config",

              ran_ue_id:1,

              trace_reference: {

                plmn: "00101",

                trace_id: 0x10

              },

              trace_recording_session_ref: 0x8000,

              tce_id: 5,

              logging_duration: 10,

              logging_interval: 5120,

              type: "periodical"}'

WebSocket remote API tool version 2024-12-09, Copyright (C) 2012-2024 Amarisoft

[0.003] ### Connected to 127.0.0.1:9001

[0.003] ### Ready: name=ENB, type=ENB, version=2024-12-09

[0.022] <== Send message rrc_logged_meas_config id#1

[0.033] ==> Message received

{

    "message": "rrc_logged_meas_config",

    "message_id": "id#1",

    "time": 2235.031,

    "utc": 1733842472.612

}

Now reduce the cell power to the point where UE start loosing connection and generate RLF (Radio Link Failure).

Then power cycle UE and perform the normal attach and establish connection.

Log Analysis

Sample Log

eNB sends UE capability enquiry.

Check if UE support loggedMeasurementIdle capability.

Once you run RemoteAPI "rrc_logged_meas_config", eNB send loggedMeasurementConfiguration message.

Decrease Cell Power to cause RLF (RadioLink Failure) and power cycle UE to reattach.

UE should notify the presence of the logged measurement (rlf-InfoAvailable in this case) in RRC Connection Setup Complete message.

As a response to rlf-InfoAvailable  in RRC Connection Setup Complete message, eNB send out ueInformationRequest message to retrieve the RLF information (rlf-ReportRes)

Then UE sends the logged measurement data (rlf-Report in this case) to eNB.

RRC / NAS Signaling

loggedMeasurementConfiguration

{

  message c1: loggedMeasurementConfiguration-r10: {

    criticalExtensions c1: loggedMeasurementConfiguration-r10: {

      traceReference-r10 {

        plmn-Identity-r10 {

          mcc {

            0,

            0,

            1

          },

          mnc {

            0,

            1

          }

        },

        traceId-r10 '000010'H

      },

      traceRecordingSessionRef-r10 '8000'H,

      tce-Id-r10 '05'H,

      absoluteTimeInfo-r10 '241210174337'H,

      loggingDuration-r10 min10,

      loggingInterval-r10 ms5120

    }

  }

}

ueInformationRequest

{

  message c1: ueInformationRequest-r9: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: ueInformationRequest-r9: {

      rach-ReportReq-r9 FALSE,

      rlf-ReportReq-r9 TRUE

    }

  }

}

ueInformationRequest

{

  message c1: ueInformationResponse-r9: {

    rrc-TransactionIdentifier 0,

    criticalExtensions c1: ueInformationResponse-r9: {

      rlf-Report-r9 {

        measResultLastServCell-r9 {

          rsrpResult-r9 8,

          rsrqResult-r9 0

        },

        measResultNeighCells-r9 {

          measResultListEUTRA-r9 {

            {

              carrierFreq-r9 3350,

              measResultList-r9 {

                {

                  physCellId 445,

                  measResult {

                    rsrpResult 18,

                    rsrqResult 13

                  }

                },

                {

                  physCellId 447,

                  measResult {

                    rsrpResult 16,

                    rsrqResult 3

                  }

                },

                {

                  physCellId 427,

                  measResult {

                    rsrpResult 14,

                    rsrqResult 5

                  }

                },

                {

                  physCellId 429,

                  measResult {

                    rsrpResult 13,

                    rsrqResult 7

                  }

                }

              }

            }

          }

        },

        failedPCellId-r10 cellGlobalId-r10: {

          plmn-Identity {

            mcc {

              0,

              0,

              1

            },

            mnc {

              0,

              1

            }

          },

          cellIdentity '1A2D001'H

        },

        connectionFailureType-r10 rlf,

        basicFields-r11 {

          c-RNTI-r11 '003D'H,

          rlf-Cause-r11 t310-Expiry,

          timeSinceFailure-r11 18

        },

        failedPCellId-v1250 {

          tac-FailedPCell-r12 '0001'H

        }

      }

    }

  }

}