Commit Graph

1274 Commits

Author SHA1 Message Date
faluco 62faef7c71 - Replaced all uses of the log::console method. 2020-09-29 17:38:13 +02:00
Francisco Paisana 942c28881d converted member method of list of cells in the enb to a free function 2020-09-25 15:03:58 +01:00
Francisco Paisana 3a924a1d80 avoid sending cellsToAddModList if cell offsets are zero 2020-09-25 15:03:58 +01:00
Francisco Paisana da70c0fdaf fix cellsToAddModList handling. Now the eNB always adds PCell+SCells as measObjects in the RRC Reconfiguration messages. It may also further include cellsToAddModList if they are provided in the rr.conf file 2020-09-25 15:03:58 +01:00
Francisco Paisana 89eeb5a355 use utility methods to find meas objs based on earfcn 2020-09-24 09:52:09 +01:00
Francisco Paisana 141960fbda remove unnecessary shared_ptrs and use value semantics instead for the var_meas_cfg of the different enb cells 2020-09-24 09:52:09 +01:00
Francisco Paisana 098172c911 fix cellIndex assignment in srsENB to not necessarily copy cell ID 2020-09-23 18:00:09 +01:00
Andre Puschmann b2576b34b9 enb.conf.example: comment PUSCH MCS limit in example 2020-09-23 14:54:35 +02:00
faluco f0d651ae8e - Fixed a leak in the MME class not releasing the static byte buffer pool.
- Now the pool gets destroyed on program exit using a unique_ptr.
- Removed manual cleanup() calls in all the code base to free the pool instance.
2020-09-22 18:00:50 +02:00
Francisco Paisana dcf5a727f2 do not send RRC release in case the eNB receives a S1AP UEContextRelease command and the UE is doing handover. Handle GTPU end marker 2020-09-22 16:51:45 +01:00
Francisco Paisana 13a5bfb525 - fix reestablishment reject transmission in the srsenb. For SRB0 SDUs, no RLC header is required, so we do not need to check in such case if there is enough space in the TB for the header.
- fix srsenb reestablishment check for UE context. The pci has to be accounted for the srsenb to understand that the UE trying to do reestablishment corresponds to one of its own
2020-09-18 22:18:05 +01:00
Xavier Arteaga 3e6c337b44 SRSENB: protect MAC softbuffers access
SRSENB: fix retransmissions
2020-09-16 20:07:20 +02:00
Xavier Arteaga b633c1abcd SRSENB: report MAC CSI measurements of all configured cells 2020-09-16 20:07:20 +02:00
Xavier Arteaga d0969a7ad9 SRSENB: review PHY UE DB assertions 2020-09-16 20:07:20 +02:00
Andre Puschmann 49655cd33c enb,s1ap: only log info in the s1ap connection procedure
the event is logged as error by the calling function already
2020-09-16 13:41:32 +02:00
Francisco Paisana 7e6487b6fa perform PUCCH+PRACH PRB reservation right at the start of a new TTI in the scheduler 2020-09-15 16:10:50 +01:00
Andre Puschmann d30822784f enb: refactor MAC PDU logging
* remove single line MAC PDU subheader logging in favor
  of to_string() helper that prints entire MAC header in single line
* log MAC PDU after parsing and packing
2020-09-14 20:09:46 +02:00
faluco 5e8a4c898d
Bring back the circular array object. (#1712) 2020-09-09 17:16:47 +02:00
Ismael Gomez 59b6301cc8 Remove legacy arbritrary 1s timeout for eNB requests 2020-09-08 22:28:35 +02:00
Andre Puschmann 87d4a5dc9c enb: use circular array to access TTI and HARQ based data structures
this makes use of the new circular array to remove the need
to apply the modulo operation when safely accessing the underlying
array.
2020-09-07 15:56:48 +02:00
yagoda b5a8d82058 -adding more prach tests to make test, removing some variables from stack
-PRACH time offset to TA unit conversion
2020-09-07 14:56:12 +01:00
Pedro Alvarez b59eca1b27 Wait until reestablish complete is finished to swap rnti in s1ap and gtpu. 2020-09-07 13:10:08 +01:00
Pedro Alvarez 6ec26ea627 Make sure that last_submitted_rx_sn is not 0 after handover. 2020-09-04 13:42:07 +01:00
Andre Puschmann 655c7ae8ae enb: fix warning when removing user
when removing a user from the eNB we iterated over all possible LCIDs
and set the buffer state to zero in the scheduler.

this resulted in following log entries:

13:57:23.856334 [RRC ] [I] Received Release Complete rnti=0x46
13:57:23.856352 [MAC ] [W] [ 5149] The provided lcid=6 is not valid
13:57:23.856362 [MAC ] [W] [ 5149] The provided lcid=7 is not valid
13:57:23.856368 [MAC ] [W] [ 5149] The provided lcid=8 is not valid
13:57:23.856371 [MAC ] [W] [ 5149] The provided lcid=9 is not valid
13:57:23.856376 [MAC ] [W] [ 5149] The provided lcid=10 is not valid

we now check if the bearer exits at RLC and only report those to the MAC.
2020-09-03 18:28:49 +02:00
Ismael Gomez e2154d2213 Renamed constants to SRSLTE and use SRSLTE_CFI macros 2020-09-03 10:45:06 +02:00
Ismael Gomez 38e2ffe414 Use Format1A when using CA and 15 PRB due to DCI size ambiguity 2020-09-03 10:45:06 +02:00
Ismael Gomez 3ee15191e7 Allow inactive cells to report CQI too during Reconfiguration 2020-09-03 10:45:06 +02:00
Ismael Gomez 51521ad8e4 Improved PDCCH blind search and fixed a few issues with ambiguous DCI size with Release 10 2020-09-03 10:45:06 +02:00
Andre Puschmann 1d1d52f3e6 enb: fix stopping of input thread
since we've used a blocking read of stdin (with std::getline())
we had a race when the eNB was stopped and the user was still making
keyboard inputs. this is because the we didn't wait until the input
thread was terminated until we stopped the eNB.

we know use poll to query stdin (getline has no timeout mechanism).
2020-09-02 16:29:43 +02:00
Xavier Arteaga af8898943f SRSENB: implement console cell_gain command
SRSENB: fix 5GNR compilation

SRSENB: fix override methods
2020-09-01 09:37:52 +02:00
Xavier Arteaga f14e699df4 SRSENB: fix MAC UE DB Read protection 2020-08-31 15:38:50 +02:00
Ismael Gomez 0afcea9d61
Do not allow empty TBS PUSCH. Account for CQI from inactive cells before activated. (#1667) 2020-08-31 12:53:18 +02:00
Francisco Paisana cbac98c89e fix ack delay checks in scheduler tests 2020-08-28 14:31:29 +01:00
Xavier Arteaga 080543815f Solved compilation warnings and enb_phy_test stop 2020-08-28 11:36:44 +02:00
Francisco Paisana fddcc3d8ea In the case of Handover, postpone the activation of the CQI and SR config present in the HO command for after the RA proc completion to the target eNB 2020-08-28 10:14:23 +01:00
Francisco Paisana 8a651c972e add scells to ho cmd 2020-08-27 13:43:18 +01:00
Xavier Arteaga 3aec23f7d8 SRSENB: calculate TA from PUCCH messages 2020-08-27 09:31:05 +02:00
Xavier Arteaga b3d66c98c3 SRSENB: tx gain per channel and fix bug 2020-08-27 09:31:05 +02:00
Francisco Paisana 13caf287f9 fix S1 Handover with UE CA. The HandoverPreparation message was not being filled correctly 2020-08-26 17:24:57 +01:00
Ismael Gomez a4835dd2c8
More accurate MCS reduction when PUSCH carries UCI (#1630) 2020-08-25 22:30:35 +02:00
Xavier Arteaga 029f36b449 srsLTE: added efficient integer resampler and srsue/srsenb integration 2020-08-25 16:19:52 +02:00
Francisco Paisana cc469fc7a3 fix reestablishment after S1 handover by setting ncc accordingly 2020-08-25 14:41:09 +01:00
Francisco Paisana 78a3370396 added comment explaining that we evenly distribute PUCCH resources between SR and CQI 2020-08-25 13:57:38 +01:00
Francisco Paisana 68acad25c6 altered default SR and CQI mapping in rr.conf parsing to avoid collisions 2020-08-25 13:57:38 +01:00
Francisco Paisana afb2674dd0 update enb.conf.example option for inactivity_timer 2020-08-25 11:47:24 +01:00
Francisco Paisana 1abec61498 allow inactivity timers below the recommended value 2020-08-25 11:47:24 +01:00
Francisco Paisana b47f8e6c1a increased rrc inactivity timer to avoid unnecessary pagings while
setting up an initial enb-ue iperf connection
2020-08-25 11:47:24 +01:00
Matt Johnson 00940f0dbf srsenb: Add inline documentation for sib7 in example configs 2020-08-25 11:28:01 +02:00
Matt Johnson e9eab89a6b srsenb/rrc: Avoid crash when CSFB requested but sib7 not configured
This commit addresses an issue where if a UE requests a release for
circuit switched fallback, but the sib7 carrier freqs info list is not
configured, the eNodeB would crash with a segfault due to attempting
to access an element from an empty list. This commit adds explicit
checking to handle the empty list case. If the list is empty, no
redirect carrier info is added to the connection release message and
the UE must scan for the fallback network itself.
2020-08-25 11:28:01 +02:00
Xavier Arteaga 0e96ef3df0 Channel emulator takes SNR as input parameter 2020-08-24 10:46:11 +02:00
Francisco Paisana 0036941af4 added extra state to S1 target enb mobility FSM. Accounts for out-of-order arrival of MMEStatusTransfer. Also, now we avoid creating DRBs before the MMEStatusTransfer 2020-08-22 09:40:09 +01:00
Andre Puschmann 5e40bfe72c mac_pdu: unpack and print BSR index as well as BSR value in bytes
before the BSR was extracted but the actual index (between 0 and 63)
was not stored but directly converted into bytes.

for log parsing and debugging it is easier to follow the index
value. this patch therefore adds both values to the log message
and extends the API accordingly.
2020-08-21 12:03:07 +02:00
Francisco Paisana bb5dd92dca implemented s1 handover cancellation procedure to force the target enb to release the ue ctxt 2020-08-21 00:05:58 +01:00
Francisco Paisana 8c9e596f89 refactored s1ap handover request interface. cleaned up rrc tenb s1 handover code 2020-08-21 00:05:58 +01:00
Francisco Paisana b6baf1a098 fix mobility warnings and s1 handover required message preparation 2020-08-21 00:05:58 +01:00
Andre Puschmann 8e631131c0 s1ap: fix uint64_t printf for 32bit machines 2020-08-19 11:57:04 +02:00
Francisco Paisana 7cd4f45d62 fsm refactor.
- avoid triggering directly a subfsm
- improved metafunctions
- other cleanups
2020-08-18 16:07:21 +01:00
Francisco Paisana 2d55691173 extended rrc mobility test to check security configuration of pdcp bearers 2020-08-18 13:55:17 +01:00
Francisco Paisana 42e8453c00 fix security key setup for s1 handover 2020-08-18 13:55:17 +01:00
Francisco Paisana 083344579e fix s1 ho configuration of ue capabilities and security capabilities 2020-08-18 13:55:17 +01:00
Francisco Paisana 5d1343fe75 implemented S1 bearer status transfer 2020-08-18 13:55:17 +01:00
Francisco Paisana db8af399f8 extended rrc tenb s1 handover test. implemented layer reconfig during s1 handover 2020-08-18 13:55:17 +01:00
Francisco Paisana 7605c7df23 added s1ap handover notification, fixed s1ap asn1 bug, and fixed bad fields for admitted erabs in ho req ack 2020-08-18 13:55:17 +01:00
Francisco Paisana 841b884796 remove extern C flags from common_helper.h 2020-08-18 13:54:23 +01:00
Francisco Paisana 5be5409f62 scaling governor function moved to common header file 2020-08-18 13:54:23 +01:00
Francisco Paisana 087805d222 add warning if scaling governor is not performance mode 2020-08-18 13:54:23 +01:00
Francisco Paisana 9146e6ddf1 change method name to resize intervals 2020-08-14 15:06:06 +01:00
Francisco Paisana 4457bbda7e added new asserts to interval interface 2020-08-14 15:06:06 +01:00
Francisco Paisana 8b174ce2f4 changed interval interface to disallow interval::stop < interval::start via an assertion 2020-08-14 15:06:06 +01:00
Francisco Paisana c1755727d7 changed interval method names, and added comments and assertions 2020-08-14 15:06:06 +01:00
Francisco Paisana 20b69fb22e substitution of ul_alloc_t for prb_interval 2020-08-14 15:06:06 +01:00
Francisco Paisana 3eb1b83a43 updated allocate crnti method in mac to accoutn for new phy interface 2020-08-14 14:28:56 +01:00
Francisco Paisana 26f46ea067 add S1 Handover Request handling in target eNB 2020-08-14 14:28:56 +01:00
Francisco Paisana caf862c99f moved expected, bounded_bitset, move_callback to adt folder. created a test for bitset 2020-08-13 13:13:34 +01:00
Ismael Gomez 382811e10e
Update S1AP RNTI context when doing Reestablishment (#1582) 2020-08-12 23:48:20 +02:00
faluco 072e84cec8 - Simplified the usage of span now with implicit constructors as it should be.
- Added overload for generic containers that have size and data members like vector.
- Removed unnecessary uses of make_span.
2020-08-11 19:47:26 +01:00
faluco eb4b2d4e43 - Added a clarification comment on why to use make_span.
- Moved byte_buffer utilities to common.h thus breaking the dependency of ADT to COMMON.
- Fixed compilation failures in tests.
2020-08-11 19:47:26 +01:00
Francisco Paisana 76a62909c1 use of span type for universal array views 2020-08-11 19:47:26 +01:00
Francisco Paisana a6c3144d92 remove extra byte from rrc dl_dcch and dl_ccch messages 2020-08-11 14:48:12 +01:00
faluco 0a01bd4e1b - Fix a race condition where the prach struct was being free while the prach worker was still running.
This could cause heap corruption making the enb_phy_test to fail sometimes.
2020-08-05 16:48:53 +02:00
faluco 51dc82a735 - Fix missing static tag in add_library, that could cause linker issues in srsenb. 2020-07-31 22:20:16 +02:00
faluco cfd3f51931
Import of srslog into srsepc and srsenb. (#1574)
* - Import of srslog into srsepc and srsenb.
* - Removed logger_file and logger_stdout files.
2020-07-30 19:17:23 +02:00
Xavier Arteaga 55a208ede8 SRSENB: added PRACH worker plot 2020-07-28 09:31:34 +02:00
Xavier Arteaga a1a58507c1 SRSENB: Added eNb CC index to PRACH log trace 2020-07-28 09:31:34 +02:00
Xavier Arteaga 443378adcb SRSENB: Add GUI window for every cell/carrier 2020-07-28 09:31:34 +02:00
Xavier Arteaga bcc6c3e449 SRSENB: quit without initiating more components if radio fails to initiate 2020-07-28 09:31:34 +02:00
Ismael Gomez dda91b14f7 Remove duplicate add_rnti() function since already done in set_config 2020-07-27 17:58:06 +02:00
Ismael Gomez b3d24ba420 Do not set cells to inactive during reconfiguration if already active 2020-07-27 17:58:06 +02:00
Xavier Arteaga fda1d040e7 SRSENB: implement PUSCH threshold for UCI bits 2020-07-27 16:44:15 +02:00
Andre Puschmann ce5129467c correct default value of PHY threads in eNB and UE examples 2020-07-21 11:59:45 +02:00
Francisco Paisana b50f70e420 check if cqi is pending in all carriers to decide whether mcs needs to be reduced in PUSCH 2020-07-21 10:51:11 +01:00
Francisco Paisana 3f439cc947 account for current cqi config struct update in scheduler interface 2020-07-21 10:51:11 +01:00
Francisco Paisana 35fa5346b9 only reduce mcs if the current tti requires uci 2020-07-21 10:51:11 +01:00
Francisco Paisana 58c4bcf288 reduce mcs for UL grants carrying UCI 2020-07-21 10:51:11 +01:00
Xavier Arteaga 0192130742 SRSUE/SRSENB: UCI bits are carrier by the lowest serving cell index
SRSENB: Fix UCI in lowest serving cell index PUSCH transmission
2020-07-15 07:34:14 +02:00
Andre Puschmann 4fd5395903 change default EARFCN to 3350 or 2.68GHz
as 3400 or 2.685 GHz is on the edge of band 7, some phones won't connect
to a 20 MHz cell on this EARFCN.

In order to simplify testing with other bandwidths we change the default EARFCN.
2020-07-14 17:25:08 +02:00
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
2020-07-13 17:05:28 +02:00
Xavier Arteaga f39abe0094 SRSENB: fix MAC pending PHY config 2020-07-13 15:27:46 +02:00
Francisco Paisana 5e06430455 removal of stack handler interface 2020-07-13 11:19:25 +01:00
Francisco Paisana 7c364070ee creation of task scheduler interface for classes/functions running outside the main control thread 2020-07-13 11:19:25 +01:00
Francisco Paisana 039977aeb5 renamed interfaces 2020-07-13 11:19:25 +01:00
Francisco Paisana 1a9c04bf2f use of task scheduler handle in pdcp 2020-07-13 11:19:25 +01:00
Francisco Paisana e9f34c7613 using task scheduler in enb stack 2020-07-13 11:19:25 +01:00
Francisco Paisana 4f5e65781f created task scheduler class to deal with timers, thread pool, multiqueue, internal tasks 2020-07-13 11:19:25 +01:00
Pedro Alvarez 89b6e0f714 Send paging message to all cells. 2020-07-10 10:14:08 +01:00
Francisco Paisana fe8f8be62d apply separate cqi configurations to scells 2020-07-09 18:56:01 +02:00
Francisco Paisana e550bf726d updated fsm to allow enter methods to receive event that caused them 2020-07-06 14:25:03 +01:00
Francisco Paisana 504e3a1b7a fix max retx configuration in scheduler and updated tester to catch the error 2020-07-03 17:34:37 +01:00
Andre Puschmann 4c667bd478 rrc_ue: improve logging of CA activation
* check Pcell has configured Scells when entering function
* log if UE doesn't support CA (only if scells are configured)
* log info about CA activation only after all checks have passed
* fix typo
2020-07-03 16:42:46 +02:00
Francisco Paisana 84f34bc736 changed to a label filtering approach for ctest 2020-07-02 15:56:59 +01:00
Francisco Paisana ebb8f18000 set some extra tests with the prefix "long_" 2020-07-02 15:56:59 +01:00
Ismael Gomez e378a45db0 Reorganized priorities to avoid GW starve the CPU 2020-07-02 11:52:14 +02:00
Pedro Alvarez 5ed6c18ac7 Copy E-UTRA capabilities to new RNTI in reestablishment. 2020-07-02 09:05:58 +01:00
Francisco Paisana d7a0fe4060 improve log messages for CA 2020-07-01 11:54:06 +01:00
Francisco Paisana 1899c468d3 updated rrc mobility test 2020-06-29 20:32:23 +01:00
Francisco Paisana 97d20ca579 remove obsolete bearer cfg methods 2020-06-29 20:32:23 +01:00
Francisco Paisana 0929a9de62 created rrc mac_controller class to handle the configuration of scheduler 2020-06-29 20:32:23 +01:00
Francisco Paisana 7ab4b5f723 fix long bsr handling 2020-06-29 17:31:07 +01:00
Francisco Paisana af58597647 fix mac tb building in scheduler 2020-06-29 17:31:07 +01:00
Francisco Paisana cb7f620254 created separate class to manage bearers buffers/status reports in the scheduler 2020-06-29 17:31:07 +01:00
Pedro Alvarez 45b8392a4c Added user warning to invalid configuration of RRC inactivity timer. 2020-06-26 12:19:57 +01:00
Pedro Alvarez 8e00febb1d srsENB: Derive inactivity timeout from T310 and T311 and N310. 2020-06-26 12:19:57 +01:00
Francisco Paisana 2cb80f9bf3 remove rnti in mac/phy in staged manner. First the "upper mac", and then the "lower mac" and phy 2020-06-26 11:59:06 +01:00
Ismael Gomez 493b7ea2da Remove SNR threshold based link failure detection 2020-06-25 22:57:31 +02:00
Francisco Paisana ced1afdbe7 check supported band combination r10 to determine if a UE supports CA 2020-06-25 21:13:11 +01:00
Francisco Paisana 790b32f6f5 fix CA ue category check 2020-06-25 21:13:11 +01:00
Francisco Paisana 2de702f50e disable carrier aggregation when ue release is below 10 or category is below 5 2020-06-25 21:13:11 +01:00
Xavier Arteaga 31d7124ae7 SRSENB: Added initial PUCCH format 3 default for more than 2 serving cells 2020-06-25 17:42:56 +02:00
Francisco Paisana e3e9bbcd62 fix PNF PDU size cutting 2020-06-24 23:28:53 +01:00
Francisco Paisana 421d5f3852 merge next 2020-06-24 23:28:53 +01:00
Francisco Paisana 86adbfceae fix nr stack activation 2020-06-24 23:28:53 +01:00
Francisco Paisana 167c83d02c set gnb coreless default tun itf 2020-06-24 23:28:53 +01:00
Francisco Paisana e6ef201cb0 disable warning when there is no space in the scheduler PDCCH 2020-06-24 14:25:40 +02:00
Francisco Paisana 535d4b70f3 avoid capturing callback parameters by reference to avoid dangling pointers 2020-06-19 15:10:00 +01:00
Francisco Paisana d7138b7752 fix nr activation guards 2020-06-19 13:33:16 +01:00
Francisco Paisana ddff68a546 add ifdef guards for NR code 2020-06-18 23:37:26 +01:00
Francisco Paisana 6735199728 fix nr optional linking 2020-06-18 23:37:26 +01:00
Francisco Paisana b68ef69ab4 fix comments and other minor issues 2020-06-18 23:37:26 +01:00
Francisco Paisana 42969ad992 add tb size as argument to gnb 2020-06-18 23:37:26 +01:00
Francisco Paisana f0874b780b add radio_base/null classes 2020-06-18 23:37:26 +01:00
Ismael Gomez e26653c87f Move tti_clock() call from worker_end to txrx class in enb 2020-06-18 15:15:12 +01:00
Francisco Paisana 64e8f5e3ed update license year 2020-06-18 12:41:54 +01:00
Pedro Alvarez 9c1a7d2cf1 Removed get_bearer_status in PDCP. Renamed get_state/set_state to
get_bearer_state/set_bearer_state.
2020-06-18 12:13:57 +01:00
Pedro Alvarez 208a539499 Split PDCP tx_count state variable into tx_hfn and next_pdcp_tx_sn
variables.
2020-06-18 12:13:57 +01:00
Pedro Alvarez fb088a8c54 Restoring PDCP state only when using RLC AM. 2020-06-18 12:13:57 +01:00
Pedro Alvarez 66d4f320e5 Added intereface to set PDCP state after reestablishment. 2020-06-18 12:13:57 +01:00
Pedro Alvarez 217f16d137 Getting PDCP state on re-establishment. 2020-06-18 12:13:57 +01:00
Pedro Alvarez 33567d81db Added interface to get internal PDCP state. 2020-06-18 12:13:57 +01:00
Xavier Arteaga e0e8405285 SRSUE: initial scell sync
SRSUE: SCell Synch feedbacks delay

SRSUE: Implemented SCell Radio offset correction
2020-06-18 09:51:51 +02:00
Xavier Arteaga f04cf2090a Integrates number of samples in radio buffer
Fix minor issue

Radio: Fix minor bug and add unit test
2020-06-16 11:00:51 +02:00