Commit Graph

2135 Commits

Author SHA1 Message Date
Xavier Arteaga d49734b1bc SRSENB: Refactor to accomodate 5G NR 2021-06-28 00:27:36 +02:00
Andre Puschmann e248e086ed ttcn3_dut: reset TFT matcher object when DUT is switched off 2021-06-24 16:52:58 +02:00
Andre Puschmann 7a85191323 nas: call GW for all removed EPS bearers
this makes sure that GW can also remove all associated TFTs
2021-06-24 16:52:58 +02:00
Andre Puschmann ab0fba5449 gw: try to remove TFTs for all non-default EPS bearer
GW needs to reset its default EPS bearer when it is removed
and also try to remove all TFTs for a non-default bearere when
it is removed.
2021-06-24 16:52:58 +02:00
Andre Puschmann 5313fb99d6 tft: add helper to delete all TFTs for EPS bearer
when a EPS bearer is removed, all associated TFTs need
to be removed as well.
2021-06-24 16:52:58 +02:00
Andre Puschmann eef9eb80c4 ttcn3_ue: fix removal of dedicated EPS bearer 2021-06-24 16:52:58 +02:00
Andre Puschmann 60f8a8db1c nas,tft: add support for TFT modification 2021-06-24 16:52:58 +02:00
Andre Puschmann 483a216bd5 ue,stack: refactor handling of radio bearears in UE stack
this is a rather large commit that is hard to split because
it touches quite a few components.

It's a preparation patch for adding NR split bearers in the next
step.

We realized that managing RLC and PDCP bearers for both NR and LTE
in the same entity doesn't work. This is because we use the LCID
as a key for all accesses. With NR dual connectivity however we
can have the same LCID active at the same time for both LTE and NR
carriers.

The patch solves that by creating a dedicated NR instance for RLC/PDCP
in the stack. But then the question arises for UL traffic on, e.g. LCID 4
what PDCP instance the GW should use for pushing SDUs. It doesnt' know
that. And in fact it doesn't need to. It just needs to know EPS
bearer IDs. So the next change was to remove the knowledge of what
LCIDs are from the GW. Make is agnostic and only work on EPS bearer IDs.

The handling and mapping between EPS bearer IDs and LCIDs for LTE
or NR (mainly PDCP for pushing data) is done in the Stack because
it has access to both.

The NAS also has a EPS bearer map but only knows about default and
dedicated bearers. It doesn't know on which logical channels they
are transmitted.
2021-06-24 16:52:58 +02:00
Andre Puschmann 3f9c069ff7 ue_stack_lte: add RLC and PDCP entities for NR 2021-06-24 16:52:58 +02:00
Andre Puschmann 7113e55d53 rlc: refactor RLC entity to use smart pointers for holding bearers
this patch mainly modernizes the bearer creation to use smart pointers.
that allows to simplify the error handling.

ue_stack is changed to match new interface. This commit compiles
but doesn't work.
2021-06-24 16:52:58 +02:00
David Rupprecht 6d5391756c Refactor build of RLC NR config 2021-06-24 16:52:58 +02:00
David Rupprecht d1d8500ce5 Add testcase for reconfiguration 2021-06-24 16:52:58 +02:00
Andre Puschmann e2c496d825 srsue,mac: fix race between PHY and MAC when stopping UE
the issue let to unwanted log warning at the end of the UE
execution when the PHY was still pushing DL PDUs while MAC
was already stopped.

This fixes #3003
2021-06-24 16:46:25 +02:00
Xavier Arteaga b1e4720721 SRSUE/SRSENB: added tx_enable flag in worker_end 2021-06-21 18:07:53 +02:00
Xavier Arteaga 027201d457 SRSUE/SRSENB: Refactor NR workers to generalise lower PHY 2021-06-21 18:07:53 +02:00
Ismael Gomez 9c60ef092c Fix test for non-contention HO 2021-06-21 11:46:21 +02:00
Ismael Gomez 66eb6f20f1 Fix non-contention HO missing the T-CRNTI 2021-06-21 11:46:21 +02:00
Ismael Gomez 5aa5a8e997 Revert UE changes 2021-06-18 23:17:14 +02:00
Ismael Gomez e35a0d72fa Revert UE changes 2021-06-18 23:17:14 +02:00
Ismael Gomez aa5944da78 Fix T-CRNTI push pdu 2021-06-18 23:17:14 +02:00
Ismael Gomez c206d3c0fa fix ttcn3 tests 2021-06-18 23:17:14 +02:00
Ismael Gomez dd9889e07c Add carrier index to uplink PCAP captures 2021-06-18 23:17:14 +02:00
Francisco 9139f88b31 fix,srsue: defer enqueuing of the rrc reconf complete message to avoid that it goes in the UL grant whose PDCCH was scheduled in the TTI as the PDSCH that carried the HO command 2021-06-14 19:27:55 +01:00
Xavier Arteaga fc5d069743 SRSUE: Default PHY measurements to NAN 2021-06-14 09:21:29 +02:00
Andre Puschmann 94959b5318 srsue,test: reorganize test folders and move to components like we in PHY 2021-06-10 15:18:42 +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 6123926353 Fix NR cell search frequency 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 a31f3d42ce Added RF NR search tool and added baseband file 2021-06-08 14:55:12 +02:00
Xavier Arteaga 157af40417 Fix shadow variables in sync.cc 2021-06-08 10:21:38 +02:00
Xavier Arteaga 3a011155db SRSUE: Make sure PHY reset is done when SYNC is IDLE 2021-06-08 10:21:38 +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
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 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
Xavier Arteaga d74f70289e SRSUE: fix last reported RI state 2021-06-02 18:12:36 +02:00
Andre Puschmann b0a2f31478 prach: protect configuration and state getters with mutex
purely TSAN with unit-test based approach that protects
the state getters and configuration routines with a mutex
2021-06-02 09:36:44 +02:00
Andre Puschmann d2ec3ca5e1 intra_measure_base: fix race detected with TSAN
use mutex to protect state getters
2021-06-02 09:36:44 +02:00
Andre Puschmann f43e82a8a6 ue_phy_test: fix test 2021-06-02 09:36:44 +02:00
Andre Puschmann 98a91a2057 sync: protect sync_state, access ue_sync object only from one thread
races detected with TSAN, primarily the ue_sync object which isn't
thread-safe is accessed by all workers to set the CFO and by the
sync thread to receive samples (which read the CFO).

The patch introduces shadow variables that are updates from the
main thread before/after the sync is executed. The atomic shadow
variables can then be read from otherthreads without holding a
mutex, i.e. blocking the sync.
2021-06-02 09:36:44 +02:00
Andre Puschmann 2c975732dc metrics_stdout: fix race detected by TSAN 2021-06-01 22:44:12 +02:00
Andre Puschmann 8ab512c2be nas_test: fix TSAN warnings
remove mutex and cvar again that we used to circumvent the startup.
we now use a atomic variable to sync the main thread and the stack.
2021-06-01 22:44:12 +02:00
Xavier Arteaga 2d0a21f779 Move radio frequency mapping out of the PHY common into the PHY reset method 2021-06-01 16:38:55 +02:00
Andre Puschmann 11a6d3160f mac_test: include TSAN options header 2021-05-31 10:54:14 +02:00
Andre Puschmann 018c734b09 dl_harq: fix unlocking of unlocked mutex bug detected by TSAN
in the mac_test the tb_decoded() method was called twice for
the 2nd codeword, causig TSAN to complain about an unlocked mutex
being unlocked.

The patch resolves the potential issue only calling tb_decoded
for a grant/tb thas has a non-zero MCS.

The patch also adjusts the reset function to have a safe and "unsafe"
version to be called from inside the class, similar to other
classes where we do the same.
2021-05-31 10:54:14 +02:00
Xavier Arteaga 5c55ff24ec Minor UE aesthetical changes 2021-05-31 10:48:17 +02:00
Xavier Arteaga 44b6a2b55f Fix SYNC wait for IDLE if the state is reached 2021-05-31 10:48:17 +02:00
Xavier Arteaga 807b60988d Wait for PHY workers to transmit before considering SYNC in IDLE 2021-05-31 10:48:17 +02:00