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

Magma extensions for inbound roaming proposal #22

Open
Arsenii-Oganov opened this issue Feb 17, 2022 · 1 comment
Open

Magma extensions for inbound roaming proposal #22

Arsenii-Oganov opened this issue Feb 17, 2022 · 1 comment

Comments

@Arsenii-Oganov
Copy link

Arsenii-Oganov commented Feb 17, 2022

Magma extensions for inbound roaming

1. Background and Objective

The objective of this proposal is to extend Magma components to add support for settlement interfaces to bridge the gap between traditional roaming settlement based on Gy interface on Home PGW and new requirements of packet purchasing managed by the Magma core.

Currently, the Magma Access Gateway (AGW) implements a merged SGW+PGW (SPGW) task with support for inbound roaming. The goal of this proposal is to involve sessiond task to support Gy CCR-I/CCR-U messages for roaming subscribers in AGW and FeG.
Software built to accomplish this will be open source under BSD-3-Clause license and will be committed to the Magma software repository under the governance of the Linux foundation, such that it can be effectively maintained in the future releases.

2. Implementation Scope

2.1 Network Architecture

The planned network architecture to use sessiond for generate an initial CCR. The initial CCR should be generated to check IMSI balance before establish default bearer.

arch

S6a: No changes for S6a are planned in this proposal.
S8 Control Plane: Only one change is planned in this proposal: MME session setup logic should be changed to send Create Session Request after/when Sessiond received quota from OCS. In case of no quota has been received the S1 session should be terminated by the MME.
S8 User Plane: No changes for S8 User Plane are planned in this proposal. We are still going to use MME to install the Table 0 for roaming subscribers.
Sessiond: The main change we are planning to make here is to involve sessiond in the inbound roaming call flow.
The new logic should be added to the MME task:
Before sending Create Session Create request to S8 Proxy the MME should send “Create Session” message to the Sessiond. This message will be trigger to generate CCR-I message towards session-proxy with first volume quota request. When the quota has been received from OCS the sessiond should send "Create Session Response" towards MME to allow S8 crate session procedure. In case of no quota has been received from OCS the sessiond should trigger session termination to the MME.
Once MME received Create Bearer Request and Table0 has been provisioned to the OVS the MME should sent "Final Create Session Request" towards sessiond to start get stats procedure from OVS. After reaching the configurable volume threshold on sessiond the sessiond should generate CCR-U to ask the next quota in OCS. This is an existing procedure for home subscribers but we should add the procedure to the inbound roaming call flow.

2.1 Call Flows

The colour scheme in the diagram is as follows:
Black: The existing messages for inbound roaming
Red: The new expected messages
Blue: The existing messages for local users which have to be added to the inbound roaming procedure

2.1.1 UE Attach call flow (successful case)

attach_s

2.1.2 UE Attach call flow (unsuccessful case)

The behaviour if quota has not been received from OCS.

attach_ns

Note: In case if quota has not been received from OCS the MME should terminate the established session using standard GTP-С termination procedure.

2.1.3 Quota Update Call Flow

update

2.1.4 Session Termination due to quota exhausted call flow

The session termination procedure should be the same as is for local subscribers.

terminate

3. Testing approach

  • Main critical parts of the solution will be covered with unit tests
  • Lab with inbound roaming will be established for e2e tests
  • E2E tests will be done manually in the lab, test scenarios will be upstreamed to Magma repos

4. Security

This functionality does not provide any big changes to Magma AGW or Magma Orc8r. Changes will follow common Magma approaches:

  • mutual TLS termination at the Orc8r proxy
  • application-level access enforcement

5. Team

https://github.com/just-now
https://github.com/Arsenii-Oganov
https://github.com/jpad-freedomfi

6. Roadmap and schedule

roadmap

SWE hours approximately for proposal: 230

@Arsenii-Oganov
Copy link
Author

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