# Earth-orbiting Mission
The earth orbiting mission is using the following componenets:
- → `Labview` channel emulator for emulating long Round-Trip-Delay for LEO and GEO orbit
- → `STK` for mission design and link budget calculation
- → `Matlab` for sending the channel coefficient to Labview
- → `MOSAIC FlexRIC` for sending RAN information to the WBE-UI
- → `MOSAIC WEB-UI` for monitoring the status of the Network
- → `srsEPC` to deploy the core network
- → `OpenAirInterface` with ntn Modification for eNodeB
- → `srsRAN` with ntn modification for the UE
<img
className="docsheader"
style={{ marginBottom: 10 }}
src={useBaseUrl("img/5Gspace/earthOrbit/arch.svg")}
/>
## 5G Demonstration Experiments
<sup>Demonstration of LEO Non-Terrestrial 5G transparent payload using OpenAirInterface eNodeB and srsRAN UE.</sup>
<ReactPlayer width="100%" fluid="false" loop={true} light={false} pip playing muted controls url='https://youtu.be/tMJ_mfXx1Ec' />
<sup><sub>Developed by: Abdelrahman Astro, Mohammad Gholamian, and Oltjon Kodheli</sub></sup>
<br/>
<sup><sub>Voice: Oltjon Kodheli</sub></sup>
<br/>
References and resources for more information:[^1], [^2], [^3].
[^1]: Kodheli, Oltjon, Abdelrahman Astro, Jorge Querol, Mohammad Gholamian, Sumit Kumar, Nicola Maturo, and Symeon Chatzinotas. “Random Access Procedure over Non-Terrestrial Networks: From Theory to Practice.” IEEE Access 9 (2021): 109130–43. https://doi.org/10.1109/access.2021.3101291. .
[^2]: https://gitlab.eurecom.fr/oai/openairinterface5g/-/tree/SnT-enb-ntn-rel-1.0
[^3]: https://gitlab.uni.lu/telco/srs-ntn-ue
The video illustrates the first experiment of a direct access to A low Earth orbit (LEO) satellite. While the satellite is moving, shown by the STK software in the bottom right, the satellite channel parameters will change. The GUI of the NTN channel emulator helps to monitor the channel coefficients which are calculated by the input parameters coming from STK. Also, while runing the experiment, we can observe the spectrum of the signal (bottom left of the screen) and we can monitor the pre-defined KPIs (top left the screen). Successful data transmisión over NTN is successfuly demonstrated by combining various hardware and software elements, and by modyfing the terrestrial 3GPP protocol in order to be satellite-complient.
# Execution Flow
:::warning Warning
This should be started sequentially. Otherwise, many errors can be encountered.
:::
Below we show the system components and how they should be started in sequence:
## STK LEO Scenario
You should be able to access the STK server and run the the LEO mission using STK and Matlab.
## NTN Channel Emulator
You should be able to access the Channel Emulator and run the NTN-Channel Emulator software from Labview.
## All in One Base-Station
#### Requirements:
- ssh installed
- Connection to eduroam network via Wi-Fi or Ethernet
- Physical prescense in the lab, for debugging the hardware connection
The All in One Base-Station, contains the core network, eNodeB, and extra application for radio monitoring and control.
:::tip
A build is ready to use on machine `IP: 10.6.6.12` MAC addr: `f8:4d:89:84:45:9f` for the following applications
- binary: /bin/srs.epc.ntn
- binary: /bin/flexran
- binary: /bin/mosaic.lte.ntn.app
- binary: /bin/oai.lte.ntn
You should access the gnb server to run the the All-in-One BaseStation applications using the credentials below given in Access:
:::
:::info Access
- IP: 10.6.6.12
- Pass: gnb123
- machnie: gnb
:::
You shall establish a remote connection to the gnb node. You will need at least 4 terminals open, and you shall run the following command in each terminal:
```bash
ssh -v gnb@10.6.6.12
```
Now, we will walk you through the execution flow step by step.
<!--<img
className="docsheader"
style={{ marginBottom: 10 }}
src={useBaseUrl("gif/5Gspace/earthOrbit/execution.flow.gif")}
/> -->
### Evolved-Packet Core (EPC)
In terminal 1, start a remote session to the gnb machine to start the Core network application.
```bash
ssh -v gnb@10.6.6.12
```
You should be prompted for a password as shown below:
```bash
debug1: Trying private key: /Users/astro/mykeys/.ssh/id_ed25519_sk
debug1: Trying private key: /Users/astro/mykeys/.ssh/id_amss
debug1: Next authentication method: password
gnb@10.6.6.12's password:
```
Later on, you will be logged into a the gnb server:
```bash
Last login: Thu Sep 22 16:18:22 2022 from 10.187.88.113
gnb@gnb-Precision-3640-Tower:~$
```
Running srs EPC:
> The core network is built and configured to be used with OpenAirInterface gNodeB. All you need to do, is to to run the following command to start the EPC service.
```shell
srs.epc.ntn # program, recommended, stop with Ctrl-C
```
You should see the following output after executing the previous command.
```text
Built in Release mode using commit 89f16eed2 on branch HEAD.
--- Software Radio Systems EPC ---
Reading configuration file /opt/spacelab/core/lte/conf/epc.geo.conf...
HSS Initialized.
MME S11 Initialized
MME GTP-C Initialized
MME Initialized. MCC: 0xf208, MNC: 0xff92
SPGW GTP-U Initialized.
SPGW S11 Initialized.
SP-GW Initialized.
```
<Highlight color="#25c2a0">passed</Highlight>
..................
### MOSAIC5G
#### FlexRAN
In terminal 2, start a remote session to the gnb machine to start the flexRAN service.
```bash
ssh -v gnb@10.6.6.12
```
You should be prompted for a password as shown below:
```bash
debug1: Trying private key: /Users/astro/mykeys/.ssh/id_ed25519_sk
debug1: Trying private key: /Users/astro/mykeys/.ssh/id_amss
debug1: Next authentication method: password
gnb@10.6.6.12's password:
```
Later on, you will be logged into a the gnb server:
```bash
Last login: Thu Sep 22 16:18:22 2022 from 10.187.88.113
gnb@gnb-Precision-3640-Tower:~$
```
Running flexRAN service:
```shell
sudo flexran # program, recommended, stop with Ctrl-C
```
You should see the following output after executing the previous command.
```shell
Plug process-control: snap connect flexran:process-control
process-control connected
/snap/flexran/40/bin/flexran -p 2210 -n 9999 -s 0.0.0.0 -a 0.0.0.0
[INFO][FLEXRAN_RTC] - Listening on 0.0.0.0:2210 for incoming agent connections
[INFO][FLEXRAN_RTC] - Listening on 0.0.0.0:9999 for incoming REST connections
```
<Highlight color="#25c2a0">passed</Highlight>
..................
#### WebUI Application
In terminal 3, start a remote session to the gnb machine to start the WEBUI application.
```bash
ssh -v gnb@10.6.6.12
```
You should be prompted for a password as shown below:
```bash
debug1: Trying private key: /Users/astro/mykeys/.ssh/id_ed25519_sk
debug1: Trying private key: /Users/astro/mykeys/.ssh/id_amss
debug1: Next authentication method: password
gnb@10.6.6.12's password:
```
Later on, you will be logged into a the gnb server:
```bash
Last login: Thu Sep 22 16:18:22 2022 from 10.187.88.113
gnb@gnb-Precision-3640-Tower:~$
```
> mosaic.lte.ntn.app starts the web application on the webserver 10.6.6.12 port number 8088
```shell
mosaic.lte.ntn.app # program, recommended, stop with Ctrl-C
```
You shall see the following message after running the webapp.
```text
Welcome to MOSAIC WEB UI ...
```
<Highlight color="#25c2a0">passed</Highlight>
..................
:::info Output
The following link `10.6.6.12:8088` shall be accessible from any web browser within the uni.lu network. Accordingly, we would be able to observe the eNodeB and UE and monitor the RAN traffic as soon as there's a communication link as we weill see later on.
:::
To modify the address and port number, you will need to edit the mosaic.lte.ntn binary file:
```
gnb@gnb-Precision-3640-Tower:~$ cat /bin/mosaic.lte.ntn.app
cd /opt/spacelab/ran/lte/mosaic/webui/sdk/frontend/drone/
python drone.py --port=8088 --address=10.6.6.12
```
### eNodeB with NTN modifications
In terminal 4, start a remote session to the gnb machine to start the Base-Station.
```bash
ssh -v gnb@10.6.6.12
```
You should be prompted for a password as shown below:
```bash
debug1: Trying private key: /Users/astro/mykeys/.ssh/id_ed25519_sk
debug1: Trying private key: /Users/astro/mykeys/.ssh/id_amss
debug1: Next authentication method: password
gnb@10.6.6.12's password:
```
Later on, you will be logged into a the gnb server:
```bash
Last login: Thu Sep 22 16:18:22 2022 from 10.187.88.113
gnb@gnb-Precision-3640-Tower:~$
```
The following binary runs the lte-softmodem with specific configuration:
```shell
oai.lte.ntn # program, recommended, stop with Ctrl-C
```
lte-softmodem major configuration:
- Band7
- RTD: 2msec
- SDR: USRPB210
There are two configuration files available in the following path: `/opt/spacelab/ran/lte/conf` which you may adapt according to your needs.
- enb.ntn.5mhz.usrpb210.epc.conf
- enb.ntn.5mhz.usrpb210.epc.flexran.conf
:::info Configuration
In this setup we are using an RTD:= 2msec. This can be adjusted from the configuration file by writing into the variable `ntn_delay`. Below, we highlight the most common parameters for the eNodeB config file.
:::
```text
Active_eNBs = ( "eNB-Eurecom-LTEBox");
Asn1_verbosity = "none";
eNBs =
(
{
////////// Identification parameters:
eNB_ID = 0xe00;
cell_type = "CELL_MACRO_ENB";
eNB_name = "eNB-Eurecom-LTEBox";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 0x0001;
plmn_list = ( { mcc = 208; mnc = 92; mnc_length = 2; } );
tr_s_preference = "local_mac"
// In seconds
rrc_inactivity_threshold = 0;
////////// Physical parameters:
component_carriers = (
{
// highlight-start
#should always be GEO. (GEO means delay is fixed where no doppler is implmented)
orbit_type = "GEO";
ntn_delay = 2;
// highlight-end
node_function = "3GPP_eNODEB";
node_timing = "synch_to_ext_device";
node_synch_ref = 0;
frame_type = "FDD";
tdd_config = 3;
tdd_config_s = 0;
prefix_type = "NORMAL";
// highlight-start
eutra_band = 7;
downlink_frequency = 2680000000L;
uplink_frequency_offset = -120000000;
// highlight-end
Nid_cell = 0;
#5MHz Bandwidth
N_RB_DL = 25;
NETWORK_CONTROLLER :
{
// highlight-start
FLEXRAN_ENABLED = "yes";
// highlight-end
FLEXRAN_INTERFACE_NAME = "lo";
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
FLEXRAN_PORT = 2210; #2210
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
FLEXRAN_AWAIT_RECONF = "no";
};
```
<!--<img
className="docsheader"
style={{ marginBottom: 10 }}
src={useBaseUrl("gif/5Gspace/earthOrbit/execution.flow.gif")}
/> -->
:::warning Warning
The current password is gnb123. However, please switch to key based authentication for access and use complicated password instead.
:::
## UE with NTN Modification
:::tip USE
A build is ready to use on machine `IP: 10.6.7.13` MAC addr: `a4:bb:6d:69:cb:db`
:::
```shell
ssh -v ue@10.6.7.13
```
You shall be asked to enter the password:
```text
debug1: Next authentication method: password
ue@10.6.7.13's password:
```
Now, you can start the ue application:
```shell
// highlight-start
sudo srsue # program, recommended, stop with Ctrl-C
// highlight-end
```
The ue shall start doing cell search, you shall be able to see an output like the following:
:::warning Warning
The current password is ue123. However, please switch to key based authentication for access and use complicated password instead.
:::
## Warning
:::warning Warning
For the eNB and UE, you must stop the application as soon as you finish using **Ctrl-C**s. Then you must type the command exit to close probably your remote session. You don't need to do that neither for STK, Matlab, nor the labview.
:::
## Versioning and Testing
| Validator | Status | Duration | Time |
|---------------|---|------|----------|
| Ashish Kumar Meshram | <Highlight color="#25c2a0">verified ✔ </Highlight>| 15min | 13:40. 22 Sep 2022 |
| Sumit Goski | <Highlight color="#25c2a0">verified ✔ </Highlight>| 25min | 17:00. 23 Sep 2022 |
export const Highlight = ({children, color}) => (
<span
style={{
backgroundColor: color,
borderRadius: '20px',
color: '#fff',
padding: '10px',
cursor: 'pointer',
}}
onClick={() => {
alert(`Current status of validation: ${children}`);
}}>
{children}
</span>
);
<hr />
<!--1877F2 BLUE-->
<!--25c2a0 Green-->
- **Author**: ```6GSpaceLab Team``` ({symeon.chatzinotas, jorge.querol}@uni.lu)