10 Using Powder: From simulation, to emulation, to over-the-air
Powder is designed to allow users to start small and simple, and progress toward complex, real world outdoor operation (if that is the end goal of the work). We encourage users to step through the following environments toward this end:
Apply and develop your custom changes using a profile that instantiates all required resources, e.g. a 5G Core, gNB and UE, using simulated RF. This only requires compute nodes, and RF behavior is 100% predictable and controllable. This make the development process simpler by eliminating unknowns caused by real radio behaviors and outside interference.
Move your setup to one of Powder’s controlled RF environments, such as the conducted attenuator matrix or paired radio workbenches. In such controlled RF environments, the radio signals are real, but isolated from external influences. This makes it easier to debug and characterize your full communication and application stack. Further, with the attenuator matrix, RF path loss is able to be changed programatically.
Transition to using the indoor over-the-air lab, where RF propagation is realistic, but within a short range, with limited external interference. This environment is a stepping stone toward outdoor operation, allowing for validation of your system without significant concerns related to link budget (available power), external interference, and similar issues that are present outdoors.
Deploying onto real radio resources on the Powder outdoor radio environment. This is the ultimate test of a system, with real physical scale, external parties potentially creating interference, and dynamics such as moving objects and weather. In addition to fixed rooftop, side-of-road, and fixed, side-of-building (human height) radio deployments, Powder’s outdoor environment also includes mobile shuttle endpoints that can be utilized in your experiments. Experience shows that jumping straight to the outdoor environment can be a frustrating experience if you haven’t already validated that your system works in more controlled settings first.
The chapter sections that follow provide example scenarios and profiles for using each of the environments described above.
10.1 Simulated RF Experimentation
The srsran5g-simulated-rf profile deploys an Open5GS 5G Core and srsRAN gNodeB/UE on a single compute node, with baseband IQ samples passed between the gNodeB and UE using ZMQ sockets. Optionally, you can also deploy a containerized version of the OSC RIC and run an example xApp that exercises the KPM service model using the ORAN resources provided by the SRS team.
The 5G-sim profile was developed for MWW2023 and we continue to maintain it because it is a very good start for using OAI 5G. Similar to the srsRAN profile mentioned above, this profile deploys an complete 5G network on a single node, with with baseband IQ samples passed via sockets. But it also takes advantage of OAI’s channel modeling capabilities and UE/gNodeB soft scopes, which can be very useful for learning and debugging.
10.2 Conducted RF Environment
The srs-rf-matrix profile deploys a complete 5G network with all radio antenna ports wired into our programmable conducted RF attenuator matrix. This allows you to control the RF path loss between the gNodeB and UEs, introduce noise and interference, or observe uplink spectrum use. This environment is capable of emulating handover scenarios as well.
The oai-rf-bench profile deploys a complete 5G network in another Powder conducted RF environment, the paired radio workbenches, which include two X310 SDRs with ports wired through 30 dB attenuators, and a common clock source for synchronization. This environment is ideal for testing and debugging your 5G network in a controlled RF environment if your application does not require the full flexibility of the conducted attenuator matrix.
10.3 Using the Indoor Over-The-Air Lab
Powder provides two example profiles for using the indoor over-the-air lab: oai-indoor-ota and srs-indoor-ota. Both of these deploy a complete 5G network using server class compute and an NI X310 SDR for the gNodeB, and up to four NUCs with COTS UEs. These profiles are often forked and extended to provide more complex network topologies and scenarios, e.g., multiple gNodeBs, interference sources, and more.
10.4 Outdoor Over-The-Air Environment
The Powder over-the-air experimental workflow follows the same basic approach described in the getting started chapter. However, over-the-air operation involves radio frequency (RF) transmissions, that are subject to FCC regulations. The implication of this is that over-the-air experiments cannot be instantiated on-demand. Rather all over-the-air experiments need to pre-reserve all resources that will be needed by the experiment, including spectrum, before the normal experiment instantiation process can be started.
In summary, the steps involved with instantiating an over-the-air experiment in Powder are:
Select a profile you want to instantiate and note the resources required from the profile description.
Request a reservation for the (sub-)set of resources you need.
Once your reservation is approved, follow the normal experimental workflow process to instantiate your experiment.
10.4.1 Step-by-step walkthrough
The step-by-step walkthrough below will instantiate an over-the-air experiment using the srsRAN Project open source 5G software stack. The walkthrough assumes you have an account on Powder and have your own project that has been enabled by Powder administrators for over-the-air operation. (Specifically, you will not be able to use the "TryPowder" project to instantiate this profile.)
- Log into the portalStart by pointing your browser at https://www.powderwireless.net/ and log in.
- Find the resources needed by the srs-outdoor-ota profileWe will use the srsRAN Outdoor OTA profile developed by the Powder team, which you can find here. Alternatively you can search for the profile: Select "Experiments" and then "Start Experiment" from the portal. Then select "Change Profile". In the search box enter "srs-outdoor-ota" and select the "srsRAN 5G w/ Open5GS CN5G using the POWDER Dense Deployment" profile provided by the Powder team.In the profile description, note the hardware and frequency resources that are required for this profile.For this activity we will select the following specific resources:Hardware: ; Emulab, cnode-mario; Emulab, cnode-guesthouse; Emulab, d430 x2Frequency: 3430 MHz to 3450 MHz
- Go to the resource reservation pageWithin the Powder portal, select "Experiments", then select "Reserve Resources" from the drop down menu.
- Reserve the resources required by the srs-outdoor-ota profileFill out the reservation page to reserve the specific resources identified above. Note that resource reservations are tied to specific projects. You will have to use your own project here, not the Powder team project ("PowderTeam") shown in the screenshot. (The "TryPowder" project used for the getting stared activity also can not be used for over-the-air operation.)Select a date and time for your reservation and provide a "Reason" description.Once you have completed all the required fields, select "Check" to see if your reservation request can be accommodated. You might have to adjust your request (select different resources and/or change you reservation time/date) to make it fit. Note that the table/graphs on the right of the Reservation Request page show current frequency reservations and resource availability.In this example, we are reserving the mobile endpoints along with the other resources, which mean that the duration of the experiment will be limited to a single day. I.e., experiments that use the mobile endpoints can only run for a single day, since the campus shuttles go offline at night. However, it is sometimes desirable to create a separate longer-running experiment that includes everything except the mobile endpoints. For these cases, we provide a separate profile for adding the mobile endpoints experiment. Of course, you’ll still need to create as many day-long mobile endpoint reservations as you need to cover the duration of your srs-outdoor-ota experiment.
- Submit your reservation requestIf your reservation request can be accommodated you will be presented with a pop-up window to "Submit" the reservation.Once you have submitted your reservation you will have to wait for the reservation to be approved by Powder administrators before proceeding with the rest of this activity (during the time slot requested in your request).
- Select the profileYou will receive email when your reservation request is "approved" and also when your reservation becomes "active".When your reservation becomes active you can proceed to instantiate the ota_srslte profile. (Alternatively, you can follow the steps below as soon as your reservation is approved, but in the "Schedule" step, schedule the instantiation of the profile to coincide with your reservation.)As before, you can find the "srs-outdoor-ota" profile here. Alternatively you can search for the profile: Select "Experiments" and then "Start Experiment" from the portal. Then select "Change Profile". In the search box enter "srs-outdoor-ota" and select the select the "srsRAN 5G w/ Open5GS CN5G using the POWDER Dense Deployment" profile provided by the Powder team.
- Select resources for your profileIn the "Parameterize" step, select the same resources you requested/received approval for, and adjust the other parameters as needed for your experiment (e.g., uncheck the "Include mobile endpoints..." box if using the separate profile for the mobile endpoints).
- FinalizeIn the "Finalize" step, be sure to select the same project under which you submitted the resource reservation request.
- ScheduleIn the "Schedule" step, select a start/end time that fits in your reservation period, or auto populate the start/end times by checking the box next to your reservation. Then select "Finish" to instantiate your experiment.
- Wait...It will take several minutes to instantiate the experiment, during which the experiment status page will be updated in realtime as your resources come on line.
- Experiment becomes readyOnce your experiment is fully instantiated, i.e., shows "Your experiment is ready!" and all of the "Startup" column values in the "List View" tab say "Finished", your network is deployed, the gNodeBs are started (since we checked the box to automatically deploy them in the parameterization step), and the COTS UEs should begin to attach to your gNodeBs as the campus shuttles pass by them.
- Look at the Powder Map tabThe UEs won’t necessarily attach immediately, or on every pass, but they should eventually and periodically attach if the buses are running on routes that pass by the gNodeB sites you selected. You can see the a map that includes the locations of the dense sites and the campus shuttles in your experiment if you click on the "Powder Map" tab on the experiment status page.
- Look at the Grafana dashboardThe srs-outdoor-ota profile includes a Grafana dashboard that shows some logging outputs gathered from the various core network and RAN components in your experiment and stored to the "orch" node using Promtail and Loki. The profile instructions includes a link to the dashboard and the login credentials generated for this specific experiment. After some time you should see COTS UE data like RSRP/RSRQ/SINR per shuttle location start to show up. The image included here shows the logs for a single shuttle over a two hour period.
10.4.2 Some Important Notes
If you want to use spectrum other than the profile default (3430-3450 MHz at the time of writing), you must not enable the "Automatically start the srsRAN gNodeBs" option in the parameterization step, since you will first need to update the srsRAN gNodeB configuration files (at /var/tmp/etc/srsran/gnb_rf_b200_tdd_n78_20mhz.yml on each dense site node) to reflect the appropriate center frequency (in ARFCN format) and bandwidth. After this, you can start the gNodeBs manually by running sudo systemctl restart srs-gnb on each dense site node.
The srs-outdoor-ota and mobile-endpoints profiles include a handy TUI utility for interacting directly with the UEs. You can use this to, e.g., check the serving cell info or toggle airplane mode. To run this utility, ssh into the bus in question (assuming you’ve already added your ssh pub key to your Powder account), and run /var/tmp/ue_app.py.
If the UEs aren’t attaching at all to the gNodeBs they pass by, there may be some bad state or configuration at the UE. Post on the Powder forum with a link to your current experiment and we will help sort it out.
You can find further detail by, and a lot more can be learned from, looking at the srs-outdoor-ota profile’s git repository linked from the profile page.
10.5 Next Steps
All of the profiles mentioned in this section, and other profiles provided by the Powder team in general, are meant to serve as jumping off points for your own experimentation and research. We encourage you to fork and modify these profiles to suit your own needs. As such, all of the profiles mentioned above build the RAN components from source, and include the source/builds in place so you can make modifications straight away. Some example modifications:
Modifying the MAC scheduler for an srsRAN/OAI gNodeB to test a new scheduling algorithm.
Modifying an srsRAN/OAI gNodeB to expose a metric or KPI that is not currently available.
Adapting the Promtail/Loki/Grafana logging setup to include additional metrics, or further parse data from the configured logs to create a data set for training AI/ML models.
Adding additional network services, such as a RIC or xApp.
Adding near-edge compute nodes to the network to host additional services, such as a video transcoder or AI/ML model inference engine.
If you have any questions or need help, please don’t hesitate to ask on the Powder forum.