Challenge

Project 2

Using open5gs, an open source EPC and 5G platform in order to create and test of varios scenarios in LTE.

Prerequesites:

PC compatibility is an issue in itself in order to make mongodb work. My CPU was an AMD 5600G which failed to get mongodb to work. Status check gives you coredump in reponse which a fairly common issue.

https://www.mongodb.com/community/forums/t/status-of-mongod-returns-core-dump/130769

So I had to switch over to my intel laptop to get this to work, install VM and then Ubuntu 22.04 on it.

Steps to install mongodb that is provided in the project are obsolete right now. open5Gs provides the right methodology to install mongodb.

https://open5gs.org/open5gs/docs/guide/02-building-open5gs-from-sources/

Following these days my mongodb was properly installed followed by open5gs.

Tests performed:

First after every reboot of your VM make sure to put this on to your terminal before conducting the tests in order to create IPs for all the network nodes. In order to prevent typing it all over again I just downloaded a shell script of this because of lack of scripting knowledge. Just run the shell script after every reboot.

$ sudo ip tuntap add name ogstun mode tun
$ sudo ip addr add 10.45.0.1/16 dev ogstun
$ sudo ip addr add 2001:db8:cafe::1/48 dev ogstun
$ sudo ip link set ogstun up 

Caution: not doing this results in core dumping. Solving the issue has been addressed by Katharina Kohls in her trubleshooting part of testing with 5GS on her blog.

https://kkohls.org/guides_open5gs.html

Following commands were run to perform an attach procedure followed by a handover and then a VolLTE voice call. Running wireshark before running any of them is a must.

#./build/tests/attach/attach

Similarly, capturing this while running wireshark in back ground I followed the subsequent tests that were to be conducted. I captured them consecutively to avoid any repetition and issues.

<!-- [if gte mso 9]><xml> </xml><![endif]--><!-- [if gte mso 9]><xml> Normal 0 false false false EN-US X-NONE X-NONE </xml><![endif]--><!-- [if gte mso 9]><xml> </xml><![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0cm; line-height:107%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-IN;} </style> <![endif]-->

#./build/tests/handover/handover

<!-- [if gte mso 9]><xml> </xml><![endif]--><!-- [if gte mso 9]><xml> Normal 0 false false false EN-US X-NONE X-NONE </xml><![endif]--><!-- [if gte mso 9]><xml> </xml><![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0cm; line-height:107%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-IN;} </style> <![endif]-->

#./build/tests/volte/volte

I have attached the log file ( .pcapng file) of the captured packets.

Attach Analysis:

1.s1setup request

Looking at the protocol IEs we observe every information that's provided to the network to identify the device and send  a setup to connect to the network. 

2.s1ap Response

3.Attach

filtered out attach packets and saved it to a different log file to understand the process. It is followed by a normal detach.

4.Receive Initial Context Setup Request + Attach Accept + Activate Default Bearer Context Request

This is received from network to the UE

   UE Capability Info

Sent from UE to the network

6.Error indication from EPC

7.UE context release

Normal release

UE context release command

8.UE context release complete

9.Release due to NAS detach

UE context release request due to user inactivity

followed by command(a normal release) and request complete messages

10TAU request and accept

11.UE Context Release Command because of EMM Status from UE with cause "ESM_CAUSE_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE"

<!-- [if gte mso 9]><xml> </xml><![endif]--><!-- [if gte mso 9]><xml> Normal 0 false false false EN-US X-NONE X-NONE </xml><![endif]--><!-- [if gte mso 9]><xml> </xml><![endif]--><!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0cm; line-height:107%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-IN;} </style> <![endif]-->

 Initial context setup failure with cause "S1AP_CauseRadioNetwork_radio_connection_with_ue_lost" received from UE, causing ue context release

Handover test:

For GTP-U ICMP request and response I created a  filter s1ap || gtp

GTP-U ICMP request 

GTP-U ICMP response

S1ap Handover

Handover cancel and acknowledgement

Handover failure

 

Handover preparation failure

Path switch request

Path switch request acknowledgement

END marker

This will be found on GTP

Volte test :

1.Activate Dedicated EPS bearer context request and context accept

2. PDN connectivity request with IMS PDN and QCI 5.

 3.PDN Connectivity Reject with IMS2 PDN and QCI = 9

Here, APN set in PDN connectivity request is ims2 which is not recognised by the Network and hence a PDN connection reject is sent.

 Test setup should be showing me RTP packets to see aar_audio application test and aar_video application test. Theirs lack of knowledge on the procedure so it's not in the captured logs.

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.