Deploying OAI Core Network Functions without any order (Only for service based architecture)
Currently all docker compose have depends_on
parameter so that network functions start in an order. This parameter have to stay when core network is deployed in referenced point system architecture because there is no NRF for registry or discovery. In case of service based architecture below are the blocking points,
- All NFs are depended on NRF, NRF has to be running before any other NF comes up. Unless all NFs have the ability to scan for the availability of NRF and then send a request. (This can be implemented if NRF exposes /health url which all NFs can curl and send the registration request only when NRF is healthy, of-course there has to be a timeout)
- If the NFs only have dependency on NRF then an important problem is restart of a NF which is registered to NRF example AMF, SMF and UPF.
- NRF does not remove the registered NF information, either NF de-registration is not implemented properly or de-registration time is really high a container restart time is somewhere less than ~20 seconds and re-creation less than ~40 seconds. De-registration can also be performed by the NF when it is stopped (this is a tricky problem to solve)
- (Least of a problem) with restart there are other issues too at the moment AMF does not request to NRF for AUSF and neither UDM or UDR request NRF for discovery of each other. In a container environment were NFs are using dynamic ip-address allocation with every restart they will get a new ip-address, the NFs like AUSF and UDM contains static ip-address related information unless everytime they resolve the FQDN of the service before making a HTTP request. This problem wont occur in a static ip-address environment
Edited by Sagar Arora