Commit Graph

3181 Commits

Author SHA1 Message Date
faluco 199f1c953e Remove unneeded logmap headers. 2021-02-03 14:15:27 +01:00
faluco b014233662 - Port time related classes to srslog.
- Adapt tti_point_test to srslog.
2021-02-03 14:15:27 +01:00
faluco 1a5799a6ca - Replace loggers is network utils.
- Adapt tests that use network utils and callers.
2021-02-03 14:15:27 +01:00
faluco e9ed6f31ba Port mac_pcap to srslog. 2021-02-03 14:15:27 +01:00
faluco 79eca0980d - Ported fsm.h to srslog.
- Adapted and removed old loggers in tests and code that used fsm.h
2021-02-03 14:15:27 +01:00
faluco c8a4bf2613 - Fix unused variable in buffer_pool.h
- Replaced logger to srslog in log_args utility function.
2021-02-03 14:15:27 +01:00
faluco d37a07a47f Replaced loggers in buffer_pool.h 2021-02-03 14:15:27 +01:00
faluco f8485fb799 Replaced loggers to srslog in PNF and VNF classes. 2021-02-03 14:15:27 +01:00
faluco 96c07a69c0 Report the RLF event to the JSON event file in the enb. 2021-02-03 13:13:36 +01:00
Xavier Arteaga c60d207826 Add fix phase shift in gNb PHY 2021-02-02 15:23:14 +01:00
Xavier Arteaga 194670a2a3 NRPHY: hard-coded symbol phase correction 2021-02-02 15:23:14 +01:00
Xavier Arteaga 820c9066db Fix OFDM modulator for NR 2021-02-02 15:23:14 +01:00
Xavier Arteaga 2421f2cd99 Multiple PHY fixes and NR-PHY configuration refactor 2021-02-02 15:23:14 +01:00
Xavier Arteaga 7e6a35a9f7 Fix Synch error calculation 2021-02-02 15:23:14 +01:00
Xavier Arteaga b652cd68a5 Refactored NR PHY configuration to accept multiple CORESETs/SearchSpaces 2021-02-02 15:23:14 +01:00
Xavier Arteaga a85d79c6b7 Added ZMQ option to delay/advance Rx samples 2021-02-02 15:23:14 +01:00
Xavier Arteaga 73001c9541 Implement NR-DCI conversion to string 2021-02-02 15:23:14 +01:00
Xavier Arteaga 83a5ce96ed Initial NR OFDM symbol size compatibility 2021-02-02 15:23:14 +01:00
Andre Puschmann f5c945dc2f mac_nr: add interface to set C-RNTI and contention ID from RRC
used during contention-based/free RA
2021-02-02 14:13:25 +01:00
Francisco 2bde28252c send UE capability indication through S1AP 2021-02-01 22:27:49 +00:00
Francisco d64ce7df77 implementation of S1 E-RAB Release Indication and Error Indication messages 2021-02-01 22:27:49 +00:00
faluco 806268f6cf
Por asn1 code in lib directory to srslog (#2253)
* Match hex dump indentation with srslog.

* Port asn1 utils to use srslog. Converted logging functions from taking varargs to variadic template functions.

* Remove trailing new lines in log lines from asn1 utils.

* First round of upgrades to srslog to asn1 tests.

* Second round of porting asn1 tests to srslog.
2021-02-01 11:58:28 +01:00
Andre Puschmann f88943653b mac: implement MAC RAR PDU unpacking for NR
* add class for mac_rar_pdu_nr
* extend test case
2021-01-30 11:58:25 +01:00
Andre Puschmann da9e3363f1 mac_pdu_nr: rename MAC PDU class for NR to adhere naming conventions
* mainly to have _nr as trailing name for filename and class
* also add "sch" to class and filename (RAR PDU will have extra class)
2021-01-30 11:58:25 +01:00
Xavier Arteaga 6b4a17dc66 Fix uninit condition 2021-01-30 11:57:49 +01:00
Francisco 2befbd1825 setup of forwarding tunnels during enb s1 handover 2021-01-29 18:46:11 +00:00
Francisco e8f6a436af update gtpu test to account for scenario of buffered PDCP SNs, and buffering of direct path until indirect tunnel is closed 2021-01-29 17:22:58 +00:00
Francisco a55c4cdca5 avoid gtpu extension header pdcp number magic number 2021-01-29 17:22:58 +00:00
Francisco 56ec2c286e add gtpu test for tunneling 2021-01-29 17:22:58 +00:00
Francisco 13649e4e19 Implement new GTPU functionality:
- multiple tunnels per E-RAB
- data forwarding between connected GTPU tunnels
- forwarding GTPU End Marker between connected tunnels
- TeNB GTPU handles in-sequence delivery when multiple tunnels for the same ERAB exist.
2021-01-29 17:22:58 +00:00
Andre Puschmann 3784439088 add backward as backtrace pretty printer
this patch adds the MIT-licensed header-only library backward-cpp
as possible alternative for our internal backtrace-to-file
writer.
2021-01-28 16:52:52 +01:00
faluco 711438f756
Port enb specific classes to use srslog (#2155)
* - Started porting the enb PHY layer to use srslog loggers.
- Updated srslog to manage the none level.

* Finished porting enb phy layer including the NR part.

* Ported MAC, GTPU, PDCP, RLC and S1AP enb classes to use srslog.

* Use new stack logger.

* Ported the enb RRC clases to use srslog.

* Remove unused log macros.

* Replace loggers in sched, sched_carrier, sched_helpers.

* Replaced loggers in sched grid.

* Replaced loggers in sched harq.

* Replaced loggers in sched ue.

* Replaced loggers in sched ue ctrl.

* Replace loggers in sched ue ctrl TPC.

* Replaced loggers in sched subclasses.

* Replaced loggers in rrc_meascfg_test

* Configure loggers in rrc_mobility_test.

* Fix compilation errors left out after the rebase.

* - Implement a custom log sink that will serve as a test spy to intercept and count the number of error and warning log entries.
- Adapt the erab_test_setup and rrc_mobility tests to use this new class and make them pass again.

* - Remove trailing new lines introduced in the rebase.
- Ported the sched_ue_cell class to srslog.

* Remove unused log member.

* Ported mac tests to srslog.

* - Removed remaining trailing newlines from log entries.

* Fix compiler errors detected in CI.

* Fix another static variable without definition passed to log lines.

* Fixed a bug in srslog::flush that would never end when the backend queue is full.

* Fetch the RRC logger instead of injecting it in the constructor.
2021-01-28 12:17:18 +01:00
Andre Puschmann 4709bacefd srsue: add DL NR-ARFCN param
* add PHY param to set DL NR-ARFCN
* use new band_helper class to convert ARFCNs to supported bands
* signal supported NR bands in UE capabilities
2021-01-28 12:06:02 +01:00
Andre Puschmann 617e0ddb67 band_helper: add helper class for RF bands
attempt to C++ify handling of radio bands and (E/NR)ARFCNs, etc.
2021-01-28 12:06:02 +01:00
Xavier Arteaga 4fe34b5e5b Apply minor comments in NR-PUCCH 2021-01-27 12:30:56 +01:00
Xavier Arteaga 4c6944b883 Implement NR-PUCCH Format 2 DMRS put/Estimate 2021-01-27 12:30:56 +01:00
Xavier Arteaga 958afaee60 Implement NR-PUCCH Format 2 encode/decode. Initial NR-PUCCH procedures. 2021-01-27 12:30:56 +01:00
Xavier Arteaga 4b6849b775 Polar: Add more information to ERROR traces 2021-01-27 12:30:56 +01:00
Xavier Arteaga 573ff24a47 Fix CRC for more sizes 2021-01-27 12:30:56 +01:00
Xavier Arteaga 1ee4d84f80 Added NR-PUCCH encode/decode format2 skeleton 2021-01-27 12:30:56 +01:00
Xavier Arteaga 4d96cf4a41 More NR-PUCCH support 2021-01-27 12:30:56 +01:00
Xavier Arteaga 697bdb4d6d Added NR-PUCCH Format 1 encoder, decoder and DMRS 2021-01-27 12:30:56 +01:00
Xavier Arteaga 33bb387f52 Initial NR-PUCCH formats 0 and 1 encoder 2021-01-27 12:30:56 +01:00
Xavier Arteaga e7562e5b3f Added ZC sequence LUT object 2021-01-27 12:30:56 +01:00
Xavier Arteaga d100919561 Initial NR-UCI encoder 2021-01-27 12:30:56 +01:00
David Rupprecht 1b19ee40e7 Added usim features for key derivation 2021-01-27 10:37:09 +01:00
David Rupprecht 306bb6b38b Added function for derive keys 2021-01-27 10:37:09 +01:00
David Rupprecht ceda458bb3 Added MAC NR to EUTRA and NR with stack interfaces including MAC config build
Moved MAC logical channel config to MAC interface types
2021-01-27 10:37:09 +01:00
David Rupprecht a6046ca875 Added funcs for asn flat config RLC and PDCP 2021-01-27 10:37:09 +01:00
David Rupprecht 64299960bd Added procedure for NR reconfiguration and RRC with NR complete 2021-01-27 10:37:09 +01:00
David Rupprecht 145528ad32 Added unpacking test for RRC reconfig 2021-01-27 10:37:09 +01:00
David Rupprecht 99c3aa9ba2 Refactor assert to TESTASSERT in unit test 2021-01-26 21:19:37 +01:00
Xavier Arteaga 7dd99da045 Disable carry-less multiplication 2021-01-26 18:38:30 +01:00
Xavier Arteaga 058bee5fda Increased prime number range 2021-01-26 18:38:30 +01:00
Xavier Arteaga 2f5b1ba9cb Avoid PUSCH-DMRS initialization for 0 PRB 2021-01-26 18:38:30 +01:00
Xavier Arteaga 2f2114f377 Fix typo 2021-01-26 18:38:30 +01:00
Xavier Arteaga 732a220d42 Unified low-PAPR Ruv sequence generation 2021-01-26 18:38:30 +01:00
Xavier Arteaga aa8b69e9a7 Fix prime number 2021-01-26 18:38:30 +01:00
Xavier Arteaga 8de73988b8 Add real vector and complex scalar product 2021-01-26 18:38:30 +01:00
Xavier Arteaga 6bb1788df1 Added more NR CRC polynomials 2021-01-26 18:38:30 +01:00
Xavier Arteaga a7ca8ffff7 Moved prime number to different file 2021-01-26 18:38:30 +01:00
Xavier Arteaga ae3c5ec7d0 Moved all block code (32, O/K) to FEC block
Fix missing header

Fix missing header
2021-01-26 18:38:30 +01:00
Xavier Arteaga 95ce49acd4 Added more vector copy functions 2021-01-26 18:38:30 +01:00
Xavier Arteaga be6cb666e2 Initial moved block coding to FEC 2021-01-26 18:38:30 +01:00
Xavier Arteaga f6b4f65f12 Add NR-PDSCH-DMRS SNR estimation 2021-01-25 22:04:55 +01:00
Pedro Alvarez 350e90a030 Make RLC retransmissions deterministic. It was creating unpredictablity
in the RLC AM tests. See issue #2228
2021-01-25 14:29:17 +00:00
Pedro Alvarez 6ca8bc12ec Fix wrong SN in RLC status PDU when packet is dropped. 2021-01-21 21:12:30 +01:00
Francisco e0937d1dd1 add lcid check and increase limit to 10 2021-01-21 17:04:38 +00:00
Francisco bed979b722 fix out-of-bounds memory writing in the sched_interface::ue_cfg_t ue_bearers member 2021-01-21 17:04:38 +00:00
Ismael Gomez 47dbd6ed70
Merge pull request #2214 from softwareradiosystems/pr_mac_buffers
Limit the number of UL buffers in MAC and deallocate old ones
2021-01-20 21:12:39 +01:00
Francisco b45fdd4f10 use using keyword in asn1 rather than typedef 2021-01-20 20:46:29 +01:00
Francisco 049ad77fca simplify asn1 choice types with one single type with a packer 2021-01-20 20:46:29 +01:00
Francisco c336c3eed2 added to_number() conversion of rrc_nr poll_byte 2021-01-20 17:13:29 +01:00
Ismael Gomez a6423442c2
Refactor NR RA files and fix header includes all over library (#2162)
* Refactor NR resource allocation classes. Use DCI instead of grant for dummy PDSCH UE/eNB test

* Minor refactors in NR workers and ue_dl

* Fix include issues

* fix compilation issues
2021-01-20 15:46:46 +01:00
Ismael Gomez d5f0634975
Add PUCCH SNR measurement (#2175)
* Add PUCCH SNR measurement

* Fix PUCCH SNR estimation

* Reverted PUCCH noise estimation

* use fpclassify instead of iszero

Co-authored-by: Xavier Arteaga <xavier@softwareradiosystems.com>
2021-01-19 21:55:24 +01:00
Ismael Gomez c1c5fa426c Fix issue with new way of managing ul buffers not working with CA 2021-01-19 16:59:36 +01:00
Ismael Gomez 0780f3caea pdu_queue must be non-blocking in order to avoid the ue or enb to block in the event of a memory leak and the buffer pool running out of buffers. In that case, the null return shall be handled properly and error logged. This commit restores commit c4c44c33f4. 2021-01-16 15:22:29 +01:00
Francisco Paisana d4242f2db7 precompute nof_re_table[sf][prb][slot][cfi] for faster nof_re computation and for more accurate lower bound nof_re computation 2021-01-15 23:24:39 +01:00
Francisco Paisana 9c7c190074 when the rrc fails to allocate the ue cell resources, it should erase the ue from all stack layers 2021-01-15 00:10:42 +01:00
Andre Puschmann dadff1a947 pdu: default initialize pdu members with MAC log
MAC PDUs are default logged using the MAC log. So this gives
hex prints, etc. without having to manually set the logger for each
PDU.
2021-01-12 20:24:20 +01:00
Andre Puschmann fcf481b83e pdu: add check when unpacking MAC PDUs to not read beyond PDU length
we've checked the same when unpacking the subheaders but missed the
case where the payload was read beyond the PDU length, as has been
seen with a malformed RAR PDU.
2021-01-12 20:24:20 +01:00
Andre Puschmann 10da7df194 pdu_test: add TC with malformed RAR PDU
a malformed RAR PDU should not be decoded further if the payload
indicates a length beyond the actual PDU size.
2021-01-12 20:24:20 +01:00
Francisco Paisana 2866886ade fix gcc4.8 compilation issue 2021-01-12 16:22:10 +01:00
Francisco Paisana f8b7351e1b implementation of object memory pool via class-specific operator new/delete 2021-01-12 16:22:10 +01:00
Francisco Paisana ea74ca67eb resolve forward declaration compilation issue in memory pool 2021-01-12 16:22:10 +01:00
Francisco Paisana e96b8c263a add mem pool test. fix mem pool leak bug 2021-01-12 16:22:10 +01:00
Francisco Paisana 8912a8ce6c added extra comments to memory pool code. generalized object pool to mutexed and non-mutexed cases 2021-01-12 16:22:10 +01:00
Francisco Paisana 768a4fa627 added growth policy for rrc::ue memory pool. Fixed memory leak 2021-01-12 16:22:10 +01:00
Francisco Paisana a73cbcdc9d added mem_pool for growing object pools. Applied the mem pool to the rrc::ue creation 2021-01-12 16:22:10 +01:00
Andre Puschmann 78b07daf3b pcap: make public interfaces thread-safe and handle fopen returning nullptr
the previous patch only introduced a thread-safe queue between
PHY workers (writers) and PCAP writer thread (consumer).

However, it is also required to protect the ctor (and close()) to
prevent corrupted PCAP files.

The patch also correctly handles the case where the PCAP couldn't
be openend for writing and doesn't start the thread.
2021-01-11 15:45:48 +01:00
Francisco Paisana ea8ad153c4 add configurable fairness parameter to pf scheduler 2021-01-11 11:56:13 +01:00
David Rupprecht f7d313147a Added infrastrukture for measurements
Init rrc_nr as part of the LTE stack
2021-01-08 17:20:08 +01:00
David Rupprecht b79eef0860 Introducing nr_rrc <-> rrc interface for eutra and nr cap query 2021-01-08 17:20:08 +01:00
David Rupprecht 020d0dacc8 add the additional sec cap to NAS attach request
use same capabilities that are signaled for EUTRA
2021-01-08 17:20:08 +01:00
David Rupprecht 9eb0b72cb4 Added rrc function has_nr_dc 2021-01-08 17:20:08 +01:00
Andre Puschmann c02aa8f124 liblte_mme: add DCNR UE capabilties packing 2021-01-08 17:20:08 +01:00
Andre Puschmann 4fa89b7039 pcap: make PCAP write thread-safe
* offload PCAP writing to background thread
* use blocking_queue between writer and clients to make it thread-safe
* add basic test case

this fixes point 1-3 of #2161
2021-01-04 11:05:02 +01:00
Andre Puschmann 2ca894df01 pdu: fortify RAR packing
detected with ASAN trying to write negative number of padding bytes.

The patch checks the calculated length and returns with an error
if the length is negative.

=================================================================
==5759==AddressSanitizer: while reporting a bug found another one. Ignoring.
m==5759==ERROR: AddressSanitizer: negative-size-param: (size=-6)
2021-01-03 21:46:41 +01:00
Xavier Arteaga 54a864e021 Added Initial NR-PRACH configuration for preamble format 0 2020-12-30 17:46:00 +01:00
Xavier Arteaga b3200d9ef5 Renaming common UL/DL DMRS related types and initial NR PUSCH implementation 2020-12-30 13:39:08 +01:00