wiki:Tutorials/4G5G/InterDigital-5G

Version 7 (modified by seskar, 4 years ago) ( diff )

Getting Started with InterDigital 5G NR Performance System

Description

In this tutorial we'll demonstrate how to use InterDigital 5G-NR Performance platform. The setup for the experiment is shown in Figure 1.

InterDigital 5G NR routing

TODDO Setup Description:

  • gNodeB and UE
  • Two nodes for controling them
  • Three subnets as shown
  • routing

Prerequisites

In order to access the test bed, create a reservation and have it approved by the reservation service. Access to the resources are granted only after the reservation is confirmed. Please follow the process shown on the COSMOS work flow page to get started.

Tutorial Setup

Follow the steps below to gain access to the sandbox 1 console and set up nodes with appropriate images.

  1. If you don't have one already, sign up for a COSMOS account
  2. Create a resource reservation on sandbox 1
  3. Prepare 5G-NR status page access: either prepare ssh tunnel thought console to gNodeB server node, port 3005 (i.e. map localhost:8080 to srv3-lg1.sb1.cosmos-lab.org:3005) or follow the instructions to establish a VPN tunnel to the COSMOS sandbox 1. This will be used by the browser to connect to a web server running on the server nodes.
  4. Login into sandbox 1 console (console.sb1.cosmos-lab.org) with two SSH sessions. The first session will be used for access to gNodeB while the second will be dedicated to handling UE.
  5. Load the images on the computing nodes: in each of the two session, start the omf image loading commands:
SSH session 1 for gNodeB SSH Session 2 for UE
omf load -t srv3-lg1 -i ID-5G-gNB.ndz -r 50 omf load -t srv4-lg1 -i ID-5G-UE.ndz -r 50
  1. Turn the server nodes and NR platform devices on:
    omf tell -a on -t srv3-lg1,srv4-lg1,rfdev2-1,rfdev2-2
    

Experiment Execution

Configure Routing on the two compute nodes

  • Execute NR gNB setup script on srv3-lg1
    userid@console:~$ ssh root@srv3-lg1
    root@srv3-lg1:~$ ./setup_gNodeB.sh
    ---------------
    Make sure to start the gNodeB modem on the MPU by logging in with:
    sshpass -p root ssh -o StrictHostKeyChecking=no root@192.168.1.2
    and running:
    root@NR-SW-MPU-gNB:~# ./start_all.sh
    ----------------
    net.ipv4.ip_no_pmtu_disc = 1
    root@srv3-lg1:~#
    
  • Execute NR UE setup script on srv4-lg1.
    userid@console:~$ ssh root@srv4-lg1
    root@srv4-lg1:~$ ./setup_UE.sh
    

The two scripts setup routing to push the test traffic from the server that is attached to UE through the 5G-NR link.

Routing Scripts

The two scripts are shown in the table below:

setup_gNodeB.sh

#!/bin/bash
echo "---------------"
echo "Make sure to start the gNodeB modem on the MPU by logging in with:"
echo "sshpass -p "root" ssh -o StrictHostKeyChecking=no root@192.168.1.2"
echo "and running:"
echo "root@NR-SW-MPU-gNB:~# ./start_all.sh"
echo "----------------"
# Turn on routing
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_no_pmtu_disc=1
# Add rotuing for the two subnets "behind" the gNodeB
ip route add 192.168.2.0/24 via 192.168.1.2
ip route add 192.168.3.0/24 via 192.168.1.2
# and configure NAT for them
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

setup_UE.sh

#!/bin/bash
# Start the UE on the MPU
sshpass -p "root" ssh -o StrictHostKeyChecking=no root@192.168.2.1 "sh /home/root/start_all.sh &"
# Turn on routing
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_no_pmtu_disc=1
# Route all internal 5G traffic through MPU
ip route add 192.168.1.0/24 via 192.168.2.1 dev eth0
# Except for the testbed bound traffic
ip r add 10/8 dev eth1
# Everything else goes over 5G ink
ip r add default via 192.168.1.1

Start services on the two MPUs

  1. ssh into gNodeB MPU at 192.168.1.2 with username "root" and password "root" and execute the setup script "start_all.sh":
    root@srv3-lg1:~# ssh root@192.168.1.2
    root@192.168.1.2's password: 
    root@NR-SW-MPU-gNB:~# ./start_all.sh
    root@NR-SW-MPU-gNB:~# metal: info:      metal_uio_dev_open: No IRQ for device 3ed80000.shm.
    
    root@NR-SW-MPU-gNB:~# exit
    logout
    Connection to 192.168.1.2 closed.
    root@srv3-lg1:~# 
    
  2. ssh into UE MPU at 192.168.2.1 with username "root" and password "root: and execute the setup script "start_all.sh":
    root@srv4-lg1:~# ssh 192.168.2.1
    root@192.168.2.1's password: 
    root@NR-SW-MPU-UE:~# ./start_all.sh 
    root@NR-SW-MPU-UE:~# metal: info:      metal_uio_dev_open: No IRQ for device 3ed80000.shm.
    
    root@NR-SW-MPU-UE:~# exit
    logout
    Connection to 192.168.2.1 closed.
    root@srv4-lg1:~# 
    

The two scripts will start the appropriate firmware on both NR Platform devices. The NR Platform will automatically “connect” a link between the gNB and UR. This can be verified via the NR GUI

GUI Setup & Instructions

Note that the GUI web server has already been started during Linux startup. Open the browser and point it at http://localhost:8080 (if using ssh tunneling) or at http://srv3-lg1.sb1.cosmos-lab.org:3005 if using VPN.

Sending iperf data between the gNB and UE

The following commands are provided as an example of how to send Downlink iperf data traffic on the NR 28GHz mmW OTA link via the compute machines that are attached to the gNB and UE platforms

  • In the UE console session start the iperf server
    root@srv4.lg1:~$ iperf3 -s -i 1
    
  • In the gNodeB session strat the iperf client
    root@srv3-lg1:~# iperf3 -c 192.168.2.1 -i 1 -u -b 86M -l 1472 -t 3600
    

Analyze the NR link performance via the NR GUI

NR GUI

Shutting Down Resources

Turn off the server nodes and NR platform devices:

omf tell -a offh -t srv3-lg1,srv4-lg1,rfdev2-1,rfdev2-2

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.