Skip to content
This repository has been archived by the owner on Apr 9, 2024. It is now read-only.

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

Open
panyogesh opened this issue Feb 25, 2022 · 0 comments

Comments

@panyogesh
Copy link

panyogesh commented Feb 25, 2022

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

Basic-Flow-1

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.

Basic-Flow-2

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.

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

  • 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

  1. Design
  2. Development & Unit Testing
  3. 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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant