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

Converged GTP Tunnel Setup for 4G #34

Open
prabinakpattnaik opened this issue Feb 27, 2022 · 0 comments
Open

Converged GTP Tunnel Setup for 4G #34

prabinakpattnaik opened this issue Feb 27, 2022 · 0 comments

Comments

@prabinakpattnaik
Copy link

prabinakpattnaik commented Feb 27, 2022

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:

  1. Using openflow controller or libgtpnl from SPGW.
  2. 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:

  1. MME-Sessiond:
    rpc CreateSession(LocalCreateSessionRequest) returns (LocalCreateSessionResponse) {}
    rpc UpdateTunnelIds(UpdateTunnelIdsRequest) returns (UpdateTunnelIdsResponse) {}
  2. Sessiond-Pipelined:
    Activate flows for a subscriber based on predefined flow templates
    rpc ActivateFlows (ActivateFlowsRequest) returns (ActivateFlowsResult) {}

GTP_tunnel_Creation

GTP tunnel Deletion:

  1. MME-Sessiond:
    rpc EndSession(LocalEndSessionRequest) returns (LocalEndSessionResponse) {}
  2. Sessiond-Pipelined:
    Deactivate flows for a subscriber
    rpc DeactivateFlows (DeactivateFlowsRequest) returns (DeactivateFlowsResult) {}

GTP_tunnel_Deletion

Block diagram

Create_Delete_tbl0

GTP tunnel for IdleSession:

  1. MME-Sessiond:
    rpc IdleSession(LocalIdleSessionRequest) returns (LocalIdleSessionResponse) {}

  2. Sessiond-Pipelined:
    rpc PagingFlows(PagingFlowsRequest) returns (PagingFlowsResult) {}

GTP tunnel for PagingNotification:

  1. Sessiond-MME:
    rpc PagingNotification(LocalPagingInfo) returns (void) {}

  2. Pipelined-Sessiond:
    rpc SendPagingRequest(UPFPagingInfo) returns (SmContextVoid) {}

Idle_Session_Paging_Notification

Block Diagram

Idle_mode_Paging_tbl0

Configuration

AGW need following configuration:

  1. 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

  1. Design
  2. Development & Unit Testing
  3. code review
  4. Integration testing
  5. resolve integration issues and regression issues
  6. System test

Milestone1

  1. Create new gRPC methods for MME-Sessiond in session_manager.proto.
  2. Create new gRPC methods for Sessiond-Pipelined in pipelined.proto.
  3. Add gRPC handler (service endpoints) for new methods in Sessiond,MME and Pipelined.
  4. 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

  1. Verify the functionality using S1ap test cases.
  2. Write UT test cases for sessiond and pipelined.
  3. 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.
-------------------------------------------------------------------------------------------
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