You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 9, 2024. It is now read-only.
Proposal: Refactoring AMF data structures for Stateless feature improvements
Elevator Pitch
In the current design, serializing and storing the in-memory data of AMF into the persistent database (redisdb), requires an additional conversion which can be avoided with some re-structuring in the current AMF code. This additional conversion or mapping from serialized persistent data to in-memory data is done both during storage and re-trivial time.
This proposal shares the approach of using a protobuf-based data structure to optimize the performance and restructuring some fields at ue context level for simplifying the existing design making it more robust.
Total Ask
Stateless feature optimization feature on to Magma Architecture will be delivered in roughly 4 Milestones.
As part of the activity following items are being planned :
Moving from native C++ maps to protobuf::maps
Defining 5G proto buffers as required (in case of smf_context) for structure and getting setter/getter APIs.
Keys that are of type struct need to be converted to strings in order to support protobuf::maps (like GUTI to context maps)
Replacing existing ue_context, amf_context, and smf_context structures to use structure generated by proto buffer files.
To remove the inheritance of task-specific StateManager with common StateManager.
Hashtables in ngap code to be converted to protobuf::maps
Moving the NGAP code to C++ so that the newly defined structure can be in the required namespace.
Amf UeContext Storage Management to faster lookup with different key types.
Task
Using protos (new or re-used) and then replacing the existing structures like "struct ue_m5gmm_context_s", "struct amf_context_s" etc to use new strucutres.
Adding the changes in all procedures and state machines.
Replacing all the ngap hashtables
Unit test cases to be updated (stateless and normal)
Ngap code to be transitioned to new proto-based definitions and getting them integrated with ASN-generated files.
Statless feature optimization
As part of the optimization, all conversion functions ( to proto format) will be removed as natively the structures are in protobuf format.
All the keys used in lookup need to be stored in string format.
Delivery Approach
The feature will be delivered in 4 milestones. Each milestone will have the following process gates
Design
Development & Unit Testing
code review
System testing
Scale test
Milestone1 - Restructuring of AMF data structures with Proto generated Ue Context Structure
Defining the proto buffer definitions.
Changing GUTI to string format in Amf.
Optimizing the AmfStateManager.
Changing the UE, AMF, and SMF Context to proto buffer format. Defining a new class and access functions.
Update the GUTI string and other struct-based keys.
Unit test case updates and adding of new cases.
Milestone2 - Refactor UE Context Storage Information in AMF
Ue context infrastructure to be moved to smart pointers based approach
Fields specific to smf_context needs to be re-aligned for faster lookup
Lookups for ue_context to be tuned for faster lookup
Milestone3 - Restructuring of NGAP for C++ tranistion
NGAP hashtables to Proto Maps conversion
Moving the code to C++ infratructure
Optimizing NgapStateManager
Integrating the ASN files.
Milestone4 - Stateless feature specific changes and verification
Clean up all the State Manager conversion code.
Changes in stateless infrastructure for storage and retrieval specific code.
Integration and scale testing of the feature
Feature Roadmap
The feature will be delivered in 4 Milestones.
Milestone
Deliverable Summary
MS1
Restructuring of AMF code with Proto generated UE Context Structure
MS2
Refactor UE Context Storage Information in AMF
MS3
Restructuring of NGAP for C++ transition
MS4
Statless feature specific changes and verification
Refrences
The text was updated successfully, but these errors were encountered:
ganeshg87
changed the title
[Proposal]: Performance tuning for the statless feature in AMF
[Proposal]: Performance tuning for the stateless feature in AMF
Feb 25, 2022
ganeshg87
changed the title
[Proposal]: Performance tuning for the stateless feature in AMF
[Proposal]: Refactoring AMF data structures for Statless feature improvements
Feb 28, 2022
ganeshg87
changed the title
[Proposal]: Refactoring AMF data structures for Statless feature improvements
[Proposal]: Refactoring AMF data structures for Stateless feature improvements
Feb 28, 2022
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Proposal: Refactoring AMF data structures for Stateless feature improvements
Elevator Pitch
In the current design, serializing and storing the in-memory data of AMF into the persistent database (redisdb), requires an additional conversion which can be avoided with some re-structuring in the current AMF code. This additional conversion or mapping from serialized persistent data to in-memory data is done both during storage and re-trivial time.
This proposal shares the approach of using a protobuf-based data structure to optimize the performance and restructuring some fields at ue context level for simplifying the existing design making it more robust.
Total Ask
Stateless feature optimization feature on to Magma Architecture will be delivered in roughly 4 Milestones.
Contact Information
Ganesh Gedela ([email protected])
Project Details
As part of the activity following items are being planned :
Task
Statless feature optimization
As part of the optimization, all conversion functions ( to proto format) will be removed as natively the structures are in protobuf format.
All the keys used in lookup need to be stored in string format.
Delivery Approach
The feature will be delivered in 4 milestones. Each milestone will have the following process gates
Milestone1 - Restructuring of AMF data structures with Proto generated Ue Context Structure
Milestone2 - Refactor UE Context Storage Information in AMF
Milestone3 - Restructuring of NGAP for C++ tranistion
Milestone4 - Stateless feature specific changes and verification
Feature Roadmap
The feature will be delivered in 4 Milestones.
Refrences
The text was updated successfully, but these errors were encountered: