Assistance required for free5gc integration with OAI

,

Hi Everyone,

I have few queries for which I need clarification for my project - “determining the compatibility between free5gc and OAI for various NFs.” Queries are as below -

  1. Does each interface of each and every NF have it’s own IP address? When in running state, how are the NFs connected with each other?
  2. Suppose I want to connect the nrf of OAI with the other NFs of free5gc, will this approach work - disable nrf in free5gc and connect the nrf of OAI with other NFs of free5gc ?
  3. NRF is connected to which NFs and via which interfaces?
  4. when 5gc is running, is there any way to capture internal communication between NFs such as using wireshark or tcp dump?
  1. Yes, each NF has their own IP. you can find it in the free5gc/config.
  2. Can you describe in more detail?
  3. NRF interacts with several NFs. Please check the spec(3GPP TS 29.510 release 15) for more detail, you can find most of what you wonder.
  4. You can use both of wireshark and tcpdump to capture with the interface “lo”.

BRs,
yashihh

Thanks for the reply. For point 2, describing the issue testapproach3.pcap (130.9 KB) in detail -

Objective - To determine compatibility between OAI and free5gc

Approach - To use all the NFs except NRF from free5gc, NRF from OAI & UE, RAN from UERANSIM

Steps -

  1. Disabled the NRF in free5gc core network (commented out the NRF config file)
  2. Starting the web console in free5gc - successful
  3. Starting NRF in OAI - error: Bad value IPV4_ADDRESS = 127.0.0.10 in config file
  4. Starting rest of the NFs in free5gc core network - facing error - a) error while trying to read the NRf config file, b) rest NFs unsuccessful to register themselves to NRF

Attached is the wireshark capture for the process. Please help to rectify the approach or steps for the process. Requesting your help in it. Thanks !

Best Regards,
Indranil Saha

Hi Everyone,

As of my opinion, the issue in the above mentioned problem is that, while starting the free5gc core -

It’s trying to read the NRF config file from ./config/nrfcfg.yaml and so it’s failing. Consequently http request of other NFs to NRF is also failing.

Can you please help to suggest which file I need to change, so that when 5gc in free5gc starts, it reads the NRF config file from a different location (where I have kept the NRF config file of OAI)

Best regards,
Indranil Saha

Hi, @IndranilSaha09
The config is loaded when the NRF APP is activated. You may check the source code of OAI-NRF.
Take free5GC for example, the config is read in free5gc/NFs/nrf/cmd/main.go. and the path is set at free5gc/NFs/nrf/pkg/factory/config.go

BRs,
Yashih

Hi Yashih/Team,

Thanks for the reply. Please take a look at the current situation -

  1. Copied the NRF config file of OAI and pasted it under /free5gc/config/ folder and renamed it as “nrfcfg.yaml”
  2. started the NRF of OAI, then started other NFs of free5gc - the NFs such as amf, smf, etc. are able to register to the NRF, however some error faced while running the free5gc. Below are the errors -

a. 2023-12-04T07:29:34.233436722Z [ERRO][NRF][Main] NRF Run Error: ReadConfig [./config/nrfcfg.yaml] Error: [Factory] yaml: unmarshal errors: line 22: cannot unmarshal !!str NRF = { into factory.Config

b. 2023-12-04T07:31:10.878371133Z [ERRO][UDM][Consumer] unsupported scheme[]
2023-12-04T07:31:10.878382289Z [ERRO][UDM][Proc] ID[imsi-208930000000003] does not match any UDR

c… 2023-12-04T07:31:11.032460929Z [ERRO][AMF][Gmm][amf_ue_ngap_id:RU:1,AU:1(3GPP)][supi:SUPI:] UE Security Context is not Available, message type 100

d… 2023-12-04T07:31:21.940132908Z [ERRO][UDM][Consumer] unsupported scheme[]
2023-12-04T07:31:21.940149360Z [ERRO][UDM][Proc] ID[imsi-208930000000003] does not match any UDR

My opinion is - If I restrict the main.go of NRF to run from free5gc, while running the other NFs run as usual, then I can overcome these errors.

Please review the situation and suggest if that’s the approach. Kindly help with any other ideas from your end. Thanks !

Best regards,
Indranil Saha

Dear Team,

Error 2 a) is now resolved - started the NRF of OAI, while modifying the run.sh script, disabling the NRF config file to run. Currently there are 2 issues to be highlighted -

  1. Though I haven’t touched UDM and AMF config file, it’s still providing me errors, after launching the free5gc. - error 2 b), 2 c), 2 d).

  2. When I am using all the NFs from free5gc, I am able to see http2 being sent and received by all the NFs. However, when I am using NRF from OAI and rest of the NFs from free5gc, only UDM, AUSF and NRF seems to send and receive packets via http2 protocol in wireshark.

Can you please check the above issues and let me know what steps may I take to take it forward.

Best regards,
Indranil Saha

Dear Team,

Irrespective of integration with OAI or standalone running of free5gc, recently I am facing error while running UE -

[2023-12-05 15:46:18.663] [nas] [error] Initial Registration failed [CONGESTION]

Please revert back with any feasible action required to be undertaken.

Best regards,
Indranil Saha

Hi @IndranilSaha09,
Can you please provide your setup detail and everything you modify that I can build by myself?

For the UE problem, did you check the ue ip in yaml file?
BRs,
Yashihh

Dear Yashih,

I have followed the standard setup procedure that is provided in the free5gc user guide to build free5gc and UE. Currently from the last 3-4 days, irrespective of launching free5gc standalone or integrated with OAI, I am facing these issues -

Errors on free5gc log -

2023-12-06T12:31:19.445500582Z [ERRO][AMF][Gmm][amf_ue_ngap_id:RU:1,AU:1(3GPP)][supi:SUPI:] Nausf_UEAU Authenticate Request Error: undefined response type

2023-12-06T12:31:19.446946013Z [ERRO][AMF][Gmm][amf_ue_ngap_id:RU:1,AU:1(3GPP)][supi:SUPI:] Authentication procedure failed

2023-12-06T12:31:19.553832926Z [ERRO][AMF][Gmm][amf_ue_ngap_id:RU:1,AU:1(3GPP)][supi:SUPI:] UE Security Context is not Available, message type 100

Errors on UE log -

[2023-12-06 12:31:08.439] [nas] [error] Initial Registration failed [CONGESTION]

smfcfg.yaml (4.9 KB) amfcfg.yaml (6.2 KB)

Best regards,
Indranil Saha

Dear Yashih/Team,

For the last 4-5 days, I am facing error as soon as I am trying to connect UE with the 5GC. Below is the errors -

error on free5gc log:
2023-12-07T16:12:45.841857601Z [ERRO][AMF][Gmm][amf_ue_ngap_id:RU:1,AU:1(3GPP)][supi:SUPI:] UE Security Context is not Available, message type 100

error on UE log:
[2023-12-07 16:12:45.686] [nas] [error] Initial Registration failed [ILLEGAL_UE]

Please confirm if there has been some recent changes or shall I need to modify some config files in order to rectify the error.

Best regards,
Indranil Saha

Hi, @IndranilSaha09
The errors occurred since you didn’t add UE in webconsole server.
please follow the process of this 4-use-webconsole-to-add-an-ue.

BRs,
yashihh

Dear Yashih,

Sorry for the minor mistake. Now, I can establish connection between UE and 5G core in free5gc. However, at the last stage, unable to ping google.com via uesimtun0. Note: uesimtun0 is created , however not able to ping google.com. Please help !!

Hi, maybe you haven’t set the Linux Host Network. Please check 3 install free5gc - free5GC

BRs,
Yashihh

Dear Yashih,

Please find the below observation (difference between free5gc running alone and free5gc & OAI integrated) -

• Only free5gc – GET message “/nrf-disc/v1/nf-instance?requester-nf-type=AUSF&service-names=nudm-ueau&target-nf-type=UDM” and POST message “/nudm-ueau/v1/suci-0-208-93-0000-0-0-0000000003/security-information/generate-auth-data” receives 200 OK response (packet – 1007-1095)

• free5gc & OAI – GET message “/nrf-disc/v1/nf-instance?requester-nf-type=AUSF&service-names=nudm-ueau&target-nf-type=UDM” and POST message “/nudm-ueau/v1/suci-0-208-93-0000-0-0-0000000003/security-information/generate-auth-data” receives 500 Internal Server Error (packet – 919-974)

Please note that when free5gc & OAI is running in an integrated manner, the error is being faced while connecting to UE. please help to suggest the possible reason for the error.

testapproach6b_5gc.pcap (249.8 KB)
testapproach6a_free5gc 5g core.pcap (627.9 KB)

Hi, @IndranilSaha09!
Please provide me the testbed you setup as detailed as possible, include OAI version, OAI-NRF config and the procedure of implementation . I’d like to set up myself to check the error.

BRs,
Yashih

Dear Yashih,

Please find attached the OAI-NRF config file. OAI NRF config.txt (1.6 KB)

Steps undertaken:

  1. Followed the free5gc user guide exactly to setup the 5G core and UE, RAN in UERANSIM (5G core - in one ubuntu VM, UERANSIM - in another VM)

  2. Installed the NRF from OAI and changed the config file with desired IP and port from free5gc NRF.

  3. In run.sh script, removed NRF and saved it. (reason: want to all NFs from free5gc as usual except NRF)

  4. Started the webUI, then started OAI NRF, then started other NFs from free5gc - Till now its running fine and the NFs are getting registered to NRF.

  5. started gNB - worked fine. SCTP connection established.

  6. started UE - failed to setup the initial registration request. Attached is the issue document with detail MSC. Issue_document.docx (132.3 KB)

Best regards,
Indranil Saha

URL and steps mentioned in it are followed to install OAI NRF

Hi, since the UE registration procedure interacted with other NF. The error message indicated that there are some problems in AUSF which is doing authentication. After checking the pcap you offer, I think the NRF work well. Maybe the problem is the ue registered in webconsole or the ue.yaml you used in UERANSIM. Please check if the information of ue on weboconsole and ue.yaml you used are exactly the same. If the same problem still appeared, please provide me the completed free5GC log.

BRs,
Yashih

Hi @IndranilSaha09, Our team studied the implementation of OAI. The OAI-NRF implements the optional SearchResult - “searchId”( you may check in 3GPP 29.510 R16) which free5GC didn’t implement it.

free5GC, no "searchId"

OAI, implements "searchId"

image

you may try to comment data["searchId"] = search_id; in (src/nrf_app/nrf_search_result.cpp · master · oai / cn5g / oai-cn5g-nrf · GitLab) or modify free5GC to pass the variable.

BRs,
yashih

1 Like