Merge remote-tracking branch 'origin/ci-legacy-4g-lte-bench-back-on' into integration_2022_wk38
This commit is contained in:
@@ -2404,7 +2404,7 @@ class OaiCiTest():
|
|||||||
if launchFromTrfContainer:
|
if launchFromTrfContainer:
|
||||||
SSH.command('docker exec -it prod-trf-gen /bin/bash -c "killall --signal SIGKILL iperf"', '\$', 5)
|
SSH.command('docker exec -it prod-trf-gen /bin/bash -c "killall --signal SIGKILL iperf"', '\$', 5)
|
||||||
else:
|
else:
|
||||||
SSH.command('killall --signal SIGKILL iperf', EPC.UserName, 5)
|
SSH.command('killall --signal SIGKILL iperf', '\$', 5)
|
||||||
SSH.close()
|
SSH.close()
|
||||||
else:
|
else:
|
||||||
cmd = 'killall --signal SIGKILL iperf'
|
cmd = 'killall --signal SIGKILL iperf'
|
||||||
@@ -3894,8 +3894,8 @@ class OaiCiTest():
|
|||||||
logging.debug('UHD Version is: ' + UhdVersion)
|
logging.debug('UHD Version is: ' + UhdVersion)
|
||||||
HTML.UhdVersion[idx]=UhdVersion
|
HTML.UhdVersion[idx]=UhdVersion
|
||||||
else:
|
else:
|
||||||
SSH.command('uhd_config_info --version', '\$', 5)
|
SSH.command('uhd_config_info --abi-version', '\$', 5)
|
||||||
result = re.search('UHD (?P<uhd_version>[a-zA-Z0-9\.\-]+)', SSH.getBefore())
|
result = re.search('ABI version string: (?P<uhd_version>[a-zA-Z0-9\.\-]+)', SSH.getBefore())
|
||||||
if result is not None:
|
if result is not None:
|
||||||
UhdVersion = result.group('uhd_version')
|
UhdVersion = result.group('uhd_version')
|
||||||
logging.debug('UHD Version is: ' + UhdVersion)
|
logging.debug('UHD Version is: ' + UhdVersion)
|
||||||
|
|||||||
@@ -198,8 +198,8 @@ RUs = (
|
|||||||
local_rf = "yes"
|
local_rf = "yes"
|
||||||
nb_tx = 1
|
nb_tx = 1
|
||||||
nb_rx = 1
|
nb_rx = 1
|
||||||
att_tx = 0
|
att_tx = 6
|
||||||
att_rx = 0;
|
att_rx = 6;
|
||||||
bands = [38];
|
bands = [38];
|
||||||
max_pdschReferenceSignalPower = -27;
|
max_pdschReferenceSignalPower = -27;
|
||||||
max_rxgain = 115;
|
max_rxgain = 115;
|
||||||
|
|||||||
@@ -198,8 +198,8 @@ RUs = (
|
|||||||
local_rf = "yes"
|
local_rf = "yes"
|
||||||
nb_tx = 1
|
nb_tx = 1
|
||||||
nb_rx = 1
|
nb_rx = 1
|
||||||
att_tx = 0
|
att_tx = 6
|
||||||
att_rx = 0;
|
att_rx = 6;
|
||||||
bands = [38];
|
bands = [38];
|
||||||
max_pdschReferenceSignalPower = -27;
|
max_pdschReferenceSignalPower = -27;
|
||||||
max_rxgain = 125;
|
max_rxgain = 125;
|
||||||
|
|||||||
@@ -198,8 +198,8 @@ RUs = (
|
|||||||
local_rf = "yes"
|
local_rf = "yes"
|
||||||
nb_tx = 1
|
nb_tx = 1
|
||||||
nb_rx = 1
|
nb_rx = 1
|
||||||
att_tx = 0
|
att_tx = 6
|
||||||
att_rx = 0;
|
att_rx = 6;
|
||||||
bands = [38];
|
bands = [38];
|
||||||
max_pdschReferenceSignalPower = -27;
|
max_pdschReferenceSignalPower = -27;
|
||||||
max_rxgain = 120;
|
max_rxgain = 120;
|
||||||
|
|||||||
@@ -196,8 +196,8 @@ RUs = (
|
|||||||
local_rf = "yes"
|
local_rf = "yes"
|
||||||
nb_tx = 2
|
nb_tx = 2
|
||||||
nb_rx = 2
|
nb_rx = 2
|
||||||
att_tx = 0
|
att_tx = 6
|
||||||
att_rx = 0;
|
att_rx = 6;
|
||||||
bands = [38];
|
bands = [38];
|
||||||
max_pdschReferenceSignalPower = -27;
|
max_pdschReferenceSignalPower = -27;
|
||||||
max_rxgain = 110;
|
max_rxgain = 110;
|
||||||
|
|||||||
@@ -209,8 +209,8 @@ RUs = (
|
|||||||
tr_preference = "udp_if4p5"
|
tr_preference = "udp_if4p5"
|
||||||
nb_tx = 1
|
nb_tx = 1
|
||||||
nb_rx = 1
|
nb_rx = 1
|
||||||
att_tx = 0
|
att_tx = 6
|
||||||
att_rx = 0;
|
att_rx = 6;
|
||||||
eNB_instances = [0];
|
eNB_instances = [0];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -209,8 +209,8 @@ RUs = (
|
|||||||
tr_preference = "udp_if4p5"
|
tr_preference = "udp_if4p5"
|
||||||
nb_tx = 1
|
nb_tx = 1
|
||||||
nb_rx = 1
|
nb_rx = 1
|
||||||
att_tx = 0
|
att_tx = 6
|
||||||
att_rx = 0;
|
att_rx = 6;
|
||||||
eNB_instances = [0];
|
eNB_instances = [0];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -111,16 +111,16 @@
|
|||||||
|
|
||||||
<testCase id="040651">
|
<testCase id="040651">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - UL/20Mbps/UDP)(30 sec)(balanced profile)</desc>
|
<desc>iperf (10MHz - UL/18Mbps/UDP)(30 sec)(balanced profile)</desc>
|
||||||
<iperf_args>-u -b 20M -t 30 -i 1 -R</iperf_args>
|
<iperf_args>-u -b 18M -t 30 -i 1 -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>balanced</iperf_profile>
|
<iperf_profile>balanced</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
<testCase id="040652">
|
<testCase id="040652">
|
||||||
<class>Iperf</class>
|
<class>Iperf</class>
|
||||||
<desc>iperf (10MHz - UL/20Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
<desc>iperf (10MHz - UL/18Mbps/UDP)(30 sec)(single-ue profile)</desc>
|
||||||
<iperf_args>-u -b 20M -t 30 -i 1 -R</iperf_args>
|
<iperf_args>-u -b 18M -t 30 -i 1 -R</iperf_args>
|
||||||
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
<iperf_profile>single-ue</iperf_profile>
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|||||||
@@ -346,11 +346,34 @@ install_usrp_uhd_driver_from_source(){
|
|||||||
rm -rf /tmp/uhd
|
rm -rf /tmp/uhd
|
||||||
git clone https://github.com/EttusResearch/uhd.git
|
git clone https://github.com/EttusResearch/uhd.git
|
||||||
cd uhd
|
cd uhd
|
||||||
|
# For our legacy TDD eNB running with a B2xx RF board
|
||||||
|
# the following patch has to be applied
|
||||||
if [[ -v UHD_VERSION ]]; then
|
if [[ -v UHD_VERSION ]]; then
|
||||||
git checkout tags/v${UHD_VERSION}
|
git checkout tags/v${UHD_VERSION}
|
||||||
|
# We recommend to use not older than 3.15.0.0
|
||||||
|
if [[ "$UHD_VERSION" == "3.15.0.0" ]]; then
|
||||||
|
# Tested that patch for the following versions:
|
||||||
|
# - 3.15.0.0
|
||||||
|
git apply $OPENAIR_DIR/cmake_targets/tools/uhd-3.15-tdd-patch.diff
|
||||||
|
ret=$?;[[ $ret -ne 0 ]] && echo_fatal "Could not apply the TDD patch"
|
||||||
|
else
|
||||||
|
# Tested that patch for the following versions:
|
||||||
|
# - 4.0.0.0
|
||||||
|
# - 4.1.0.0
|
||||||
|
# - 4.1.0.5
|
||||||
|
# - 4.2.0.0
|
||||||
|
# - 4.2.0.1
|
||||||
|
# - 4.3.0.0-rc1
|
||||||
|
git apply $OPENAIR_DIR/cmake_targets/tools/uhd-4.x-tdd-patch.diff
|
||||||
|
ret=$?;[[ $ret -ne 0 ]] && echo_fatal "Could not apply the TDD patch"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
git checkout tags/v4.0.0.0
|
git checkout tags/v4.0.0.0
|
||||||
|
git apply $OPENAIR_DIR/cmake_targets/tools/uhd-4.x-tdd-patch.diff
|
||||||
|
ret=$?;[[ $ret -ne 0 ]] && echo_fatal "Could not apply the TDD patch"
|
||||||
fi
|
fi
|
||||||
|
# Printing out the results of the patch to make sure it was properly applied
|
||||||
|
git diff
|
||||||
mkdir -p host/build
|
mkdir -p host/build
|
||||||
cd host/build || true
|
cd host/build || true
|
||||||
$CMAKE ../ -GNinja
|
$CMAKE ../ -GNinja
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp
|
||||||
|
index 1be8c263b..f64546914 100644
|
||||||
|
--- a/host/lib/usrp/b200/b200_impl.cpp
|
||||||
|
+++ b/host/lib/usrp/b200/b200_impl.cpp
|
||||||
|
@@ -1269,10 +1269,10 @@ void b200_impl::update_atrs(void)
|
||||||
|
if (enb_rx and not enb_tx) fd = rxonly;
|
||||||
|
if (not enb_rx and enb_tx) fd = txonly;
|
||||||
|
gpio_atr_3000::sptr atr = perif.atr;
|
||||||
|
- atr->set_atr_reg(ATR_REG_IDLE, STATE_OFF);
|
||||||
|
- atr->set_atr_reg(ATR_REG_RX_ONLY, rxonly);
|
||||||
|
- atr->set_atr_reg(ATR_REG_TX_ONLY, txonly);
|
||||||
|
- atr->set_atr_reg(ATR_REG_FULL_DUPLEX, fd);
|
||||||
|
+ atr->set_atr_reg(ATR_REG_IDLE, STATE_OFF | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_RX_ONLY, rxonly | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_TX_ONLY, txonly | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_FULL_DUPLEX, fd | (1<<7));
|
||||||
|
}
|
||||||
|
if (_radio_perifs.size() > _fe2 and _radio_perifs[_fe2].atr)
|
||||||
|
{
|
||||||
|
@@ -1287,10 +1287,10 @@ void b200_impl::update_atrs(void)
|
||||||
|
if (enb_rx and not enb_tx) fd = rxonly;
|
||||||
|
if (not enb_rx and enb_tx) fd = txonly;
|
||||||
|
gpio_atr_3000::sptr atr = perif.atr;
|
||||||
|
- atr->set_atr_reg(ATR_REG_IDLE, STATE_OFF);
|
||||||
|
- atr->set_atr_reg(ATR_REG_RX_ONLY, rxonly);
|
||||||
|
- atr->set_atr_reg(ATR_REG_TX_ONLY, txonly);
|
||||||
|
- atr->set_atr_reg(ATR_REG_FULL_DUPLEX, fd);
|
||||||
|
+ atr->set_atr_reg(ATR_REG_IDLE, STATE_OFF | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_RX_ONLY, rxonly | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_TX_ONLY, txonly | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_FULL_DUPLEX, fd | (1<<7));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
diff --git a/host/lib/usrp/b200/b200_impl.cpp b/host/lib/usrp/b200/b200_impl.cpp
|
||||||
|
index 6de161e87..432af5784 100644
|
||||||
|
--- a/host/lib/usrp/b200/b200_impl.cpp
|
||||||
|
+++ b/host/lib/usrp/b200/b200_impl.cpp
|
||||||
|
@@ -1410,10 +1410,10 @@ void b200_impl::update_atrs(void)
|
||||||
|
if (not enb_rx and enb_tx)
|
||||||
|
fd = txonly;
|
||||||
|
gpio_atr_3000::sptr atr = perif.atr;
|
||||||
|
- atr->set_atr_reg(ATR_REG_IDLE, STATE_OFF);
|
||||||
|
- atr->set_atr_reg(ATR_REG_RX_ONLY, rxonly);
|
||||||
|
- atr->set_atr_reg(ATR_REG_TX_ONLY, txonly);
|
||||||
|
- atr->set_atr_reg(ATR_REG_FULL_DUPLEX, fd);
|
||||||
|
+ atr->set_atr_reg(ATR_REG_IDLE, STATE_OFF | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_RX_ONLY, rxonly | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_TX_ONLY, txonly | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_FULL_DUPLEX, fd | (1<<7));
|
||||||
|
}
|
||||||
|
if (_radio_perifs.size() > _fe2 and _radio_perifs[_fe2].atr) {
|
||||||
|
radio_perifs_t& perif = _radio_perifs[_fe2];
|
||||||
|
@@ -1431,10 +1431,10 @@ void b200_impl::update_atrs(void)
|
||||||
|
if (not enb_rx and enb_tx)
|
||||||
|
fd = txonly;
|
||||||
|
gpio_atr_3000::sptr atr = perif.atr;
|
||||||
|
- atr->set_atr_reg(ATR_REG_IDLE, STATE_OFF);
|
||||||
|
- atr->set_atr_reg(ATR_REG_RX_ONLY, rxonly);
|
||||||
|
- atr->set_atr_reg(ATR_REG_TX_ONLY, txonly);
|
||||||
|
- atr->set_atr_reg(ATR_REG_FULL_DUPLEX, fd);
|
||||||
|
+ atr->set_atr_reg(ATR_REG_IDLE, STATE_OFF | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_RX_ONLY, rxonly | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_TX_ONLY, txonly | (1<<7));
|
||||||
|
+ atr->set_atr_reg(ATR_REG_FULL_DUPLEX, fd | (1<<7));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+17
-44
@@ -88,12 +88,19 @@ You can build any oai softmodem executable separately, you may not need all of t
|
|||||||
|
|
||||||
After completing the build, the binaries are available in the `cmake_targets/ran_build/build` directory. A copy is also available in the `target/bin` directory, with all binaries suffixed by the 3GPP release number, today .Rel15.
|
After completing the build, the binaries are available in the `cmake_targets/ran_build/build` directory. A copy is also available in the `target/bin` directory, with all binaries suffixed by the 3GPP release number, today .Rel15.
|
||||||
|
|
||||||
When installing the pre-requisites, especially the `UHD` driver, you can now specify if you want to install from source or not.
|
## Installing UHD from source
|
||||||
|
|
||||||
|
Previously for Ubuntu distributions, when installing the pre-requisites, most of the packages are installed from PPA.
|
||||||
|
|
||||||
|
Especially the `UHD` driver, but you could not easily manage the version of `libuhd` that will be installed.
|
||||||
|
|
||||||
|
Now, when installing the pre-requisites, especially the `UHD` driver, you can now specify if you want to install from source or not.
|
||||||
|
|
||||||
- For `fedora`-based OS, it was already the case all the time. But now you can specify which version to install.
|
- For `fedora`-based OS, it was already the case all the time. But now you can specify which version to install.
|
||||||
- For `ubuntu` OS, the Ettus PPA currently installs the following versions:
|
- For `ubuntu` OS, you can still install from the Ettus PPA or select a version to install from source.
|
||||||
* `Ubuntu16.04`: --> version `3.15.0.0`
|
* In case of PPA installation, you do nothing special, the script will install the latest version available on the PPA.
|
||||||
* `Ubuntu18.04`: --> version `4.1.0.0`
|
- `./build_oai -I -w USRP`
|
||||||
|
* In case of a installation from source, you do as followed:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export BUILD_UHD_FROM_SOURCE=True
|
export BUILD_UHD_FROM_SOURCE=True
|
||||||
@@ -103,49 +110,15 @@ export UHD_VERSION=3.15.0.0
|
|||||||
|
|
||||||
The `UHD_VERSION` env variable `SHALL` be a valid tag (minus `v`) from the `https://github.com/EttusResearch/uhd.git` repository.
|
The `UHD_VERSION` env variable `SHALL` be a valid tag (minus `v`) from the `https://github.com/EttusResearch/uhd.git` repository.
|
||||||
|
|
||||||
## Issue when building `nasmeh` module ##
|
**CAUTION: Note that if you are using the OAI eNB in TDD mode with B2xx boards, a patch is mandatory.**
|
||||||
|
|
||||||
A lot of users and contributors have faced the issue: `nasmesh` module does not build.
|
Starting this commit, the patch is applied automatically in our automated builds.
|
||||||
|
|
||||||
The reason is that the linux headers are not properly installed. For example:
|
See:
|
||||||
|
|
||||||
```bash
|
* `cmake_targets/tools/uhd-3.15-tdd-patch.diff`
|
||||||
$ uname -r
|
* `cmake_targets/tools/uhd-4.x-tdd-patch.diff`
|
||||||
4.4.0-145-lowlatency
|
* `cmake_targets/tools/build_helper` --> function `install_usrp_uhd_driver_from_source`
|
||||||
$ dpkg --list | grep 4.4.0-145-lowlatency | grep headers
|
|
||||||
ii linux-headers-4.4.0-145-lowlatency 4.4.0-145.171
|
|
||||||
```
|
|
||||||
|
|
||||||
In my example it is properly installed.
|
|
||||||
|
|
||||||
Check on your environment:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ uname -r
|
|
||||||
your-version
|
|
||||||
$ dpkg --list | grep your-version | grep headers
|
|
||||||
$
|
|
||||||
```
|
|
||||||
|
|
||||||
Install it:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ sudo apt-get install --yes linux-headers-your-version
|
|
||||||
```
|
|
||||||
|
|
||||||
On CentOS or RedHat Entreprise Linux:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ uname -r
|
|
||||||
3.10.0-1062.9.1.rt56.1033.el7.x86_64
|
|
||||||
$ yum list installed | grep kernel | grep devel
|
|
||||||
kernel-devel.x86_64 3.10.0-1062.9.1.el7 @rhel-7-server-rpms
|
|
||||||
kernel-rt-devel.x86_64 3.10.0-1062.9.1.rt56.1033.el7
|
|
||||||
```
|
|
||||||
|
|
||||||
If your kernel is generic, install `kernel-devel` package: `sudo yum install kernel-devel`
|
|
||||||
|
|
||||||
In most case, your kernel is real-time. Install `kernel-rt-devel` package: `sudo yum install kernel-rt-devel`
|
|
||||||
|
|
||||||
# Building Optional Binaries
|
# Building Optional Binaries
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user