428 Commits (8f49b927602f6197286b4c85900599f74a4b97c8)

Author SHA1 Message Date
Andre Puschmann 6a56476b2a rlc: increase RLC Tx SDU queue
the Tx SDU has been set to 128 PDUs because this gives approx.
150kByte UL buffer state (max value for Rel 8 BSR).

Previously, however, we've always reported too much pending UL
data because we weren't subtracting the transmitted data from
the reported data.

with this newer BSR reporting, however, even with full buffers we would
never report full buffers because the queues size is too short.

This seems to cause issues for iperf TCP sessions not resulting
in full DL rate, see isse #1703. It seems that the TCP bandwitdh
probing works better with larger buffers (in our case this can
only be achieved with more PDUs in the pool).

This should fix #1703
4 years ago
Ismael Gomez f49fbd6d02
Fix the order of HO/reest measurement actions (#1696) 4 years ago
Xavier Arteaga af8898943f SRSENB: implement console cell_gain command
SRSENB: fix 5GNR compilation

SRSENB: fix override methods
4 years ago
Francisco Paisana 92221eb780 update of rrc_interface_mac to remove signal from mac to rrc that RA failed in case of handover failure 4 years ago
Ismael Gomez a4835dd2c8
More accurate MCS reduction when PUSCH carries UCI (#1630) 4 years ago
Francisco Paisana bb5dd92dca implemented s1 handover cancellation procedure to force the target enb to release the ue ctxt 4 years ago
Francisco Paisana 8c9e596f89 refactored s1ap handover request interface. cleaned up rrc tenb s1 handover code 4 years ago
Francisco Paisana 5d1343fe75 implemented S1 bearer status transfer 4 years ago
Francisco Paisana db8af399f8 extended rrc tenb s1 handover test. implemented layer reconfig during s1 handover 4 years ago
Francisco Paisana 7605c7df23 added s1ap handover notification, fixed s1ap asn1 bug, and fixed bad fields for admitted erabs in ho req ack 4 years ago
Francisco Paisana 26f46ea067 add S1 Handover Request handling in target eNB 4 years ago
Ismael Gomez 382811e10e
Update S1AP RNTI context when doing Reestablishment (#1582) 4 years ago
Ismael Gomez dda91b14f7 Remove duplicate add_rnti() function since already done in set_config 4 years ago
Andre Puschmann 9550bd3ef8 rlc: revisit interface for MAC and RRC
* add locked and unlocked version of has_data() since one is
  called from stack and one from PHY threads

* add comments in each interface section as to why locking
  is required or not

* remove RLC rwlock when not required

* move calls only used by RRC to RRC section
4 years ago
Francisco Paisana 58c4bcf288 reduce mcs for UL grants carrying UCI 4 years ago
Andre Puschmann a7911f0dab pdcp,rlc: refactor SDU queueing policy
this patch refactors the SDU queuing and dropping policy of the RLC and PDCP layer.
the previous design had issues when packets have been generated at a higher
rate above the PDCP than they could be consumed below the RLC.

When the RLC SDU queues were full, we allowed two policies, one to block on the write
and the other to drop the SDU. Both options are not ideal because they either
lead to a blocking stack thread or to lost PDCP PDUs.

To avoid this, this patch makes the following changes:

* PDCP monitors RLC's SDU queue and drops packets on its north-bound SAP if queues are full
  * a new method sdu_queue_is_full() has been added to the RLC interface for PDCP
* remove blocking write from pdcp and rlc write_sdu() interface
  * all writes into queues need to be non-blocking
  * if Tx queues are overflowing, SDUs are dropped above PDCP, not RLC
* log warning if RLC still needs to drop SDUs
  * this case should be avoided with the monitoring mechanism
4 years ago
Francisco Paisana 5e06430455 removal of stack handler interface 4 years ago
Francisco Paisana fe8f8be62d apply separate cqi configurations to scells 4 years ago
Francisco Paisana cb7f620254 created separate class to manage bearers buffers/status reports in the scheduler 4 years ago
Ismael Gomez 493b7ea2da Remove SNR threshold based link failure detection 4 years ago
Francisco Paisana 2de702f50e disable carrier aggregation when ue release is below 10 or category is below 5 4 years ago
Francisco Paisana 42969ad992 add tb size as argument to gnb 4 years ago
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
4 years ago
Pedro Alvarez 208a539499 Split PDCP tx_count state variable into tx_hfn and next_pdcp_tx_sn
variables.
4 years ago
Pedro Alvarez 08578a7331 Switched to use a struct to hold the PDCP entity state variables. Deleted some unecessary setters. 4 years ago
Pedro Alvarez 66d4f320e5 Added intereface to set PDCP state after reestablishment. 4 years ago
Pedro Alvarez 33567d81db Added interface to get internal PDCP state. 4 years ago
Xavier Arteaga e0e8405285 SRSUE: initial scell sync
SRSUE: SCell Synch feedbacks delay

SRSUE: Implemented SCell Radio offset correction
4 years ago
Xavier Arteaga f04cf2090a Integrates number of samples in radio buffer
Fix minor issue

Radio: Fix minor bug and add unit test
4 years ago
Xavier Arteaga 89b24b54e5 Refactored radio class for acommodating multiple RF devices 4 years ago
Francisco Paisana cc52edf820 added latest pnf/vnf api updates 4 years ago
Francisco Paisana 27e5d98ef9 added vnf phy nr 4 years ago
Ismael Gomez 60b5fb9a74 Refactor variable name 4 years ago
Pedro Alvarez 960c0e97cd Added handling of RRC re-establishment to srsENB.
* Added the appropriate code for handling and sending the
   re-establishment procedure messages to rrc_ue.c/.h.
 * Triggered RRC reconfiguration after the reception of RRC
   re-establishment complete
 * Refreshed K_eNB at the reception of re-establishment
   request
 * Changed the mapping of TEIDs to RNTIs in the GTP-U layer,
   as the RNTI might change with reestablishment.
4 years ago
Francisco Paisana 452c043370 created a global map of lcids to srbs/drbs for NR 5 years ago
Francisco Paisana 026628a84f use of reestablishment method to reset the RLC bearers during handover 5 years ago
Ismael Gomez 270c7ce9dc Separate PHY interface to add rnti and pregenerate sequences. Calculate the sequences on the reception of ConnectionSetup instead of PRACH 5 years ago
Francisco Paisana d7c7bb382a fix license year 5 years ago
Francisco Paisana 2da8c923b1 removed commented code and fixed interfaces 5 years ago
Francisco Paisana b4b5cd7cd6 added nr gnb and ue interfaces 5 years ago
Andre Puschmann 8756d14660 enb_interface: add default initialize to zero 5 years ago
Xavier Arteaga 9d5c2d70df SRSENB: Fix PHY reconfiguration for HO
Minimal aesthetic change
5 years ago
Francisco Paisana e8aff22e1b using new rrc obj id util methods in handover code 5 years ago
Francisco Paisana f43985b6cd small updates for testing handover and configuring the rrc 5 years ago
Ismael Gomez 8c82203c74 Removed unused pregenerate option 5 years ago
Xavier Arteaga 2569a94deb Radio Tx handles more overlap/gap cases 5 years ago
Francisco Paisana 615bd54fd5 fix uninit var 5 years ago
Francisco Paisana f8c6f55cac fix uninit var usages and signed bit manipulations 5 years ago
Xavier Arteaga d7e7399e7b srsENB: PHY configuration in two stages 5 years ago
Xavier Arteaga b9583d4182 Fix Extended CSI request bits in DCI 5 years ago
Xavier Arteaga 58803d1b3e Added UL EARFCN map and UE PHY interface cleanup 5 years ago
Xavier Arteaga 89dcd6339f More LGTM fixes 5 years ago
Xavier Arteaga 77d5dedddc Fix LGTM warnings and recommendations 5 years ago
Francisco Paisana 5db2c62530 comments for handover commands 5 years ago
Francisco Paisana 7a132f9ccd more enb interface comments 5 years ago
Francisco Paisana 0526ae8ab1 updated rrc mobility parsing. added some utility methods 5 years ago
Francisco Paisana 64557740fc use mac_buffer_state interface to schedule CEs in scheduler 5 years ago
Francisco Paisana ec94819f08 changed mechanism for conres ce scheduling to be controlled by rrc 5 years ago
Francisco Paisana d183d64409 added allocate_rnti method to mac. Useful both during PRACH and handover UE resource allocation 5 years ago
Francisco Paisana 28467d568d eliminated old way to schedule tasks using the heap 5 years ago
Xavier Arteaga 04c47e2b47 Added srsue argument for enabling EVM calculation 5 years ago
Andre Puschmann d35c9e2b89 nas: add support ot UE test loop mode B
extend GW-NAS interface to signal test mode activation.
The method is a noop in the normal GW but is implemented in
the TTCN3 DUT according to TS 36.509 for Mode B
5 years ago
Xavier Arteaga 5b7493cab5 Added 256QAM modulation tables to scheduler 5 years ago
Francisco Paisana a2ade9edd1 break down rrc_interface_types.h into multiple files. moved pdcp_config.h to same folder 5 years ago
Francisco Paisana 2950d26daa remove asn1 namespace from srsue files 5 years ago
Xavier Arteaga 25312e81b4 SRSUE: cell select RRC MEAS CFO is carried to PHY Cell object 5 years ago
Xavier Arteaga 6d355ab61e SRSUE: Fix HO initial CFO 5 years ago
Francisco Paisana 30ae2226c1 common interface for stack multiqueue tasks, background tasks and timers 5 years ago
Andre Puschmann 94c6034339 nas: rename start_attach_request to start_attach_proc
this is to better differentiate from "send_attach_request" that
only packs and send the actual attach request message. The
entire attach procedure may include PLMN search, etc.
5 years ago
Francisco Paisana e91a7ea513 removed stack-mac interface dedicated methods. We use now the task dispatch methods instead 5 years ago
Francisco Paisana de03c96c3b mac::process_pdus now uses the stack task dispatch interface 5 years ago
Francisco Paisana de3c28e52d added task dispatch capabilities to stack interface 5 years ago
Francisco Paisana 46a1be3e76 updated mac-rlc interface to use unique_byte_buffer 5 years ago
Francisco Paisana 45bc123967 remove manual tti counters from the rrc 5 years ago
Francisco Paisana 770f04b92a the rrc now only works with the stack latest tti, instead of mac's tti 5 years ago
Francisco Paisana d3f49d0e3c changed interface sync-stack to allow tti jumps > 1 5 years ago
Francisco Paisana ede09cb9b2 added dynamic CFI capability to the eNB scheduler 5 years ago
Xavier Arteaga e832769ae6 Updated copyright 5 years ago
Xavier Arteaga 5af89513eb use double precission for frequency in srsue and srsenb 5 years ago
Ismael Gomez e8b8c9922e
Add RF per-channel frequency band constraints (#1026) 5 years ago
Francisco Paisana 7548402632 change scell activation interface to use arrays. Added a method to the scheduler to get the current set of activated carriers 5 years ago
Xavier Arteaga 65711d06dc PRACH TA base default to 0 and apply clang-format 5 years ago
Xavier Arteaga e8f9bfc6ba Addition of PRACH TA correction 5 years ago
Andre Puschmann a8acd235f6 extend eNB MAC to support multiple CC per UE
- add tx/rx softbuffers for each CC that a UE might have
- make sure to call assign correct buffers when iterating
  over the CC for UL/DL grant assignment
5 years ago
Pedro Alvarez 96c82b3fc6 Moved PDCP configs to pdcp_config.h. Added `as_security_cfg_t` structure to hold access stratum keys.
Refactored PDCP, RRC and USIM accordingly.
5 years ago
Francisco Paisana 9ad80ee29f added initial_dl_cqi to the enb rr.cfg parser 5 years ago
Ismael Gomez bf6db92f04 Reset SRS properly on PHY defaults 5 years ago
Andre Puschmann f2e1bfa699 refactor naming for s/p/cell structs and {enb,ue}_cc_idx 5 years ago
Francisco Paisana f3c3c52fcd added ue_cc_idx to dci allocation 5 years ago
Andre Puschmann 2edecea33e fix SIB transmission for CA
Avoid double buffering of SIBs in MAC as this would require one buffer for each CC.
Instead, use byte_buffer managed by RRC that contains packed SIBs to avoid
double memcpy for each SIB tx. Only use MAC provided buffer in error case.

Also avoid MAC calling RLC for each SIB and call RRC directly.
5 years ago
Andre Puschmann 120ad76c63 refactor cell param handling and fix SIB transmissions
- move cell specific eNB params to cell list in rr.conf
- make sure DL EARFCN and DL freq can be used to manually overwrite a single cell config
- fix SIB packing and transmission for multi cell configs
- introduce cell list to MAC
- adapt default enb.conf.example and rr.conf.example
5 years ago
Ismael Gomez 4e12405fff
Remove radio_multi class and organize channels, ports and carrier buffers (#1019) 5 years ago
Xavier Arteaga da701cd82b SRSENB: Added PUSCH TA and EVM measurement. Some more PHY cleanup. 5 years ago
Pedro Alvarez bd3598f774 Moved srsEPC to the new S1AP library. Deleted liblte_s1ap.cc and liblte_s1ap.h. 5 years ago
Andre Puschmann 664170fec6 pcap: add CC index when writing PCAP 5 years ago
Pedro Alvarez afc209711c Fix jump depending on uninitialized variable in srsenb::sched_ue::set_bearer_cfg_unlocked 5 years ago
Francisco Paisana fed06138b9 moved rach_detected to stack thread. Created a more friendly interface to enqueue tasks in stack 5 years ago
Francisco Paisana ad9e126299 test for different enb_cc_idxs as pcell. Bug fixes 5 years ago
Xavier Arteaga f35ed14f76 SRSENB: refactored PHY common UE database 5 years ago
Andre Puschmann 9e113f8b27 pdcp: allow to configure security for rx/tx seperately
previously PDCP security (integrity and ciphering) could only
be enabled for both Rx and Tx at the same time.

this, however, caused an issue during the conformance testing in which,
in TC_8_2_1_1() for example, the eNB sends a SecModeCommand and a
RRC Reconfiguration in the same MAC TB. In this case, the eNB
needs to be able to enable DL security right after sending the SecModeCmd
in order to send the RRCReconfig encrypted. However, enabling UL security needs
to be postponed until after the SecModeComplete is received.

This patch allows to enable PDCP security for rx/tx independently if
that is needed. The default way is like before, enabling it for tx/rx at
the same time.
5 years ago
Francisco Paisana c29f08d8d5 refactored si acquisition procedure to use stack timers. Also created an interface that is going to be used for the task/timer handling 5 years ago
Francisco Paisana 22f51bb30b made cell select non-blocking using background threads 5 years ago
Ismael Gomez 4fb83ae26d Run configure_prach_params as a background task 5 years ago
Francisco Paisana d831522692 addition of SCell Activation CE Cmd to scheduler and MAC 5 years ago
Francisco Paisana 838053e8f2 added SCell Activation CE to scheduler. Handling this CE in the MAC is still missing 5 years ago
Xavier Arteaga 385102fa2d SRSENB: minor format, renaming and interface changes 5 years ago
Xavier Arteaga bf4ecc8064 Fix srsenb PHY and unit/component tests 5 years ago
Xavier Arteaga 231431f569 SRSENB: enabled CA PUCCH decode in eNb 5 years ago
Xavier Arteaga 40772eae19 SRSENB: UE PHY dedicated takes a flat configuration structure 5 years ago
Francisco Paisana c8fc0d91b3 changed the supported cc list to a vector of structs 5 years ago
Francisco Paisana 42b15c7bed use common ue_cfg interface to set the ue antenna info 5 years ago
Francisco Paisana 5f557700f2 changed the sched::ue_cfg(...) function to allow diff configurations. The RRC now activates all carriers after rrc reconf complete 5 years ago
Francisco Paisana b66bc3a6b0 create a sched_interface struct for antenna info dedicated. This way we remove the asn1 as a dependency in the scheduler 5 years ago
Francisco Paisana 88a22e7dbf support cc cfg from rrc 5 years ago
Francisco Paisana e86862611c update the scheduler interfaces to accommodate the configuration of multiple carriers 5 years ago
Francisco Paisana 2dc31ea440 added interface to configure multiple cells from the RRC 5 years ago
Andre Puschmann d3cb2eac83 add RLC suspend/resume to eNB interface 5 years ago
Xavier Arteaga fe199e6be2 SRSUE: Undo enable/disable RA procedure flag 5 years ago
Xavier Arteaga f8294fb9df SRSUE: RRC measurements refactor and more fixes 5 years ago
Ismael Gomez 52716f8716 Process HO complete in the background to avoid heap-after-use bug when PHY measurements are reported during a HO
rrc_meas refactor. Need to split commit

Fix typo

Temporal commit

Apply rx_gain_offset to neighbour cell measurements

srsLTE: modify TESTASSERT Macro to follow codeline

SRSUE: prevent RRC from having serving cell in neighbour list

SRSUE: DL HARQ does not need Time Aligment Timer. UL is disabled using PUCCH resources release

SRSUE: extend intra-frequency to CA SCell

SRSUE: fix confusing/ambiguous code in the RRC measurements and fix concurrency issue

SRSUE: remove RRC measurement report triggers when measurements are modified or HO succesful

SRSUE: fix compilation issues and Reest SIB indexes

Fixes sync using incorrect cell configuration when search cell does not find a correct cell

Small refactor to remove measurement report triggers always after removing measurement

SRSUE: Removed SIC PSS from UE

SRSUE: fix inter-frequency reestablishment and added more traces

SRSUE: Fix compilation issue
5 years ago
Xavier Arteaga c080cb3395 SRSUE: expose correct synch error parameter 5 years ago
Ismael Gomez 17f9ff326b Expose in-sync and out-of-sync constants to ue.conf 5 years ago
Ismael Gomez cc7dfefa1a
Fix logic for UL HARQ retx causing Msg3 adaptive retx to be identified as a new transmission 5 years ago
Xavier Arteaga b08c1f003e SRSENB: enabled multiple cells from rr.cfg 5 years ago
Francisco Paisana 5468189cd9 fix some variables' naming (e.g. x2_ap -> x2ap, e_rab -> erab) 5 years ago
Francisco Paisana ee24b59924 converted s1ap to new s1ap asn1 lib. Cleaned up bitstring packing/unpacking and bitstring types 5 years ago
Francisco Paisana b6c53d786b updated s1ap rrc interface with new asn1 lib types 5 years ago
Andre Puschmann 06afe74bef add virtual dtor in sched_interface base class 5 years ago
Andre Puschmann 6ec573987a remove default value for 'blocking' param from pdcp::write_sdu()
there were two defaults and one was shadowing the other. This
commit removes both defaults and uses blocking-mode for RRC
calls to PDCP in the UE. The eNB write_sdu() uses the non-blocking
mode by default. We have to review the eNB's RRC perhaps and use blocking
there too and non-blocking only for data plane
5 years ago
Xavier Arteaga c92dce71b7 srsLTE: AGC only uses boundaries for requesting gain to Radio 5 years ago
Xavier Arteaga 9c51af491a SRSUE: phy default arguments are set in constructor 5 years ago
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
5 years ago
Ismael Gomez 9546f3ccc4 Make PDCP/RLC write_sdu() calls non-blocking by default 5 years ago
Xavier Arteaga 1fa5a19a55 SRSUE: SRSUE: fix timealigmenttimer 5 years ago
Francisco Paisana 6b4488d5c1 added sending of enb status transfer from SeNB 5 years ago
Francisco Paisana 524c80a804 added handling of ho command 5 years ago
Pedro Alvarez e1cdd51eba Clang-formated before pull request 5 years ago
Pedro Alvarez 2e7ddef038 Continue to add discard_sdu to RLC interfaces. 5 years ago
Pedro Alvarez a77dd4e959 Starting to add boiler-plate code to support Discard at RLC. 5 years ago
Francisco Paisana ab3d7dd413 updated sched interface for multiple carriers 5 years ago
Francisco Paisana 3159a5b84a added cc_idx to dl_rach_info 5 years ago
Francisco Paisana cab9327b1a updated scheduler interfaces to accommodate multiple carriers 5 years ago
Xavier Arteaga 8dd1c59e18 Added amplitude and power conversions to dB and viceversa 5 years ago
Xavier Arteaga 67935d2b99 SRSUE: RRC blocks MAC RA procedure during reestablishment 5 years ago
Andre Puschmann b32a4cf294 add RLC AM NR PDU packing and unpacking 5 years ago
Francisco Paisana 73e06a0858 removed threads from eNB MAC 5 years ago
Francisco Paisana e8487211e4 changed the naming of mch to m1u in the gtpu class 5 years ago
Francisco Paisana 2512e0fd79 removed thread from GTPU MCH 5 years ago
Francisco Paisana 1400777639 removed 1st thread from GTPU 5 years ago
Francisco Paisana 0539d932b8 clang format on the interface files 5 years ago