Software-Defined Radios
Reserve an SDR
On Horizon (Openstack's web interface)
Go to "Reservations"->"Leases"->"Create Lease".
Choose a name for your lease.
Choose the starting date, end data, and/or lease duration.
Go to "Networks" tab, select "Reserve Network".
Choose a proper "Network Name".
From "Resource Properties" drop down lists, choose your "vlan_id".
Press "Create" on the last tab.
Wait on the "Reservations"->"Leases" page, until the lease status turns "ACTIVE" from "PENDING".
Now if you check the networks in "Network"->"Networks", you should find a new network with the name you chose.
Write down "Segmentation ID" from the network's page. This is the VLAN id on the tenant switch. Check that a new VLAN is created on the tenant switch and the SDR's interface is an UNTAGGED members of the VLAN.
In this example, VLAN ID is 102 and the SDR's port is te1/0/29
:
Hello World Test
On Horizon (Openstack's web interface)
Create a new container with the image
praqma/network-multitool
.Attach the SDR's RJ45 network to this container.
Set the labels:
networks.1.interface=eno12429,networks.1.ip=10.30.1.200/24
Go to "Scheduler Hints" tab, create a custom "Scheduler Hint" with the name "reservation" and set its value to the reservation id of your worker lease.
Press "Create" and wait on "Container"->"Containers" page for the created container to turn into "Running" state.
On the tenant switch, check that the chosen interface and the SDR's interface are both UNTAGGED members of the VLAN. In this example, worker's port is te1/0/32
:
On the console page of the container, you should be able to ping the SDR's interface.
Reboot Test
Create a new container with the image
samiemostafavi/sdr-tools
.Select the sdr network to be attached to the container.
Set the labels:
networks.1.interface=eno12429,networks.1.ip=10.30.1.200/24
.Set the env variables:
SERVICE=reboot,SDR=sdr-02,JSON_PATH=sdrs.json
In the logs you have to observe these:
WiFi Test
In order to test WiFi end-to-end networking, you must reserve one worker with at least two 1Gbps interfaces and two software-defined radios (only rj45 ports suffice).
We create the following network:
Change the SDRs designs to Mango. Run the following sequence twice, once for
sdr-02
and again forsdr-09
:Create a new container with the image
samiemostafavi/sdr-tools
.Select sdr-0x-rj45 network to be attached to the container.
Set the labels:
networks.1.interface=eno12429,networks.1.ip=10.30.1.200/24
.Set the env variables:
SERVICE=change_design,DESIGN=mango,SDR=sdr-0x,JSON_PATH=sdrs.json
.
Run
sdr-02
as the WiFi access point:Create a new container with the image
samiemostafavi/sdr-tools
.Select sdr-02-rj45 network to be attached to the container.
Set the labels:
networks.1.interface=eno12429,networks.1.ip=10.30.1.200/24
.Set the env variables:
SERVICE=start_mango,DESIGN=mango,SDR=sdr-02,SIDE=ap,CONFIG={"mac_addr":"40:d8:55:04:20:12"},JSON_PATH=sdrs.json
.
If everything goes well, you should see the following output in the AP sdr logs:
Run
sdr-09
as the WiFi station:Create a new container with the image
samiemostafavi/sdr-tools
.Select sdr-09-rj45 network to be attached to the container.
Set the labels:
networks.1.interface=eno12429,networks.1.ip=10.30.1.200/24
.Set the env variables:
SERVICE=start_mango,DESIGN=mango,SDR=sdr-09,SIDE=sta,CONFIG={"mac_addr":"40:d8:55:04:20:19"},JSON_PATH=sdrs.json
.
If you see the following in the STA sdr, it means that the connection has been established:
Check the connection quality: For the station side use
sdr-09
andSIDE=sta
, for the access point side usesdr-02
andSIDE=ap
:Create a new container with the image
samiemostafavi/sdr-tools
.Select sdr-09-rj45 network to be attached to the container.
Set the labels:
networks.1.interface=eno12429,networks.1.ip=10.30.1.200/24
.Set the env variables:
SERVICE=check_mango,SDR=sdr-09,SIDE=sta,JSON_PATH=./sdrs.json,SPEED_CHECK=192.168.11.1
.
You will get information like bandwidth, frequency and an iperf speed test.
End-to-End WiFi Test
We create the following network:
Continue the privious test with configuring the routing tables on the SDRs:
Run AP wifi routing configs on
sdr-02
:Create a new container with the image
samiemostafavi/sdr-tools
.Select sdr-02-rj45 network to be attached to the container.
Set the labels:
networks.1.interface=eno12429,networks.1.ip=10.30.1.200/24
.Set the env variables:
Run STA wifi routing configs on
sdr-09
:Create a new container with the image
samiemostafavi/sdr-tools
.Select sdr-02-rj45 network to be attached to the container.
Set the labels:
networks.1.interface=eno12399,networks.1.ip=10.30.1.201/24
.Set the env variables:
Run IRTT Server
Create a new container with the image
nuriafe99/irtt-server
.Select sdr-02-rj45 network to be attached to the container.
Set the labels:
networks.1.interface=eno12429,networks.1.ip=10.30.1.251/24
.
Run IRTT Client
Create a new container with the image
samiemostafavi/sdr-tools
.Select sdr-09-rj45 network to be attached to the container.
Set the labels:
networks.1.interface=eno12399,networks.1.ip=10.30.1.252/24
.
Open the client's console and run the following command:
Last updated