Out of the Box Test - Ping
The purpose of this tutorial is to show you how to do IPv4 ping from Amari Callbox to UE. It is assumed that you don't have any previous experience with Amari callbox. For IPv6 ping, refer to another tutorial : Ping IPv6.
I don't think I need to explain on what is ping since everybody would know it. I think more important thing is why we do ping test and what are the things to be considered about the ping test. For any kind of data related test, for example, udp throughput (udp flooding), tcp throughput (tcp flooding), ftp(file download/upload) or streaming (e.g, YouTube streaming), the first thing you have to make it sure is that the required data pipe is properly established and the simplest way to check if the data pipe is established or not is to use ping test. Regarding the ping test, I would suggest to check a few things listed below.
- Check if the firewall on server (ping sender) and client (ping reciever) allows both incoming and outgoing ping(ICMP). Even if the data pipe is properly established, I see cases where ping does not go through due to the firewall setting.
- Check ping RTT. If your purpose is just to check whether the data pipe is established or not, just to make ping success would be enough. But if your final goal is to achieve maximum throughput at IP layer, you should make it sure that you get the shortest RTT that are allowed by the specific radio access network.
If the ping does not go through, refer to the ping throubleshoot Tips section.
Test Procedure Summary
This test applies to any of enb, mme, ims configuration as long as those configurations are valid and does not cause any error during the execution.
Step 1 : Before you start lte service, try ping to 8.8.8.8 and make it sure it works (You may not need this step if you will ping only within the local network)
Step 2 : Run lte service (i.e, run 'service lte restart')
Step 3 : Run linux screen (i.e, run 'screen -r')
Step 4 : Power on UE and wait until the connection is established
Step 5 : Ensure that UE has been assigned with at least one IP (you can check this with 'ue' command in (mme) screen on callbox)
Step 6 : Try ping (If your DUT is a smartphone, you may need to use a specific Apps that support ping)
Table of Contents
- Out of the Box Test - Ping
Test Setup
Test setup for this tutorial is as shown below.
- Since this test is for Out of the box testing, I used the default configuration(cfg) file without changing anything in it
- SIM Card used in this tutorial is the one delivered with the system as it is.
- If you want to change the configuration, The tutorial Configuration Guide would help
Configuration
This test can be done with any configuration that assigns any one or more IP address to the UE. If you just want to use what I have used for this tutorial, you can do as follows.
Go to the directory /root/enb/config and make a symbolic link as follows. (NOTE : If you are doing the test right out of the box you may not need to do this since this is the default configuration of Amari Callbox, but it is no harm to do this again).
Now you should see the enb.cfg file linked to enb.default.cfg as follows.
Now go to the directory /root/mme/config. You should see the configuration files as below.
If ims.cfg and mme.cfg is not linked to the files as shown above, you may run following commands to make proper link.
"ln -sf mme-ims.cfg mme.cfg" mean 'link mme-ims.cfg to mme.cfg' and "ln -sf ims.default.cfg ims.cfg" mean "link ims.default.cfg to ims.cfg"
Check if LTE service is Running
Whatever you want to test, the first thing you need to do is that call box program (LTE Service) is running. You can check on the execution status of the call box program by running following command and you should get the result as shown below
# service lte status
NOTE : Getting this result is pre-requisite for Call Box Operation, but this result itself does not guarantee the normal operation. If you see some unexpected issues. You may restart the call box with following command
# service lte restart
Run Screen
If it is confirmed that the lte service is running, go to screen mode by running 'screen -r' and follow through the steps as shown below. The steps shown here is the procedure that you would use for almost every test and it is highly recommended to get familiar with these steps. For further commands you can use in this screen mode, refer to the tutorial : Command Line Command
Run following command
You will get the screen as shown below.
This screen shows all the network components installed in the callbox. In this tutorial, it indicates MME, ENB, IMS, MBMSGW are installed in the callbox. You would see a number before each component name. With Ctrl+A and the number before the component name, you can switch to command line window for the specific component. For example, if you press Ctrl+A+1, the command line window switches to ENB and if you press Ctrl+A+0, the command line window switches to MME and so on.
Switch to [ENB] by pressing { Ctrl + A + 1 }. You will get the screen as shown below, When you switches to [ENB] there are some important information provided without running any specific command. It provides RF information showing the sample_rate, dl_freq, ul_freq, band, dl_ant, ul_ant that gives you very fundamental RF information. Check out the details of these info and see if the RF is configured as you intended.
Start trace logging by 't' command as shown below . You can run this command any time during the test, but it is always good idea to run this command before you power on UE to get the log from very beginning of initial attach.
Attach
In this tutorial, it is assumed that you are familiar with how to get UE attached (Initial Attach) to Callbox. If you are completely new to Amari Callbox and never tried anything before, I would suggest you to try the tutorial LTE Attach first and get back to this tutorial.
Power On UE and let it complete the attach. If you started 't' command before you powe on UE, you will get the traces for PRACH attempt. The presence of PRACH trace can be a good troubleshooting indicator for initial attach problem. If PRACH is properly received and the entire RACH process is completed, it is highly likely that the initial attach gets completed and start getting traffic log. Regarding the details on the meaning of each column of this log and how to use the information for troubleshoot, refer to this tutorial.
Figure Out UE and Server IP
Run the command [ue] in (mme) and it will show whether UE is assigned with any IP and what are those IPs. The IPs assigned to the UE is configured in mme.cfg file as indicated below.(
Make it sure that the call box has network interface that is required for IP traffic with UE.
Following is the whole result of [ifconfig] on my Callbox. These are some of the network interface automatically setup by Operating system (Fedora on Amari Callbox Classic in my case). These are not directly involved in IP traffics with UE
Make it sure that the network interface with internet connectivity is up and tun0,1,2,3 are up. You may see different name in your setup. The interface tun0,1,2,3 are network interface crated by Callbox. The IP assigned to these interfaces are configured in /root/mme/config/mme.cfg
Try ping
Now you can try ping on Callbox to the IP that is assigned to the UE.
Then try ping from UE to Callbox. I downloaded and installed an Android Ping App on the UE for test. You may use any other App that is capable of ping test.
Troubleshoot Tips
If ping does not go through, I would suggest you to check on followings.
- Check if the protocol (RRC/NAS signaling) required for ping are all gone through (especially check if EPS bearer setup is complete in LTE and PDU session is established in NR)
- Check if the radio link condition is good enough for user traffic. If you are getting too many CRC errors for PDSCH or PUSCH, the ping would not go through.
- Check if the destination IP is properly specified in your ping command
- Check if the firewall on both sender and reciever allows both incoming and outgoing ICMP