Comments (9)
Many thanks for opening this issue.
The gNb detected the MSG3 with good SNR (above 20dB) but failed to decode it:
2024-05-15T13:52:10.107273 [PHY ] [D] [ 801.18] PUSCH: rnti=0x4601 h_id=0 prb=[4, 7) symb=[0, 14) mod=QPSK rv=0 tbs=11 crc=KO iter=6.0 sinr=33.7dB t=769.2us uci_t=0.0us ret_t=0.0us
rnti=0x4601
h_id=0
bwp=[0, 51)
prb=[4, 7)
symb=[0, 14)
oack=0
ocsi1=0
part2=entries=[]
alpha=0.0
betas=[0.0, 0.0, 0.0]
mod=QPSK
tcr=0.1171875
rv=0
bg=2
new_data=true
n_id=1
dmrs_mask=00100001000100
n_scr_id=1
n_scid=false
n_cdm_g_wd=2
dmrs_type=1
lbrm=3168bytes
slot=801.18
cp=normal
nof_layers=1
ports=0 1
dc_position=306
crc=KO
iter=6.0
max_iter=6
min_iter=6
I guess this could caused by the signal unbalance in the gNb receive ports.
from srsran_project.
Thanks @xavierarteaga I wonder why this "issue" wasn't there with previous release of srsRAN.
from srsran_project.
There are two changes related to channel estimation and equalization in the last release:
- carrier frequency offset measurement and compensation; and
- a temporary hotfix in the equalizer noise variance.
You can disable the CFO compensation with the following patch:
diff --git a/include/srsran/phy/upper/signal_processors/signal_processor_factories.h b/include/srsran/phy/upper/signal_processors/signal_processor_factories.h
index bb48607a5..055afda78 100644
--- a/include/srsran/phy/upper/signal_processors/signal_processor_factories.h
+++ b/include/srsran/phy/upper/signal_processors/signal_processor_factories.h
@@ -95,7 +95,7 @@ public:
virtual std::unique_ptr<port_channel_estimator>
create(port_channel_estimator_fd_smoothing_strategy fd_smoothing_strategy =
port_channel_estimator_fd_smoothing_strategy::filter,
- bool complensate_cfo = true) = 0;
+ bool complensate_cfo = false) = 0;
};
std::shared_ptr<port_channel_estimator_factory>
For reverting the channel equalizer changes:
diff --git a/lib/phy/upper/equalization/channel_equalizer_zf_impl.cpp b/lib/phy/upper/equalization/channel_equalizer_zf_impl.cpp
index 69632bc61..83b9d2f3c 100644
--- a/lib/phy/upper/equalization/channel_equalizer_zf_impl.cpp
+++ b/lib/phy/upper/equalization/channel_equalizer_zf_impl.cpp
@@ -131,12 +131,8 @@ void channel_equalizer_zf_impl::equalize(span<cf_t> eq_symbols,
unsigned nof_rx_ports = ch_estimates.get_dimension_size(ch_est_list::dims::rx_port);
unsigned nof_tx_layers = ch_estimates.get_dimension_size(ch_est_list::dims::tx_layer);
+ // Compute the average noise variance.
+ float noise_var = 0.0F;
+ for (unsigned i_rx_port = 0; i_rx_port != nof_rx_ports; ++i_rx_port) {
+ noise_var += noise_var_estimates[i_rx_port];
+ }
+ noise_var /= static_cast<float>(nof_rx_ports);
- // Select the most pessimistic noise variance.
- float noise_var = *std::max_element(noise_var_estimates.begin(), noise_var_estimates.end());
// Single transmit layer and any number of receive ports.
if (nof_tx_layers == 1) {
We are working on improving the UL resilience against these types of corner cases. Feel free to try the patches and let us know if any of these patches walk around the problem.
from srsran_project.
Thanks @xavierarteaga We are OK setting number of dl/ul antennas the same on gNB and Amarisoft UE side as there is no issue of that is the case. So for the fix you mentioned, we can wait. Thanks
from srsran_project.
What @xavierarteaga was trying to ask was if you could test the two patches for us please. We are unable to reproduce the issue. It would be very helpful if you can test those patches please. Thanks
from srsran_project.
@xavierarteaga Applying the patch helped. Meaning we don't necessarily need to have the same number of gNB UL antennas on Amarisoft-UE to be able to Attach a UE.
Requested logs are attached.
Cc @ismagom
patch_619.zip
from srsran_project.
Many thanks for sharing the logs with us.
The MSG3 was decoded successfully:
2024-05-16T10:58:53.255257 [PHY ] [I] [ 880.19] PRACH: rsi=1 rssi=-7.4dB detected_preambles=[{idx=0 ta=5.60us detection_metric=1501.6}] t=169.6us
...
2024-05-16T10:58:53.265136 [PHY ] [I] [ 881.18] PUSCH: rnti=0x4601 h_id=0 prb=[4, 7) symb=[0, 14) mod=QPSK rv=0 tbs=11 crc=OK iter=1.0 sinr=34.5dB t=475.8us uci_t=0.0us ret_t=0.0us
Compared with the log before the patch:
2024-05-15T13:52:10.097257 [PHY ] [D] [ 800.19] PRACH: rsi=1 rssi=-6.9dB detected_preambles=[{idx=1 ta=5.60us detection_metric=19.1}] t=272.4us
...
2024-05-15T13:52:10.107273 [PHY ] [D] [ 801.18] PUSCH: rnti=0x4601 h_id=0 prb=[4, 7) symb=[0, 14) mod=QPSK rv=0 tbs=11 crc=KO iter=6.0 sinr=33.7dB t=769.2us uci_t=0.0us ret_t=0.0us
I hypothesize that some RF artifact is received in the second port when the UE is configured with one transmit antenna. This RF artifact causes the equalizer to mix the signal destructively when CFO compensation is enabled. In contrast, this does not happen when two transmit antennas are configured.
If I am not wrong, the UE only transmits on one port even if the UE is configured with two ports.
We will keep trying to model the setup. We will let you know if we need more information.
from srsran_project.
I found a software defect that mixes up the CFO compensation. We created this patch
cfo.patch.tar.gz.
@houshangaziziaccelleran can you try it and let us know how it goes? 🤞
This fix will be included in the next release.
Many thanks for your help.
from srsran_project.
Hi @houshangaziziaccelleran,
we have already released all the changes about the CFO compensation. This issue should not happen again after pulling the latest main (f3ed07a) code.
I will close this issue and we reopen it again if the problem persists.
Once again, many thanks for helping us to find the issue.
from srsran_project.
Related Issues (20)
- Not all UEs recoved their data after a reestablishment. HOT 53
- RRC released for ZMQ setup: DNN Not Supported OR Not Subscribed in the Slice No GUTI allocated HOT 5
- ZMQ ue-gnb connection validation HOT 21
- ORAN cannot connect a UE HOT 1
- Error trying to set UEs with 25 PRBs HOT 6
- RF status overflow HOT 19
- Failed to connect SCTP socket to 127.0.0.100:38412. error="Connection refused" timeout=0ms srsGNB ERROR: Failed to create SCTP gateway. HOT 2
- High DL BLER when Running Ping Tests with 4X2 MIMO VS 2X2 MIMO HOT 13
- No U-plane packets from RU to DU HOT 12
- gNB is not scheduling uplink C-plane on release_24_04 HOT 14
- UE Fales to attach to the 5G Network HOT 22
- UEs Connected but can't reach the core HOT 56
- Capturing IQ data for zmq-based setup HOT 18
- srsRAN gNB with srsUE over ZMQ, but not send PRACH HOT 34
- Problem with FDD band n28 - 15 kHz HOT 12
- Starting the gnb got "Floating point exception" on 24.04 HOT 2
- Data throughput limited to 600-800 Mbps HOT 3
- Issue when connecting 2 RUs, UE is attaching to only one RU HOT 3
- gNB crashing for long run HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from srsran_project.