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

 

 

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

        }

      }

    }

  }

}