Commit Graph

1681 Commits

Author SHA1 Message Date
Francisco Paisana 1f2cca8909 in the rrc reconf procedure, handle the scenario where the rrc reconfiguration message does not config the phy 2020-10-01 11:25:21 +01:00
Francisco Paisana edd5c50f9a pass nas pdus after sending rrc reconf complete 2020-10-01 11:25:21 +01:00
Francisco Paisana cf89f4300a fix ttcn3 to signal back to stack that a phy config has been completed 2020-10-01 11:25:21 +01:00
Francisco Paisana c6f4776a6f send the nassdus sooner in the rrc reconf procedure 2020-10-01 11:25:21 +01:00
Francisco Paisana 2416e274a7 fix rrc_meas_test. The phy now needs to signal back to the rrc that the phy config is complete 2020-10-01 11:25:21 +01:00
Francisco Paisana fc49b5a030 implemented rrc reconfiguration procedure that includes a continuation when phy configuration is complete 2020-10-01 11:25:21 +01:00
Andre Puschmann 936e3b7bef mac_test: add manual test for TC 7.1.4.6 2020-09-30 17:17:21 +02:00
Andre Puschmann 5a9b1865e4 proc_bsr: fix typo 2020-09-30 17:17:21 +02:00
Xavier Arteaga ef9d77c966 SRSUE: add PRACH config present field in PHY configuration structure 2020-09-30 17:10:48 +02:00
faluco 51b27fc255
Import latest srslog version (#1796)
* - Import latest srslog version.
- Adjusted the nas_test to create logs correctly.
- Remove timestamp formatting now that is provided by srslog.
2020-09-30 15:52:42 +02:00
Francisco Paisana 924cc4f937 during cell selection, if the serving cell is ok, avoid calling serving cell configuration if the sibs are already acquired 2020-09-30 15:10:06 +02:00
Ismael Gomez 4e88daae21
Set DCI unpacking errors to info (#1781) 2020-09-30 10:04:08 +02:00
faluco dfeed52514 - Rename out_stream function to console. 2020-09-29 17:38:13 +02:00
faluco 62faef7c71 - Replaced all uses of the log::console method. 2020-09-29 17:38:13 +02:00
Francisco Paisana b3eb9651d6 disable cqi in scells during handover procedure 2020-09-29 12:10:42 +01:00
Ismael Gomez f4c7021a5f Appy phy configuration to current_phy_cfg before sending to PHY after HO 2020-09-29 12:10:42 +01:00
Francisco Paisana 8a9a95a937 ensure sibs are acquired if cell selection calls cell search 2020-09-29 11:06:32 +01:00
Francisco Paisana af3ff5985e removal of console print of last selected cell during the cell selection procedure. 2020-09-29 09:38:05 +01:00
Francisco Paisana c33e94fede fix conformace 8_5_1_1 failure 2020-09-28 23:45:13 +01:00
Francisco Paisana 045f647914 fix edge case where serving cell is good enough for reestablishment but the sibs are not yet acquired 2020-09-28 23:45:13 +01:00
Andre Puschmann f32d9f8322 ttcn3: call stop in UE dtor
fixes stop issue of TTCN3 DUT
2020-09-28 22:04:23 +02:00
Ismael Gomez d671e39c93 Fix SINR not correctly considering noise. Missed dBm conversion 2020-09-28 20:50:12 +02:00
Francisco Paisana 5ecbe8fb17 cleanup of the reestablishment procedure state machine. It does not need to wait for the serving cell configuration because such procedure is already included in the cell selection procedure 2020-09-28 18:39:28 +01:00
Pedro Alvarez b3bfe336a9 Make sure that remote address test has a ip mask 2020-09-28 16:08:28 +02:00
Sylvain Munaut 6ce5863f03 test/tft_test: Add a combined test for IPv6 packets 2020-09-28 16:08:28 +02:00
Sylvain Munaut 9ba8b62972 test/tft_test: Update filter test suite
The “IPv4 local address type” filter should be 9 bytes since it includes
not only the ip address, but also its subnet mask.

Quoting from 3GPP TS 24.008 10.5.6.12:
"""
 For "IPv4 remote address type", the packet filter component value field
 shall be encoded as a sequence of a four octet IPv4 address field and a
 four octet IPv4 address mask field. The IPv4 address field shall be
 transmitted first. For "IPv4 local address type", the packet filter
 component value field shall be encoded as defined for "IPv4 remote
 address type".
"""

Same for the ToS which also includes a 1 byte mask value
2020-09-28 16:08:28 +02:00
Sylvain Munaut 5783c01cbb tf_packet_filter: Improve support for the different filter types 2020-09-28 16:08:28 +02:00
Ismael Gomez bb691f0cbe
Fix priority order in BSR trigger. Was not being triggered if SRB2 data was pending in the buffer (#1771) 2020-09-25 21:02:06 +02:00
Ismael Gomez 8c30822350 Fix bug in update_measurements() not reporting in_sync in single carrier 2020-09-25 15:39:15 +02:00
Francisco Paisana 0997daa7a0 now the handover procedure in the srsUE does not wait for the phy cell selection result. It only waits for the RA result 2020-09-25 13:03:50 +01:00
Ismael Gomez c75c463263
Use SNR instead of SINR for RLF threshold (#1769)
* Use SNR instead of SINR for RLF threshold

* Send in/out-sync only for cc_idx=0
2020-09-24 22:26:05 +02:00
Ismael Gomez 76bfc78147
Fix issues with Sounding-RS (#1761)
* Fix deadlock caused by update_measurements calling in_sync

* Fix overlapping SRS condition

* Do not use shortened PUSCH in transmissions and retx from RAR

* Revert "Fix deadlock caused by update_measurements calling in_sync"

This reverts commit f58c8c8c766f8f95baa3a3bf8287d8e25b2057ba.
2020-09-24 22:25:24 +02:00
Francisco Paisana 2d321231df fix reest proc. The reest proc state has to be set before launching the procedure, because the procedure can complete immediately on launch call 2020-09-24 14:00:31 +01:00
Pedro Alvarez 86f4d469c6 Added some functions to save and restore AS keys for the case of failed handover in the USIM 2020-09-24 13:30:08 +01:00
Francisco Paisana 81ab4c1a65 make sure ho procedure waits for t304 expiry in all cases 2020-09-24 10:19:13 +01:00
Ismael Gomez b94d24ed98
Take into account CRS from neigbhour cells when measuring interference (#1757)
* Take into account CRS from neigbhour cells when measuring interference

* fix std::isnormal compilation

* Fixed compilation of test

* Address comments

* Remove unused overrides
2020-09-23 21:46:03 +02:00
Francisco Paisana cf89d6645b add comments explaining each function of the reest procedure 2020-09-23 14:59:38 +01:00
Francisco Paisana d068d594af implemented rrc reestablishment procedure part after sending reest request 2020-09-23 14:59:38 +01:00
Francisco Paisana 7d6c9a1751 Add cause and cell pci to reestablishment console message 2020-09-23 14:59:38 +01:00
Francisco Paisana 73e21daeb2 refactor reestablishment procedure to more closely follow TS. 2020-09-23 14:59:38 +01:00
Andre Puschmann 1afc137032
[REBASE] Make PHY non-blocking and fefactor HO procedure (#1753)
* Make PHY non-blocking and fefactor HO procedure

* makes entire PHY non-blocking through command interface
* adds dedicated queue for cell_search/cell_select commands
* refactor HO procedure to run faster, in one stack cycle. Looks closer to the specs
* force ue to always apply SIB2 configuration during reestablishment
* Run update_measurements in all workers

Co-authored-by: Ismael Gomez <ismagom@gmail.com>
2020-09-22 21:47:16 +02:00
Ismael Gomez 399b986d0b
Fix deadlock caused by update_measurements calling in_sync (#1760) 2020-09-22 18:25:12 +02:00
Francisco Paisana eb370642ab verify cell selection observer is set before calling it 2020-09-22 17:09:18 +01:00
Francisco Paisana 7f8af023b8 added a callback that always gets triggered when the phy cell selection completes. This callback checks if cell selection failed, and if so, sets the rsrp of the selected cell to -infinity 2020-09-22 17:09:18 +01:00
faluco f0d651ae8e - Fixed a leak in the MME class not releasing the static byte buffer pool.
- Now the pool gets destroyed on program exit using a unique_ptr.
- Removed manual cleanup() calls in all the code base to free the pool instance.
2020-09-22 18:00:50 +02:00
Ismael Gomez 5968157ea5
Protect better the access to shared variables in phy_common and metrics (#1750) 2020-09-22 14:32:08 +02:00
Andre Puschmann eeb2b904aa ue,rach: fix failing RACH proc when Msg3 grant RNTI matches current CRNTI
this was preventing that the Temp-CRNTI used in the RAR to be identical
to the currently configured C-RNTI of the UE.

The issue simply was that the RACH procedure was declared successful too
early, even before the Msg3 UL grant was filled with the Msg3 content.

The patch moves the logic that detects the successful completion of
the RACH procedure below the Msg3 packing.
2020-09-22 14:03:39 +02:00
Andre Puschmann a36f9bddc2 ttcn3: use RNTI values in RACH provided by tester
this patch extends the SS to use the C-RNTI and Temp CRNTI values
provided by the tester for RAR and Msg3.
2020-09-22 14:03:39 +02:00
faluco e14cb4b405 - Fix a missing thread join in the phy which caused a memory leak. 2020-09-22 09:17:01 +02:00
faluco 5acc1c9a73 - Cleaned up style in the PRACH class:
* Removed magic numbers.
* Reduced indentation of statements with early exists.
* Removed elses after a return statement.
* Trimmed unnecessary include files.
* Default initialized members in the class.
2020-09-21 09:50:20 +02:00
faluco b6bbe8761a - Remove left over printf. 2020-09-21 09:50:20 +02:00
faluco 79f5b62551 - Calculate PRACH buffers on the fly when required instead of pregenerating all of them. 2020-09-21 09:50:20 +02:00
Andre Puschmann b616944a13 ue,rrc: fix security config during HO/reestablishment
we fix a number of very related issues for HO/reestablishment
in the success/error case:

* this patch removes the hard-coded check that intra-cell HO aren't
allowed. There are cases where eNBs use this method to update
the security context.

* the patch also fixes an issue after failed HO where the security context
of the source eNB should be used for the reestablishment.

* update security keys according to specs when mobilitycontrol
indicated change of key
2020-09-21 09:27:07 +02:00
Andre Puschmann d90de639e5 ttcn3_syssim: continue when epoll returns -1
this allows to debug and step in the SS
2020-09-21 09:27:07 +02:00
Andre Puschmann 1b266257a1 ttcn3_phy: improve logging of cell measurements 2020-09-21 09:27:07 +02:00
Andre Puschmann 6827c2df21 rrc_meas: disable layer3 filtering until quantity config is received
the filter alpha was initialized to zero by default which causes an
issue because the first measurement for a cell can't be updated,
because the filtering function will always return the current value.

According to 36.331 Sec 5.5.3.2 Note 2, a k-value of 0 should turn
off filtering, which should be used as the default value until
an update is received from the network.
2020-09-21 09:27:07 +02:00
Francisco Paisana 97133894e6 the Ocs value used in the measReport triggering decision was not being set correctly. The enum of the cell individual offset in the measCfg was being cast to an int and stored. Instead what we want is to store the actual offset value using the ASN1 enum->number lookup table. 2020-09-18 13:17:32 +01:00
Xavier Arteaga 44c2412be2 SRSUE: silent PUSCH encoding error by dropping invalid grant 2020-09-17 22:39:56 +02:00
Francisco Paisana 739c0c5c00 altered plmn search procedure handling of failed cell searches. If a cell search procedure fails due to inability to select a cell or acquire SIB1, the plmn search carries on for other frequencies. 2020-09-17 16:43:58 +01:00
Andre Puschmann 3088cdbb0f ttcn3: fix uncaught exception in SS
fix accessing child element in parsed Json without checking
its existence.
2020-09-14 21:20:59 +02:00
Andre Puschmann 8df388ba3e usim: fix typo in log 2020-09-14 21:20:59 +02:00
Andre Puschmann 3e824f6370 ttcn3: convert TTI action vector to queue
this makes sures queued events are executed FIFO
2020-09-14 21:20:59 +02:00
Andre Puschmann 624c8142ad ttcn3: refactor cell handling in SS
this rather large patch changes the way cells are handled in the SS.
It moves RLC and PDCP entities to the cell map of the SS, such that each cell
has its own entities. This allows to support HO operation, for example,
in which two cells need to send SRB messages.

It also extends most of the syssim interface to include the cell name
in all commands so they can be applied on the specified cell only.
2020-09-14 21:20:59 +02:00
Andre Puschmann 4650a620d9 ttcn3: refactor cell search and selection in TTCN3 PHY
- make sure only suitable cells are reported/selected
2020-09-14 21:20:59 +02:00
Andre Puschmann 973de8f78d ttcn3_dut: block OS signals before starting log backend
this prevents the backend thread from handling the signals. they
are only handled by epoll running in the main thread.

this fixes #1713
2020-09-14 21:20:00 +02:00
Ismael Gomez b397878d25 Fix comments in ue.conf 2020-09-14 16:54:47 +02:00
faluco c178e362b8 - Rewrite log management so that a log sink can be swapped for each testcase. 2020-09-10 17:14:51 +02:00
faluco 5e8a4c898d
Bring back the circular array object. (#1712) 2020-09-09 17:16:47 +02:00
Xavier Arteaga 52355024e7 SRSUE PHY: move mutex lock to cc worker and unlock for stack calls 2020-09-04 14:01:25 +02:00
Ismael Gomez 4c1d3ef7e8
Fix implementation of Random Access problem (#1689)
* Fix implementation of Random Access problem

* Apply AS activated condition on RLF before calling Reestablishment
2020-09-04 13:13:42 +02:00
Ismael Gomez f49fbd6d02
Fix the order of HO/reest measurement actions (#1696) 2020-09-04 12:18:12 +02:00
Andre Puschmann c16ac6c890 ue_stack: only push sync event to event queue is stack is still running
stopping the UE in ZMQ mode caused a dead-lock because the Stack was
stopped before the PHY causing the sync queue to overflow. Since we
use a queue-length of 1 in ZMQ, mode, the PHY sync thread was blocking to
push a new sync event while the stack thread was already stopped.

this patch makes sure no new sync events are queued after the stack has
been terminated.
2020-09-03 18:28:49 +02:00
Andre Puschmann aec18a93d1 mux,bsr: refactor UL buffer status reporting
this patch fixes the UL BSR as per TS 36.321, it includes following
main changes:

* report UL buffer state to reflect the UEs transmit buffer after
  the MAC UL PDU containing the BSR has been built.
  In other words, if the UE, for example, can transmit all outstanding
  data in an UL grant, it will not report any pending data to transmit.

* refactor MUX routines and subheader space calculation
2020-09-03 15:00:36 +02:00
Andre Puschmann 92d76a5eb6 mac_test: update tests involving BSR handling
* split existing BSR test into dedicated test for short, long, and trunc
  BSR tests

* update MAC tests that include packing UL BSR.
  (After checking TS 36.321 again it seems we have reported old UL buffer states)
2020-09-03 15:00:36 +02:00
Ismael Gomez 54eed11e1d Refactor decision for extended CSI/SRS 2020-09-03 10:45:06 +02:00
Ismael Gomez 51521ad8e4 Improved PDCCH blind search and fixed a few issues with ambiguous DCI size with Release 10 2020-09-03 10:45:06 +02:00
Andre Puschmann 14289ebcc6 dl_harq: lower log level when MCS changes in DL grant to debug
fixes #1489

this is normal behavior and should not result in a warning message.
2020-09-01 16:17:23 +02:00
Ismael Gomez 06a5bdaab2 Process all calls to RLF in the main RRC task 2020-09-01 11:03:02 +02:00
Francisco Paisana 92221eb780 update of rrc_interface_mac to remove signal from mac to rrc that RA failed in case of handover failure 2020-08-29 20:06:08 +01:00
Francisco Paisana 46e1e101d3 removal of unecessary ho_ra_complete(false) in mac. In case of HO failure, the rrc should let the t304 expire 2020-08-29 20:06:08 +01:00
Francisco Paisana aed9120458 in case of RA problem during handover, the UE cannot trigger RLF. It has to let t304 expire, which will then trigger the reestablishment procedure with the right cause 2020-08-29 20:06:08 +01:00
Francisco Paisana fca1273b3e avoid spurious warnings of trying to start the PRACH when it is already running during handover 2020-08-28 10:14:23 +01:00
Francisco Paisana fddcc3d8ea In the case of Handover, postpone the activation of the CQI and SR config present in the HO command for after the RA proc completion to the target eNB 2020-08-28 10:14:23 +01:00
Andre Puschmann 641a4a5e79 mac_test: fix compilation if PCAP write is enabled 2020-08-27 23:46:28 +02:00
Andre Puschmann 49a7a90698 mac: simplify BSR packing logic
simplify logic to check whether a BSR fits and, if so, which type.
before the check has been done in two places.

we now also accomodate for the CE subheader size.
2020-08-27 23:46:28 +02:00
Andre Puschmann 6364a4513c mac_pdu: fix issue when packing CE but no space left in PDU
we've not checked the return value when adding a new CE, like BSR or PHR,
for a UL MAC PDU. For very small UL grants, this could fail and
we need to remove the subheader again before packing the PDU.

This fixes issue #1649.
2020-08-27 23:46:28 +02:00
Daniel Willmann 7d0ae71f17 ttcn3_sys_interface: Handle initial cell attenuation
When new Cells are added they can have an attenuation configured
directly. Honor that setting.
2020-08-27 19:18:47 +02:00
Francisco Paisana 5242f9422b fix deadlock in handover 2020-08-27 13:43:18 +01:00
Ismael Gomez 72cc4e0ca5 Stop ContentionResolutionTimer on RA error. Updated test 2020-08-27 10:04:42 +02:00
Xavier Arteaga df2c949417 Radio: add individual Rx gain and integrate in srsue
Fix compilation

Fix compilation

Add missing variable. Wasn't compiling

Radio: revert some changes
2020-08-27 09:31:05 +02:00
Xavier Arteaga 029f36b449 srsLTE: added efficient integer resampler and srsue/srsenb integration 2020-08-25 16:19:52 +02:00
Xavier Arteaga 1ff74da078 Remove wrong error message 2020-08-25 10:16:04 +02:00
Francisco Paisana 75b204bc52 fix phy ctrl call to cell selection observers 2020-08-24 22:10:32 +01:00
Francisco Paisana 834c0b3929 integrated new observer pattern into phy controller fsm 2020-08-24 22:10:32 +01:00
Francisco Paisana 48dd436d86 integrated observer pattern into rrc phy ctrl fsm 2020-08-24 22:10:32 +01:00
Francisco Paisana 997552ee45 stop t304 when handover is successful 2020-08-24 17:48:50 +01:00
Francisco Paisana 1d8286eb62 always wait for t304 to expire in case of failed handover 2020-08-24 17:48:50 +01:00
Francisco Paisana ccc8ab70ef stop t304 on handover procedure exit 2020-08-24 17:48:50 +01:00
Francisco Paisana db15f43a77 set reestablishment cause correctly on handover failure 2020-08-24 17:48:50 +01:00
Francisco Paisana b1670c005b remove shadowed variables for reestablishment during handover 2020-08-24 17:48:50 +01:00