From 8cb3e92ab3a5a31afad718465bce5502ca2ed302 Mon Sep 17 00:00:00 2001 From: Xavier Arteaga Date: Fri, 23 Apr 2021 16:41:20 +0200 Subject: [PATCH] Added LDPC flooded early stop --- lib/src/phy/fec/ldpc/ldpc_decoder.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/src/phy/fec/ldpc/ldpc_decoder.c b/lib/src/phy/fec/ldpc/ldpc_decoder.c index d3ffc378b..9466184f1 100644 --- a/lib/src/phy/fec/ldpc/ldpc_decoder.c +++ b/lib/src/phy/fec/ldpc/ldpc_decoder.c @@ -137,8 +137,22 @@ } \ \ update_ldpc_soft_bits_##SUFFIX(q->ptr, q->var_indices); \ + \ + if (crc != NULL) { \ + extract_ldpc_message_##SUFFIX(q->ptr, message, q->liftK); \ + \ + if (srsran_crc_match(crc, message, q->liftK - crc->order)) { \ + return i_iteration + 1; \ + } \ + } \ } \ \ + /* If reached here, and CRC is being checked, it has failed */ \ + if (crc != NULL) { \ + return 0; \ + } \ + \ + /* Without CRC, extract message and return the maximum number of iterations */ \ extract_ldpc_message_##SUFFIX(q->ptr, message, q->liftK); \ \ return q->max_nof_iter; \