Commit Graph

1181 Commits

Author SHA1 Message Date
Xavier Arteaga a4135e41a5 Added PUCCH collision checker 2020-03-02 12:19:09 +01:00
Xavier Arteaga f35ed14f76 SRSENB: refactored PHY common UE database 2020-03-02 12:19:09 +01:00
Xavier Arteaga 2fc0832f05 Addition of DL HARQ-ACK generation procedure for eNb DL and minor aesthetic changes 2020-03-02 12:19:09 +01:00
Andre Puschmann 9e113f8b27 pdcp: allow to configure security for rx/tx seperately
previously PDCP security (integrity and ciphering) could only
be enabled for both Rx and Tx at the same time.

this, however, caused an issue during the conformance testing in which,
in TC_8_2_1_1() for example, the eNB sends a SecModeCommand and a
RRC Reconfiguration in the same MAC TB. In this case, the eNB
needs to be able to enable DL security right after sending the SecModeCmd
in order to send the RRCReconfig encrypted. However, enabling UL security needs
to be postponed until after the SecModeComplete is received.

This patch allows to enable PDCP security for rx/tx independently if
that is needed. The default way is like before, enabling it for tx/rx at
the same time.
2020-03-01 18:26:45 +01:00
Francisco Paisana 79e5bd94cf remove timers from priority queue for which run() or stop() was called. 2020-02-29 18:00:11 +00:00
Francisco Paisana 5b2da779b7 new method in timer_handler to dispatch calls without an associated unique_timer 2020-02-29 18:00:11 +00:00
Francisco Paisana ac52208409 removed most of clang-tidy warnings, introduced logmap in asn1, fixed info object naming in s1ap and ngap for successful and unsuccessful outcomes 2020-02-28 18:03:29 +00:00
Andre Puschmann 5b31c1db43 nas: delete security context when receiving attach reject with cause 3, 6, or 35 2020-02-28 12:52:44 +01:00
Francisco Paisana 32c347fbb1 hide logmap implementation in source file. Export symbols so they can be used by srsASN1 project 2020-02-28 11:33:26 +00:00
Francisco Paisana e859d622c7 added logref class to forbid logmap pointer invalidation. Created a test for the logref, and introduced it in the scheduler, rrc and nas 2020-02-28 11:33:26 +00:00
Xavier Arteaga e621853566 Minor aesthetics changes 2020-02-28 12:10:32 +01:00
Xavier Arteaga f261365c91 Initial EVM calculation commit and other easthetic changes 2020-02-28 12:10:32 +01:00
Andre Puschmann b88e877b4c ttcn3: make SS single threaded and use SCTP for test ports
- remove all threading from SS
- use epoll to handle test port connections, signals, and timers
- convert testport interface to SCTP
2020-02-25 21:28:15 +01:00
Pedro Alvarez aecfb151ce Apply clang-format to the lib in preperation for PR. 2020-02-20 20:53:27 +01:00
Pedro Alvarez d98b888ca4 Separating PDCP read_header function from discard_header_function. Starting to add DRB unit test. 2020-02-20 20:53:27 +01:00
Pedro Alvarez 284a0f7b4e Starting to add PDCP LTE unit tests. Test failing for now. 2020-02-20 20:53:27 +01:00
Pedro Alvarez b841859220 Moved pdcp test functionality to a common header. Fixed linking issue in 5GNR PDCP 2020-02-20 20:53:27 +01:00
Pedro Alvarez 5f39c79bda Moved some more packing functions to base class. 2020-02-20 20:53:27 +01:00
Pedro Alvarez fdd67c3865 Fix issue in integrity check in PDCP SRBs. Moved some helper functions to the pdcp base class 2020-02-20 20:53:27 +01:00
Pedro Alvarez 965b0ee99b Starting to fix handling of RX SRB PDUs in PDCP. 2020-02-20 20:53:27 +01:00
Francisco Paisana c29f08d8d5 refactored si acquisition procedure to use stack timers. Also created an interface that is going to be used for the task/timer handling 2020-02-20 20:48:36 +01:00
Francisco Paisana 22f51bb30b made cell select non-blocking using background threads 2020-02-18 09:47:33 +01:00
Ismael Gomez d8d10daebe
Fix bug in SRS using the previous grant to compute collision with PUSCH (#958) 2020-02-16 21:30:04 +01:00
Ismael Gomez 4fb83ae26d Run configure_prach_params as a background task 2020-02-16 21:27:24 +01:00
Andre Puschmann 327aa97cfd add macro for invalid RNTI 0x0 2020-02-15 19:33:25 +01:00
Francisco Paisana 42449b079a now the scell_activation CE is only for 1 octet. The 4 octet one is not yet supported. 2020-02-14 21:49:01 +00:00
Francisco Paisana d831522692 addition of SCell Activation CE Cmd to scheduler and MAC 2020-02-14 21:49:01 +00:00
Francisco Paisana 838053e8f2 added SCell Activation CE to scheduler. Handling this CE in the MAC is still missing 2020-02-14 21:49:01 +00:00
Francisco Paisana a0407dd6f7 created a lock guard for pthread rwlocks. This will avoid using gotos in many cases, and the RAII technique avoids many accidents. 2020-02-14 14:53:57 +00:00
Xavier Arteaga 385102fa2d SRSENB: minor format, renaming and interface changes 2020-02-13 10:29:00 +01:00
Xavier Arteaga 67c07dfb56 Moved UL/DL PUCCH procedures into pucch_proc 2020-02-13 10:29:00 +01:00
Xavier Arteaga bf4ecc8064 Fix srsenb PHY and unit/component tests 2020-02-13 10:29:00 +01:00
Xavier Arteaga 7a20e3a51e Added boolean random generator 2020-02-13 10:29:00 +01:00
Xavier Arteaga 5dbc96458a Sets PUCCH decode threshold as macro 2020-02-13 10:29:00 +01:00
Xavier Arteaga bc10943a2b Added get max TB from DCI format 2020-02-13 10:29:00 +01:00
Xavier Arteaga 231431f569 SRSENB: enabled CA PUCCH decode in eNb 2020-02-13 10:29:00 +01:00
Xavier Arteaga d66fdefbb3 Added more docs to PUCCH 1b CS resource selection 2020-02-13 10:29:00 +01:00
Xavier Arteaga 40772eae19 SRSENB: UE PHY dedicated takes a flat configuration structure 2020-02-13 10:29:00 +01:00
Xavier Arteaga 1f762844ee Initial PUCCH format 3 decoder 2020-02-13 10:29:00 +01:00
Xavier Arteaga f935916e7c SRSUE: fix srsue_rf_test 2020-02-13 10:29:00 +01:00
Xavier Arteaga 35f4e5d69a Initial PUCCH 1B with channel selection 2020-02-13 10:29:00 +01:00
Andre Puschmann 6cce22d6b8 add support for GPS-based sync to UE sync object 2020-02-10 20:25:54 +01:00
Francisco Paisana c8fc0d91b3 changed the supported cc list to a vector of structs 2020-02-07 15:06:46 +00:00
Francisco Paisana 42b15c7bed use common ue_cfg interface to set the ue antenna info 2020-02-07 15:06:46 +00:00
Francisco Paisana 5f557700f2 changed the sched::ue_cfg(...) function to allow diff configurations. The RRC now activates all carriers after rrc reconf complete 2020-02-07 15:06:46 +00:00
Francisco Paisana b66bc3a6b0 create a sched_interface struct for antenna info dedicated. This way we remove the asn1 as a dependency in the scheduler 2020-02-07 15:06:46 +00:00
Francisco Paisana 88a22e7dbf support cc cfg from rrc 2020-02-07 15:06:46 +00:00
Francisco Paisana e86862611c update the scheduler interfaces to accommodate the configuration of multiple carriers 2020-02-07 15:06:46 +00:00
Francisco Paisana 2dc31ea440 added interface to configure multiple cells from the RRC 2020-02-07 15:06:46 +00:00
Andre Puschmann c7343cf6d8 protect sf_buffer from overrun in receive_samples
this patch adds a buffer len paramter to the receive_samples() call
that protects the (also) provided buffer from overflowing.

currently each call to srslte_ue_sync_zerocopy() which then calls receive_samples()
relies on a buffer that is "big enough". But that buffer is sometimes
2 subframes, sometimes 3 or 5, sometimes has space for the maximum PRB size, sometimes
only for 6 PRBs (i.e. during cell search).

By extending the interface to pass the buffer size we can make sure that
only samples are received that actually fit inside the provided buffer.
2020-02-07 10:21:30 +01:00
Andre Puschmann ed179fd311 timers: rename value() to time_elapsed()
this seems to be better readable than value() since
we've sometimes confused it with the timeout value
2020-02-06 14:40:47 +01:00
Andre Puschmann 4932fb8719 fix value() return in timers when timer is expired
this makes sure that value() never returns a value larger
than the timer duration
2020-02-06 14:40:47 +01:00
Xavier Arteaga 5b14a7d585 Implementation Tx RLC suspend 2020-02-06 09:14:57 +01:00
Xavier Arteaga 68ad4960eb SRSLTE: added holding time before AGC starts measuring after setting gain 2020-02-06 09:14:05 +01:00
Xavier Arteaga e0cc1fd697 Reduce time of timer_test; use unique_lock instead of guard 2020-02-04 16:33:46 +01:00
Xavier Arteaga 22da8dfbb1 srsLTE: protected priority queue in timers 2020-02-04 16:33:46 +01:00
Andre Puschmann d3cb2eac83 add RLC suspend/resume to eNB interface 2020-02-03 16:26:15 +01:00
Andre Puschmann bbacc35e24 move configuration of default logger to main
this prevents the case where a layer requests a new log_filter
before the default logger has been configured
2020-02-03 12:51:46 +01:00
Xavier Arteaga fe199e6be2 SRSUE: Undo enable/disable RA procedure flag 2020-02-03 12:51:46 +01:00
Xavier Arteaga f8294fb9df SRSUE: RRC measurements refactor and more fixes 2020-02-03 12:51:46 +01:00
Ismael Gomez 52716f8716 Process HO complete in the background to avoid heap-after-use bug when PHY measurements are reported during a HO
rrc_meas refactor. Need to split commit

Fix typo

Temporal commit

Apply rx_gain_offset to neighbour cell measurements

srsLTE: modify TESTASSERT Macro to follow codeline

SRSUE: prevent RRC from having serving cell in neighbour list

SRSUE: DL HARQ does not need Time Aligment Timer. UL is disabled using PUCCH resources release

SRSUE: extend intra-frequency to CA SCell

SRSUE: fix confusing/ambiguous code in the RRC measurements and fix concurrency issue

SRSUE: remove RRC measurement report triggers when measurements are modified or HO succesful

SRSUE: fix compilation issues and Reest SIB indexes

Fixes sync using incorrect cell configuration when search cell does not find a correct cell

Small refactor to remove measurement report triggers always after removing measurement

SRSUE: Removed SIC PSS from UE

SRSUE: fix inter-frequency reestablishment and added more traces

SRSUE: Fix compilation issue
2020-02-03 12:51:46 +01:00
Francisco Paisana 1b958a60b5 casting .c_str() to mutable char* and changing the char* was causing all sort of weird format messages 2020-01-31 19:08:56 +00:00
Francisco Paisana c8cd12ac53 updated the test logging utils 2020-01-29 17:15:35 +00:00
Francisco Paisana c537d38650 separated sched tests based on output into a separate file. Added scheduler random tester to unit tests 2020-01-29 17:15:35 +00:00
Francisco Paisana f6ed99b71b created a generic crtp class for handling singletons. I am using that class for the logmap now 2020-01-29 14:20:43 +00:00
Francisco Paisana ea777d92e8 applied new logmap class to nas 2020-01-29 14:20:43 +00:00
Francisco Paisana 3e2de6dd3e new logmap class to store globally accessible logs 2020-01-29 14:20:43 +00:00
Francisco Paisana 07a9e889a4 added a singleton map to facilitate access to each layer logger 2020-01-29 14:20:43 +00:00
Xavier Arteaga c080cb3395 SRSUE: expose correct synch error parameter 2020-01-29 12:25:13 +01:00
Ismael Gomez 17f9ff326b Expose in-sync and out-of-sync constants to ue.conf 2020-01-29 11:46:55 +01:00
Ismael Gomez cc7dfefa1a
Fix logic for UL HARQ retx causing Msg3 adaptive retx to be identified as a new transmission 2020-01-28 21:33:10 +01:00
Andre Puschmann 81b46723f6 adding NPDCCH 2020-01-28 17:46:54 +01:00
Andre Puschmann 073c57dc3d add NB-IoT DCI formats and move define to phy_common 2020-01-28 17:46:54 +01:00
Xavier Arteaga 9ee651d094 srsLTE: Added set vector zeros for float and cf 2020-01-28 11:22:50 +01:00
Xavier Arteaga b08c1f003e SRSENB: enabled multiple cells from rr.cfg 2020-01-28 11:22:50 +01:00
Andre Puschmann e5b1673b3b move PCAP into own compilation unit
this removes inline keyword from PCAP functions and puts all functions
into own C file

before forced inlining caused an issue when compiling for ARM on Ubuntu 19.10 on the RPi4
using gcc version 9.2.1
2020-01-24 13:15:45 +01:00
Francisco Paisana 883c2900c8 fix issue with future clear 2020-01-24 10:10:27 +00:00
Francisco Paisana 91d83fc20d different way to retrieve a proc future 2020-01-24 10:10:27 +00:00
Francisco Paisana 5ae3afd2b8 created cbit_ref for unpacking const buffers 2020-01-23 12:22:19 +00:00
Francisco Paisana 58e555e86c update all asn1 files 2020-01-23 12:22:19 +00:00
Francisco Paisana 5468189cd9 fix some variables' naming (e.g. x2_ap -> x2ap, e_rab -> erab) 2020-01-21 00:58:19 +00:00
Francisco Paisana ee24b59924 converted s1ap to new s1ap asn1 lib. Cleaned up bitstring packing/unpacking and bitstring types 2020-01-21 00:58:19 +00:00
Francisco Paisana 25bb36cdc3 converted ho preparation to new s1ap asn1 lib. Extended s1ap test 2020-01-21 00:58:19 +00:00
Francisco Paisana b6c53d786b updated s1ap rrc interface with new asn1 lib types 2020-01-21 00:58:19 +00:00
Francisco Paisana 61b3e6b57e imported new s1ap asn1 lib 2020-01-21 00:58:19 +00:00
Andre Puschmann d98bc71057 fix PSBCH and use UL-SCH interleaver 2020-01-14 21:23:43 +01:00
Andre Puschmann 2e7a357226 expose UL-SCH interleaver to use in Sidelink 2020-01-14 21:23:43 +01:00
Andre Puschmann b0bfc7956d use const& in metrics interface 2020-01-14 20:52:09 +01:00
Xavier Arteaga bca5d1a95a srsLTE: extend viterbi test 2020-01-13 16:20:31 +01:00
Francisco Paisana 182a721329 fix some integer printf potential warnings 2020-01-07 21:33:31 +01:00
Andre Puschmann 06afe74bef add virtual dtor in sched_interface base class 2019-12-30 22:15:31 +01:00
Andre Puschmann 6ec573987a remove default value for 'blocking' param from pdcp::write_sdu()
there were two defaults and one was shadowing the other. This
commit removes both defaults and uses blocking-mode for RRC
calls to PDCP in the UE. The eNB write_sdu() uses the non-blocking
mode by default. We have to review the eNB's RRC perhaps and use blocking
there too and non-blocking only for data plane
2019-12-29 23:45:37 +01:00
Andre Puschmann 1155adf007 fixing printfs in asn1_utils 2019-12-29 23:37:49 +01:00
Xavier Arteaga 0912701cb0 srsLTE: sidelink minor corrections 2019-12-23 23:08:32 +01:00
Andre Puschmann 7de51c8236 refactor Sidelink PSBCH and DMRS code 2019-12-23 23:08:32 +01:00
Xavier Arteaga 11eafa8ab4 srsLTE: FFTW wisdom gets loaded and saved by default 2019-12-23 22:57:37 +01:00
Xavier Arteaga c92dce71b7 srsLTE: AGC only uses boundaries for requesting gain to Radio 2019-12-23 22:57:37 +01:00
Pedro Alvarez 6d4303cd94 Added option to force 32bit compilation (useful for debug). Fixed various warnings when compiling in a 32 bit arch. 2019-12-20 17:33:55 +01:00
Xavier Arteaga b1c4cd7189 srsLTE: removed timout in tti semaphore 2019-12-19 13:01:05 +01:00
Xavier Arteaga 6bef91a788 srsLTE: TTI sempahore wait for all resuses wait code. 2019-12-19 13:01:05 +01:00
Xavier Arteaga a7e92c384e srsLTE: applied minor comments in tti semaphore 2019-12-19 13:01:05 +01:00
Xavier Arteaga 447ede327c srsLTE: removed unused argument 2019-12-19 13:01:05 +01:00
Xavier Arteaga 384c420c7c SRSUE: fix phy workers concurrency issue 2019-12-19 13:01:05 +01:00
Xavier Arteaga 9c51af491a SRSUE: phy default arguments are set in constructor 2019-12-19 13:01:05 +01:00
Andre Puschmann 75672324b9 fix RRC connection reconfig for new bearer
this fixes the packing of a RRC connection reconfig after creating
a new ERAB

it also adds a PDCP config factory based on the received request
2019-12-18 15:27:42 +01:00
Tiago Ferreira Alves 3fed21ce3e PSSS and SSSS implementation 2019-12-18 11:27:10 +01:00
Andre Puschmann 476f970ee1 replace FIXME with TODO 2019-12-18 11:25:56 +01:00
Andre Puschmann 0d1c8021f9 fix radio_multi interface if radio vector is still empty 2019-12-18 11:25:36 +01:00
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
2019-12-16 16:04:22 +01:00
Andre Puschmann 42080e59f1 remove std::move when returning freshly created unique_ptr 2019-12-16 14:06:26 +01:00
Andre Puschmann c7ee887170 add factory function for creating PDCP config 2019-12-16 14:06:26 +01:00
Francisco Paisana 5b4c42ac77 pass argument by pointer to avoid gcc4.8 issue 2019-12-16 14:06:26 +01:00
Andre Puschmann 0feb8d1362 fixing two more issues reported by lgtm in asn1 libs 2019-12-16 12:49:07 +01:00
Francisco Paisana 20ff016e40 fixed header guard of threads file 2019-12-16 12:49:07 +01:00
Xavier Arteaga 78dd9d7854 SRSLTE: Added float and complex vector allocation 2019-12-16 12:37:19 +01:00
Francisco Paisana a0d53b0d84 included ngap and rrc nr asn1 in asn1/ folder and added a ngap_test 2019-12-16 12:12:08 +01:00
Francisco Paisana d59016ae68 use of srslte::log* type for ASN1 logging. Initialization of the asn1 and rrc_asn1 loggers done now in both the ue and enb 2019-12-12 15:45:24 +00:00
Ismael Gomez 9546f3ccc4 Make PDCP/RLC write_sdu() calls non-blocking by default 2019-12-12 16:32:23 +01:00
Xavier Arteaga 1fa5a19a55 SRSUE: SRSUE: fix timealigmenttimer 2019-12-12 12:05:51 +01:00
Francisco Paisana d270518d69 updated rrc to new srsasn1 version 2019-12-11 19:58:20 +00:00
Francisco Paisana 6b4488d5c1 added sending of enb status transfer from SeNB 2019-12-11 17:41:49 +00:00
Andre Puschmann 8bec22ff11 fixed naming for ue_sync_nbiot 2019-12-10 16:53:44 +01:00
Andre Puschmann 4dbbcaa668 add cell search and USRP capture examples for NB-IoT 2019-12-10 16:53:44 +01:00
Francisco Paisana 524c80a804 added handling of ho command 2019-12-05 17:36:15 +00:00
Pedro Alvarez e1cdd51eba Clang-formated before pull request 2019-12-04 18:21:14 +01:00
Pedro Alvarez 61958af70b Timer removes itself from the map upon expiration 2019-12-04 18:21:14 +01:00
Pedro Alvarez 60feab3d7b Added map to keep discardTimers in PDCP NR entity. 2019-12-04 18:21:14 +01:00
Pedro Alvarez e68956bcf6 Adding discard timer timeout to PDCP config. 2019-12-04 18:21:14 +01:00
Pedro Alvarez 2e7ddef038 Continue to add discard_sdu to RLC interfaces. 2019-12-04 18:21:14 +01:00
Pedro Alvarez a77dd4e959 Starting to add boiler-plate code to support Discard at RLC. 2019-12-04 18:21:14 +01:00
Pedro Alvarez 7ccc7d1d20 Starting to notify RLC upon PDCP discard (NR) 2019-12-04 18:21:14 +01:00
Pedro Alvarez 9870c73366 Starting to add discardTimers to PDCP NR. 2019-12-04 18:21:14 +01:00
Pedro Alvarez f3eeaf401a Removed unecessary lambda redirection in pdcp_entity_nr 2019-12-04 18:21:14 +01:00
Xavier Arteaga d96836a0fa SRSUE: Stack TTI based purely in radio timestamp 2019-12-04 15:29:43 +01:00
Francisco Paisana c29d8b418a fix coverity va_list issues 2019-12-04 10:44:01 +00:00
Francisco Paisana ab3d7dd413 updated sched interface for multiple carriers 2019-12-03 15:46:22 +00:00
Ismael Gomez 713d98ecb9 Fix issue in AGC confusing dB with linear 2019-12-02 17:49:30 +01:00
Francisco Paisana 3159a5b84a added cc_idx to dl_rach_info 2019-12-02 12:36:27 +00:00
Francisco Paisana cab9327b1a updated scheduler interfaces to accommodate multiple carriers 2019-12-02 12:36:27 +00:00
Xavier Arteaga 8dd1c59e18 Added amplitude and power conversions to dB and viceversa 2019-12-02 09:47:22 +01:00
Xavier Arteaga 67935d2b99 SRSUE: RRC blocks MAC RA procedure during reestablishment 2019-11-28 16:33:35 +01:00
Francisco Paisana 54992e72f1 fixed and simplified multiqueue task api to avoid dangling pointers. 2019-11-28 11:57:41 +00:00
Francisco Paisana 6746c5dfa5 pass task functor by copy to avoid dangling pointers 2019-11-28 11:57:41 +00:00
Francisco Paisana b2d3c2a150 fix compilation issue 2019-11-28 11:57:41 +00:00
Francisco Paisana ac4d3b9624 std::functions do not accept move-only captures. So I had to create a wrapper earlier. In this PR, I cleaned a bit the previous API for the code to be a bit more readable 2019-11-28 11:57:41 +00:00
Francisco Paisana c9f092e8e9 created a nullsink and a TESTASSERT for C 2019-11-28 11:44:54 +00:00
Francisco Paisana 67ccaf1029 created a file with common test utils, including assertions, a logger specialized for tests that counts the number of errors and warnings during the test run and can print diagnostics on exit 2019-11-28 11:44:54 +00:00
Francisco Paisana 514b9045ca added begin/end methods to asn1 arrays and fixed v2x bug 2019-11-27 20:44:24 +01:00
Andre Puschmann 9493e7492c add initial RLC AM NR status PDU packing code including tests 2019-11-26 16:52:14 +01:00
Andre Puschmann db2c43553e add basic rlc_am_base class containing data/control PDU check 2019-11-26 16:52:14 +01:00