Out of the Box Test - WebGUI
The purpose of this tutorial is to show you how to utilize WebGUI tool to analyze, save, import logs captured by Amari Callbox and UE sim. Once you get familiar with the basic operations of WegGUI, you can use this tutorial as a cheatsheet for various detailed functionality of the WebGUI.
WebGUI is originally designed to view the collected the log (*.log files) in more user friendly format (in GUI), but the functionality of WebGUI has been evolving greatly, now it is much more than just a log viewer. In addition to viewing the log, it has following additional functionalities and this list would continuously increase. Personally I am always using WebGUI by default whenver I use Callbox or UEsim
- Changing options for log collection. : This is usually done in configuration file (*.cfg file) or log command in command line console. You can do the same thing in WebGUI on the fly. (NOTE : There are some log loptions that can be configured only in configuration file, but more than 95 % of the log options can be configured in WebGUI)
- Post Processing of the collected log : WebGUI provides so many types of post processing functionalities (mostly converting various kind of low layer log into graphical format) and this is what I like the best about WebGUI. You would see some of the examples of those post processing function in this tutorial and various other processing feature in other tutorials in tech-academy.
- Command Line Console : You can execute a command line consoles for each network components and perform various things as you do in standalone command line console.
- Network Monitor : Recently WebGUI started supporting Network Monitoring functionality as shown in this tutorial.
Table of Contents
- Out of the Box Test - WebGUI
- Test Setup
- Enabling Logging / Interpretation of Indicators
- Setup Properties and Get the log
- Change Properties for more detailed log
- Saving / Exporting the Log
- Opening the exported Log
- Analysis and Post Process
- Collecting Log from a Specified Server
- Tips : Callbox(gNB/eNB/Core Network)
- Enabling BCCH (SIB) logging
- Enabling MIB logging
- Enabling full log in eNB/gNB
- Enabling full log in MME
- Enabling full log in IMS
- Capture and Display Corenetwork Interfaces
- Launching Screen Window within WebGUI
- Displaying UE Capability Information Table
- Tx gain and Rx Gain Change
- Analyze Constellation
- Analyze Channel Response
- Checking UL Power
- Plotting TPC command values
- CRC Error Check with RB Map
- BWP Switching Verification
- Enabling CSI Decoding
- Finding the cause of RRC Release
- PHY Scheduling Analysis
- Tips : UEsim
- Troubleshoot
Test Setup
If you want just to open up the saved log and alanlyze, you don't need any special hardware configuration. You just need Amarisoft Callbox or UEsim installed with WebGUI package. Or you can use WebGUI even without anything installed on your side. You can remotely use the WebGUI running on Amraisoft via this link . Probably the most common evenrionmen where you use the WebGUI would be something as follow. In this setup, WebGUI server is running on Amarisoft Callbox or UEsim and you are launching WebGUI using Internet browser (e.g, Chrome, Edge, FireFox etc) over LAN or WiFi.
Set IP on the call box and Client PC in such a way that they belong to the same subnet. In this tutorial, I configured IP as shown below but you can assign any IP as long as they are in the same subnetwork.
Check on Call Box IP on your Callbox PC and remember the IP. It will be used as Web GUI Server PC you will get access to. (NOTE : If the Callbox is not configured with any IP, you can configure and assign an IP manually).
Check the IP address on WebGUI Client PC. Make it sure that Callbox IP and WebGUI client PC are configured to belong to the same subnet.
Enabling Logging / Interpretation of Indicators
In this section, I will talk about how to enable / start logging and several usefual indicators (icons).
In most case, when you open the WebGUI while lte service is running, the WebGUI is automatically connected to the lte service and log is being collected, but sometimes the connection might not be done automatically for some reason. You can manually connect / disconnect to each component for logging as shown below.
In Callbox, follow the instruction / comment as shown below. As you see, there are many icons and menus. Some of them are straightfoward and would not need any specific explanation, but some of them may not look clear at the first look but they can be a usefual indicators for various status if you clearly understand what it represent.
In UEsim, the same logic applies. For the instruction / comments, see the Callbox screenshot shown above.
What if it is not connected ?
Sometimes you may come across the cases where a component is not connected. There can be various reasons behind the issue and there are a few common checkpoint to find the root cause.
The component is not running properly
Check if each component is running problem. If you have problem with a specific component execution, you see the component marked as 'Not connected'. Following is an example.
IP missing OR not properly specified
Check if IP address and port are properly set. Sometimes you may see the case where IP address is empty (not specified at all).
WebGUI Client PC fails to get access to Server(Callbox or UEsim)
If you are running the WebGUI from different PC than Callbox/UEsim (I think this is the case for the most of users), make it sure that the WebGUI client PC can get access to the server (Callbox or UEsim). Just try ping from the WebGUI PC to server. If ping does not work, you have to fix it and get the client / server connected.
Setup Properties and Get the log
WebGUI can collect an huge amount of imformations with very diverse aspect. You can choose only those informations that you want instead of collecting every possible data as per your demand. In this section, I will go through how to configure / select the type of information you want to collect.
Launch any type of browser from WebGUI Client PC and type in the IP address of the Callbox as shown below. (Firefox, Chrome, Microsoft Internet Explorer / Edge are the ones that I personally have used, but I think any kind of browser can be used).
Setup ENB Property
If you have the lte service running and refresh the page, you will get the items as shown below.
Now let's take a look at how to set the properties for ENB log. First, Select [ENB] and hit [Property] tool menu as indicated below.
Then you will have a popup as shown below. Once you get the property selection window, you can select the specific payload types and specify the length of each payload. This example shows the property window for eNB/gNB. Every components (e.g, ENB, MME, IMS etc) has its own property window. ENB collects every layers running on RAN side for example PHY, MAC, RLC, RRC, PDCP, NAS and interfaces with core network (e.g, S1AP, NGAP, GTPU etc)
Once you specified the property as you want and press [Update] button, WebGUI will collect the log as you specified in the property window.
Setup MME Property
Now let's look into how to configure MME property. First, Select [MME] and hit [Property] tool menu as indicated below.
Then you will have a popup as shown below. Once you get the property selection window, you can select the specific payload types and specify the length of each payload. This example shows the property window for MME. Every components (e.g, ENB, MME, IMS etc) has its own property window. MME collects various components that comrises 4G/5G core network , various interfaces within the core network (e.g, N8, N12, N13, N17, S13 etc), User data packet (e.g, GTPU, IP) etc.
Once you specified the property as you want and press [Update] button, WebGUI will collect the log as you specified in the property window.
Setup IMS Property
Now let's look into how to configure IMS property. First, Select [IMS] and hit [Property] tool menu as indicated below.
Then you will have a popup as shown below. Once you get the property selection window, you can select the specific payload types and specify the length of each payload. This example shows the property window for IMS. Every components (e.g, ENB, MME, IMS etc) has its own property window. IMS collects various traffics related to IMS signaling (e.g, SIP, IMS) and traffics (e.g, MMS, MEDIA etc) .
Once you specified the property as you want and press [Update] button, WebGUI will collect the log as you specified in the property window
The final result of the collected log as you selected in property window would be something like below.
Change Properties for more detailed log
In addition to just selecting and unselecting a certain item, you can specify the properties of each payload type in more detail. For example, you can specify when to collect the data. For example, you can specify whether you collect every payload or collect only when a certain event happens etc. In this section, I will go through how to specify those details.
Most important details on the property is 'Level' column. It has three options : warn, error, debug. If you set it to 'warn' or 'error', the selected payload is collected only when some warning or error occurs. If it is set to 'debug', the selected payload is always captured.
As an example, if you set 'Level' column to 'debug' as shown below, the every selected payload is collected everytime it is generated.
If every payload is selected and every payload is set to 'debug', you get the full stack log as shown below.
Saving / Exporting the Log
You can export/save the captured log into files as shown here. (
From this what is shown here may be a little bit different from what you see in your setup depending on the type of browser and security settings, Amarisoft software version etc. But you would get the general idea on how it works with no problem.
Depending on the browser type and security setup, you may or may not have a popup asking if you want to allow the file download or not. If you get this popup, allow it.
If you use a little bit older version of Amarisoft software, the file will get downloaded right away as shown at the bottom of the screen. If you are using the latest version, you would get a popup asking you to specify the name of the log file before the download.
If download is complete, you will get the files saved in "Download" directory.
Opening the exported Log
WebGUI can be used not only for capturing and saving the log but also for loading the saved logs and analysis. In this section, I will go through how to load the saved log file.
First, hit [File] button.
File Browser will pop up. Select the log file and hit [Open]. The log file can be a plain text file or zipped file.
Then the contents of the log is parsed and displayed as shown below.
Analysis and Post Process
Once the contents of the log is displayed (regardless of whether it is the result of real time capture or the load from a saved file), you can use various post processing and analysis functionality provided by WebGUI.
UE capability Table
If the log file contains the UE capability Information RRC message. The message is automatically parsed into a more readable text structure. The processed text information can be displayed as tabular format.
Hit [UE Caps] button.
Then all the infromation from UE capability information message is nicely summarized into a tabular structure as shown below.
Throughput Plot
WebGUI provides various types of usefull plots. Most of those graphical analysis is provided by [Analytics] function. Then you will get the Analytics (Statistics) window as below.
Select [Throughput] tab to get the plots for throughput. You would see various items on the left panel. 'Global' plots the aggregated throughput of all the UEs connected to a cell. Under the item 'Global', you would see many of numbered items. That number indicates UE ID. By clicking one of those numbered item, you can plot the throughput a specific UE.
If you hit on [Slot] button, it would show the statistics (KPI) for each slots. For example, if you hit [Slots] on [Throughput] tab, you will get the throughput for each slot.
Rate
Rate Analysis shows the coderate for each transmitted and received phy frame and the rate of retransmission (rate of CRC error). Since coderate is one of the factors impacting the difficulties of decoding the received frame, it would help to check if you see any corrlation between the coderate and retransmission.
Sometimes even if you don't see any obvious issues of the coderate and retransmission overtime (i.e, the plot shown above), you may find that the issues (e.g, coderate burst or retransmission burst) happens only in a few specific slots.
MCS
MCS shows the MCS for the transmitted and received phy frame. By default, it shows average value of MCS over the period specified in 'Average time' field.
Sometimes you may want to see MCS for each and every frames rather than the average value. In this case, check 'Instant' checkbox, you will get both average and instant MCS values (MCS for each PHY frame)
SNR
You can plot SNR for PUSCH and PUCCH by selecting [SNR] tab as shown below. Also, you can plot the average SNR for each slot by hitting [Slots] button while [SNR] tab is selected.
Collecting Log from a Specified Server
You can specify a specific server to collect the log from. This is more useful if you want to collect a log from the server running not on the same machine where WebGUI is running, but you can use this functionality regardless of where the server is srunning.
Tips : Callbox(gNB/eNB/Core Network)
In this section, I will go over various tips to help you better utilize the detailed functions/features of WebGUI
Enabling BCCH (SIB) logging
To capture SIB information from WebGUI, you can enable BCCH in ENB confiruation as shown below. (NOTE : Once you keep this enabled for the whole test period, it would just keep increasing log file size without giving much of additional information. So in my case, for most of the case I just enable BCCH only for some duration at the beginning of test (e.g, before powering on UE) and then disable (Uncheck) the BCCH collection and perform the test procedure.
Set the layer as shown below for the convinience of the log analysis for SIBs and other RRCs.
Then click on a specific SIB message you want to look into. The decoded SIB message will show up on the right panel of the window.
Enabling MIB logging
You can enable MIB logging as shown below (NOTE : If you don't see this option in your WebGUI, please upgrade callbox software to the latest version)
Enabling full log in eNB/gNB
You can easily enable all the log in eNB/gNB by clicking a single button as follows (You can do fine control of each of the component if you like as explained in the section : Setup Properties and Get the log
log_options: "all.level=debug,all.max_size=1",
Enabling full log in MME
You can easily enable all the log in MME by clicking a single button as follows (You can do fine control of each of the component if you like as explained in the section : Setup Properties and Get the log
log_options: "all.level=debug,all.max_size=1",
Enabling full log in IMS
You can easily enable all the log in IMS by clicking a single button as follows (You can do fine control of each of the component if you like as explained in the section : Setup Properties and Get the log
Capture and Display Corenetwork Interfaces
You can enable and capture various core network interfaces by checking items underlined below. (
Once the log is captured, you can filter out the specific network interfaces if you want.
Launching Screen Window within WebGUI
You can launch a lte screen window within WebGUI and control the callbox from WebGUI.
Displaying UE Capability Information Table
If the log contains UE capability Information message, [UE Caps] button is activated. Click on [UE Caps] button and you will get the UE capability Information in a tabular format.
The contents of UE capability information message will be summarized in tabular format as shown below.
Tx gain and Rx Gain Change
If you are using the WebGUI while it is connected to a running eNB/gNB, you can change the TX power and RX power by changing tx_gain and rx_gain directly from the GUI as shown below.
Hit [ENB] tab and select eNB icon, then you will bet RF configuration popup as shown below. You can increase or decrease tx_gain or rx_gain by clicking on [+] / [-] icon.
Analyze Constellation
You can plot the constellation of the received physical traffic. In case of ENB log, the received physical traffic is PUSCH and in case of UEsim, the received physical traffic is PDSCH. In other words, in Callbox WebGUI this function plots the constellation of PUSCH and in UEsim WebGUI this function plots the constellation of PDSCH.
In order to plot the constellation, first you need to enable the capture of the phy signal by selecting 'Signal' option on ENB configuration window as shown below. If you enable PHY signal capture, the captured data will be saved in a separate file with the name of *.bin. Don't forget to store both *.log and *.bin file if you want to plot the constellation later.
Once the PHY signal capture is enabled, you can get the constellation of the received signal by hitting [Constellation] button as shown below.
01:59:06.311 [PHY] UL 0001 01 4601 929.18 PUSCH: harq=2 prb=2:47 symb=0:14 CW0: tb_len=2370 mod=4 rv_idx=0 cr=0.65 retx=0 crc=OK snr=16.0 epre=-83.3 ta=0.1 re_symb=564,564,282,564,564,564,564,564,564,564,564,282,564,564 chan_symb=2,11
Link: re@4364472
Link: chan@4393812
re_symb, chan_sym, Link:re, Link:chan are the meta data indicating the start position of PDSCH, PUSCH, DMRS and re_symb is the number of symbols for PDSCH, PUSCH and chan_symb is the symbol number where DMRS is transmitted.
Analyze Channel Response
You can get the various analysis result of UL channel as shown below (
Basically Channel Constellation, Channel Norm/Phase, Channel Impulse Responser shows the same data in different perspective. Followings are some highlights on how these are plotted.
- All of these are based only on DMRS symbols
- In case of DMRS, we (gNB or UE depending on which log you are analyzing) knows what is the ideal value (expected value based on 3GPP spec) and measured value (the value recieved/percieved by the reciever (gNB or UE depending on which log you are analyzing)
- Each of these data points are complex number (i.e, I/Q data)
- If you take '[expected DMRS value / measured DMRS value]' (where '/' indicates 'complex number division'), you can figure out how much each of the DMRS symbol is delayed in time(phase) and is fluctuated in gain. You can consider this as the difference between the expected DMRS value and measured DMRS value.
- If you plot the result of '[expected DMRS value / measured DMRS value]' in complex plan (I/Q plane), you get Channel Constellation plot
- If you plot the same result in two different plot (amplitude and phase), you get Channel Norm/Phase plot.
- If you do IFFT to the resulting data and plot it in dB, you get Channel Impulse Responser.
First, enable Signal option to capture PHY signal data.
Select the reciever physical channel constellation (PUSCH Channel Constellation in this case). This plots the constellation of DMRS (PUSCH DMRS in this case). You can plot the DMRS for each DMRS symbol and antenna port.
You can plot the phase and amiplitude of the channel response by selecting on PUSCH (or PDSCH) Norm/Phase tab.
You can plot the PUSCH/PDSCH channel impulse response (FFT of PUSCH/PDSCH channel norm/phase) by selecting [PUSCH Channel Impulse Response] tab.
Checking UL Power
You can check EPRE of each UL channel in the trace log print. This is not mandatory, but it would be easier to check if you select the only PHY channels and signal in Info field as shown below.
You can plot the UL EPRE for a specific UE as shown below.
If you are using the Amari software release later than 2022-02-10, you can plot SRS in addition to UL data (PUSCH), UL control (PUCCH) as shown below.
Plotting TPC command values
You can plot the TPC command specified in each DCI by selecting [TPC] tab as shown below. The solid line is moving average of the sequence of TPC command value and the dots are TPC command value in each DCI.
CRC Error Check with RB Map
You can visually check CRC error in RB map as shown below. The PDSCH/PUSCH with No CRC error is plotted in solid background and PDSCH/PUSCH with CRC error is plotted in hashed background.
BWP Switching Verification
If you configured the multiple BWPs by wide bandwidth difference or large location difference in frequency domain, RB map would be useful to verify bwp switching.
From trace log, you may verify bwp switching in DCI field.
If you are doing the bwp switch with high data rate, you may use throughput difference as bwp switching indicator.
Enabling CSI Decoding
To enable CSI decoding, you need to add phy.csi=1 option in enb.cfg log options as shown below (As of now, WebGUI Property Window does not provide options to enable this on the GUI, so you need to add this option in the configuration file).
Then you would get the Info item 'CSI' which shows the decoded CSI report (
Finding the cause of RRC Release
You can find the cause of RrcRelease from the log.
To do this, make it sure that you enabled NGAP log as shown below
Look into UE context release request and UE context release command message to check the cause of the release.
You can confirm the same thing on UE context release command message as well.
PHY Scheduling Analysis
What I want to show you here is how to analyze the downlink and uplink scheduling for PHY layer. To do this, you need to collect the low layer (I want to suggest you to enable full stack log if you want to analyze on this kind of details).
This is not mandatory, but it would be helpful to filter the PHY channel that you are interested in before you analyze it.
Select PHY in Layer dropdown box.
Select the physical channels that you are interested in from Info dropdown box. In this case, I selected PDCCH, PUCCH, PUSCH, PDSCH
You can check out NR UL Grant by clicking on dci=0_1 or dci=0_0 and looking into the contents and meta data of the channel.
You can check out NR UL Grant by clicking on dci=1_1 or dci=1_0 and looking into the contents and meta data of the channel.
If you click on PUSCH channel, you can get the meta data (e.g, scheduled PRBs, scheduled symbols, modulation scheme etc) for PUSCH.
If you click on PDSCH channel, you can get the meta data (e.g, scheduled PRBs, scheduled symbols, modulation scheme etc) for PDSCH.
Description on PHY Info
Followings are the descriptions on the fields within PHY log :
- PDSCH/PUSCH
- HARQ : HARQ Processor Number
- PRB : PRB location (Eg, PRB=27:22 indicates that 22 PRBs allocated starting from PRB 27)
- symb : OFDM symbol numbers (E.g, symb=0:14 indicates that 14 OFDM symbols are allocated starting from the symbol 0)
- CW : Codeword Index
- tb_len : Transport block size in Bytes
- mod : Modulation Order. This corresponds to Qm value in 3GPP spec (NOTE : this is different from mcs value. mcs value is in DCI/PDCCH info)
- rv_idx : Redundancy Version
- cr : Code Rate
- snr : SNR
- epre : Energy Per Resource Element which indicates a power of single resource element, roughly speaking it is similar to RSRP
- ta : Timing Advance in TA units
- PDCCH/DCI - NR
- rb_alloc : Frequency domain resource assignment in 3GPP spec. RB allocation (check this out for details)
- time_domain_rsc : Time domain resource assignment in 3GPP sepc (check this out for details)
- vrb_to_prb_map : VRB-to-PRB mapping in 3GPP sepc (check this out for details)
- mcs : Modulation and coding scheme in 3GPP sepc (check this out for details)
- rv_idx : Redundancy version
- si_indicator : Indicates whether the DCI is for SIB PDSCH or User traffic PDSCH
Tips : UEsim
The tips here is for the WebGUI on UEsim. We use the same WebGUI program for both callbox and UEsim. So overall usage and look-and-feel is same on both Callbox and UEsim. There would only be minor differences in terms of contents of log prints.
Checking DL Power
For easy checking (not required), filter DL Physical channels and check epre power from the trace log print (For now, only PDSCH epre is printed in the log)
You can make plot for the PDSCH power epre and snr as shown below.
Plotting TPC command vlaues
You can plot the TPC command specified in each DCI by selecting [TPC] tab as shown below. The solid line is moving average of the sequence of TPC command value and the dots are TPC command value in each DCI.
Troubleshoot
When you have trouble in getting access to webgui, you may try followings
Check if http service is running OK
: Check if httpd.service is running OK. Following is an example showing the case of httpd service operating properly. If it does not run properly, you may get some errors or warnings that would help troubleshoot.
Restart Service
: Try restart the httpd using following command
systemctl restart httpd.service
Check if the service is ruuning OK
systemctl status httpd.service
Check Out Error Contents
If you get 'failure' of running the httpd server, you would get something like below. In many cases, you may find some hints for the root cause of the failure. In this specific example, I got an important hints saying "DocumentRoot '/var/www/html' is not a directory or is not readable. In my case, it turned out that the html directory in /var/www was deleted somehow and I just created the html directory there. It solved problem. However, this is only an example and you may have different root cause for the failure. You may continue to troubleshoot until the problem is resolved.
Reinstall Packages
: If all the manual troubleshooting mentioned above fails, you may reinstall the apache server as described below.
Remove the existing httpd service and intall it again using follows commands
dnf remove httpd
dnf install httpd
dnf install php-fpm
Start the httpd service
service httpd start