Proposal : Adding support for Network Function Repository functions in Magma #33
Description
Proposal: Adding support for Network Function Repository Functions in magma
Elevator Pitch :
NRF allows 5G NFs to register and discover other NFs via standard defined techniques. This requirement is in compliance with TIP Requirement <>.
As part of current magma architecture the communication channel details are present in service_registry.yml. This provides a static and simple way of
discovering the end point when all the components are in single node. But when moving to a distributed or containerized environment especially in 5G deployments dynamic discovery of NFs becomes critical. Also with NRF, other modules can be launched without pre-conditions. NRF also addresses the requirement of to discover the amf which supports specific slice types.
Total ask
Support of NRF feature on to Magma Architecture will be delivered across 4 Milestones.
Contact Information
Yogesh Pandey ([email protected])
Project Details
Functionality planning to support as part of NRF
- Maintaining NF profile and supported services.
- Get NF instances to subscribe to and get notified about, the registration in NRF of new NF instances of a given type.
- To provide support service discovery function
- As a map towards 3GPP spec idea is to provide support for nnrf-nfm, nnrf-disc
Sequence of operations
- NRF will enable registration and discovery functionality in order to communicate with other network functions via APIs.
- When a new NF Service Producer (e.g., sessiond) is launched, it registers its own details like type-of-service, IP address, and port number with the NRF.
- When a Network function like AMF wants to establish the PDU session via sesssiond, it sends a service discovery request to the NRF.
- If authorized, the NRF responds with the details of sessiond instance.
- The AMF then will send a grpc request to sessiond. The respective NF will then service the request to install the session in fast path
NF Management Service
This service will allow NF in the serving PLMN to register, update or deregister its profile in the NRF. It will also allow to subscribe and notify the services of other NF Instances, along with their services.
The subscription mechanism will be based on profiles (NF Profiles). NF Profile will consist of general parameters of the instance and different NF Services that will get registered with NRF.
Following are the few examples :
- AMF parameters and services
plmnList, sNssais, ipv4Addresses, amfInfo (like amfSetId etc.)
namf-com, namf-mt, namf-loc (location services etc.) - SMF parameters and services:
plmnList, sNssais, ipv4Addresses, snssais including with DNN List etc.
nsmf-pdusession, nsmf-oam etc
The communication channel between any NF and NRF will be based on GRPC interface and all the elements (parameters and services) will be using the protobufs.
Attaching 3GPP reference snapshots of registration request going from AMF to NRF.
NF Discovery Service
As part of NF Discovery service NRF will allow discovering of required NF services matching the services send in query requests from another NF. Before trying to discover the required NF, local NF will check if similar query has been used earlier and the response is within the validity interval. If so the results will be re-used. If not new query will be fired.
Attaching 3gPP reference snapshot of discovery procedure
Work items
- Launching the NRF process on a well defined port will be the first work item. Target for the project is to
integrate AMF, Subscriberdb and Sessiond with NRF. - Each of the process needs to define clear profiles and services to be offered. Corresponding proto files needs
to be put in place for each of the NFs. - Each NF while getting started will share the profiles which will be stored in the NRFs data base.
- NFs when killed will be removed from NRF
- While looking for the specific NF, discovery request will be send to the NRF which will then send the response.
- All communication towards specific NF will be done after that.
Suggested way of launching the process : NRF > SUBSCRIBERDB > AMF > UPF > SMF
Delivery Approach
Feature will be delivered in 4 milestones. Each milestone will have the following 4 process gates
- Design
- Development & Unit Testing
- code review
Before finishing the last milestone, the feature shall pass the following process gates
4. Integration testing
5. System test
6. User Acceptance test
Milestone1 - Launching & Initializing of NRF process
Tasks to launch NRF process
- Creation of NRF process with GRPC service end point.
- Putting the module as part of Magma Services based on compilation option.
- Launching of the other process and attaching it with NRF.
- Re-looking at the start up sequence of the modules and try to make it independent.
Milestone2 - NF Management Service (Profile and Service Definition for AMF, Subsriberdb and Sessiond)
- Create the Profiles for each of the modules and expose the services.
- Storing the information of the services in some tables in NRF where profiles can be used as matching criterion during discovery.
- Defining the GRPC calls for the modules for the registration and de-registration.
Milestone3 - NF Discovery Service
- Discovering subscriberdb, during the authentication procedure in AMF and get the user authenticated considering the PLMN and NSSAI information.
- Discovering the sessiond module, during the PDU Session creation process based on PLMN and NSSAI and establishing end to end session.
- 5G call flow validation
Milestone4 - Regression, Integration & System Testing
- Verifying the functionality with regression test scripts.
- Benchmarking the scalability and performance numbers.
Test Plan
Primarily targeted to test whether dynamic discovery of services is possible during the session creation.
Following is the set of tests or scenarios to to test the feature.
Integration Testing using simulators will be done
- 5G Call flow is working with NRF feature.
- Scale and other related tests to be performed.
- Negative scenarios related testing to be done.
Feature Roadmap
Feature will be delivered in 4 Milestones.
Milestone | Deliverable Summary | |
---|---|---|
MS1 | Launching, Initalizing of NRF process, Modifying start up scripts | |
MS2 | Implementing NF Management services in NRF | |
MS3 | Implementing NF Discovery Service in NRF | |
MS4 | Verification, Regression and scale tests |
References
https://raiith.iith.ac.in/5670/1/Mtech_Thesis_TD1466_2019.pdf
https://github.com/bubblecounter/Internship-5GCN
https://nickvsnetworking.com/5gc-the-nrf-in-theory/
https://nickvsnetworking.com/open5gs-nrf-setup/
https://www.etsi.org/deliver/etsi_ts/129500_129599/129510/16.05.00_60/ts_129510v160500p.pdf
https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-nrf
Activity