Commit Graph

3868 Commits

Author SHA1 Message Date
Andre Puschmann fa7a8fb687 rlc_am_test: add testcase for processing out-of-order status PDUs 2021-06-14 09:43:02 +02:00
Andre Puschmann 19f30aa652 rlc_am_lte: fix handling of out-of-order status PDUs
before processing incoming status PDUs we should be checking
if the ACK_SN falls within our current Tx window. If not the PDU
will be dropped.

Without the check we were incorrectly processing the status PDU
and because the sequence number wrap around wasn't working
correctly if ACK_SN is smaller than vt_a we were corrupting
our Tx window.
2021-06-14 09:43:02 +02:00
Xavier Arteaga 8743713bb1 Fix compilation 2021-06-14 09:21:29 +02:00
Xavier Arteaga 676080d6af Added macro SRSRAN_VEC_SAFE_CMA 2021-06-14 09:21:29 +02:00
Andre Puschmann b862bbc2e6 rlc_am_lte: add missing mutex to get_status getter
fixws race detected with TSAN
2021-06-10 10:44:18 +02:00
Andre Puschmann d51ee722f6 rlc_am_test: add unit test for ACK_SN is outside rx window
the test uses a malformed status PDU from a PCAP and makes
sure the RLC receiver detects such a PDU and raises a warning
2021-06-10 10:44:18 +02:00
Andre Puschmann 878142843e rlc_am_lte: add further sanity check when creating status PDU
the test verifies that the ACK_SN of a status PDU falls inside the
rx_window of the receiver. If not, than the RLC state has been
corrupted and the status PDU is likely invalid.
2021-06-10 10:44:18 +02:00
Andre Puschmann 46265c5829 rlc_am_data_test: add data PDU unpack test
TV captured in PCAP
2021-06-09 14:44:15 +02:00
Andre Puschmann b379910690 pdu_test: add UL-SCH unpacking test
TV captured in PCAPs.
2021-06-09 14:44:15 +02:00
Xavier Arteaga 6be57dd216 Disable PDCCH false detection for non AVX2 machines 2021-06-09 13:20:01 +02:00
Alejandro Leal Conejos a51f2a1de4 Fills the value of the number of cpus for the system_metrics_t and
initiliaze its value to 0 when executing 2 measures in less than 100 ms.
2021-06-09 09:34:46 +02:00
Pedro Alvarez a53b321ab8 Release UE upon reception of integrity error. 2021-06-08 18:52:22 +01:00
Pedro Alvarez 299d2ee35d Added interface to make the PDCP notify the RRC of integrity check
failures.
2021-06-08 18:52:22 +01:00
Xavier Arteaga 939dd1b977 Change struct sync_raster_t to class 2021-06-08 14:55:12 +02:00
Xavier Arteaga a79d518799 Added SSB search measure/decode file test 2021-06-08 14:55:12 +02:00
Xavier Arteaga 5181a9d64c Implemented PBCH blind decode 2021-06-08 14:55:12 +02:00
Xavier Arteaga a7b7f8e78a Avoid SSB search to have a peak that SSB data is outside buffer 2021-06-08 14:55:12 +02:00
Xavier Arteaga 480f1b14fe Protect Radio from null phy 2021-06-08 14:55:12 +02:00
Xavier Arteaga 9621cf57c2 Implemented NR SS raster object 2021-06-08 14:55:12 +02:00
Xavier Arteaga 49d857cd17 Refactored decode_tb function 2021-06-08 10:19:24 +02:00
Xavier Arteaga 22b1673b36 Added CRC match function and simplify CRC check 2021-06-08 10:19:24 +02:00
Xavier Arteaga 7846bfccb1 Implemented softbuffer RX CRC reset 2021-06-08 10:19:24 +02:00
David Rupprecht ff3e7c321d Added bref function for calc distance til end 2021-06-08 10:14:43 +02:00
Xavier Arteaga e8f2b3a74c Add PDCCH decoder correlation check in blind search 2021-06-05 11:08:27 +02:00
Xavier Arteaga 7c78fd2050 Implemented PDCCH DCI message correlation and updated test 2021-06-05 11:08:27 +02:00
Xavier Arteaga bcd2e59635 PDCCH test global variable cleanup 2021-06-05 11:08:27 +02:00
Francisco 7e77da6a15 mac,optimization: use rnti memory pool to create mac::ue objects 2021-06-04 21:29:13 +01:00
Andre Puschmann 295b5fe8fb rlc_tm: fix stopping of entity detected with TSAN 2021-06-04 13:23:54 +02:00
Andre Puschmann a013a2fe05 rlc_stress_test: fix bug when read_pdu was returning -1 2021-06-04 13:23:54 +02:00
Andre Puschmann c0be8187c8 rlc interface: convert entire read_pdu() interface to return uint32_t
we had it returning int but had a bug in using the return value properly,
i.e. handling when -1 was returned in RLC TM.

Thinking about it more, it doesn't make sense to have a negative return
value here anyway. Either the RLC can return a PDU or not. If it can't the
returned lenght is zero.
2021-06-04 13:23:54 +02:00
Francisco 539ca47fe2 lib,bugfix: fix blocking queue unit test. Dtor cannot destroy object while a thread is still pushing data 2021-06-04 13:02:39 +02:00
Xavier Arteaga 60f294a6a1 Refactor PDCCH encode/decode unit test 2021-06-04 11:13:23 +02:00
Xavier Arteaga 5ddc974beb Reverted PDCCH threshold 2021-06-04 11:13:23 +02:00
Xavier Arteaga d46be09663 Increase viterbi default number of iterations 2021-06-04 11:13:23 +02:00
Xavier Arteaga 090022568e DCI NCCE find considers L and NCCE 2021-06-04 11:13:23 +02:00
Andre Puschmann a36e0477b8 rlc_am: fix status PDU packing when grant size isn't enough to send full report
when a small grant is provided it might not be possible to fit a full status
PDU. This is currently detected while packing the PDU.

In order to avoid sending potentiall contradicting status info to the sending
entity, the fix makes sure to only transmit a small PDU acking what really
has been received so far.

This might not be optimal in terms for retx but will not corrupt any
state.
2021-06-03 21:11:47 +02:00
Andre Puschmann 5838ec4999 rlc_am: revert expect macro back to error log and inform higher layers
the incidence really must be handled by the higher layers, i.e. the bearer
needs to be reestablished.
2021-06-03 21:11:47 +02:00
Andre Puschmann f22f4b4fbd rlc_am: fix potential stalling in RLC transmitter
it turned out that a certain order of events can lead to
a RLC transmitter stalling because even though unacknowledged PDUs
are queued, none of them was actually considered for retx.

This can happen if a pollRetxTimer expires for a SN that, meanwhile,
has already been acknowledged. The positive lead to the deletion of
the SN from the Tx window.

The fix makes sure that when a retx for a unexisting SN is requested,
the sender will consider the next unacknowledged SN instead.
2021-06-03 21:11:47 +02:00
Andre Puschmann 9612bb0e14 rlc_am_test: fix status PDU test and add extra test for failure signaling 2021-06-03 21:11:47 +02:00
Andre Puschmann aaffdeb326 rrc,rlc: add method to signal protocol failure to RRC
general-purpose method for lower layers to signal protocol
failures to higher layers, i.e. RRC.

In the current case, implement a direct release of the UE (enb) or
a reestablishment (UE).
2021-06-03 21:11:47 +02:00
Andre Puschmann 107f6334dd compile: fix compilation on 32bit systems that require -latomic 2021-06-03 20:45:02 +02:00
Francisco ceaef3523f sched,feature: Enable setting the target PHR below which the maximum UL grant size starts decreasing 2021-06-03 15:33:38 +01:00
Francisco 486823e5de sched,bugfix: The PHR handling scheme now considers the number of PRBs of the UL grant that carried the PHR. Before, it was assuming the most conservative scenario of Nprb=1 2021-06-03 15:33:38 +01:00
Francisco f7aef3ffc1 sched,bugfix: fix nof_retx update when UL HARQs are resumed 2021-06-02 20:21:32 +01:00
Ismael Gomez 5db3030428 Tiny changes 2021-06-02 12:37:36 +02:00
Francisco 89406b07d6 make eNB UL SNR initial value an exponential average alpha configurable 2021-06-02 10:08:34 +01:00
Andre Puschmann 1529379e9e fec,pbch: remove unused variables
unused code that moreover was causing TSAN to complain, e.g.
in the ue_phy_test
2021-06-02 09:36:44 +02:00
Andre Puschmann 7ee38e6255 threads: disable thread attributes when compiled with TSAN
TSAN doesn't work well then threads are created with attributes
thar require root rights but the process is run as normal user.

this patch avoid the thread attributes in this case. TSAN isn't going
to be used for production builds.
2021-06-02 09:36:44 +02:00
Andre Puschmann b88f22b9fe network_utils_test: fix race detected with TSAN 2021-06-01 22:44:12 +02:00
Andre Puschmann f823340a95 rf_imp: fix race when stopping gain thread
detected with TSAN using benchmark_radio test
2021-06-01 22:44:12 +02:00