The purpose of this tutorial is to show you how to ping from Callbox to UE in IPv6. Difficulties in trying anything with IPv6 is to trigger UE to request IPv6 PDU and figure out right IPv6 to ping do. It is assumed that you don't have any previous experience with Amari callbox.
The purpose of doing IPv6 ping is same as IPv4. So for general introduction for ping test, refer to ping IPv4 tutorial. The reason why I am writing a separate tutorial for ping IPv6 is because there are some specific issues that you need to pay attention to IPv6 and followings are some of those issues.
- In most test equipment including Amarisoft default configuration, IPv4 is used as a default APN/PDN. So you need to know how to change configuration file if you want to use IPv6 as a default APN/PDN or if you want to create a specific APN/PDN for IPv6
- In most of the test UE using the test USIM, the UE is configured to use IPv4 as a default APN. So you need to know how to change the UE side setting if you want to use IPv6 as a default APN/PDN or if you want to create a specific APN/PDN for IPv6
- In many cases, UE does not assign UE IPv6 address as specified in NAS message. In most case, UE assigns a random interface id (the second half (32 bits) of IPv6 address. You need to know how to figure this out on UE side.
Table of Contents
- Ping IPv6
Test setup for this tutorial is as shown below.
- 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
I used enb.default.cfg as the configuration for this tutorial but you may use any configuration as long as your DUT(UE) would support it.
On UE side, I configured as below, but this configuration would vary depending on the mobile phone model or type of your DUT.
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
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
Switch to [ENB] by pressing ‘Ctrl + A + 1’. You will get the screen as shown below
Start trace logging by 't' command as shown below .
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.
Check on basic cell configuration and see if it is configured as you wanted (e.g, band, bw, RAT type etc)
Power On UE and let it complete the attach. (NOTE : You should see one or more PRACH print and several traffic prints as shown below).
When UE is in connected mode in RRC, you can check the ue status as follows (you don’t get any result when UE is in idle mode)
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.(NOTE : If you don't see any of this kind of information, it may indicates there is some problems with the initial registration or IP allocation process and you need to troubleshoot until you get the result like this).
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). Tun2 and Tun3 are the network interfaces that allocates IPv6 to UE.
Figure out the IP to ping to
One of the challenging thing in IPv6 ping is to figure out the right IP address to use for Ping. Usually a few different IPv6 addresses are assigned once IPv6 Apn is established. Which IP allows Ping depends on UE implementation. So you need to know which IP to use for the ping test for your DUT
In this section, I will show you how to figure out some of the candidate IPv6s setup by UE (DUT). There may be another IP which is used for ping v6 by UE implementation but not shown here.
Candidate 1 : IPv6 address both network prefix assigned by Router Advertisement and interface id assigned by NAS message.
Candidate 2 : IPv6 address used in SIP registration.
Candidate 3 : IPv6 address with local network prefix and interface id used in SIP registration.
Once you figure out which IP out of all the candidates described above, you can try ping. With my DUT used in this tutorial, only following address allowed IPv6 ping.
Figureing Out Network Prefix
There might be some cases where you get only interface identifier (the last 32 bits of IPv6 address) displayed on your UE and you want to figure out the network prefix (the first 32 bits of IPv6 address) to get the full IPv6 address. One way to figure the network prefix is to find it from a NAS message as shown below. Then, you can get the full 64bits IPv6 address by combining the network prefix and interface identifier.
IPv6 Verficiation with Amari UEsim
As far as we experienced, most of IPv6 setup issue turned out to be due to UE side issues as follows (this is just a few examples).
- UE side implementation was not correct
- UE side implementation is correct but does not provide proper measures to present IPv6 address via user interface
- UE side implementation is correct but some features (e.g, ICMP) was blocked by firewall
We suggest users to have proper debugging tools on UE side to check the detailed status / procedure of IPv6. Amarisoft does not have any debugging tools for commercial device (or any other customer UE). The only way we can verify the operation of IPv6 is to use Amarisoft Callbox and Amarisoft UE simulator. Followings are tutorials showing how we can validate IPv6 with Amarisoft Product. You may not be able to verify as we do if you don't have Amarisoft UEsim + Amarisoft Callbox, but the point is that these verification would be good indicators that Amarisoft IPv6 stack works properly.