Converged GTP Tunnel Setup for 4G #34
Description
Elevator Pitch
Add support for to make GTP tunnel operations by Sessiond for 4G Call as similar to 5G Call Flows.
Today Magma AGW is making the GTP tunnel operations using below two ways for 4G call:
- Using openflow controller or libgtpnl from SPGW.
- Or Making gRPC call from MME to Pipelined.
For option-2 is doing extra gRPC call to configure the GTP tunnel in OVS but
not using the existing gRPC call from MME to Sessiond to Pipelined (Activate_flow and deactivate_flow).
Intent of the proposal is to make common gRPC call to configure GTP flows, Enforcement flows and enforcement stats flows as similar to 5G flows. For this proposal, we reduce the operation cost of Magma AGW.
Total ask
Support of Converged GTP Tunnel Setup feature on to Magma Architecture will be delivered in a single milestone
Contact Information
Prabina Pattnaik ([email protected])
Project Details
To extend the existing gRPC methods of MME-Sessiond and Sessiond-Pipelined to configure GTP tunnel flows.
Following scenarios or process are need to implement using gRPC:
GTP tunnel Creation:
- MME-Sessiond:
rpc CreateSession(LocalCreateSessionRequest) returns (LocalCreateSessionResponse) {}
rpc UpdateTunnelIds(UpdateTunnelIdsRequest) returns (UpdateTunnelIdsResponse) {} - Sessiond-Pipelined:
Activate flows for a subscriber based on predefined flow templates
rpc ActivateFlows (ActivateFlowsRequest) returns (ActivateFlowsResult) {}
GTP tunnel Deletion:
- MME-Sessiond:
rpc EndSession(LocalEndSessionRequest) returns (LocalEndSessionResponse) {} - Sessiond-Pipelined:
Deactivate flows for a subscriber
rpc DeactivateFlows (DeactivateFlowsRequest) returns (DeactivateFlowsResult) {}
Block diagram
GTP tunnel for IdleSession:
-
MME-Sessiond:
rpc IdleSession(LocalIdleSessionRequest) returns (LocalIdleSessionResponse) {} -
Sessiond-Pipelined:
rpc PagingFlows(PagingFlowsRequest) returns (PagingFlowsResult) {}
GTP tunnel for PagingNotification:
-
Sessiond-MME:
rpc PagingNotification(LocalPagingInfo) returns (void) {} -
Pipelined-Sessiond:
rpc SendPagingRequest(UPFPagingInfo) returns (SmContextVoid) {}
Block Diagram
Configuration
AGW need following configuration:
- pipelined_managed_tbl0: false in pipelined.yml and spgw.yml
Delivery Approach
Feature will be delivered in one milestone with the following 6 process gates
- Design
- Development & Unit Testing
- code review
- Integration testing
- resolve integration issues and regression issues
- System test
Milestone1
- Create new gRPC methods for MME-Sessiond in session_manager.proto.
- Create new gRPC methods for Sessiond-Pipelined in pipelined.proto.
- Add gRPC handler (service endpoints) for new methods in Sessiond,MME and Pipelined.
- Add support Paging notifications for 4G call in sessiond.
Test Plan
The following tests scenario are proposed to verify to cover this functionality:
Integration Testing
- Verify the functionality using S1ap test cases.
- Write UT test cases for sessiond and pipelined.
- Write the python stub for verify the functionality.
Regration Testing
Following tests will be verified on magma master branch to make sure there is no breakage introduced through this proposal.
• Verify the 5G and 4G basic call flows and paging using UERANSIM, Teravm etc.
• Need to verify the traffic test.
Feature Roadmap
Feature will be delivered in one Milestones. Each milestone duration is 45 calendar days.
MS FUNCTIONAL AREA DELIVERABLES
M1.0 MME Service endpoints support
Parsing.
--------------------------------------------------------------
SessionD gRPC Service Support
Paging Support
-------------------------------------------------------
PipelineD Configure
GRPC message support
----------------------------------------------------
CLI STUB Add CLI stub for functionality verification
UT for all respective modules.
------------------------------------------------------
Regration Testing Regration testing for 4G and 5G.
-------------------------------------------------------------------------------------------
Activity