Fronthall Interface 7.2-RRH
This tutorial shows how to connect an RRH (Remote Radio Head) to Amarisoft Callbox over ORAN 7.2 interface. Amarisoft Callbox provide/support the interface via 10GB Etherent Interface. The most common use case for this interface would be
- Live Network Deployment : With this setup and Amarisoft software stack (live network statemachine, multi UE support etc), you can deploy a livenetwork (e.g, as a macro cell or a private network)
Table of Contents
- Fronthall Interface 7.2-RRH
Test Setup
Test setup for this tutorial is as shown below.
- SIM Card used in this tutorial is the one delivered with the system as it is.
- If you want to change the configuration, The tutorial Configuration Guide would help
Key Configuration Parameters
Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.
Before you start
Before you start anything there are some prerequisite settings you need to ensure as explained in this section.
First make it sure you have at least one or more high speed ethernet interface (e.g, 10GB ethernet). Once you have any one of those interface, remember the interface name and ethernet address (MAC address) for the interface since they will be configured in gNB / UEsim configuration. Also, make it sure that the MTU of the interface is set to very large (as large as possible).
Next thing you need to check is to make it sure that the ethernet interface support PTP. You can confirm on this with ethtool -T <interface_name> (e.g, ethtool -T eth10g1)
In the same way, check out the high speed ethernet and PTP supportability on RU side (UEsim in this case).
First make it sure you have at least one or more high speed ethernet interface (e.g, 10GB ethernet). Once you have any one of those interface, remember the interface name and ethernet address (MAC address) for the interface since they will be configured in gNB / UEsim configuration. Also, make it sure that the MTU of the interface is set to very large (as large as possible).
Next thing you need to check is to make it sure that the ethernet interface support PTP. You can confirm on this with ethtool -T <interface_name> (e.g, ethtool -T eth10g11)
Test 1 : Callbox/DU + UEsim/RU
This test is just to show the basic functionality of Amarisoft 7.2 interface. It is not real life deployment use case. In this test, we don't use any separate RU(RRH) outside of the box. This test is the case where DU is embeded within gNB(Callbox) and RU is embedded with UEsim.
Configuration
In this application, you need to do configuration settings not only for Amarisoft callbox/CPRI but also RRH(Remote Radio Head) connected to the CPRI interface.
Callbox/DU
I used the gnb-sa-s72.cfg. Also not the rf_driver is symbolically linked to s72 in stead of sdr.
The gNB is configured with single cell (N_CELL = 1), TDD(NR_TDD = 1), 100Mhz BW(NR_BANDWIDTH=100) and 4x4 MIMO(N_ANTENNA_DL=4)
Unlike sdr, rf_driver setting is pretty complicated with 7.2 interface. First, name is set to s72. And then configurations for the network interface are set (transport: "ethernet", bind_interface: "eth10g1", remote_addr : "40:a6:b7:aa:c2:4b"). Since this is 4x4MIMO and 100Mhz BW which require huge pipe max_pdu_size is set to very large value (max_pdu_size : 8000). Lastly some timing related parameters are configured (t1a_min_cp_dl, t1a_min_cp_ul, t1a_min_dp_dl, t1a_min_dp_ul and ta3_max)
In case of 7.2 interface, we have rf_ports block within rf_driver. Usually the configurations in rf_ports is similar to the setting we did at the beginning of rf_driver. First, configurations for the network interface are set (transport: "ethernet", bind_interface: "eth10g1", remote_addr : "40:a6:b7:aa:c2:4b") are set. Since this is 4x4MIMO and 100Mhz BW which require huge pipe max_pdu_size is set to very large value (max_pdu_size : 8000). Lastly some timing related parameters are configured (t1a_min_cp_dl, t1a_min_cp_ul, t1a_min_dp_dl, t1a_min_dp_ul and ta3_max)
We have another rf_ports block outside of rf_driver block. This is the rf_ports block that is used for every gNB/eNB configuration. The difference is that we need to configure s72 for each cell mapped to rf_ports. The contents of s72 configuration is rtc_id and data compression type (ud_comp_hdr).
The remaing settings (nr_cell_list) is same as in all other use case. (Nothing specifically to be explained)
nr_cell_default setting is same as in all other use case (Nothing specifically to be explained)
UEsim/RU
I set the channel bandwidth 100Mhz and 4x4 MIMO that is supposed to match the configuration of gNB.
In rf_driver block, set the name of the rf_driver to "s72" which means it uses 7.2 interface. Same as in gNB/DU, configure the parameters for 7.2 network interface(transport: "ethernet", bind_interface: "eth10g11", remote_addr : "40:a6:b7:82:34:d3") are set. Since this is 4x4MIMO and 100Mhz BW which require huge pipe max_pdu_size is set to very large value (max_pdu_size : 8000).
Same interface setting should be done in rf_ports block as well(transport: "ethernet", bind_interface: "eth10g11", remote_addr : "40:a6:b7:82:34:d3") are set. Since this is 4x4MIMO and 100Mhz BW which require huge pipe max_pdu_size is set to very large value (max_pdu_size : 8000).
In case of 7.2, tx_gain parameter on UEsim is used to set the absolute output power of the RU.
Most of the parameters in cells block (cell configuration) are same as regular configuration (i.e, SDR based UEsim) except the additional parameter s72. You need to add s72 block and specify rtc_id, ud_comp_hdr (data compression type) in it.
ue_list configuration is exactly same as regular UEsim configuration.
Perform the Test
Run the test and check out 'cell phy' result and see if the channel, bandwidth, MIMO configuration is set as intended.
Another thing worth checking is rf_info. You should see the details of 7.2 interface. Ensure that the setting shown here matches the expectation.
Now run UEsim and check out the result of rf_info. Make it sure that this is as expected and matches the interface configuration on gNB/Callbox.
Once everything from both sides matches each other, power on UE and see if the call goes through.
Log Analysis
From PHY to all the way up to core network log is same even for 7.2 interfacse case. The only difference is that 7.2 interface log (i.e, S72) is added as a new element
In this section, I will show just a few snapshots of the log only with the focus on S72. For the entire log and details, you may open the sample log and analyze it as you are interested.
First it would be a good start to check out the SIB message transmission. Since SIB message is a short and bursty (i.e, long interval between transmissions), it would be relatively easy to identify the transmitted frame.
Then try checking out PRACH. Since this is the first Uplink frame, it would be relatively easy to identify the frame.
Then try to find any frame which you are interested in.
If you get tcpdump and save it as a pacap file, you can get more detailed frame data not only for DL/UL IQ frame but also for PTP log.