Commit Graph

1429 Commits

Author SHA1 Message Date
Pedro Alvarez 2f0125ef4e Fix issue recovering key state, when the first HO fails (specifically, is_first_ncc was not recovered). Minor improvements in key logging. 2020-10-01 18:48:07 +01:00
Francisco Paisana 137e554eb3 reestablish pdcp bearers is required in case of AM bearers 2020-10-01 16:57:08 +01:00
Francisco Paisana 4c88404801 fix measurement report handling in case of intra enb handover 2020-09-30 18:03:03 +01:00
Francisco Paisana 4b1626bf24 fix eutra packing recovering during reestablishment in the srsenb 2020-09-30 10:20:55 +01:00
faluco dfeed52514 - Rename out_stream function to console. 2020-09-29 17:38:13 +02:00
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
Xavier Arteaga de230826b9 Added string helper for removing spaces and parsing list
Fix

Fix string parser
2020-06-16 11:00:51 +02:00
Xavier Arteaga 89b24b54e5 Refactored radio class for acommodating multiple RF devices 2020-06-16 11:00:51 +02:00
Andre Puschmann e2146e90ad enb: remove usleep after sending RRC Connection Release to UE
this cause a "dead-lock" with ZMQ because it made the stack
thread sleep for 50ms. With a sync-queue size of 1 (now the default
using ZMQ) the zmq-based radio to timeout. as a result
the rx/tx between UE and eNB stopped so the UE never reached
RRC Idle state.
2020-06-14 21:44:16 +02:00
Francisco Paisana cd0202aeaf use alternative method for conres CE scheduling 2020-06-13 13:23:53 +01:00
Francisco Paisana df1f8836b1 fix issue #1418 by changing the ConRes CE scheduling mechanism 2020-06-13 13:23:53 +01:00
Andre Puschmann 06d31f46ba enb: set maximum allowed TTI difference between PHY and Stack TTI clocks for ZMQ
this fixes the issue where PHY and MAC threads, and the processing
of events therein, are drifting apart too much.

This patch effectivly enforces a strong wait on the PHY if the
stack thread is too slow in processing its tasks.

For RF hardware the default is still 8192 TTIs, for ZMQ 1 TTI is used.
2020-06-12 21:37:10 +02:00
Andre Puschmann a1d64c1efe enb: improve error message when RAR cannot be sent 2020-06-12 21:37:10 +02:00
Andre Puschmann 1f73e6ae69 multiqueue: add option to create queue with non-default capacity
this allows to create a queue that has a non-default capacity
currently this is 8192, but the value might now be suitable in some
cases like for TTI sync events
2020-06-12 21:37:10 +02:00
Francisco Paisana 3c2e3dbdbf added latest mac nr updates 2020-06-11 15:50:36 +01:00
Francisco Paisana 057980d1fb use common log helper macros 2020-06-11 15:50:36 +01:00
Francisco Paisana 27e5d98ef9 added vnf phy nr 2020-06-11 15:50:36 +01:00
Francisco Paisana 6509399ed3 fix for move-only events 2020-06-11 10:37:35 +01:00
Francisco Paisana 611a1c667f remove the requirement that pusch grant for uci data being a newtx 2020-06-10 22:22:41 +01:00
Francisco Paisana 1393bd11fa avoid using PUCCH for SCell DL allocations 2020-06-10 22:22:41 +01:00
Francisco Paisana 2f421d3e30 added cqi configuration in ca testing 2020-06-10 22:22:41 +01:00
Francisco Paisana d859c33035 added check for UCI collision during DL scheduling for CA 2020-06-10 22:22:41 +01:00
Francisco Paisana 53b85691b5 moved sf result to sched class. This way each carrier has a view to the results of the remaining carriers in the same subframe 2020-06-10 22:22:41 +01:00
Francisco Paisana 5d33acdb53 changed name of sched_ue_carrier class 2020-06-10 22:22:41 +01:00
Ismael Gomez 60b5fb9a74 Refactor variable name 2020-06-10 21:30:39 +02:00
Ismael Gomez edb1fcc892 srsENB: Apply new PUCCH configuration when setting dedicated config 2020-06-10 21:30:39 +02:00
Pedro Alvarez 9df40c3af0 Added debug GTPU print. 2020-06-10 15:08:32 +01:00
Pedro Alvarez 20c5ea7d17 Fix warning with GCC 10.1 with EEA/EIA prefrence list. 2020-06-10 15:08:32 +01:00
Andre Puschmann 8512c10286 create simple helper method to log command line arguments 2020-06-09 20:55:38 +02:00
Andre Puschmann db7478e9f0 enb: fix eNB shutdown if layers cant be initialized
this fixed #1392 which ocurrured because we were going on with the eNB
init even if the radio failed to initialize
2020-06-08 10:25:42 +02:00
Xavier Arteaga 039f2164a6 Initial Sounding Reference Signals implementation 2020-06-08 09:33:51 +02:00
Francisco Paisana 857c4de420 extended handover test to check for correct SR/CQI resource setup 2020-06-06 12:16:00 +01:00
Francisco Paisana 7ce23e0afb extend handover intraenb handover fsm to account for multiple C-RNTI CEs 2020-06-06 12:16:00 +01:00
Francisco Paisana 92c4b3f226 fix non-final sdap/mac/rlc dtor error 2020-06-05 15:10:11 +01:00
Francisco Paisana e4a91a207d remove unused variables 2020-06-05 15:10:11 +01:00
Francisco Paisana b843585abc add srsgnb stack class 2020-06-05 15:10:11 +01:00
Francisco Paisana f5174415f8 add srsenb::sdap class 2020-06-05 15:10:11 +01:00
Francisco Paisana b0717cd560 remove unecessary macros 2020-06-05 15:10:11 +01:00
Francisco Paisana cea2fe797d add rrc nr test 2020-06-05 15:10:11 +01:00
Francisco Paisana 613003ac53 add srsenb::rrc class 2020-06-05 15:10:11 +01:00
Francisco Paisana 0916e29de4 add srsenb::rlc_nr class 2020-06-05 15:10:11 +01:00
Francisco Paisana 9001117b2d add srsenb::pdcp_nr class 2020-06-05 15:10:11 +01:00
Xavier Arteaga 6398cd841d SRSENB: PHY reports MAC all UL grants 2020-06-05 10:47:34 +02:00
Xavier Arteaga fbce38dc27 SRSENB: PHY tries to remove always the RNTI in PHY-lib. No error messages prompted. 2020-06-03 19:19:33 +02:00
Francisco Paisana 6908e0fab1 disabled all UL in the MAC during handover, including scheduling requests 2020-06-03 11:28:44 +01:00
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.
2020-06-02 11:19:17 +01:00
Francisco Paisana 452c043370 created a global map of lcids to srbs/drbs for NR 2020-05-29 14:11:23 +01:00
Francisco Paisana 6a164e032d added srsue::rrc_nr 2020-05-29 14:11:23 +01:00
Xavier Arteaga 9f5aef30e6 SRSENB: fix DL ACK decoding 2020-05-28 10:29:51 +02:00
Francisco Paisana 43635c3fa1 added cqi cfg to handover command 2020-05-26 14:46:41 +01:00
Francisco Paisana 026628a84f use of reestablishment method to reset the RLC bearers during handover 2020-05-26 14:46:41 +01:00
Ismael Gomez 6a19a19f00 Fix memory fault during exiting and waiting for worker 2020-05-26 14:55:37 +02:00
Francisco Paisana 9a0ea6e08c use log_helper for log macros 2020-05-26 10:02:08 +01:00
Francisco Paisana edba7f57e4 corrected mac_nr_pdu includes 2020-05-26 10:02:08 +01:00
Francisco Paisana 0b701022a3 added ue nr mac 2020-05-26 10:02:08 +01:00
Francisco Paisana d7b35ba7d1 added nr mac 2020-05-26 10:02:08 +01:00
Andre Puschmann a0e4b18507 enb_mac: pre-allocate UE object for quicker PRACH/RAR handling
we've seen long delays in handling PRACH on low-power devices
such as the RPi4. This was mainly caused by long delays
in creating the UE object on the fly during PRACH handling.

This patch pre-allocates one UE object that is then used
during the PRACH.
2020-05-25 13:12:19 +02:00
Ismael Gomez 270c7ce9dc Separate PHY interface to add rnti and pregenerate sequences. Calculate the sequences on the reception of ConnectionSetup instead of PRACH 2020-05-25 13:12:19 +02:00
Francisco Paisana b4b5cd7cd6 added nr gnb and ue interfaces 2020-05-25 11:48:16 +01:00
Francisco Paisana d36ae722d5 added extra debug logs 2020-05-22 16:46:42 +01:00
Ismael Gomez a1f0f8de35
Add callback to RLC to indicate BSR for TX and reTX queues (used in ENB) (#1361) 2020-05-22 11:20:33 +02:00
Francisco Paisana 860174a819 remove comment and changed handover_type enum 2020-05-21 16:45:16 +01:00
Francisco Paisana b37923312e added intraenb handover fsm and respective test 2020-05-21 16:45:16 +01:00
Francisco Paisana 65ef16c7f1 void sending rrc connection release as msg4 2020-05-20 18:43:46 +01:00
Francisco Paisana 61680d64d7 move rrc::ue to separate file 2020-05-19 18:54:55 +01:00
Xavier Arteaga 9d5c2d70df SRSENB: Fix PHY reconfiguration for HO
Minimal aesthetic change
2020-05-19 16:38:55 +02:00
Francisco Paisana 7713df2cf9 fix fixed mcs issue 2020-05-15 14:29:17 +01:00
Pedro Alvarez 51f8ba60da Make MBMS MCS configurable for the eNB. 2020-05-15 10:58:42 +01:00
Francisco Paisana 04961148e9 removed old code to compute meas obj diffs 2020-05-14 20:51:16 +01:00
Francisco Paisana b8339031f6 updated code for crnti update during handover and reset of the mac 2020-05-14 20:51:16 +01:00
Francisco Paisana 45cd893e21 update handover test 2020-05-14 20:51:16 +01:00
Francisco Paisana e8aff22e1b using new rrc obj id util methods in handover code 2020-05-14 20:51:16 +01:00
Francisco Paisana f43985b6cd small updates for testing handover and configuring the rrc 2020-05-13 21:02:53 +01:00
Francisco Paisana f2af447b1a use of unique_byte_buffer for sib scheduling to allow for padding 2020-05-13 14:38:21 +01:00
Francisco Paisana 598bad1f0e changed rrc ue cfg files names 2020-05-13 12:39:58 +01:00
Francisco Paisana ea5ba93f25 changed file names 2020-05-12 21:04:57 +01:00
Francisco Paisana ad03d7caf7 move position of security cfg 2020-05-12 17:28:11 +01:00
Francisco Paisana d43448e8a1 created security cfg handling class for rrc ue and refactor bearer_list handling 2020-05-12 17:28:11 +01:00
Francisco Paisana 09cafaa4bb update ded_info_nas_list handling 2020-05-12 14:17:57 +01:00
Francisco Paisana 2e4e22dc68 revert clang-format change 2020-05-12 14:17:57 +01:00
Francisco Paisana 1ac91f2f93 updated erab_setup_test 2020-05-12 14:17:57 +01:00
Francisco Paisana 0515229240 perform mac bearer addiction via the bearer handler class 2020-05-12 14:17:57 +01:00
Francisco Paisana 6bcb5910c9 usage of new bearer list cfg class for srb1/srb2 setup 2020-05-12 14:17:57 +01:00
Francisco Paisana ca0db7fffe created generic methods to apply toaddmodlist and removelists. 2020-05-12 14:17:57 +01:00
Francisco Paisana c65c081b51 created separate files to handle rrc bearers 2020-05-12 14:17:57 +01:00
Francisco Paisana dbcaec6689 avoid dangling reference 2020-05-11 12:44:08 +01:00
Francisco Paisana 71520d681a changes in pucch res allocation api to allow replacing p/scells 2020-05-11 12:44:08 +01:00
Andre Puschmann c892ae56be rrc_cell_cfg: fix potential div by zero
similar fix has been applied for SR resources
2020-05-09 14:01:34 +02:00
Andre Puschmann 248e2b5f7e rrc: fix potential division by zero 2020-05-08 14:15:10 +02:00
Xavier Arteaga b11ffaee7e SRSENB: fix channel emulator for multiple channels 2020-05-07 13:09:46 +02:00
faluco dacf265d20 Fix typo. 2020-05-07 10:10:24 +02:00
faluco 7ff251f112 - Fixed warnings caught by Clang 9.0.0 2020-05-07 10:10:24 +02:00
yagoda 210eae8e7e fixing small rr.conf config error 2020-05-06 11:33:39 +02:00
Francisco Paisana aab989022d avoid forward declarations 2020-05-05 17:33:03 +01:00
Francisco Paisana 08e1f01c72 allocation of the sr/cqi/pucch_cs resources takes place at a frequency basis now 2020-05-05 17:33:03 +01:00
Francisco Paisana ee994468f7 separate sr and pucch_cs allocation from rrc class 2020-05-05 17:33:03 +01:00
Francisco Paisana b16c7c1cfa created separate cqi res allocation types 2020-05-05 17:33:03 +01:00
Francisco Paisana 4b525127c9 created separate cell ctxt common list 2020-05-05 17:33:03 +01:00
Francisco Paisana 94b8dd39a9 cleanup of sched testing cfg generation 2020-05-05 14:35:40 +01:00
Francisco Paisana d5f1581759 remove old tti counter class 2020-05-05 14:35:40 +01:00
Francisco Paisana 3c29bce014 apply segmentation break check to newtxs only. Allow configurable cqi 2020-05-05 14:35:40 +01:00
Francisco Paisana c75e31db03 added random cqi to sched tester 2020-05-05 14:35:40 +01:00
Francisco Paisana d40b4040b0 scell activation as part of the single ue tester 2020-05-05 14:35:40 +01:00
Francisco Paisana 0db2bd1cb5 moved test_ra to ue test class 2020-05-05 14:35:40 +01:00
Francisco Paisana 5d41fd0aec renamed ue test structs 2020-05-05 14:35:40 +01:00
Francisco Paisana 1e56082214 use ul/dl harq info storing at the ue side to evalue info stored in the dl/ul sched result dcis 2020-05-05 14:35:40 +01:00
Francisco Paisana 500a7f6357 created new separate ue class in sched tester to handle acks and harq tests 2020-05-05 14:35:40 +01:00
Pedro Alvarez 2ea78c8feb Added configuration options for stack logging. 2020-05-05 14:34:47 +01:00
yagoda 3f99e40159 -changing rlc so that mrb is never removed when going to idle
-adding metric counting to eMBMS MAC so that the count is not lost during eMBMS subframes
2020-05-04 17:50:57 +02:00
Xavier Arteaga d94078d543 Minor changes
Fix UE sequence generation

minor change
2020-05-01 21:07:33 +02:00
yagoda 94f62b54ad fixing some bugs in embms with new stack and cc scheduler in enodeb 2020-05-01 21:06:26 +02:00
Ismael Gomez 8c82203c74 Removed unused pregenerate option 2020-05-01 21:05:00 +02:00
Andre Puschmann 8d7a336bee enb: fix ok/nok packets
fix ok/nok counter, since we do not count the correctly
decoded packets explicitly, we need to calculate them from
the total number of pkts minus the failed pkts to avoid this:

------DL--------------------------------UL------------------------------------
rnti cqi  ri mcs brate   ok  nok  (%)  snr  phr mcs brate   ok  nok  (%)   bsr
  46 6.2   0 0.0     0    0    0   0% 0.11  0.00.10     0  900  900 100% 15.3k
  46 7.9   0 0.0   504    1    0   0% 0.11  0.00.10     0  900  900 100% 15.3k
2020-05-01 11:05:19 +02:00
Francisco Paisana b69b274c63 comment removed 2020-04-30 18:34:25 +01:00
Francisco Paisana 442ce0d7b0 fix cqi allocated check in rrc::ue 2020-04-30 18:34:25 +01:00
Francisco Paisana 6f02c067b3 fix cell ptr assignment 2020-04-30 18:34:25 +01:00
Francisco Paisana 5ef6031b44 added ability to use single-carrier if we are unable to allocate resources for the scells 2020-04-30 18:34:25 +01:00
Ismael Gomez a0163ae30a Use all CQI/SR resources by default 2020-04-30 15:52:39 +02:00
Francisco Paisana 439193e4b0 added code to handle fail to alloc ue cqi and sr 2020-04-30 13:19:11 +01:00
Xavier Arteaga f200c01566 SRSENB: PUSCH EVM measure is optional and disabled by default 2020-04-29 21:11:30 +02:00
Pedro Alvarez 6a65cb0624 Accept both decimal and hexadecimal for enb_id 2020-04-29 21:02:15 +02:00
Francisco Paisana 5f4b0b1e0c added default sf_mapping for cqi and sr in the enb parser 2020-04-29 12:30:44 +01:00
Francisco Paisana de4d58d8fe fix coverity scan issues in master 2020-04-29 11:17:00 +02:00
Ismael Gomez 485771749e Allocate Scell resources when creating it rather than at UE creation 2020-04-29 10:11:43 +01:00
Ismael Gomez c0054140e9 Configure properly PUCCH CS mode for CA in ConnectionReconfiguration. Allocate n_pucch_cs resource and cqi/sr at rrc::ue constructor 2020-04-29 10:11:43 +01:00
Francisco Paisana 96f565d4f2 disabled handover tests, as handover is disabled in the current release 2020-04-28 14:57:49 +01:00
Francisco Paisana 0fc36d44d7 disable handover altogether to avoid crash 2020-04-28 14:57:49 +01:00
yagoda faf1cf6975 limiting prach search space to number of prachs set in sib2 2020-04-28 14:40:20 +02:00
Francisco Paisana 38f848ecdf fix type name deducing for clang 2020-04-27 22:19:08 +01:00
Francisco Paisana 12b2ea7dde remove warnings for base classes with no virtual dtors 2020-04-27 22:19:08 +01:00
Francisco Paisana b8e6ba02e4 remove warnings related to unused vars and fwd declarations with trivial dtors 2020-04-27 22:19:08 +01:00
Francisco Paisana df06443470 use c++ variadic template instead of variadic function 2020-04-27 22:19:08 +01:00
Xavier Arteaga eaec5efde5 Fix enb_phy_test 2020-04-27 21:03:44 +02:00
Xavier Arteaga d7e7399e7b srsENB: PHY configuration in two stages 2020-04-27 21:03:44 +02:00
Xavier Arteaga 1bbf1caabc Reverted PUCCH3 default CA DL HARQ method 2020-04-27 21:03:44 +02:00
Xavier Arteaga b9583d4182 Fix Extended CSI request bits in DCI 2020-04-27 21:03:44 +02:00
Xavier Arteaga a59884a14a SRSENB: configure PUCCH3 as default HARQ feedback for CA 2020-04-27 21:03:44 +02:00
yagoda 8e0b106c22 fixing some warnings from LGTM 2020-04-27 20:59:40 +02:00
Pedro Alvarez 218531b418 Making sure the eNB only sends S1AP context release requests if it has a MME-UE-S1AP-ID assigned. 2020-04-27 11:31:14 +01:00
Andre Puschmann 3aa0179caf {ue,enb}.conf.example: add zmq examples to config
the examples are commented but by just uncommenting those
two lines the user should be able to run a eNB and UE on the same
machine in SISO mode over ZMQ
2020-04-27 11:03:48 +02:00
Jason Tang 7b7308ac1b Fix CSFB 2020-04-25 11:22:42 +02:00
jmasterfunk84 7f51fcb419 Update s1ap.cc 2020-04-24 15:29:05 +02:00
Francisco Paisana b506e29b72 removed common ce_typeenum 2020-04-24 11:55:53 +01:00
Francisco Paisana 372126deac created ul-sch and mch lcid types 2020-04-24 11:55:53 +01:00
Francisco Paisana 367a190829 created dl-sch lcid type 2020-04-24 11:55:53 +01:00
Xavier Arteaga 6c15feeff3 Fix compilation 2020-04-22 18:01:43 +02:00
Xavier Arteaga 77d5dedddc Fix LGTM warnings and recommendations 2020-04-22 18:01:43 +02:00
Pedro Alvarez ad0abe740b Added support to PDCP SN len of 7. Also added a check for valid configs in pdcp entity. 2020-04-22 17:44:00 +02:00
Francisco Paisana 7a132f9ccd more enb interface comments 2020-04-22 13:34:37 +01:00
Francisco Paisana 0526ae8ab1 updated rrc mobility parsing. added some utility methods 2020-04-22 12:57:11 +01:00
Francisco Paisana 20f6655c6b use common method to build mac pdu. allow CE allocations in dci format2/2a 2020-04-22 11:34:08 +01:00