Skip to content

Commit

Permalink
First set of updates including MBS project (#90)
Browse files Browse the repository at this point in the history
* Update features.md

* Update creating-mbs-sessions.md

* Update creating-mbs-sessions.md

* Update docker-implementation.md

* Update docker-implementation.md

* Delete pages/5g-multicast-broadcast-services/usage/testing.md

* Update index.md

* Update index.md

* Update guidelines-contributors.md

* Update index.md
  • Loading branch information
jordijoangimenez authored Oct 4, 2024
1 parent edcfc77 commit 8a6ebc7
Show file tree
Hide file tree
Showing 6 changed files with 248 additions and 256 deletions.
29 changes: 14 additions & 15 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,33 +7,32 @@ has_children: true

<img src="{{site.baseurl}}/assets/images/5g-mag-reference-tools.png" alt="5g-mag" style="height:50px">

# Overview
# Welcome to the 5G-MAG Reference Tools

This website serves as an umbrella for documentation, practical guidelines and examples of applications that can be
built with the software packages available as 5G-MAG Reference Tools and also in combination with other platforms.

A summary about what we do can be found below.
built with the software packages available in the 5G-MAG Reference Tools and also in combination with other platforms.

<iframe width="100%" height="440" src="https://drive.google.com/file/d/1tPcMWLeY6QJNH5OfGWDwLmoSyjrqk8gA/preview"></iframe>

## Join our Public Monthly Call (Last Friday of the month at 13:00 CET/CEST)
Find all the information how to join here: https://5g-mag.com/community#calendar
Agendas circulated via the [Google Group](https://groups.google.com/g/5g-mag-reference-tools) mailing list
## Developer Community
* Meet the developer community, participate, contribute, join the public calls: [https://www.5g-mag.com/community](https://www.5g-mag.com/community)
* Discussion are happening in [Slack](https://5g-mag.slack.com/).
* Announcements are communicated through the [Google Group](https://groups.google.com/g/5g-mag-reference-tools)
* If you have questions that cannot be shared publicly, reach out to us via email: [reference-tools@5g-mag.com](mailto:reference-tools@5g-mag.com)

### Join our Public Monthly Call (Last Friday of the month at 13:00 CET/CEST - unless communicated otherwise)
* Find all the information how to join here: [https://5g-mag.com/community#calendar](https://5g-mag.com/community#calendar)
* Agendas circulated via the [Google Group](https://groups.google.com/g/5g-mag-reference-tools) mailing list

## Contributing
* Learn about the License Model for contributors: [https://www.5g-mag.com/license](https://www.5g-mag.com/license)
* Guidelines for contributors are available [here](guidelines-contributors.html)

## Practical information
The repositories related to the **5G-MAG REFERENCE TOOLS** are usually starting with **rt-**. Some repositories are also allocating dependencies and auxiliary tools. In the case of third party branches, you will find such repositories with its original name from source.

For additional details about the 5G-MAG Reference Tools development programme please visit the following links:

* Developer Space ([developer.5g-mag.com](https://developer.5g-mag.com/)).
* Meet the developer community, participate, contribute, join the public calls: [https://www.5g-mag.com/community](https://www.5g-mag.com/community)
* Learn about the License Model for contributors: [https://www.5g-mag.com/license](https://www.5g-mag.com/license)
* Download installation packages: [https://www.5g-mag.com/install](https://www.5g-mag.com/install)
* Request early access for private repositories: [https://www.5g-mag.com/early-access](https://www.5g-mag.com/early-access)
* Get additional resources for members: [https://www.5g-mag.com/extras](https://www.5g-mag.com/extras)

## Join the open communities
* Join [Slack](https://5g-mag.slack.com/) for discussion
* Join the [Google Group](https://groups.google.com/g/5g-mag-reference-tools) mailing list
* If you have questions that cannot be shared publicly, reach out to us via email: [reference-tools@5g-mag.com](mailto:reference-tools@5g-mag.com)
105 changes: 8 additions & 97 deletions pages/5g-multicast-broadcast-services/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,15 @@ has_children: false
nav_order: 1
---

# List of features under implementation
## 5G-MAG 5G-MBS development over Open5GS
# Features under implementation
## MBS development over Open5GS

The development of 5G-MBS in 5G-MAG targets the 3GPP Release 17 MBS Broadcast features:
- Multicast transport over N6mb [^1].
- Shared delivery on the 5G Core [^2].
- Point to Multipoint (PTM) delivery on RAN [^3].
The 5G-MAG Reference Tools for MBS currently target:
- Multicast transport over N6mb (from AF to MB-UPF).
- Shared delivery on the 5G Core (from MB-UPF to gNBs).
- Point to Multipoint (PTM) delivery on RAN (from gNBs to UE).

[^1]: From AF to MB-UPF.
[^2]: From MB-UPF to gNBs.
[^3]: From gNBs to UEs.

<details>
<summary>Current status of the MVP</summary>

## Current status of the MVP

The Minimum Viable Product (MVP) **currently supports**:
The following features are supported:
- `MB-SMF TMGI Service API` (Following 3GPP TS 29.532 - Release 17.4.0)
- TMGI Allocate Service operation
- TMGI Deallocate Service operation
Expand All @@ -35,7 +26,7 @@ The Minimum Viable Product (MVP) **currently supports**:
- `MB-UPF PFCP Session Establishment extensions` (Following 3GPP TS 29.244 - Release 17.9.0)
- PFCP Session Establishment Response extensions

The MVP **currently lacks support** for:
The following features are not yet supported:
- `AMF MBS Broadcast Service API` (Following 3GPP TS 29.518 - Release 17.11.0)
- MBS Broadcast ContextCreate Service operation
- MBS Broadcast ContextRelease Service operation
Expand All @@ -47,83 +38,3 @@ The MVP **currently lacks support** for:
- MB-SMF TMGI Service API extensions
- MB-SMF MBS Session Service API extensions
- AMF MBS Broadcast Service API extensions

</details>

<details><summary>5G-MBS architecture using Open5GS</summary>

## 5G-MBS architecture using Open5GS

![5G-MBS architecture using Open5GS](images/5G-MBS_5G_Core.png)

</details>

<details><summary>MBS Session Establishment for Broadcast call flow</summary>

## MBS Session Establishment for Broadcast call flow

![MBS Broadcast Session Create call flow](images/MBS_Broadcast_Session_Create_call_flow.png)

</details>

<details>
<summary>Overview of the current implementation</summary>

## Overview of the current implementation

> Note: Read this section to understand the current implementation and its limitations
MBS Sessions can be of two different types, Broadcast MBS Sessions and Multicast MBS Sessions. Broadcast MBS Sessions can be seen as a subset of the Multicast MBS Sessions functionality. In the MBS Sessions context, two kinds of identifiers exist, TMGI (Temporary Mobile Group Identifier) and SSM (Source Specific Multicast). Broadcast MBS Sessions are identified by a TMGI, while Multicast MBS Sessions can be identified by using TMGI or SSM. Even if SSM is selected as identifier, a TMGI is **always** allocated.

The current implementation lets you create a TMGI by sending an HTTP/2 request to the MB-SMF.

The TMGI can be created in two ways:

1. Sending an HTTP/2 request to the MB-SMF to the `MB-SMF TMGI Service API` using the _TMGI Allocate Service operation_ (this way only the TMGI is created)
2. Sending an HTTP/2 request to the MB-SMF to the `MB-SMF MBS Session Service API` using the _MBS Session Create Service operation_ with `tmgiAllocReq` property set to _true_ (this way a TMGI and MBS Session are created)

In this implementation, the TMGI stores the expiration time for the MBS Session. Currently the Network Functions local time is set in UTC and everytime a TMGI is created the _expiration time_ is set to two hours. The `MB-SMF TMGI Service API` using the _TMGI Allocate Service operation_ can be used to refresh the _expiration time_ of an existing TMGI. This process adds two extra hours to the _expiration time_ of the TMGIs specified in the request.

The MBS Session can be created in various ways, depending on the service type of the session, the existing service types are _BROADCAST_ or _MULTICAST_.

A Broadcast MBS Session can be created in two ways:

1. If the TMGI has been previously allocated using the `MB-SMF TMGI Service API`, an MBS Session must be created sending an HTTP/2 request to the MB-SMF to the `MB-SMF MBS Session Service API` using the _MBS Session Create Service operation_ with `tmgiAllocReq` property set to _false_ (this way only a MBS Session is created). The request must contain the previously allocated TMGI in the `tmgi` object
2. If the TMGI has not been previously allocated, TMGI allocation and MBS Session creation can be done at the same time, as explained before. Sending an HTTP/2 request to the MB-SMF to the `MB-SMF MBS Session Service API` using the _MBS Session Create Service operation_ with `tmgiAllocReq` property set to _true_ (this way a TMGI and MBS Session are created)

A Multicast MBS Session can be created in three ways:

> Note: To be documented
After sending the request for the MBS Session creation, some side effects occur:
- MB-SMF and MB-UPF start the PFCP Session Establishment with the `MB-SMF PFCP Session Establishment extensions` using _PFCP Session Establishment Request extensions_ and the `MB-UPF PFCP Session Establishment extensions` using _PFCP Session Establishment Response extensions_
- MB-SMF sends the AMF MBS Broadcast ContextCreate with the `AMF MBS Broadcast Service API` using _MBS Broadcast ContextCreate Service operation_
- AMF sends the NGAP BROADCAST SESSION SETUP to the gNBs with the `AMF NGAP extensions` using _BROADCAST SESSION SETUP REQUEST_ and the gNBs respond with the `gNB NGAP extensions` using _BROADCAST SESSION SETUP RESPONSE_

### Detailed explanations of the side effects

#### [MB-SMF <-> MB-UPF]: PFCP Session Establishment side effects

Due to the use of multicast transport on the N6mb interface, the SSM identifier must be present on the `MB-SMF MBS Session Service API` request using the _MBS Session Create Service operation_. It does not matter if the requested service type is of type _BROADCAST_ or _MULTICAST_.

The placement of the SSM in the request selects which kind of identifier is being used. In the JSON data of the request, if the SSM is present inside the `mbsSession` object, right at the `ssm` object, the TMGI is being used as identifier. If the SSM is present inside the `mbsSession` object and inside the `mbsSessionId` object, at the `ssm` object, then SSM is being used as identifier. The addresses defined in the `ssm` object are the ones being used by the MB-UPF as Packet Detection Rules (PDR) to identify the N6mb multicast traffic.

The MB-UPF detects the traffic coming from the SSM and forwards it to the gNBs that have joined the multicast group defined by the LLSSM (Lower Layer Source Specific Multicast). Because of the use of GTPU, a TEID must be selected to forward the traffic, in the case of multicast transport, a C-TEID (Common TEID) is selected and is shared between all the gNBs receiving the multicast traffic.


> Warning: Currently, only one LLSSM and C-TEID are being allocated. After sending the request to create the MBS Session, a PDR is configured to detect the traffic coming from the SSM specified on the request and the traffic is forwarded to the LLSSM that is using the multicast destination address `239.0.0.4` and C-TEID `33`.
#### [MB-SMF <-> AMF]: AMF MBS Broadcast ContextCreate side effect

> Note: To be implemented and to be documented
#### [AMF <-> gNBs]: NGAP BROADCAST SESSION SETUP side effect

> Note: To be implemented and to be documented
</details>

<details><summary>Usage of the current implementation</summary>


</details>
Loading

0 comments on commit 8a6ebc7

Please sign in to comment.