Commit Graph

368 Commits

Author SHA1 Message Date
Francisco Paisana cd521a84cb bigger log buffer. Now it is 1024 chars (#649)
Use dynamic string for debug_long() function and known relation of size between log_str and log_filter
2019-09-17 11:42:17 +02:00
Andre Puschmann 5189bbad69 add stop() to logger_file
this allows to close and currently running log process, flush the content
to the file, continue logging during that time, open a new file
and write the new log entries to that new file

basically it allows to use the logger_file multiple times without
needing to destroy the object

this is used in the UE tester to write each testcase into a separate
log file
2019-09-16 21:39:15 +02:00
Pedro Alvarez 1d3e541069 Fixed warning on bytes_to_mnc 2019-09-10 13:46:21 +02:00
Pedro Alvarez 9b20a0de16 Added comment to zuc.cc and zuc.h 2019-09-10 13:46:21 +02:00
Pedro Alvarez 004db4a067 Applied clang-format to zuc_support PR. 2019-09-10 13:46:21 +02:00
David Rupprecht 50332089ce Add EEA3 and EIA3 support for UE/enodeb and MME 2019-09-10 13:46:21 +02:00
David Rupprecht d580a94dab Add EIA3 and test case 2019-09-10 13:46:21 +02:00
David Rupprecht 7e13860dd5 Add decryption function and all tests for enc 2019-09-10 13:46:21 +02:00
David Rupprecht 0841d837de Make ZUC state ful no global vars 2019-09-10 13:46:21 +02:00
David Rupprecht ef4cf7aa52 First ZUC working test case 2019-09-10 13:46:21 +02:00
Ismael Gomez c92c61d560
Optimized front-end logging processing (#641)
Avoid memory allocation and stringstream in log frontend calls (executed from worker threads). Uses a buffer pool of fixed buffer and vsnprintf
2019-09-04 15:32:29 +02:00
Francisco Paisana 67d6a25194 Moving mac timers to stack timers (#638)
* first step towards moving MAC timers to stack. Mac is still using its own timers. srslte::timers class can be restructured.

* moved timers out of the UE MAC
2019-09-04 15:28:09 +02:00
Francisco Paisana c9d3b61038 added resumable procedures to make RRC and NAS non-blocking 2019-08-08 10:56:54 +02:00
Andre Puschmann e42449532b fix wrong namespace definition in various places 2019-08-07 15:32:49 +02:00
Pedro Alvarez 6efa944b5e Removed srslte prefix from pdcp_config_t 2019-07-30 15:01:50 +02:00
Pedro Alvarez 3da0391fff Adding default initializers to PDCP config. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 494be243c0 Changed security direction to use an enum. 2019-07-30 15:01:50 +02:00
Pedro Alvarez f90b69e5f4 More clang-format for PDCP 2019-07-30 15:01:50 +02:00
Pedro Alvarez 491695ab77 Clang-formated PDCP NR PR. 2019-07-30 15:01:50 +02:00
Pedro Alvarez d3b6828082 Changed PDCP configuration to explicitly have tx and rx direction. Decrypt on PDCP NR seems fine. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 73e30743d1 Added enum to PDCP config to replace two bools. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 457f35699d Reverted back to a single config structure between PDCP NR and PDCP LTE. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 9d0db108c6 Continue to add PDCP tx test 2019-07-30 15:01:50 +02:00
Pedro Alvarez 2081b22465 Added PDCP_SN_LEN constants. Added bearer_id and direction back to the pdcp_entity_base. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 52f75c3cf2 Starting to add PDCP NR state variables. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 1944bf9a80 Continue to split pdcp_entity_lte and pdcp_entity_nr. Compiling now. 2019-07-30 15:01:50 +02:00
Pedro Alvarez 005d03cb1a Starting to split pdcp_entity into pdcp_entity_lte and pdcp_entity_nr to support NR PDCP 2019-07-30 15:01:50 +02:00
Andre Puschmann 09610ce788 add type setter to sch_subh and use it for MCH PDUs 2019-07-23 15:38:21 +02:00
yagoda 408400bee6 adding fixes and tests for eMBMS 2019-07-21 22:27:17 +02:00
Andre Puschmann 9ee415ac82 correct the max size for a single TB
since the size in bits is counted per TB we don't need to allocate
space for the 2x2 MIMO case. Both CW have their own buffer.
2019-07-16 17:31:03 +02:00
Ismael Gomez c9c43e44e9 Fixed PDU buffer size 2019-07-16 17:31:03 +02:00
Pedro Alvarez 9597cc4c14 Clang-formated liblte_* 2019-07-13 14:41:04 +02:00
Andre Puschmann 4e86b2f6b2 introduce layerd architecture we use for UE to eNB
- this allows flexible use of different PHYs and radios
- use common radio_multi (moved to lib)
2019-07-12 04:17:56 +02:00
Andre Puschmann 92f0d58856 mac: move further init/config into ctor to allow early logging, etc. 2019-07-05 17:24:06 +02:00
Francisco Paisana b936629221 removed rrc asn1 header from bcd_helpers, from rlc_interface, and rlc tests 2019-07-05 10:44:15 +02:00
Francisco Paisana bb0dbf0f1c created a asn1 utils with helper functions and types related to the asn1. These types/functions will help isolate the rrc_asn1 lib from most of the layers, reducing this way the compile times, and leading to better isolation. This will also make the transition to NR smoother. I removed the asn1 types from the NAS and USIM interface so far. 2019-07-05 10:44:15 +02:00
Andre Puschmann 82a69fb51c mux: fix packing of short MAC PDUs 2019-06-26 17:57:25 +02:00
Andre Puschmann 4aaa0473b9 pdu: remove unused variable total_sdu_len 2019-06-26 17:57:25 +02:00
Andre Puschmann b6d7fd5def improve error handling in PDU packing 2019-06-26 17:57:25 +02:00
Andre Puschmann da35f41dd5 rework MAC logical channel prioritization 2019-06-26 17:57:25 +02:00
Andre Puschmann 414e55fafc pcap: add dtor
this fixes issue if object is destroyed and PCAP is still open
2019-06-18 20:50:23 +02:00
Pedro Alvarez d67d18cc6b Removing deplicated error codes. 2019-06-07 13:51:56 +02:00
Andre Puschmann e47010130f extend thread class to set unique thread name in ctor
this will also extend all classes that use srslte::thread
to specify the name of the thread in the ctor as well
as to set the name of the worker threads in the thread pool
the thread name will be displayed in gdb.
2019-06-03 15:03:20 +02:00
Andre Puschmann 0e95867f13 remove task dispatcher class 2019-06-03 15:03:20 +02:00
Andre Puschmann 709e769d0d pdu: fix formatting 2019-05-30 13:06:42 +02:00
Andre Puschmann ea2e692836 pdu: fix MAC RAR PDU packing and unpacking with backoff indicator 2019-05-30 13:06:42 +02:00
Francisco Paisana 00256f2cd9 fix the hanging in the UE during shutdown 2019-05-24 17:08:14 +02:00
Andre Puschmann 58b09c8677 fix pool_allocate macros for new unique_buffer 2019-05-20 17:16:12 +02:00
Andre Puschmann 65f50cd7ba introduce new UE layer design
- abstract UE object now consists of a radio, a PHY, and a stack layer
- add new stack abstraction layer that combines MAC, RLC, RRC, PDCP, NAS and GW
- PHY layer now has a single stack interface and does not talk to MAC and RRC seperatly
2019-05-17 17:46:28 +02:00
Francisco Paisana 0e3baa0f2f Renamed the reset() method of byte_buffer_t to clear() 2019-05-16 12:35:01 +02:00
Francisco Paisana 3bedc93ba5 added _t to unique_byte_buffer type 2019-05-16 12:35:01 +02:00
Francisco Paisana bc01a5ecda changed block_queue api to return back the unique buffer in case it fails to push it to the queue 2019-05-16 12:35:01 +02:00
Francisco Paisana f4aa03154d change queue read and other functions apis 2019-05-16 12:35:01 +02:00
Francisco Paisana f469e2178b replaced byte_buffer_t allocated by the buffer pool for unique_byte_buffer which is safer and easier to use 2019-05-16 12:35:01 +02:00
Francisco Paisana 0976ea6f27 created a unique byte buffer that automatically deallocates 2019-05-16 12:35:01 +02:00
Andre Puschmann 62dad5e21d add nb-iot tag support to PCAP writer 2019-05-16 12:32:36 +02:00
Francisco Paisana 7be183c223 rework scheduler 2019-05-14 22:34:50 +02:00
Xavier Arteaga 2aa36dd11c Added backtrace print helper 2019-05-14 22:32:07 +02:00
Andre Puschmann fcd086a1c5 fix metrics_hub compilation for older gcc using std::chrono 2019-05-10 13:49:42 +02:00
Andre Puschmann 0f6997170b fix unitialized var in pdu.h 2019-05-10 12:01:03 +02:00
Francisco Paisana 1674c8939f automatically resolve invalid prach_offset for prb6 2019-04-29 15:53:59 +02:00
yagoda 3842beab0f - fixing pmch file test for standard LTE rates
- adding special value for MTCH stop
- adding error messages for config values incompatible with MBMS
2019-04-29 12:04:42 +02:00
Andre Puschmann 4b01a2e4a0 update copyright notice 2019-04-29 09:20:02 +02:00
Andre Puschmann 205db6f229 add missing license headers 2019-04-26 21:20:12 +02:00
Ismael Gomez 7780b1aba5 add tdd/ca support 2019-04-25 20:57:58 +02:00
Andre Puschmann afb591ee97 add ctor for worker class in thread_pool 2019-02-20 16:14:48 +01:00
Andre Puschmann c8f8c16d50
make EIA and EEA algorithms configurable (#323)
this patch allows to configure the EIA and EEA algorithms
the UE uses and announces during attach. They can
be specified as a comma-separated list.

The patch also removes a dedicated NAS config class and uses
the default nas_args_t type for this. There was a full
duplication of members before.

The patch also converts nas_args_t and usim_args_t into a class
with a default constructor that initialize all booleans.
2019-02-08 22:37:16 +01:00
Andre Puschmann 2e1b8240e6 fix uninitialized timeval struct in metrics_hub
This was causing issue in some builds done on the Ubuntu
PPA systems leading to an SIGILL when starting the UE/eNB
2019-01-22 12:23:24 +01:00
Andre Puschmann 77ca1d9882 load config file from user's home directory first before checking etc 2019-01-22 12:09:52 +01:00
Francisco Paisana 0204db2e12 new asn1 rrc library 2019-01-17 17:43:13 +01:00
Andre Puschmann c88cc35fdf try to load config files from /etc/srslte before checking users's home 2018-12-11 17:40:48 +01:00
Andre Puschmann df40259c26 fix issue in PDCP when bearer ID for DRBs was not starting with 1 2018-12-10 16:58:08 +01:00
Pedro Alvarez 25108e2e2b Added configuration options to UE for IPv6 PDN. Starting to send PDN connectivity requesting IPv6. 2018-10-26 11:42:27 +02:00
Andre Puschmann 3f36594f1e fix copy ctors in bit_buffer_t 2018-10-17 14:44:58 +02:00
Andre Puschmann 481a1829dd stop metrics hub thread before calling stop on listeners 2018-10-15 11:01:59 +02:00
Andre Puschmann 270707b7a8 add missing initialization in block_queue 2018-10-15 09:39:21 +02:00
Andre Puschmann 93d17fed3e disable buffer pool logging by default 2018-10-10 16:29:57 +02:00
Andre Puschmann bd6bb6903f fix block_queue pop and clear methods
- pop was bzero'ing the popped object which
  causes for more complex objects like std::string
- clear wasn't actually emptying the queue
2018-10-03 10:29:56 +02:00
Andre Puschmann e64de7ec6b increase maximum buffer size to accomodate max TBS for Cat4 UEs 2018-09-26 16:59:11 +02:00
Pedro Alvarez b577c9ac8c Merge branch 'mnc_plmn_217' into next 2018-09-25 17:24:30 +01:00
Andre Puschmann 1985d7b37c fix byte_buffer copy and assignment ctor 2018-09-25 17:26:12 +02:00
Andre Puschmann 07e42c1964 Merge branch 'rlc_am_subclass' into next 2018-09-25 16:08:29 +02:00
Pedro Alvarez c4a5af11d5 Fixed nibble order in mccmnc_to_plmn and plmn_to_mccmnc. Fixed corresponding PLMN test 2018-09-25 14:55:12 +01:00
Andre Puschmann c9186f110c add log_filter dtor 2018-09-25 10:45:15 +02:00
Pedro Alvarez 49c44a2bd4 Moved int_helpers to lib so that the EPC can use those functions too. 2018-09-24 14:08:00 +01:00
Andre Puschmann d981f129e0 Merge branch 'master' into next 2018-09-20 12:54:05 +02:00
Andre Puschmann adbec3ee70 fix warning in common.h reported by clang-tidy 2018-09-13 17:12:32 +02:00
Andre Puschmann 2ef2baf72a increase size of buffer_pool
- This solves an issue where in the worst-case an RLC AM instance would
  block because no new data nor control PDUs could be created to flush
  the buffers, effectivly causing a system stall.
- Happens in RLC AM stress test regularly with higher drop rates.
2018-07-30 15:11:31 +02:00
David Rupprecht bf4c84ef7b Fixed clear function in blocked queue (#199) 2018-07-25 09:54:22 +02:00
Andre Puschmann be3b2fbc08
Merge pull request #239 from softwareradiosystems/epc_stacktrace
Epc stacktrace
2018-07-13 14:28:13 +02:00
Pedro Alvarez 84e7925f69 Fixed up a comment. 2018-07-13 12:06:27 +01:00
Pedro Alvarez 597cf18b9d Changing common/debug.h to crash_handler.h 2018-07-13 11:57:15 +01:00
Andre Puschmann 291d80119c fix conflicts after merging 2018-07-13 12:42:54 +02:00
Ismael Gomez 3f38165827 Add log to pool deallocate 2018-07-12 18:41:25 +02:00
Ismael Gomez 2d5cdc4f35 Add log to pool deallocate 2018-07-12 18:13:27 +02:00
Ismael Gomez 5474f6d55f Add log to pool deallocate 2018-07-12 18:13:19 +02:00
Andre Puschmann 936001aaf5 add blocking allocation to buffer_pool 2018-07-12 17:52:53 +02:00
Pedro Alvarez c3ef88e112 Fixing conflicts with next. 2018-07-12 15:43:27 +01:00
Andre Puschmann 4c59f52f9a
Merge pull request #237 from softwareradiosystems/epc_pcap
Epc pcap
2018-07-12 16:00:31 +02:00
Ismael Gomez bd5c1fd83a deallocate dedicatedInfoNAS in rrc 2018-07-11 12:56:14 +02:00
Ismael Gomez 074db8478c deallocate dedicatedInfoNAS in rrc 2018-07-10 19:52:46 +02:00
Pedro Alvarez bd43b6e937 Cleanup comment. 2018-07-10 15:56:57 +01:00
Pedro Alvarez ff49e56871 Starting to add s1ap_pcap class. 2018-07-09 18:25:43 +01:00
Pedro Alvarez 96786e96da Splitting the lib debug into phy and common debug. 2018-07-09 13:15:35 +01:00
Ismael Gomez 493706eab1 Incorrect default value in buffer pool 2018-07-06 16:20:15 +02:00
Ismael Gomez a2615628aa Increase buffer pool size for enb 2018-07-06 15:30:51 +02:00
Andre Puschmann 355330dab9
Merge pull request #234 from softwareradiosystems/log_fix
Log fix
2018-07-06 13:07:55 +02:00
Ismael Gomez 589e569ce9
Changes on srsENB mutexing logic to fix general race condition and deadlock issues (#229)
* fixed some issues with the UL scheduling

* Hack to fix UL scheduler

* minor fix

* Cleaned up code and fixed issue with the update_allocation function

* fixed the console printing in the enb

* log/console fix

* fixed the log print

* added a normalization factor

* RLC: entity uses dynamic instances. Simplified stop/reset/reestablish procedure. Added non-blocking interface

* Limit decimals in metrics stdout

* Changed mutexes to rwlock in RLC/RRC/MAC/PDCP to fix race conditions when removing users

* Fix deadlock bug for MIMO

* Remove headers

* Fix missing unlock causing overflows

* Do not decrease CQI when PUCCH (this is a temporal fix, requires to reduce the maximum MCS)

* Fix mutex unlock in worker

* Configurable RLC tx buffer. Default to 512 for enodeb

* Check NULL SDU in write_sdu()

* Protect RLC objects and tx_queue from being destroyed while using it

* Remove superfluous code

* Disable SIB logging

* Fix block_queue for enb
2018-07-05 11:00:19 +02:00
Andre Puschmann 87fd218c72 remove unused cond variable in logger 2018-07-03 13:17:48 +02:00
Andre Puschmann 4deb251071 remove duplicate run-state variable in logger_file 2018-07-03 13:09:43 +02:00
Andre Puschmann 05ede38ea6 remove obsolte config.h 2018-06-29 15:31:34 +02:00
Pedro Alvarez f301bb6373 Merging next into op_vs_opc and resolving conflicts. 2018-06-26 11:36:40 +01:00
Andre Puschmann 01f6395d70 add option to force IMSI attach by not loading NAS ctxt from file 2018-06-19 14:23:47 +02:00
Pedro Alvarez 75c5e476f1 Added OPc option to UE. (needs testing.) 2018-06-18 15:19:04 +01:00
Pedro Alvarez 02bc1c9956 Revert "Starting to add OP/OPc support."
This reverts commit 1766e11076.
2018-06-18 11:34:45 +01:00
Pedro Alvarez e3d1cff4a3 Revert "Adding OPc option to security functions."
This reverts commit 0eeb70bede.
2018-06-18 11:29:40 +01:00
Pedro Alvarez 0eeb70bede Adding OPc option to security functions. 2018-06-18 11:24:35 +01:00
Pedro Alvarez 1766e11076 Starting to add OP/OPc support. 2018-06-15 13:28:23 +01:00
Ismael Gomez 67e90d5a9b Code style: Use { } even in 1-line if 2018-06-04 18:38:18 +02:00
Ismael Gomez 863fe4fcd0 Revert "check in SRSLTE_CONFIG_DIR for configs by default"
This reverts commit fb77cb87ca.
2018-06-04 17:36:59 +02:00
Andre Puschmann fb77cb87ca check in SRSLTE_CONFIG_DIR for configs by default 2018-06-04 15:01:16 +02:00
Andre Puschmann 36c650399b rework app startup to search for config files in user's home directory 2018-06-01 15:33:15 +02:00
Ismael Gomez 0a2e9d7b8b Do not reset metrics in the hub 2018-05-31 15:32:01 +02:00
Andre Puschmann cb15dee3d4 Merge branch 'embms_merge_final' into next 2018-05-23 21:25:37 +02:00
yagoda 54bdfd83ec adding support for mbsfn subframe configuration to pdsch examples 2018-05-22 16:03:25 +02:00
Ismael Gomez 4662b83fe9 Use bzero instead of {} for initializing structs 2018-05-22 15:14:03 +02:00
Andre Puschmann 61d525ea80 Merge branch 'next' into embms_merge_final 2018-05-22 10:39:05 +02:00
Andre Puschmann 234ec178b2 cleanup pdu.h 2018-05-22 10:28:50 +02:00
Ismael Gomez bad007cdd9 Increase/decrease nbytes counter inside mutexed queue 2018-05-21 23:24:55 +02:00
Andre Puschmann 9ca2b89282 fixing compile warnings 2018-05-17 17:27:44 +02:00
Andre Puschmann 9ce3be974a Merge branch 'next' into embms_merge_final 2018-05-15 22:32:56 +02:00
yagoda e4c3f0bc30 adding mbms-gw and mch generation tables 2018-05-15 17:27:10 +02:00
yagoda ec918eab76 adding support for embms in common functions and interfaces 2018-05-15 16:50:57 +02:00
Andre Puschmann a30ad8952c fix indent and simplify auth request packing 2018-05-15 12:40:29 +02:00
Andre Puschmann d0457211ad adding support for CHAP auth 2018-05-15 12:40:29 +02:00
Andre Puschmann 51e093e611 Merge branch 'next' into rlc_updates 2018-05-11 15:55:03 +02:00
Ismael Gomez 040c33497d merged PR#189 and added check for non-empty queue in get size tail 2018-05-10 21:32:32 -05:00
Ismael Gomez 4515dd94ea Use blocking queue for RRC measurement fixes #193 2018-05-10 13:41:21 -05:00
Ismael Gomez 04609cd07d Check msg_queue size_tail_bytes existence of buffer 2018-05-10 13:41:17 -05:00
Ismael Gomez ba40a4de84 Add checks for when RLC TM queue is corrupted and reset it 2018-05-10 13:39:34 -05:00
Ismael Gomez f3f4528a2f Testing commit to force a Reestablishment 1s after CONNECT 2018-05-10 13:28:55 -05:00
Andre Puschmann 85028d2aed use pretty function name in buffer_pool debug
- this avoids ambiguity between names, for example
  in reassemble_rx_sdus() for rlc_am an rlc_um
2018-05-10 16:41:37 +02:00
Andre Puschmann 718a15608c dealloc SCH pdu in MAC instead of pdu_queue
- this is basically e9fcb10c9e
  but with the counterpart in the eNB's MAC
2018-05-10 16:36:55 +02:00
Andre Puschmann 595ed70cae Revert "Deallocate SCH pdu on demux instead of pdu_queue"
This reverts commit e9fcb10c9e.
2018-05-08 21:41:33 +02:00
Andre Puschmann 05696a5ca7 Merge branch 'next' into rlc_updates 2018-05-04 14:13:50 +02:00
Ismael Gomez e9fcb10c9e Deallocate SCH pdu on demux instead of pdu_queue 2018-05-02 12:15:23 +02:00
Ismael Gomez aa1724b8f3 Add missing-field-initializers flag and properly initialize structs 2018-04-29 17:55:19 +02:00
Joseph Giovatto ab1d9e98f3 Format and typelimit warnings (#169)
* merge with origin 4fc7dbc3 8daa8346

* fixed whitespace diff

* added .gitignore

* added format warning flags to C_FLAGS
added typelimit check to C_FLAGS and CXX_CLAGS

* Revert "added format warning flags to C_FLAGS"

Apply to branch format_and_typelimt branch

This reverts commit bf7467e82ec7b056ad06dc50cc964fcce18be99b.

* check for format warnings to top level C_FLAGS
added typelimit warnings to top level C_FLAGS and CXX_FLAGS
beset effort attempt to remedy warnings
removed unused param names in hex_log baseclass methods due to multitude of unused-warnings
2018-04-29 17:26:35 +02:00
Andre Puschmann a2f6166365 Merge branch 'next' into rlc_updates 2018-04-27 15:03:17 +02:00
Andre Puschmann d8bfd2713c initialize byte_buffer content in ctors 2018-04-26 13:20:34 +02:00