Commit Graph

780 Commits

Author SHA1 Message Date
Robert Falkenberg 60c3d79f47 rlc, nr: complete packing of status PDUs with 18bit SNs 2022-03-01 20:44:39 +01:00
Robert Falkenberg f7515e98cf rlc, nr: add pack/unpack of nack_range in status PDUs 2022-03-01 15:31:35 +01:00
Robert Falkenberg 0fb6420e8b rlc, nr: avoid multi increments of SDU's retx_count within one status message 2022-02-28 16:37:44 +01:00
Robert Falkenberg 511ad9ed25 rlc, nr: Increment retx_count for segments 2022-02-28 16:37:44 +01:00
Robert Falkenberg 034aa6a6d4 rlc, nr: inform upper layer when max retransmissions is exceeded 2022-02-28 16:37:44 +01:00
Robert Falkenberg 95ebc06ec1 rlc: implement SDU discard for AM+UM in NR+LTE
- Implemented in common base classes
- Added locking
2022-02-23 11:18:31 +01:00
Robert Falkenberg 9b44d13471 rlc, nr: notify PDCP about fully acked SDUs 2022-02-23 10:57:21 +01:00
Pedro Alvarez e6d976d115 lib,rlc_am_nr: fixed stack smashing bug that happened when too many NACKs were present in the status report 2022-02-22 21:14:15 +00:00
Pedro Alvarez ddbd857867 lib,rlc_am_nr: make sure that the RB name is logged when logging the header and status PDUs in NR 2022-02-22 21:14:15 +00:00
Robert Falkenberg 3a73d84294 srsran_rf: support dynamic loading of RF plugins
This adds flexible plugin-like loading of the individual RF
implementations (zmq, uhd, soapy,...) as per availability at runtime.
Unlike before, the binary application is not terminated if the
dependencies of individual RF interfaces are not installed on the
executing system.  To do this, the plugins are not linked by the linker
at compile time, but opened at runtime via dlopen() and dropped in case
of failure due to missing dependencies.
2022-02-18 15:11:23 +01:00
Bedran Karakoc 767feddd73 lib,nas_5g: Implement to_string() functionality for options 2022-02-18 11:15:56 +01:00
Pedro Alvarez c8d15135c6 lib,rlc_am_nr: addressing reveier comments:
* made some methods const
  * changed from TESTASSERT to TESTASSERT_EQ
  * fix up comment
  * removed superfulous if
  * used typedef for list of segments received
  * added unit test for is_retx_required()
  * added unit test for malformed status PDU
2022-02-16 13:23:32 +00:00
Pedro Alvarez 634c9ea3af lib,rlc_am_nr: starting to order segments to be able to receive them out-of-order 2022-02-16 13:23:32 +00:00
Pedro Alvarez 832d650574 lib,rlc_am_nr: remove unused variables. Fixed up some comments. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 9bb3b1f18f lib,rlc_am_nr: remove unused code after re-factor 2022-02-16 13:23:32 +00:00
Pedro Alvarez 5e8b7b5ebe lib,rlc_am_nr: re-factored code for retx'ing with and without segmentation. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 38e4c47f34 lib,rlc_am_nr: added current SO to keep track of the SO for the next RETX. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 65d5df8b6e lib,rlc_am_nr: Continue to add functionality to provide segments of retx'es. Started to add function to re-segment already existing SDU segment 2022-02-16 13:23:32 +00:00
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. 2022-02-16 13:23:32 +00:00
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. 2022-02-16 13:23:32 +00:00
Francisco 581a99c616 nr,gnb: use memory pool to allocate scheduler UEs 2022-02-15 20:59:45 +01:00
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.
2022-02-15 16:50:21 +01:00
faluco c9c2d6982f Implement a function to remove emergency handlers when a signal is raised.
Make PCAP handlers deregister from this list when they are destructed. This avoid the signal handler calling destructed objects under very rare circumstances.
2022-02-09 18:11:20 +01:00
Bedran Karakoc 83868fd2d2 lib,nas_5g: Implement to_string() for 5GSM Cause 2022-02-08 20:18:16 +01:00
Francisco Paisana e4a15c9c51 rrc,gnb: move non-phy fields out of phy_cell_nr_t 2022-02-08 18:21:07 +01:00
Francisco Paisana e8902c785f rrc,gnb: remove srsran_prach_cfg_t from gnb rrc config struct 2022-02-08 18:21:07 +01:00
Francisco Paisana 532a4b54e7 rrc,gnb: remove phy flat pdcch cfg struct from rrc nr cfg 2022-02-07 18:26:15 +01:00
Francisco Paisana 88a95e8e57 rrc,gnb: remove uneeded flat phy cfg fields from rrc_nr_cfg_t 2022-02-07 18:26:15 +01:00
Joaquim Broquetas b2075673e5
Crest Factor Reduction feature for the phy layer (#3720)
* Add CFR module to the phy lib

* Add dynamic threshold with PAPR estimation

* Add a CFR unit test, CFR module improvements and refactoring.
Swap the gain normalization before the CFR.

* Add CFR config interface to srsenb

* Add CFR support to pdsch_enodeb

* Add DL PAPR measurement to eNB.

Co-authored-by: Cristian Balint <cristian.balint@gmail.com>

* Add test coverage to srsran_vec_gen_clip_env
2022-02-04 10:35:35 +01:00
Carlo Galiotto 91502c87db rrc-nr: rename rrc_util function and fix indexing
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2022-02-03 18:50:44 +01:00
Carlo Galiotto e88a4fbe18 rrc-nr: add sr_resources RRCSetup cnf conversion
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2022-02-03 18:50:44 +01:00
Francisco 425b956ef1 revert hacky asn1 compilation fix related with default dtors 2022-02-01 13:08:51 +01:00
Robert Falkenberg 57f84d4ca4 Radio: add support for file-based RF device abstraction 2022-02-01 10:47:51 +01:00
Robert Falkenberg d3eca325f7 Add file-based RF device for rx from arbitrary FILE*
It comes with the following changes:

* Add RF frontend API function "srslte_rf_open_file()"
* Open file-based RF via explicit call of custom
  "rf_file_open_file()", instead of "srslte_rf_open_multi()"
  function pointer as for regular devices.
* Introduce device name "file"
* Introduce new SRSLTE_ERROR_RX_EOF error code
* ZMQ: make update_rates() static to resolve conflicts
2022-02-01 10:47:51 +01:00
Carlo Galiotto 9f25a91282 asn1: fix clang compiling issue #3827
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2022-02-01 10:38:26 +01:00
Xavier Arteaga a74fdb84c9 Added SSB encode and decode from grid, plus unit test 2022-02-01 09:44:13 +01:00
Bedran Karakoc 37280307b5 lib,nas_5g: Fix unpacking/packing for timezone IEs 2022-01-31 16:19:20 +01:00
Bedran Karakoc cf191d8306 lib,nas_5g: Fix packing/unpacking error for ipv4 addresses 2022-01-31 16:19:20 +01:00
dvdgrgrtt 73594cf704 Fix minor bug
SRS_API was used instead of SRSRAN_API. Did not seem to have major
consequences.
2022-01-28 08:15:36 +01:00
Andre Puschmann c3596cc684 ue_nas_interfaces.h: set default APN type to ipv4 2022-01-27 12:49:13 +01:00
Carlo Galiotto 362abfe3c9 rrc-nr: add conversion for pucch_cfg
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2022-01-26 10:47:26 +01:00
Bedran Karakoc efa13290a9 ue,rrc_nr,nas_5g: Introduce NR AS Key derivation and update context handling in 5G NAS 2022-01-25 14:24:58 +01:00
Bedran Karakoc a8eaf1cdd8 ue,nas_5g: Add get_k_amf() helper function and security context flag 2022-01-25 14:24:58 +01:00
Andre Puschmann 44a00feccb pdcp_entity_base: fix log typo 2022-01-24 21:07:22 +01:00
Xavier Arteaga a9591f1d45 Avoid poping queue if empty 2022-01-24 10:09:17 +01:00
Fabian Eckermann 12cc7cb4d7 Add support for RRC redirect. 2022-01-21 09:46:56 +01:00
Francisco 52106be3d5 sched,nr: remove phy cfg types from sched_nr_cell_cfg_t 2022-01-20 10:54:00 +00:00
Francisco 7ef206e15b sched,rrc,nr: remove need to pass sched ue cfg object to rrc during ra procedure 2022-01-20 10:54:00 +00:00
Francisco 7f200ac7f7 sched,nr: pass asn1 TDD configuration to scheduler as defined in ORAN 2022-01-20 10:54:00 +00:00
Xavier Arteaga 66f6c11561 Fix concurrent issues in dummy radio used in nr_phy_test 2022-01-19 18:33:39 +01:00