Commit Graph

1429 Commits

Author SHA1 Message Date
Francisco Paisana ce78fa82ce now the rrc enb is using a common function for rr_cfg setup/reest 2020-10-29 21:19:40 +00:00
Francisco Paisana 97f2e4336e refactor of functions for filling the asn1 radio resource config structs. This functions are used during rrc setup/reest/reconf 2020-10-29 21:19:40 +00:00
Xavier Arteaga fa837925d0 Fix inter-frequency/intra-enb HO 2020-10-29 09:17:34 +01:00
Andre Puschmann ff21d9c077 enb: fix error log when parsing cell config 2020-10-28 12:05:53 +01:00
Xavier Arteaga 58be68f856 Changed cell gain command from cell index to cell id 2020-10-26 10:13:02 +01:00
Francisco Paisana 9b40d1da99 fix 256qam for handover 2020-10-22 19:55:46 +02:00
Francisco Paisana c24d754dbb add 256qam to scell as well 2020-10-22 19:55:46 +02:00
Francisco Paisana 514deaf25b fix resetting of phy and mac during reestablishment 2020-10-22 19:55:46 +02:00
Francisco Paisana 83d13cf20f uncomment 256qam features 2020-10-22 19:55:46 +02:00
Francisco Paisana 4cb6ed27eb updated scheduler ue mcs computation to account for new 256QAM tables 2020-10-22 19:55:46 +02:00
Francisco Paisana 461f34785d activation of 256qam in reconf message if the UE supports it. 2020-10-22 19:55:46 +02:00
Francisco Paisana 44a9ad76f1 avoid sched_ue dangling pointer
With the sched feature that allows scheduling in TTIs
ahead of time, there is no guarantee that when
the tti arrives to generate a sched result, the stored
raw sched_ue pointers are still valid. For this reason,
I now store the rnti and check if the rnti still exists.
2020-10-22 12:42:34 +01:00
Francisco Paisana 0d38e28ce7 address PR comments. Change warning message if sched ue cells cqi configs will lead to time collisions. 2020-10-22 09:59:45 +02:00
Francisco Paisana 852c31c0bc log warnings when the sched ue cfg is not valid 2020-10-22 09:59:45 +02:00
Xavier Arteaga fac6d40a45 SRSENB: fix PUSCH max number of iterations 2020-10-22 09:24:40 +02:00
yagoda e09b6aaacb updating sib13 config for mbms, fixing small bug with metrics 2020-10-21 22:43:44 +01:00
Francisco Paisana e84aa34139 comment out 256qam features 2020-10-20 16:32:44 +01:00
Francisco Paisana 1ce928ab2e use of current / future ue sched config structs in the srsenb::rrc::ue::mac_controller as an approach to deal with the multi-step mac reconfiguration of the UE 2020-10-20 16:30:01 +01:00
Francisco Paisana 1e6d902873 cleanup of srsenb::rrc::ue::mac_controller api 2020-10-20 16:30:01 +01:00
Pedro Alvarez f5ca40e3bf Make sure that security is enabled after sending RRC reestablish, so that reestablish complete is integrity checked and unciphered. 2020-10-19 14:47:05 +02:00
Francisco Paisana 78e580a89f fix rrc_mobility_test failure due to access to uninit variable 2020-10-19 11:23:44 +01:00
Andre Puschmann 9be7dc9572 enb: fix AWGN config example and help message
we've moved to SNR rather than channel noise so this fixes the example and help text
2020-10-19 10:02:24 +02:00
Francisco Paisana 4230a60859 added a warning to the enb parsing that checks for invalid cell pci configurations 2020-10-19 10:00:10 +02:00
Francisco Paisana f1bdf33d10 addition of cells provided in cell_meas_list of rr.conf to cellsToAddModList in the rrc reconfiguration message 2020-10-16 15:55:22 +01:00
yagoda 7e60d8aae5 fixing issue with explicit uplink frequency setting 2020-10-16 12:02:39 +01:00
Andre Puschmann a0ff8d3226 enb.conf.example: add comment about device args for 75 PRB cells 2020-10-16 11:57:00 +02:00
Francisco Paisana c5c7700cb7 implemented DL logical channel prioritization test for finite PBRs 2020-10-14 22:55:12 +01:00
Francisco Paisana 2d3681699a added test for DL sched logical channel prioritization. At the moment only PBR=infinity is tested 2020-10-14 22:55:12 +01:00
Francisco Paisana 9b10acff06 implemented logical channel prioritization in DL scheduler 2020-10-14 22:55:12 +01:00
Francisco Paisana b7ed8b1858 - added react method to to_state<...> transitions
- s1 handover composite state simplified
- the eNB now starts a HO cancellation when it receives an invalid
Handover Command
- the FSM log now prints the current state when it receives an unhandled
event
2020-10-12 18:24:14 +01:00
Francisco Paisana 53f1a62c64 cleaned up state machine of sched_ue for activation/deactivation of carriers 2020-10-12 14:45:13 +01:00
Francisco Paisana a761762ec8 extended cc_sched_ue fsm to account for more harmonious transition of an scell to deactivated state 2020-10-12 14:45:13 +01:00
Francisco Paisana 74c18ecf6c implementation of SCell Deactivation 2020-10-12 14:45:13 +01:00
Francisco Paisana eafc003671 Altered the way the generation of the scheduling decision for a given
TTI is made. Instead of generating one CC in each dl_sched()/ul_sched()
call, all CC decisions are generated at once. This avoids race
conditions with calls from the RRC to the MAC to configure UEs.
2020-10-12 14:04:34 +01:00
Francisco Paisana bc429eae94 add comment explaining why BSR has to be accounting in the computation of the number of bytes to allocate in UL 2020-10-12 13:43:13 +01:00
Francisco Paisana 12c147d75a The scheduler now accounts for the possible presence of BSRs in the size of UL grants 2020-10-12 13:43:13 +01:00
Jan df46a3284c Add missing device names to enb.conf.example
The enb.conf.example config was missing the options "soapy" and "zmq" for device_name.
2020-10-07 15:38:57 +02:00
Francisco Paisana c46402c836 fix phy configuration during handover on srsenb. The function srsenb::rrc::ue::fill_scell_to_addmod_list assumes that the phy_cfg of the PCell is up-to-date, which was not the case. With this PR, the srsenb rrc updates the phy_cfg before the ho cmd is sent, but, in the case of intra-enb ho, the updates are not submitted to the phy before the reception of the crnti mac ce 2020-10-07 09:10:47 +01:00
Andre Puschmann 9105b36cee srsenb: backport of a Xico's patch to explicitly link against libconfig
this caused issues for some systems in parallel builds
2020-10-07 09:29:48 +02:00
Francisco Paisana 5325a15d42 fix libconfig std::string cast linking issue 2020-10-07 09:29:48 +02:00
Francisco Paisana 0f51d70aac fix measObj addition in srsenb. Now the enb considers both scells and meas_cells in the rr.conf 2020-10-06 21:16:18 +01:00
Francisco Paisana ae32ab9b13 addressed xavie's comments regarding list of scells to add to rrc reconf message not being in order when we iterate it 2020-10-06 17:08:08 +02:00
Francisco Paisana d42cdca729 fix scell activation in the phy during intra-enb handover. 2020-10-06 17:08:08 +02:00
Andre Puschmann 9866dcc10b enb: disable qam256 configuration
disable qam256 altogether until underlying PHY/MAC support
is implemented
2020-10-06 16:26:50 +02:00
faluco d53f69bf0a - Initialize the log backend, otherwise no log entries are generated. 2020-10-06 09:23:38 +02:00
Francisco Paisana 49186e2b1f Fix NCC set in HO command message for intra-enb handover 2020-10-05 20:43:05 +01:00
Francisco Paisana 2e10c8e13d bug fix - eNB was not allocating UL grants for an UE that has performed intra-enb handover. The problem resulted from the fact that the ue configuration in the scheduler not accounting for removed cells. 2020-10-03 09:12:40 +01:00
Francisco Paisana 8a5a571045 bug fix - in case of intra-enb Handover, the eNB was not adding SCells in the HO command 2020-10-02 20:10:28 +01:00
Francisco Paisana 4383796393 add scells in case of intra-enb handover 2020-10-02 20:10:28 +01:00
Francisco Paisana 688dda30a4 favour carriers with best channel conditions for UL grants due to SRs 2020-10-01 19:58:00 +01:00
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