Skip to content

Commit

Permalink
Feature/documentation cleanup (#99)
Browse files Browse the repository at this point in the history
* Add a How to Use guide that explains how to use the documentation.

* Adjust Application Server docs

* Cleanup 5GMS documentation

* Cleanup 5G core section

* Cleanup 3GPP RAN anc Core Platforms

* Cleanup and extend the 5G Broadcast section

* Cleanup and extend the 5G Emergency Alerts section.

* Cleanup Multimedia Content Delivery

* Cleanup MBS

* Cleanup XR

* Add XR tutorial link
  • Loading branch information
dsilhavy authored Nov 13, 2024
1 parent 64d6e7f commit 8a3db61
Show file tree
Hide file tree
Showing 35 changed files with 1,099 additions and 858 deletions.
6 changes: 4 additions & 2 deletions pages/3gpp-ran-and-core-platforms/repositories.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ nav_order: 1

<img src="../../assets/images/projects/3gpp_repos.png">

## Description

Some 5G-MAG Reference Tools Projects make use of software developed by several Open-Source initiatives. In particular:

* [srsRAN Project](https://www.srsran.com/), in its two variants:
* srsran/srsRAN_Project: Open source O-RAN 5G CU/DU solution from Software Radio Systems (SRS), used primarily as the NG-RAN to build 5G-MAG Reference Tools demonstrators and PoCs and as the basis for the development of NG-RAN related components for MBS
* srsran/srsRAN_4G: Open source SDR 4G software suite from Software Radio Systems (SRS), used primarily as the basis for the LTE-based 5G Broadcast components, emergency alerts over 5G Broadcast and the development of UE functionalities for MBS
* `srsran/srsRAN_Project`: Open source O-RAN 5G CU/DU solution from Software Radio Systems (SRS), used primarily as the NG-RAN to build 5G-MAG Reference Tools demonstrators and PoCs and as the basis for the development of NG-RAN related components for MBS
* `srsran/srsRAN_4G`: Open source SDR 4G software suite from Software Radio Systems (SRS), used primarily as the basis for the LTE-based 5G Broadcast components, emergency alerts over 5G Broadcast and the development of UE functionalities for MBS

* [Open5GS Project](https://www.open5gs.org), used primarily as the 5GC to build 5G-MAG Reference Tools demonstrators and PoCs and as the basis for the development of 5GC related components for MBS

Expand Down
2 changes: 1 addition & 1 deletion pages/5g-core-network-components/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: default
title: 5G Core Network Components
has_children: true
nav_order: 3
nav_order: 1
---
# 5G Core Network components

Expand Down
45 changes: 27 additions & 18 deletions pages/5g-core-network-components/tutorials/5gnetwork.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,15 @@ nav_order: 0
These are the generic instructions to set up a 5G network using Open5GS and srsRAN. An Ettus X310 USRP and a Pixel 8
phone are used.

## Prerequisites

* Host machine running Ubuntu
* UHD SDR like Ettus X310 USRP
* Android Pixel 8 phone

Note that other Android devices work as well but are not tested by ourselves. For details check
the [srsRAN documentation](https://docs.srsran.com/projects/project/en/latest/knowledge_base/source/cots_ues/source/index.html#cots-ues).

## 5G Core installation and configuration

Follow the installation procedures in
Expand All @@ -27,21 +36,21 @@ We recommend installing for Ubuntu 22.04 with the following instructions:

Import the public key used by the package management system:

```
```bash
sudo apt update
sudo apt install gnupg
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
```

Create the list file /etc/apt/sources.list.d/mongodb-org-6.0.list for Ubuntu 22.04:

```
```bash
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
```

Install the MongoDB packages.

```
```bash
sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod (if '/usr/bin/mongod' is not running)
Expand All @@ -50,7 +59,7 @@ sudo systemctl enable mongod (ensure to automatically start it on system boot)

#### Install Open5GS

```
```bash
sudo add-apt-repository ppa:open5gs/latest
sudo apt update
sudo apt install open5gs
Expand All @@ -60,7 +69,7 @@ sudo apt install open5gs

The WebUI allows you to interactively edit subscriber data. Node.js is required to install the WebUI of Open5GS:

```
```bash
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
Expand Down Expand Up @@ -133,7 +142,7 @@ config files (and the gNB).

Modify `/etc/open5gs/nrf.yaml` to set the Serving PLMN ID:

```
```yaml
nrf:
serving: # 5G roaming requires PLMN in NRF
- plmn_id:
Expand All @@ -147,7 +156,7 @@ nrf:
Modify `/etc/open5gs/amf.yaml` to set the PLMN ID and TAC:

```
```yaml
amf:
sbi:
server:
Expand Down Expand Up @@ -193,7 +202,7 @@ amf:

After changing config files, please restart Open5GS daemons.

```
```bash
sudo systemctl restart open5gs-nrfd
sudo systemctl restart open5gs-amfd
```
Expand All @@ -207,21 +216,21 @@ To enable forwarding and add the NAT rule, enter:

Enable IPv4/IPv6 Forwarding

```
```bash
sudo sysctl -w net.ipv4.ip_forward=1
sudo sysctl -w net.ipv6.conf.all.forwarding=1
```

Add NAT Rule

```
```bash
sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
sudo ip6tables -t nat -A POSTROUTING -s 2001:db8:cafe::/48 ! -o ogstun -j MASQUERADE
```

Configure the firewall correctly. Some operating systems (Ubuntu) by default enable firewall rules to block traffic.

```
```bash
sudo ufw disable
```

Expand All @@ -234,21 +243,21 @@ the [srsRAN installation guide](https://docs.srsran.com/projects/project/en/late

Install dependencies

```
```bash
sudo apt-get install cmake make gcc g++ pkg-config libfftw3-dev libmbedtls-dev libsctp-dev libyaml-cpp-dev libgtest-dev
```

Install UHD drivers (e.g. for Ettus USRP)

```
```bash
sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev uhd-host
```

Download the srsRAN Project packages:

```
```bash
sudo add-apt-repository ppa:softwareradiosystems/srsran-project
sudo apt-get update
sudo apt-get install srsran-project -y
Expand All @@ -260,7 +269,7 @@ sudo apt-get install srsran-project -y

Before running srsRAN Project applications, we recommend tuning your system for best performance:

```
```bash
sudo ./scripts/srsran_performance
```

Expand All @@ -271,7 +280,7 @@ When installed from packages, srsRAN Project example configs can be found in `/u
We've created the following 5gmag_example.yml. We recommend finding the value ARFCN through
this [link](https://5g-tools.com/5g-nr-arfcn-calculator/).

```
```yaml
# This example configuration outlines how to configure the srsRAN Project gNB to create a single TDD cell
# transmitting in band 77, with 10 MHz bandwidth and 30 kHz sub-carrier-spacing. A USRP X310 is configured
# as the RF frontend. Note in this example the internal GPDSO is used.
Expand Down Expand Up @@ -344,7 +353,7 @@ When you install the software using the package manager, it is setup to run as a

Run the gNB as follows, passing the YAML configuration file:

sudo ./gnb -c 5gmag_example.yml
`sudo ./gnb -c 5gmag_example.yml`

## Configure the COTS UE

Expand Down Expand Up @@ -374,6 +383,6 @@ the UE is switched on.

The UE should connect automatically. If you experience trouble, we recommend checking the 5G Core logs, e.g.:

```
```bash
sudo tail -f /var/log/open5gs/amf.log
```
2 changes: 1 addition & 1 deletion pages/5g-media-streaming/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: default
title: 5G Downlink Media Streaming
has_children: true
nav_order: 1
nav_order: 3
---

# 5G Downlink Media Streaming (5GMSd)
Expand Down
38 changes: 28 additions & 10 deletions pages/5g-media-streaming/tutorials/end-to-end-with-5g.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,51 @@
---
layout: default
title: Basic 5GMS Setup with 5G Network
title: Basic 5GMS Setup with 5G Network
parent: Tutorials
grand_parent: 5G Downlink Media Streaming
has_children: false
nav_order: 1
---

# Tutorial - 5G MSd: Basic End-to-End Setup with 5G Network
This guide describes how to setup and configure the 5G-MAG Reference Tools to create an end to end setup consisting of the 5G Downlink Media Streaming components and a 5G Network based on Open5GS and srsRAN.

This guide describes how to setup and configure the 5G-MAG Reference Tools to create an end to end setup consisting of
the 5G Downlink Media Streaming components and a 5G Network based on Open5GS and srsRAN.

# 5G Network with COTS UE setup
For details please refer to the [corresponding documentation](../../5g-core-network-components/tutorials/5gnetwork.html)

To setup the 5G Network and connect a COTS device please refer to
the [corresponding documentation](../../5g-core-network-components/tutorials/5gnetwork.html).

# 5G Media Streaming setup

## Server-side Setup

### Step 0: Using a local server (Skip if your content is hosted in the internet)
#### Step 0a: Install the express.js webserver
The express.js webserver acts as our CDN for unicast delivery. To install the webserver follow the instructions [here](https://github.com/5G-MAG/rt-common-shared/tree/main/simple-express-server).

#### Step 0b: Configure ffmpeg
First we configure the `ffmpeg` output. Navigate to `flute-ffmpeg/files` and open `ffmpeg-hls.sh`. Change the following two lines and point them to the path of the local webserver installed previously. If there is no `watchfolder/hls`folder on your webserver yet create that as well.
#### Install the express.js webserver

The express.js webserver acts as our CDN for unicast delivery. To install the webserver follow the
instructions [here](https://github.com/5G-MAG/rt-common-shared/tree/main/simple-express-server).

#### Configure ffmpeg

First we configure the `ffmpeg` output. Navigate to `flute-ffmpeg/files` and open `ffmpeg-hls.sh` or `ffmpeg-dash.sh`
depending on the output format you want to create. Change the following
two lines and point them to the path of the local webserver installed previously. If there is no `watchfolder/hls` or
`watchfolder/dash`folder
on your webserver yet create that as well.

````
-hls_segment_filename /home/dsi/5gmag/simple-express-server/public/watchfolder/hls/stream_%v_data%02d.ts \
-var_stream_map "v:0,a:0" /home/dsi/5gmag/simple-express-server/public/watchfolder/hls/stream_%v.m3u8
````
#### Step 0c: Run ffmpeg and the express.js webserver

Navigate to `flute-ffmpeg/files` and run `sh ffmpeg-hls.sh`.
#### Run ffmpeg and the express.js webserver

Navigate to `flute-ffmpeg/files` and run `sh ffmpeg-hls.sh` or `sh ffmpeg-dash.sh`.

#### Step 0d: Start the express.js webserver
#### Start the express.js webserver

Run `npm start` in `simple-express-server`. Our files created by `ffmpeg` are now hosted and available via unicast. Try
to query the master manifest to check for the availability of the files:
Expand All @@ -42,6 +57,7 @@ curl http://192.168.11.1:3333/watchfolder/hls/manifest.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2305600,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2"
stream_0.m3u8
````

### Step 1: Install the Application Function

For details please refer to the [corresponding section](end-to-end.html#1-installing-the-application-function) in
Expand Down Expand Up @@ -71,6 +87,8 @@ Follow the [command](end-to-end.html#starting-the-af) documented in the [basic e
Follow the [steps](end-to-end.html#creating-a-content-hosting-configuration) to create a content hosting configuration
and a provisioning session using the `msaf-configuration` tool.

Note that you need to point the `ingestURL` of your `streams.json` to the URL of your webserver.

## Client-side Setup

As we are all set on the server-side now we can focus on the client side.
Expand Down
Loading

0 comments on commit 8a3db61

Please sign in to comment.