886 Commits (81f28a4d4571b81115573626a4dc47d1f84ab996)

Author SHA1 Message Date
Pedro Alvarez e4a72de342 lib,rlc_am_nr: refactored build_pdu helpers to receive the payload pointer for consistency. Added function to segment retx. Added some comments to build PDU helper functions. 3 years ago
Pedro Alvarez b1a33a07a1 lib,rlc_am_nr: starting to add test for segmenting retx. Changed sdu under segmentation to only hold the SN. The actual SDU already exists in the pdu stored in the tx_window. 3 years ago
Francisco a2174a5714 Fix type storage copy and move assignment function helper
Previously, in the case both the lhs and rhs optionals were present, the copy/move assignments were erroneously destroying the lhs object.
3 years ago
Bedran Karakoc 70084cf9cc Added unit test for K_gnb derivation 3 years ago
Francisco 3c25b6cb24 asn1: remove presence flag for lists and octet strings, as the size of the latter implicitly tell if the asn1 field is present 3 years ago
Francisco f7efee9884 asn1: use typedefs for amf_ue_ngap_id, ran_ue_ngap_id, mme_ue_s1ap_id and enb_ue_s1ap_id and changed interface to access s1ap and ngap protocol_ies 3 years ago
Francisco Paisana d5f5df3e7b asn1: place common asn1 type for empty ie object sets in asn1_utils.h 3 years ago
Francisco Paisana ec1ed9d4a5 asn1: fix json generation for s1ap/ngap and improve ie protocol field interface 3 years ago
Francisco Paisana 61e225d762 asn1: move setup_release_c from rrc_nr_asn1 to asn1_utils and improved interface 3 years ago
Francisco Paisana 2d2a5bee03 asn1: update procotol_ie_single_container interface to use -> operator instead of .value to access container content 3 years ago
Francisco Paisana 6b181e7a94 asn1: move protocol_ie_single_container_s to asn1_utils, so it can be used by ngap, s1ap, and other layers 3 years ago
Francisco Paisana c8f7976014 asn1: use byte buffer pool for temporary variable length field generation instead of stack array 3 years ago
Pedro Alvarez e9a47ef7b1 lib,rlc_am_nr: added assert to make sure we never write over nof_bytes 3 years ago
Pedro Alvarez 8afea13d9a lib,rlc_am_nr: added initial logic to support receiving PDU segments. 3 years ago
Pedro Alvarez 76c33c78a9 lib,rlc_am_nr: starting to add test for segmentation. Starting to add functions for creating new segments and segment continuation. 3 years ago
Pedro Alvarez f544cc7f7e lib,rlc_am_nr: fixed issue introduced with the changes of the header packing. 3 years ago
Pedro Alvarez 40fab8fdb4 lib,rlc_am_nr: starting to add segmentation test 3 years ago
Francisco Paisana 40138c7125 changed namespace of asn1 ngap from 'ngap_nr' to simply 'ngap' 3 years ago
Fabian Eckermann 93210d9bb3 Add unit tests for new functions. 3 years ago
Pedro Alvarez 17d2eb0ea7 lib,rlc_am_lte: added unit test for t-pollRetransmssion re-arming when ACK/NACK is received. 3 years ago
Pedro Alvarez b425316936 lib,rlc_am_nr: fixed tx_mod_base_nr(). Added unit test for inside_tx_window(). 3 years ago
Pedro Alvarez 3d5682b180 lib,rlc_am_nr: added unit tests to check inside_rx_window helper 3 years ago
Francisco 3bd77befd3 nr,gnb,asn1: update asn1 rrc nr unit test 3 years ago
Pedro Alvarez b497d773ce lib,rlc_am_nr: Fixed some metrics calculation. Added more precise metrics checking to unit tests 3 years ago
Pedro Alvarez b794593469 lib,rlc_am_nr: added processing of ACKs from status report 3 years ago
Pedro Alvarez ec93cc7238 rlc_am_nr: added logic to retx NACK'ed PDU. 3 years ago
Pedro Alvarez 473a45aae0 rlc_am_nr: fix buffer status calculation for retxs 3 years ago
Pedro Alvarez 4e1c713c14 rlc_am_nr: Enabled sending NACKs on status PDUs
- Added some logic to only poll when PDU_WITHOUT_POLL > PollPDU
  - Fixed initalization of t-Reassembly
  - Fixed a bug in the packing of the status buffer.
Nacks now work for a single lost PDU.
3 years ago
Pedro Alvarez 25492de6b7 Stating to add PollPDU 3 years ago
Pedro Alvarez 3f000f0472 Adding t_reassembly to RLC AM NR 3 years ago
Pedro Alvarez f09020e57f Adding unit test for lost SDUs. Fixing way rx_next and rx_status_highest are updated. 3 years ago
Andre Puschmann 4dcbc70131 mac,packing: move test code to source folder 3 years ago
Andre Puschmann 85f7313f83 mac_pdu_nr_test: add TC for UL-SCH PDU with CCCH 48bits 3 years ago
Fabian Eckermann d0c07fc86e Add packing of dci format 1A for pdcch orders. 3 years ago
Pedro Alvarez 9e4631ee24 Added NR specific config struct for RLC AM. Added status prohibit timer. 3 years ago
Pedro Alvarez 1f8d0ab557 Fix generation of status report. 3 years ago
Pedro Alvarez 2d29e4005c Starting to generate RLC NR status report.
Starting to check if status pdu generation is correct.
3 years ago
Pedro Alvarez 7121152cff Added basic functionality for read_pdu to RLC AM NR entity. 3 years ago
Pedro Alvarez 4196abafee Added get_buffer_status to RLC AM NR entity 3 years ago
Andre Puschmann b3c7eeedd3 rlc_um_nr_test: add extra check to verify reassembly timer isn't running 3 years ago
Andre Puschmann 7141fda69c Revert "rlc_um_nr_test: disable test9 until low TCP UL rates are understood/fixed"
This reverts commit e491aef74e.
3 years ago
Pedro Alvarez f99e841421 Changed using a rlc_am_lte and rlc_am_nr entity, to a single rlc_am entity. 3 years ago
Pedro Alvarez 2a5d21164f Adding RLC AM NR unit tests 3 years ago
Pedro Alvarez 2bb249bf09 Moved RLC AM LTE and NR packing functions to their own file. 3 years ago
Carlo Galiotto ba50bbfb76 rlc,rrc,nr: remove rb_type from rlc_um_config
Signed-off-by: Carlo Galiotto <carlo@srs.io>
3 years ago
Carlo Galiotto 9c2099f680 rrc,rlc,nr: fix RB label in RLC-NR for UE logs + ..
add rb_type in rlc_um_config

Signed-off-by: Carlo Galiotto <carlo@srs.io>
3 years ago
Andre Puschmann e491aef74e rlc_um_nr_test: disable test9 until low TCP UL rates are understood/fixed 3 years ago
Andre Puschmann 85e478d8ad rlc_um_nr_test: add TC to reproduce reassembly issue
* add TC to reproduce reassembly issue that causes low TCP throughput
* fix PCAP writing
* fix other testcase to wait for t_reassembly to expire
3 years ago
faluco dc31fb05a3 Fix ODR issue detected by ASAN in arch for the srsran_verbose global variable. 3 years ago
Pedro Alvarez fbcffb84bd Check if RLC is suspended before transmiting PDCP SDU.
This was done to avoid integrity issues, when the UE's RRC erroneously sent
measurement reports while the re-establishment was already in progress.

As errously sending PDCP PDUs on DRBs can cause issues as well, this was
disabled too.
3 years ago
Pedro Alvarez 65a2b35f09 Fix not checking initialization of S11 in MME. Fixed typo. 3 years ago
Pedro Alvarez e721504f8e Removed the sctp_init_server for consistency. Added listen method to unique_socket class. 3 years ago
Pedro Alvarez e9a7e6dbae Getting rid of sctp_init_client function. The only thing it does is call the sctp_init_socket function. 3 years ago
Xavier Arteaga 4edb61212f Added number of CDM groups to phy_dl_nr_test 3 years ago
Xavier Arteaga 8e5fe9018b Corrected LBRM functionality 3 years ago
Andre Puschmann e5556fcc32 mac_pdu_nr_test: add LBSR unpacking tests 3 years ago
Andre Puschmann 8bb06ff2c0 Added SSB in gNb PHY 3 years ago
Xavier Arteaga 8f90ee847a Refactor carrier frequency from PHY and fix OFDM phase compensation 3 years ago
Fabian Eckermann 8830c2796f Add support for NSA FDD on band n3, n5 and n7. 3 years ago
faluco fa351cd285 Rename functions that contain the unsafe word to nolock.
The term "unsafe" does not clearly state that the function is not locking the shared date and it sounds "dangerous", so use a more explicit term.
3 years ago
Fabian Eckermann f44eb0534f Add RRC NR test for FDD 3 years ago
Xavier Arteaga 0324806d6c Packed NR TDD config in duplex configuration and created test case for FDD 3 years ago
faluco 485ec2edab Implement a new option to flush the file sink contents on every write. 3 years ago
Andre Puschmann 07019a5bd6 nr: refactor DL/UL frequency deriviation
* add separate DL/UL freq point a in NR carrier struct
* use freqInfoDL/freqInfoUL to get freq point a
* simplify carrier tuning logic
3 years ago
David Rupprecht a9a23214b0 Added more 5G security kdfs
Added new 5G SIM functions

Added const parameters for security functions
3 years ago
David Rupprecht a645d74eaf USIM functions for res star
Added gen_res_star in security.h

Added USIM interfaces for res star

Added RES star test case
3 years ago
David Rupprecht bce6b5cc0f Added kdf common
Use kdf functions in 5G KDF

Moved EPS KDF function to new KDF structure
3 years ago
David Rupprecht 15eaef21e2 Update test f12345 function
Moved XOR functions to lib

Added testcase for KDF

Minor liblte_security updates
3 years ago
David Rupprecht 0ef8976d53 Remove length from class and pass by reference 3 years ago
Andre Puschmann f3e8847ad3 mac_pdu_nr_test: fix test 3 years ago
Andre Puschmann ede81be5e4 mac_rar_pdu_nr: add packing routines
* add packing for RAR PDUs
* rewrite to_string() to use fmt lib
* add test case for packer
3 years ago
Andre Puschmann 20c0e0bc41 mac_sch_pdu_nr: add to_string() helper to format MAC PDUs in logs 3 years ago
Xavier Arteaga cfe2b305a1 Fix CORESET0 related PDSCH resource allocation procedure 3 years ago
Xavier Arteaga ae0d8f83f0 Add PDCCH interleaved mapping in phy_dl_nr_test and iterate all possible 15kHz SCS bandwidths 3 years ago
Francisco Paisana f518861ebc fix location of support/ folder. Created macros for ASSERT_EQ and ASSERT_NEQ 3 years ago
Francisco Paisana e896ac49e8 adt: create split optional span view to be used for C-array types 3 years ago
Francisco Paisana d616e46936 adt: allow choice between static and dynamic optional vector types 3 years ago
Francisco Paisana 1596fcf349 adt: rename optional table to optional array 3 years ago
Francisco Paisana 8c24cfebd3 adt: create data structure type to represent an array of optional fields 3 years ago
Andre Puschmann 32ab1baeb1 enb,rrc: during NSA activation, remove EUTRA DRB and set MAC logical channel config 3 years ago
Andre Puschmann 9e7852ac83 srsran_asn1_nr: add RLC config to packing test 3 years ago
Andre Puschmann 4a828be39f rlc_am_test: fix reestablishment test
after changing the retx counting we receive one SDU more than before
3 years ago
Xavier Arteaga ea802c23f2 Remove PHY lib verbose from test and use byte vector random function 3 years ago
Andre Puschmann b388930325 srsran_asn1_rrc_nr_test: disable PCAP output by default 3 years ago
Andre Puschmann e833751031 rrc_nr: add CSI config packing 3 years ago
Andre Puschmann f181733c7e rrc_nr,enb: add more fields to spcell cfg dedicated 3 years ago
Andre Puschmann 4915dc9642 test_pcap: add function description 3 years ago
Francisco Paisana 12e33483e1 sched,nr: add slot_point to sched nr 3 years ago
Francisco Paisana a0a1af9d0f nr: slot value that handles wrapping around 3 years ago
Andre Puschmann 60a795acc0 asn1,rrc_nr,test: extend RRC reconf test, add PCAP output
test now can write the NR reconfig into a PCAP for easy
debugging with Wireshark

patch also adds a new test helper to write a RRC PDU
into a PCAP file (helper packs PDCP and RLC AM first)
3 years ago
David Rupprecht 0217bf5332 Fixed name space for rrc ue 3 years ago
faluco b79481f74b - Fix text formatter unit test for printing the date. 3 years ago
David Rupprecht d990db66f6 Added syslog logger 3 years ago
Andre Puschmann 6c82d63aa6 remove legacy PNF/VNF code
the code hasn't been maintained for a while an likely needs to be
adapted for a real-world scenarios.

in order to avoid having to maintain two MAC/PHY interfaces we
remove the code from now.
3 years ago
Andre Puschmann 654afac9c7 nas_5g_msg_test: remove copy_msg_to_buffer() that is now in test_common.h 3 years ago
David Rupprecht 724af2b060 Added nas 5g msg packing and unpacking 3 years ago
Andre Puschmann e330f50ef8 rrc_meas_test: add packing test for measObjectNR 3 years ago
Andre Puschmann a2dd83a7e9 asn1: rename RRC NR test to avoid confusion with component test 3 years ago
Andre Puschmann 6bf3feda92 rrc_nr_test: add packing test for NR radio bearer config
also add (still incomplete) secondary cell group config pack test
3 years ago
Xavier Arteaga e3afd945bc Refactored NR HARQ ACK feedback 3 years ago
Xavier Arteaga f6fc215541 Refactored enb_dl_nr to gnb_dl and initial gnb_ul 3 years ago
Andre Puschmann 6372f89c09 s1ap_test: fix compilation on 32bit 3 years ago
Pedro Alvarez 865298f8d5 Moved lib PDCP to its own folder 3 years ago
Pedro Alvarez 171d5727be Moved lib RLC into it's own folder 3 years ago
Xavier Arteaga 8378c85ec4 Refactored gNb PHY 3 years ago
David Rupprecht 6d5391756c Refactor build of RLC NR config 3 years ago
Pedro Alvarez aae266e848 Added configuration option for S1AP SCTP bind port 3 years ago
Xavier Arteaga cf09044453 Optimised random bit (unpacked) and byte (packed) generator 3 years ago
Andre Puschmann 475c033440 rlc_am_test: extend status PDU test
add full test with malformed status PDU
3 years ago
Andre Puschmann fa7a8fb687 rlc_am_test: add testcase for processing out-of-order status PDUs 3 years ago
Andre Puschmann d51ee722f6 rlc_am_test: add unit test for ACK_SN is outside rx window
the test uses a malformed status PDU from a PCAP and makes
sure the RLC receiver detects such a PDU and raises a warning
3 years ago
Andre Puschmann 46265c5829 rlc_am_data_test: add data PDU unpack test
TV captured in PCAP
3 years ago
Andre Puschmann b379910690 pdu_test: add UL-SCH unpacking test
TV captured in PCAPs.
3 years ago
Pedro Alvarez 299d2ee35d Added interface to make the PDCP notify the RRC of integrity check
failures.
3 years ago
Andre Puschmann a013a2fe05 rlc_stress_test: fix bug when read_pdu was returning -1 3 years ago
Andre Puschmann c0be8187c8 rlc interface: convert entire read_pdu() interface to return uint32_t
we had it returning int but had a bug in using the return value properly,
i.e. handling when -1 was returned in RLC TM.

Thinking about it more, it doesn't make sense to have a negative return
value here anyway. Either the RLC can return a PDU or not. If it can't the
returned lenght is zero.
3 years ago
Francisco 539ca47fe2 lib,bugfix: fix blocking queue unit test. Dtor cannot destroy object while a thread is still pushing data 3 years ago
Andre Puschmann 9612bb0e14 rlc_am_test: fix status PDU test and add extra test for failure signaling 3 years ago
Andre Puschmann aaffdeb326 rrc,rlc: add method to signal protocol failure to RRC
general-purpose method for lower layers to signal protocol
failures to higher layers, i.e. RRC.

In the current case, implement a direct release of the UE (enb) or
a reestablishment (UE).
3 years ago
Andre Puschmann 107f6334dd compile: fix compilation on 32bit systems that require -latomic 3 years ago
Andre Puschmann b88f22b9fe network_utils_test: fix race detected with TSAN 3 years ago
Andre Puschmann 716caafd6c multiqueue_test: fix race reported by TSAN 3 years ago
Andre Puschmann c434aac526 rlc_stress_test: include tsan options header 3 years ago
Xavier Arteaga 10a268fdba Added SNR to phy_dl_test 3 years ago
Francisco f36f5271d3 timers,feature: make timers thread-safe by using atomic to store timers state. 3 years ago
Andre Puschmann 531acc0a98 rlc_am_test: add check for RLC buffer state return during retx 3 years ago
Pedro Alvarez c74b2dd633 Fix some warnings in PHY due to array parameter mismatch for a few functions 3 years ago
Francisco f2a56c9139 simplification of multiqueue design.
- the consumer does multi-staged waiting:
  1. spins first across all queues in a RR fashion
  2. each queue access is done with a try_lock.
  3. if the try_lock fails, it increases the number of spins needed
  2. if no queue had data, the consumer sleeps for 100 usec.
- no differentiation between queues, in terms of notification features
4 years ago
Francisco b41aba2a03 fix task scheduler test 4 years ago
Francisco 2d6a878826 change interface to create multiqueue queues 4 years ago
yagoda 9501283c1c fixing support for extended Cyclic Prefix
small cosmetic fixes of CP code
4 years ago
Andre Puschmann 81c1851bbd rlc_am_test: fix TSAN isses and removing info log when dropping PDU 4 years ago
faluco 6fb81c7619 - Add a mutex with priority inheritance for srslog internal structures.
- Replace shared_variable members in log_channel class in favor of atomics.
- Remove the small string optimization in srslog now that we dont allocate anymore.
- Trim some critical sections in srslog.
4 years ago
Francisco 996d8ef74d multiqueue bugfix for non-blocking pushes when queue is full 4 years ago
Francisco 99abae9e6a fix multiqueue producer to consumer notification to avoid deadlocks 4 years ago
Francisco 0d800eb8f6 stack, multiqueue - bugfix for multiqueue destruction, and addition of unit test 4 years ago
Francisco ef9d1b8c13 stack optimization - reduction of contention in multiqueue class
With the new design, each queue created in the multiqueue object has its own mutex.
Pushing tasks to separate queues will, therefore, not cause contention.
There will be, however, still contention between the popping thread and the pushing threads.
4 years ago
Francisco cd51537234 add comment explaining the use case of cached_alloc 4 years ago
Francisco 28847badcf implementation of custom allocator for memory caching. This allocator may be used for unbounded queues 4 years ago
faluco aef18f9931 Implement a benchmark for measuring latency in the foreground threads when pushing log entries.
This benchmark runs with several threads to test contention.
4 years ago
Xavier Arteaga fb5dfb3a86 Improved NR unit test 4 years ago
Xavier Arteaga 6c39a5e4ff Added PDSCH DMRS aditional unpacking 4 years ago
Andre Puschmann 4dd17aee45 rrc/phy/nr: calculate tuning freq of NR carrier from RRC signaling params
skip initial tuning to hard-coded NR frequency and use RRC-provided
values to calculate center frequency
4 years ago
AlaiaL 862784ee46 Fixed coverity 369719 4 years ago
AlaiaL 82788ca094 Fixed issues from coverity:
- 370233
- 370234
- 370239
- 370240
- 370241
- 370242
- 370243
- 370295
4 years ago
faluco 1ccb62af3d Apply srsLTE formatting rules to srsLog. They were previously formatted with different rules when the project lived in the external rapo. 4 years ago
Francisco ff3fc0826b asn1 fixes and improvements
- use const char* instead of std::string in enumerated<>::to_string() to avoid mallocs.
- Remove the use of "typedef", and use "using" keyword instead.
- Fix rrc_nr::setup_release_c<>::to_string() broken linkage.
4 years ago
Francisco 28f787f1de extend timer handler unit test to check correct time wheel implementation 4 years ago
Francisco 2b572f5376 fix overwrite of timer timeout when it matches previous time wheel position 4 years ago
Francisco ce47cf5910 fix - re-add log flush to srsran_assert 4 years ago