magma / grants

0 stars 3 forks source link

Converged GTP Tunnel Setup for 4G #34

Open prabinakpattnaik opened 2 years ago

prabinakpattnaik commented 2 years ago

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

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