Commit Graph

573 Commits

Author SHA1 Message Date
Francisco f610a7b83d Change background worker pool to become a global variable
Allocate rrc::ue objects in batches in the background worker pool
2021-02-25 15:56:40 +01:00
Francisco 93b1450e03 fix enb crash during close down of enb and epc 2021-02-20 16:00:31 +01:00
faluco b750647cd8 - Remove the cause field in the rrc disconnect event.
- Add the sib9 enb home name field to the sectors events, but leave the value as a TODO.
2021-02-19 09:54:41 +01:00
faluco 7b9dab3a73 Rename cc_idx variable to enb_cc_idx for specific upper layer events. 2021-02-19 09:54:41 +01:00
faluco a4605883f0 Implement second revision of the events and metrics document. 2021-02-19 09:54:41 +01:00
Francisco 4188b5146e fix uninitialized memory access in gtpu_test and liblte_mme unpacking 2021-02-11 13:09:06 +00:00
Francisco 6925b40722 remove extra print when buffer pool is depleted 2021-02-08 12:20:37 +00:00
Francisco 798f1e57e6 fix byte buffer double free in EPC 2021-02-08 12:20:37 +00:00
Francisco d2ddcb0d4e avoid bzeroing byte buffers at every allocation for better runtime performance 2021-02-07 18:48:21 +00:00
Francisco 3265d940ec remove byte buffer pool cached member variables as they are unnecessary now. 2021-02-07 18:48:21 +00:00
Francisco 04ab4eefcd use new make_byte_buffer() helper method to create unique_byte_buffers 2021-02-07 18:48:21 +00:00
Francisco 8a9c326bcb remove old direct uses of byte_buffer_pool 2021-02-07 18:48:21 +00:00
Francisco 1e2153769e remove byte buffer pool cleanup method and unnecessary mutexes 2021-02-07 18:48:21 +00:00
Francisco 0c7c317be5 refactor byte_buffer class and move it to separate file 2021-02-07 18:48:21 +00:00
Andre Puschmann 6a0f3d0bc5 common_helper: remove newline 2021-02-05 15:55:21 +01:00
Pedro Alvarez 2b092ddc85 Initialize byte_buffer metadata to avoid unintialized variable warnings. 2021-02-05 12:24:50 +00:00
Pedro Alvarez de90b4753f Added the ability of the RLC AM to notify the PDCP of the acknowledged
PDCP PDUs. This includes:

- Modifying the byte_buffer_t to include PDCP SN meta-data. This way,
  the RLC can keep track of the ack'ed bytes for a specific PDCP PDU.
- Added in the RLC an `undelivered_sdu_info queue`, to keep track of the
  amount of ack'ed bytes and the total size of the PDCP PDU,
  so the RLC can know when delivery is finished.
- Added an interface between the PDCP and the RLC so that the RLC can
  notify the PDCP when it receives an ack from the status PDUs. The RLC
  passes to the PDCP a vector of all the ack'ed pdus in a rx'ed status PDU.
- Added some tests to the notify functionality. This includes some tests
  where the PDUs are acked imediatly, and one test where the PDU is
  retx'ed.
2021-02-05 12:24:50 +00:00
AlaiaL 9c764c299d - Removed the try/catch. Checking the allocation with std::nothrow
- Adjusting the code with the coding style.
2021-02-04 15:18:27 +00:00
Andre Puschmann 8e13f04684 mac_pcap: refactor MAC PCAP and include NR RAT into same object
after adding the thread-safe PCAP writer functionality to the EUTRA
MAC object it became clear that we don't wont to replicate the
same for the NR object.

This patch therefore refactors the class that now supports both EUTRA and
NR rats. The old mac_nr_pcap.[h/cc] has been deleted. All test-cases
and usages now use the new object that needs to pass the RAT type in
the ctor.

this patch addresses the last open point of #2160
2021-02-03 17:21:57 +01:00
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
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 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
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
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
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
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 2e64fff1df common: extend timestamp interface for byte_buffer
* allow setting timestamp to a specific std::chrono::time_point
* add getter from raw tp
2020-12-17 17:46:55 +01:00
David Rupprecht 62b558fccf Move rat type to common header
Removed phy measurement from rrc interface phy

Updated rrc interface for handling measurements
2020-12-16 14:12:38 +01:00
Ismael Gomez 0498439d41
Backport some changes from FAPI branch (#2124)
* Reorder DCI FORMAT enum

* Fix endianness issue

* Fix return codes in phy_ue_db

* Log members should be destructed after the layers.

* Add JSON metrics and Events. Add Alarm log channel. Simplify MAC metrics struct.

* Restore metrics_stdout change
2020-12-16 13:48:48 +01:00
Francisco Paisana 0f693b36b2 changed pdu latency calculation to std chrono 2020-12-14 13:47:05 +01:00
Francisco e2654e69ec Enable pdu stack latency measurements in the eNB. 2020-12-14 13:47:05 +01:00
Francisco b86d2ab7d0 move choice_type to adt folder 2020-12-12 15:59:27 +01:00
Andre Puschmann 00a6e16c14 update license header for liblte_*.{h,cc} files
user license-agnostic text to refer to license file.
make sure copyrights/years are correct.
2020-12-12 15:59:26 +01:00
Andre Puschmann 47c5f9e85b remove AGPL header from remaining cpp files
* also add commercial header to come CMake helpers
2020-12-12 15:59:26 +01:00
Andre Puschmann b9f363db9a ssl: rename liblte_ssl.h to ssl.h 2020-12-12 15:59:26 +01:00
Francisco 82d057345b fix compilation issue with user-defined fmt formatter 2020-12-12 15:59:26 +01:00
Francisco 86ab1864f7 The struct tti_point is now used ubiquitously in the scheduler 2020-12-12 15:59:26 +01:00
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 2020-12-12 15:59:25 +01:00
Pedro Alvarez d05bc064b5 Reduced SCTP connect() timeout.
Added configuration for RTO_MAX. Cleanup debug prints.
2020-12-12 15:58:34 +01:00
Francisco Paisana 88105c1577 change the namespace of tti point helper functions for the eNB 2020-12-12 15:58:33 +01:00