Francisco Paisana
bf7c587e4f
add UL 64QAM support to eNB RRC and scheduler
2020-12-12 15:58:33 +01:00
Pedro Alvarez
604e79214d
Changed NAS is_attached interface to is_registered.
2020-12-12 15:58:33 +01:00
Pedro Alvarez
14844a168a
Created new class to hold all NAS states for the NAS state machine. Added EMM-DEREGISTERED substates and EMM-REGISTERED substates.
...
Decoupled PLMN selection, attach request and service request. Removed RRC connect procedure from NAS.
2020-12-12 15:58:33 +01:00
Francisco Paisana
d5f6ccc0c4
integrated UL UE-dedicated sched tests in random test
2020-12-12 15:58:33 +01:00
Francisco Paisana
88105c1577
change the namespace of tti point helper functions for the eNB
2020-12-12 15:58:33 +01:00
Francisco Paisana
3ea47b645a
changed the way the number of UL pending bytes is calculated in the scheduler
2020-12-12 15:58:32 +01:00
Francisco Paisana
d8203acd56
implement harq resuming functionality
2020-12-12 15:58:32 +01:00
Francisco Paisana
510959b50f
update nr asn1 files, and asn1 tests
2020-12-12 15:58:32 +01:00
Francisco Paisana
f927ccaf55
fix pusch grant allocation for cqi reporting in CA.
2020-11-05 19:35:03 +00:00
Francisco Paisana
a351b2534e
allow PUSCH grants for CQI in PCell
2020-11-03 09:25:17 +00:00
Francisco Paisana
a865858db3
disable srbs UL during handover to avoid UL grants and scheduling requests before the handover is complete
2020-10-30 21:51:58 +00:00
Francisco Paisana
42cdc5e340
Allocate all the leftover bytes of the TBS to last allocated MAC SDU.
...
Fix the way the RLC header is accounted for depending on the bearer id.
For instance, the SRB0 does not require any RLC header.
2020-10-30 13:35:15 +00:00
Francisco Paisana
55d62a2baa
fix rlc buffer updating inside the scheduler to account for RLC headers
2020-10-30 13:35:15 +00:00
Francisco Paisana
980278fdec
add comments regarding radio resource asn1 setting in the eNB
2020-10-29 21:19:40 +00:00
Francisco Paisana
b40a5a958e
use common function to fill rrc reconf message in handover
2020-10-29 21:19:40 +00:00
Francisco Paisana
836e7d7ede
refactor scell addition in the srsenb::rrc to follow the same style of other rrc recfg fields
2020-10-29 21:19:40 +00:00
Francisco Paisana
a8e11d7991
removal of the special case for rrc reconf update
2020-10-29 21:19:40 +00:00
Francisco Paisana
f26b5ccde7
fix drb reestablishment during handover
2020-10-29 21:19:40 +00:00
Francisco Paisana
7bf196a6e0
removal of srb handling from srsenb::rrc::bearer_cfg_handler
2020-10-29 21:19:40 +00:00
Francisco Paisana
2ef1e286b2
fix set of rrc reconf message radio resource cfg fields
2020-10-29 21:19:40 +00:00
Francisco Paisana
890113fd32
now the rrc enb is using a common function for rr_cfg reconf for the first reconf message
2020-10-29 21:19:40 +00:00
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
Xavier Arteaga
58be68f856
Changed cell gain command from cell index to cell id
2020-10-26 10:13:02 +01: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
852c31c0bc
log warnings when the sched ue cfg is not valid
2020-10-22 09:59:45 +02: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
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
Francisco Paisana
c5c7700cb7
implemented DL logical channel prioritization test for finite PBRs
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
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
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
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
d42cdca729
fix scell activation in the phy during intra-enb handover.
2020-10-06 17:08:08 +02:00
Francisco Paisana
688dda30a4
favour carriers with best channel conditions for UL grants due to SRs
2020-10-01 19:58:00 +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
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
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
Xavier Arteaga
b633c1abcd
SRSENB: report MAC CSI measurements of all configured cells
2020-09-16 20:07:20 +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
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
Ismael Gomez
38e2ffe414
Use Format1A when using CA and 15 PRB due to DCI size ambiguity
2020-09-03 10:45:06 +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
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
Xavier Arteaga
3aec23f7d8
SRSENB: calculate TA from PUCCH messages
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
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
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
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
7cd4f45d62
fsm refactor.
...
- avoid triggering directly a subfsm
- improved metafunctions
- other cleanups
2020-08-18 16:07:21 +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
20b69fb22e
substitution of ul_alloc_t for prb_interval
2020-08-14 15:06:06 +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
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
443378adcb
SRSENB: Add GUI window for every cell/carrier
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
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
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
Francisco Paisana
5e06430455
removal of stack handler interface
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
Ismael Gomez
e378a45db0
Reorganized priorities to avoid GW starve the CPU
2020-07-02 11:52:14 +02: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
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
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
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
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
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
89b24b54e5
Refactored radio class for acommodating multiple RF devices
2020-06-16 11:00:51 +02: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
Francisco Paisana
3c2e3dbdbf
added latest mac nr updates
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
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
Pedro Alvarez
20c5ea7d17
Fix warning with GCC 10.1 with EEA/EIA prefrence list.
2020-06-10 15:08:32 +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
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
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
Francisco Paisana
026628a84f
use of reestablishment method to reset the RLC bearers during handover
2020-05-26 14:46:41 +01: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
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
Pedro Alvarez
51f8ba60da
Make MBMS MCS configurable for the eNB.
2020-05-15 10:58:42 +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
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
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
71520d681a
changes in pucch res allocation api to allow replacing p/scells
2020-05-11 12:44:08 +01: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
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
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
Ismael Gomez
8c82203c74
Removed unused pregenerate option
2020-05-01 21:05:00 +02:00
Francisco Paisana
442ce0d7b0
fix cqi allocated check in rrc::ue
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
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
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
yagoda
faf1cf6975
limiting prach search space to number of prachs set in sib2
2020-04-28 14:40:20 +02: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
d7e7399e7b
srsENB: PHY configuration in two stages
2020-04-27 21:03:44 +02:00
Francisco Paisana
367a190829
created dl-sch lcid type
2020-04-24 11:55:53 +01:00
Xavier Arteaga
77d5dedddc
Fix LGTM warnings and recommendations
2020-04-22 18:01:43 +02: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
Francisco Paisana
64557740fc
use mac_buffer_state interface to schedule CEs in scheduler
2020-04-22 11:34:08 +01:00
Francisco Paisana
ec94819f08
changed mechanism for conres ce scheduling to be controlled by rrc
2020-04-22 11:34:08 +01:00
Francisco Paisana
d716d8bf7e
use mini state machine for ConRes CE scheduling instead of relying that there is data in the DL buffer
2020-04-22 11:34:08 +01:00
Francisco Paisana
d183d64409
added allocate_rnti method to mac. Useful both during PRACH and handover UE resource allocation
2020-04-22 11:34:08 +01:00
Francisco Paisana
6ddedd5972
moved pdu to common mac folder
2020-04-22 10:06:08 +01:00
Pedro Alvarez
b176eef8e7
Using a single map to store erab_info messages.
2020-04-13 20:45:27 +02:00
Pedro Alvarez
cc2b474754
Starting to add array of erab_info messages.
2020-04-13 20:45:27 +02:00
Pedro Alvarez
f872e6ec39
Marking nas_pending a vector to support multiple erab setup on sending RRC reconf.
2020-04-13 20:45:27 +02:00
Francisco Paisana
c09f76ed6c
unified stack task defer method
2020-04-10 22:30:59 +01:00
Xavier Arteaga
5b7493cab5
Added 256QAM modulation tables to scheduler
2020-04-10 17:48:53 +02:00
Xavier Arteaga
784bf81a1a
Multiple fixes HARQ ACK/NACK feedback and CSI reporting for MIMO and CA
2020-04-10 15:58:25 +02:00
Xavier Arteaga
8b265883e4
SRSENB: UL TA measurement waits for a start order before start measuring
2020-04-10 15:57:41 +02:00
Andre Puschmann
b994255b35
enb: fix handling of GTPU and S1AP init return values
...
if the eNB stack startup fails, for example due to binding
the wrong GTPU socket or similar issues, the eNB should stop
and log a message. Previously the return values for
S1AP and GTPU init were not even evaluated.
2020-04-10 14:58:36 +02:00
Francisco Paisana
c661025cda
fix log tti, and print a warning when the ul_harq tti does not match existing ones
2020-04-01 15:02:21 +01:00
Francisco Paisana
30ae2226c1
common interface for stack multiqueue tasks, background tasks and timers
2020-03-31 13:42:06 +01:00
Francisco Paisana
344eaf49ec
use logmap in the whole enb and ue
2020-03-25 15:50:30 +00:00
Ismael Gomez
9a264b62c4
Protect access to shared grants ( #1117 )
...
* Protect access to shared grants
* Set correct number of carriers for DL
* Fix previous issues
* Address comments
2020-03-25 14:30:43 +01:00
Francisco Paisana
1839b9a6e5
cleaned up paging code to avoid extra processing steps in worker threads
2020-03-24 17:48:29 +00:00
Francisco Paisana
9c028ab723
removed user_mutex from srsenb::rrc. All that needed to happen was the prach_worker calling add_user from stack thread (done in an earlier PR), and the get_metrics run in the stack thread. I achieved the latter with an extra metrics queue
2020-03-24 17:48:29 +00:00
Ismael Gomez
7a7385d0e5
Support multiple carriers for common buffers (RAR/BCCH/PCCH)
2020-03-24 16:47:33 +01:00
Francisco Paisana
a2866f661b
made the number of ue payload allocations proportional to number of active carriers. Made mac::ue_db use unique_ptrs
2020-03-23 14:49:17 +00:00
Francisco Paisana
8772d8f85c
use byte buffer pool for the ue tx_payload_buffer allocation. This halves the mac::ue object creation time
2020-03-23 14:49:17 +00:00
Ismael Gomez
fd3d4a7874
Refactor thread_pool: use std::mutex and fix some hidden potential bugs
2020-03-22 08:48:40 +01:00
Francisco Paisana
82cb6baef0
now the whole ue and enb mac uses the logmap
2020-03-20 11:32:03 +00:00
Ismael Gomez
5846e64a4d
Deallocate all CQI resources when deallocating users ( #1097 )
2020-03-20 12:24:46 +01:00
Andre Puschmann
76f1b87b69
fix uninit var in s1ap
2020-03-19 10:33:15 +01:00
Francisco Paisana
807d177b47
fix hanging issue, and simplified the handling of minRBG for different CFIs
2020-03-17 22:06:37 +00:00
Francisco Paisana
ede09cb9b2
added dynamic CFI capability to the eNB scheduler
2020-03-17 22:06:37 +00:00
Xavier Arteaga
ada8772f57
Initial srenb TA compensation
2020-03-17 17:21:43 +01:00
Ismael Gomez
cf4f4508ce
Normalize throughput in CSV/stdout metrics with respect to number of TTIs
2020-03-16 22:58:09 +01:00
Ismael Gomez
858165f177
Allocate a different PDU buffer for each carrier in MAC eNodeB ( #1069 )
2020-03-16 13:35:03 +01:00
Ismael Gomez
73447972d8
Fix issue with simultaneous CQI and ACK/NACK transmission in CA ( #1067 )
...
* Fix memory corruption when phy calling mac scheduler and not yet initiated
* Do not drop CQI if collision with ACK/NACK and PUSCH
* Allocate CQI resources for SCell properly
* Use UE_PCELL_CC_IDX macro
* Protect ul_sched from being called if not yet started
2020-03-16 13:10:21 +01:00
Xavier Arteaga
e832769ae6
Updated copyright
2020-03-16 11:26:06 +01:00
Francisco Paisana
5330249625
created tti_point type and unit test. Added also the tti_point to the scheduler harqs, and rrc procedure
2020-03-13 19:20:40 +00:00
Francisco Paisana
e824cbd251
fixes in the mac log and cell parsing
2020-03-13 18:45:38 +01:00
Xavier Arteaga
5af89513eb
use double precission for frequency in srsue and srsenb
2020-03-13 14:01:58 +01:00
Xavier Arteaga
834a081c09
Add EPRE measurement to PUSCH decoder
2020-03-13 14:01:58 +01:00
Francisco Paisana
567790c1a2
Renamed struct to store cell context in rrc. Moved sib buffers to this struct. Created helper methods for lookup
2020-03-13 11:46:12 +00:00
Francisco Paisana
349aed5e0d
use sib configuration to set SCellToAddModList
2020-03-13 11:46:12 +00:00
Francisco Paisana
4217dba7e0
fix msg3 delayed allocation and update test
2020-03-13 08:30:42 +01:00
Andre Puschmann
2f8643fb97
add tx/rx pkt ok/nok to enb metrics, also add enb metrics test
...
This is what it'll look like if running the new test:
------DL--------------------------------UL-------------------------------------
rnti cqi ri mcs brate ok nok (%) snr phr mcs brate ok nok (%) bsr
46 16 1.5 28 15.2G 1000 1000 100% 14.2 12.0 20 15.2M 50 10 20% 100.0
ffff 1.2 1.5 6.2 1.00M 100 54 54% 22.2 99.1 28 1.00k 50 10 20% 100.0
2020-03-12 21:43:36 +01:00
Andre Puschmann
ab210c5f3c
tiny cosmetic changes to the error messages printing 0x and clear cc_idx use
2020-03-12 12:22:41 +01:00
Andre Puschmann
b7aad27d86
move packing of SCell list into extra method and add fill PHY config on the spot
...
previously we've packed the RRCReconfig with SCellToAddMod list and have then
parsed the message again to pack the PHY config dedicated for the new SCell carrier. This
is now done in one step.
2020-03-12 12:22:41 +01:00
Francisco Paisana
d18b476e37
use utility macro for printing function name
2020-03-12 11:11:20 +00:00
Francisco Paisana
9b4a0baa87
activate scells in the phy
2020-03-11 21:56:33 +01:00
Francisco Paisana
7548402632
change scell activation interface to use arrays. Added a method to the scheduler to get the current set of activated carriers
2020-03-11 21:56:33 +01:00
Xavier Arteaga
76408b195e
Rename TX_DELAY and FDD_HARQ_DELAY_MS
2020-03-11 21:16:36 +01:00
Andre Puschmann
a8acd235f6
extend eNB MAC to support multiple CC per UE
...
- add tx/rx softbuffers for each CC that a UE might have
- make sure to call assign correct buffers when iterating
over the CC for UL/DL grant assignment
2020-03-11 10:16:23 +01:00
Pedro Alvarez
96c82b3fc6
Moved PDCP configs to pdcp_config.h. Added `as_security_cfg_t` structure to hold access stratum keys.
...
Refactored PDCP, RRC and USIM accordingly.
2020-03-11 09:00:38 +00:00
Francisco Paisana
a744729007
use range of rbgs
2020-03-10 22:06:07 +00:00
Francisco Paisana
46579da1ff
use signed integer to express the error
2020-03-10 22:06:07 +00:00
Francisco Paisana
bcbb08ebae
use initial_dl_cqi for first DL tx.
2020-03-10 22:06:07 +00:00
Francisco Paisana
3b937348a2
refactored some sched util methods
2020-03-10 22:06:07 +00:00
Francisco Paisana
fad897cb35
DL scheduler metric now takes into account the min and max of RBGs possible. This is to forbid segmentation of SRB0 allocations
2020-03-10 22:06:07 +00:00
Francisco Paisana
6317750de2
fix computation of ranged of allowed sched dl bytes
2020-03-10 22:06:07 +00:00
Francisco Paisana
414259e83b
fix allocation expected alloc bytes (min and max)
2020-03-10 22:06:07 +00:00
Xavier Arteaga
47b7c1b72b
SRSENB: remove assert macros from phy_ue_db.cc
2020-03-10 20:51:24 +01:00
Andre Puschmann
f2e1bfa699
refactor naming for s/p/cell structs and {enb,ue}_cc_idx
2020-03-10 15:01:00 +01:00
Francisco Paisana
e62972d38e
fix fdd delays in scheduler
2020-03-10 14:17:49 +01:00
Pedro Alvarez
08a4ce0970
Added the ability to save S1AP pcaps at the eNB.
2020-03-09 17:35:10 +00:00
Andre Puschmann
2edecea33e
fix SIB transmission for CA
...
Avoid double buffering of SIBs in MAC as this would require one buffer for each CC.
Instead, use byte_buffer managed by RRC that contains packed SIBs to avoid
double memcpy for each SIB tx. Only use MAC provided buffer in error case.
Also avoid MAC calling RLC for each SIB and call RRC directly.
2020-03-09 14:18:09 +01:00
Andre Puschmann
120ad76c63
refactor cell param handling and fix SIB transmissions
...
- move cell specific eNB params to cell list in rr.conf
- make sure DL EARFCN and DL freq can be used to manually overwrite a single cell config
- fix SIB packing and transmission for multi cell configs
- introduce cell list to MAC
- adapt default enb.conf.example and rr.conf.example
2020-03-06 16:20:44 +01:00
Ismael Gomez
4e12405fff
Remove radio_multi class and organize channels, ports and carrier buffers ( #1019 )
2020-03-06 15:26:48 +01:00
Xavier Arteaga
da701cd82b
SRSENB: Added PUSCH TA and EVM measurement. Some more PHY cleanup.
2020-03-06 13:58:49 +01:00
Pedro Alvarez
bb9ff82490
Remove enb singleton and make sure log is initialized.
2020-03-06 13:05:25 +01:00
Pedro Alvarez
bd3598f774
Moved srsEPC to the new S1AP library. Deleted liblte_s1ap.cc and liblte_s1ap.h.
2020-03-06 11:57:07 +00:00
Xavier Arteaga
a61ff0b0fc
SRSENB cleanup phy common
2020-03-06 12:24:28 +01:00
Xavier Arteaga
cac2ee33b6
SRSENB: PHY uses tti_semaphore class instead of normal semaphores
2020-03-06 12:24:28 +01:00
Francisco Paisana
ec1f1cc677
remove const_casts from scheduler. Fix ODR issue
2020-03-05 20:23:07 +00:00
Francisco Paisana
e9a599857a
created a header for all common structs and helper functions
2020-03-05 20:23:07 +00:00
Francisco Paisana
02ccb8b32b
fix wrong calculation of sched tx and rx delays
2020-03-05 20:23:07 +00:00
Andre Puschmann
664170fec6
pcap: add CC index when writing PCAP
2020-03-05 20:46:14 +01:00
Francisco Paisana
43e67b8536
created a harq entity that handles all harq procs. This entity accepts as arg the number of harq procs.
2020-03-05 17:51:33 +00:00
Francisco Paisana
1c041b2c1d
created harq entity class
2020-03-05 17:51:33 +00:00
Francisco Paisana
7e840bde86
fix tb idx assignment in scheduler mac sdu alloc
2020-03-05 12:18:05 +00:00
Francisco Paisana
d1356568e0
separated sf sched result from sf_sched class. The interface became way simpler. No need for finish_tti() method, sf_sched::new_tti() is called automatically when we access the sf_sched.
2020-03-05 00:04:21 +00:00
Francisco Paisana
bb38fa7119
fixed tti resetting after tti end
2020-03-05 00:04:21 +00:00
Francisco Paisana
47b05118ad
simplified msg3 allocation. Now we can allocate resources ahead of time (e.g. msg3 is 2 ttis ahead) using the sf_sched interface. It's guaranteed that the given allocations wont be erased when the respective tti starts
2020-03-05 00:04:21 +00:00
Francisco Paisana
8f7890c60a
store mask results in separate variables for testing, and reset sf_sched state at the end of the tti
2020-03-05 00:04:21 +00:00
Pedro Alvarez
afc209711c
Fix jump depending on uninitialized variable in srsenb::sched_ue::set_bearer_cfg_unlocked
2020-03-04 22:03:17 +01:00
Francisco Paisana
b37d9b9930
fixed msg4 setting in sched tester
2020-03-03 21:26:17 +00:00
Francisco Paisana
3cc94c3694
simplified mutexing of the scheduler. One single mutex for everything, and removed rwlock
2020-03-03 21:26:17 +00:00
Francisco Paisana
7210c35c6c
checked all methods of srsenb::pdcp to see if they are called by different threads. Since it is all single-threaded, I removed the locks
2020-03-03 21:03:37 +00:00
Francisco Paisana
fed06138b9
moved rach_detected to stack thread. Created a more friendly interface to enqueue tasks in stack
2020-03-03 21:03:21 +00:00
Andre Puschmann
c79e202fd9
fix typo
2020-03-03 17:20:44 +01:00
Andre Puschmann
a8bbe551ac
move thread class into srslte namespace to avoid ambiguity between std::thread
2020-03-03 16:22:04 +01:00
Francisco Paisana
ad9e126299
test for different enb_cc_idxs as pcell. Bug fixes
2020-03-02 16:33:31 +00:00
Francisco Paisana
0f3ef11f8b
now the scheduler only activates a scell after receiving a valid CQI for the SCell
2020-03-02 16:33:31 +00:00
Xavier Arteaga
2a6f54e13f
SRSENB: phy method cleanup and CLang tidy warning fixes
2020-03-02 12:19:09 +01:00
Xavier Arteaga
4c61ffd391
SRSENB: set UE common PHY configuration in RRC::UE constructor
2020-03-02 12:19:09 +01:00
Xavier Arteaga
b45223c880
Fix minor MAC Clang warnings
2020-03-02 12:19:09 +01:00
Xavier Arteaga
f35ed14f76
SRSENB: refactored PHY common UE database
2020-03-02 12:19:09 +01:00
Francisco Paisana
ac52208409
removed most of clang-tidy warnings, introduced logmap in asn1, fixed info object naming in s1ap and ngap for successful and unsuccessful outcomes
2020-02-28 18:03:29 +00:00
Francisco Paisana
e859d622c7
added logref class to forbid logmap pointer invalidation. Created a test for the logref, and introduced it in the scheduler, rrc and nas
2020-02-28 11:33:26 +00:00
Francisco Paisana
b8b8740258
fix wraparound in si proc and error in scell parsing
2020-02-28 10:08:01 +01:00
Francisco Paisana
052892916e
fix mme/enb id assignment. Also, now using the macro for invalid rnti and a boolean flag for the uninitialized mme s1ap id
2020-02-26 15:17:45 +00:00
Francisco Paisana
2f57db5352
changed invalid rnti to 0
2020-02-26 15:17:45 +00:00
Francisco Paisana
7557ef45c8
changed the s1ap to allow the insertion of users without rnti
2020-02-26 15:17:45 +00:00
Francisco Paisana
d831522692
addition of SCell Activation CE Cmd to scheduler and MAC
2020-02-14 21:49:01 +00:00
Francisco Paisana
838053e8f2
added SCell Activation CE to scheduler. Handling this CE in the MAC is still missing
2020-02-14 21:49:01 +00:00
Xavier Arteaga
385102fa2d
SRSENB: minor format, renaming and interface changes
2020-02-13 10:29:00 +01:00
Xavier Arteaga
bf4ecc8064
Fix srsenb PHY and unit/component tests
2020-02-13 10:29:00 +01:00
Xavier Arteaga
231431f569
SRSENB: enabled CA PUCCH decode in eNb
2020-02-13 10:29:00 +01:00
Xavier Arteaga
40772eae19
SRSENB: UE PHY dedicated takes a flat configuration structure
2020-02-13 10:29:00 +01:00
Xavier Arteaga
35f4e5d69a
Initial PUCCH 1B with channel selection
2020-02-13 10:29:00 +01:00
Francisco Paisana
c9ac42f11d
renamed rlc pdu / mac sdu allocate functions, and added some comments describing what these functions do
2020-02-10 16:55:18 +00:00
Francisco Paisana
87038375d5
fixed the building of MAC SDUs in the scheduler. Now, we ensure there is always space for the MAC subheader and RLC header. The MAC subheader is correctly discounted from the remaining bytes in a TB.
2020-02-10 16:55:18 +00:00
Francisco Paisana
c8fc0d91b3
changed the supported cc list to a vector of structs
2020-02-07 15:06:46 +00:00
Francisco Paisana
42b15c7bed
use common ue_cfg interface to set the ue antenna info
2020-02-07 15:06:46 +00:00
Francisco Paisana
5f557700f2
changed the sched::ue_cfg(...) function to allow diff configurations. The RRC now activates all carriers after rrc reconf complete
2020-02-07 15:06:46 +00:00
Francisco Paisana
b66bc3a6b0
create a sched_interface struct for antenna info dedicated. This way we remove the asn1 as a dependency in the scheduler
2020-02-07 15:06:46 +00:00
Francisco Paisana
88a22e7dbf
support cc cfg from rrc
2020-02-07 15:06:46 +00:00
Francisco Paisana
095d0cda5a
fix regs leak
2020-02-07 15:06:46 +00:00
Francisco Paisana
e86862611c
update the scheduler interfaces to accommodate the configuration of multiple carriers
2020-02-07 15:06:46 +00:00
Francisco Paisana
2dc31ea440
added interface to configure multiple cells from the RRC
2020-02-07 15:06:46 +00:00
Andre Puschmann
d3cb2eac83
add RLC suspend/resume to eNB interface
2020-02-03 16:26:15 +01:00
Andre Puschmann
369592544c
store last RRC Connection Reconfig with transaction identifier
2020-02-03 16:26:15 +01:00