UDM Not Reading SBI config when registering services with NRF


Has anyone come across the UDM not reading the config files for its SBI config and defaulting to code-based default values (IP=

When the UDM registers with the NRF, it uses an IP address of (i.e., it believes this is its registered IP4 address)

Hence when I run an N1/N2/N3 simulator and try to UE authenticate, when the AUSF tries to authenticate a UE, the UDM service URI it gets handed back (by NRF) is "<instance …> which is wrong.

The config files have the k8s service IP configured (v 3.0.5)

  • The UDM container startup log files look good, no errors …
  • I changed the IPV4adress of the UDM default in the ue authentication code section
  • Doesnt work which makes sense
  • In Config.go there is an SBI struct that has a member “RegisterIPv4” that seem to look for a yaml file ?


What deployment do you refer to?

If you look at https://github.com/free5gc/free5gc/blob/e104d468c93571484bdde21cd1442385804f4db6/config/udmcfg.yaml
there are 2 addresses:
bindingIPv4 - binds service listening socket to that address - the address has to be available on an interface (Linux interface).
registerIPv4 - this address will be sent in the payload to NRF upon UDM start.
The purpose of this is explained here Configuration · free5gc/free5gc Wiki · GitHub

The config at a low level is provided when running the executable.
So if one would want to run UDM manually, something like this is needed:
./free5gc/bin/udm -c ./config/udmcfg.yaml -l ./logs/udm.log -lc ./logs/free5gc.log

You have to figure out how your deployment starts UDM and how it passes/creates UDM’s config.


I really appreciate your answer. My implementation uses K8s Pods which adds a small complexity, but all good.

I actually had to make quite a few changes including a Golang update; which of those actually fixed the issue I need to figure out.

I am using an older release i.e. v 3.05 but I modified that code (UDM/AUSF) to make sure the registerIPv4 address parameters was being loaded and used by the UDM on app boot up and sent to MongoDB.

All getting to the UDR now …

I appreciate the email and the help