magma / grants

0 stars 3 forks source link

Proposal : Adding support for Network Function Repository functions in Magma #33

Open panyogesh opened 2 years ago

panyogesh commented 2 years ago

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 (yogesh@wavelabs.ai)

Project Details

Functionality planning to support as part of NRF

Basic-Flow-1

Sequence of operations

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.

Basic-Flow-2

Following are the few examples :

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.

AMF-Registered-NRF-Snapshot

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.

Discovery-Services-Flow-1

Attaching 3gPP reference snapshot of discovery procedure

AMF-Discovering-SMF-1

Work items

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

  1. Design
  2. Development & Unit Testing
  3. code review

Before finishing the last milestone, the feature shall pass the following process gates

  1. Integration testing
  2. System test
  3. User Acceptance test

Milestone1 - Launching & Initializing of NRF process

Tasks to launch NRF process

Milestone2 - NF Management Service (Profile and Service Definition for AMF, Subsriberdb and Sessiond)

Milestone3 - NF Discovery Service

Milestone4 - Regression, Integration & System Testing

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

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