Ismael Gomez
f9a02299f9
Use MAC PDU pointer instead of tti_rx and rnti as a key to associate buffers. Decouple crc_info() and push_pdu() functions. This allows for different timing architectures in the PHY
2020-12-16 13:49:29 +01:00
faluco
343587b32d
Update NR classes after metrics interface changes.
2020-12-14 13:16:13 +01:00
faluco
f20b75a05f
Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct.
2020-12-14 13:16:13 +01:00
faluco
5529943172
Add a per sector rach preable counter for the metrics.
2020-12-14 13:16:13 +01:00
faluco
dcd1157d39
- Prototype the extension of enb metrics.
2020-12-14 13:16:13 +01:00
Francisco
cba0cc457f
sched rand test refactor: creation of abstract sched simulator class for testing
2020-12-12 15:59:27 +01:00
Francisco
b4861bc59a
move sched params and sched helper methods to sched_helpers.h/cc files. Removed place in the scheduler where the mcs is increased forcefully to avoid segmentation
2020-12-12 15:59:27 +01:00
Francisco
99f94d9a1a
Bug fixes of srseNB scheduler TPC
...
- fix encoding of TPC command
- use of exponential average with irregular sampling for the ULSNR average estimate.
Turns out using a time-windowed average for the SNR was a bad idea.
If the UL grants are very sporadic, the SNR time window will never have samples
when a TPC is encoded
- update of TPC sched test
- other fixes in accumulators lib
2020-12-12 15:59:27 +01:00
Francisco
22229adf08
fix: normal phr is only sent for PCell
2020-12-12 15:59:27 +01:00
Francisco
69748e9313
fix compilation issue regarding definition of size_t in header and declaration of static member null_value in sliding average class
2020-12-12 15:59:27 +01:00
Francisco
d42dc50c44
Write TPC sched unit test and fix sched logical channel test
2020-12-12 15:59:27 +01:00
Francisco
479602ed1d
add option to specify target ul sinr for UL power control to the enb rr.conf parser
2020-12-12 15:59:27 +01:00
Francisco
5865df39d1
created class that implements the scheduler transmit power control and PHR handling
2020-12-12 15:59:27 +01:00
Francisco
86ab1864f7
The struct tti_point is now used ubiquitously in the scheduler
2020-12-12 15:59:26 +01:00
Francisco
8fb3ea6922
Added the ability to choose scheduling policy from enb.conf
...
- The two options provided at the moment are time-domain RR and PF
2020-12-12 15:59:26 +01:00
Francisco
b71e8075f4
Refactoring of scheduling algorithms
...
- Use single interface for both DL and UL
- Wrote helper functions for tasks that are common to different algorithms
- created subfolder for all scheduling algorithms
2020-12-12 15:59:26 +01:00
Francisco
d7fae0b7a3
Implementation of time-domain PF scheduler
...
- PF scheduling becomes the new default
2020-12-12 15:59:26 +01:00
Andre Puschmann
07d2bc4fe8
change license header to agnostic version with hint to root LICENSE file
2020-12-12 15:59:25 +01:00
Francisco
f07e52129c
increase mcs ul upper bound to 24 when ue is cat4 and enb supports 64qam. Simplified max_mcs computation
2020-12-12 15:59:25 +01:00
Francisco
3d80ff4831
fix activation of PDCCH for adaptive retxs.
2020-12-12 15:59:25 +01:00
Francisco
fc81a5c6ba
harq ack state can now only be NACK or ACK. The ul_harq pending phich flag is now reset after phich scheduling. Thus, the existence of a crc_info(...) signal from the PHY is not required.
2020-12-12 15:59:25 +01:00
Francisco
3067e81e67
fix check of pending UL bytes
2020-12-12 15:59:25 +01:00
Francisco
bb96625129
renaming lch_manager -> lch_ue_manager
2020-12-12 15:59:25 +01:00
Francisco
a348508072
simplified sched_ue pending DL bytes calculation API
2020-12-12 15:59:25 +01:00
Francisco
0ffea62411
Wrote logging functions for SCHED MAC CE/LCID allocations
2020-12-12 15:59:25 +01:00
Francisco
c1fb161004
Move sched lch_manager to separate file
2020-12-12 15:59:25 +01:00
Francisco
eae0dc93ad
rename scheduler files. scheduler -> sched
2020-12-12 15:59:25 +01:00
Francisco
68eda336bd
remove ENB_METRICS_MAX_USERS compile time macro and use run-time variable to set maximum number of UEs the srseNB can have connected at a given instant.
2020-12-12 15:59:25 +01:00
yagoda
bdc1964335
consolidating RRC eMBMS configuration into single function, setting some parameters to const
2020-12-12 15:58:34 +01:00
yagoda
b90574975b
refactoring asn1 eMBMS code, removing asn1 from PHY and MAC in eNodeB
2020-12-12 15:58:34 +01:00
Francisco Paisana
49a48c0130
add measgap awareness to scheduler metric and sf_sched. Add measGap test to random sched test suite.
2020-12-12 15:58:34 +01:00
Francisco Paisana
9579931f16
added meas gap checks to scheduler ue
2020-12-12 15:58:34 +01:00
Francisco Paisana
bf7c587e4f
add UL 64QAM support to eNB RRC and scheduler
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
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
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
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
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
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
688dda30a4
favour carriers with best channel conditions for UL grants due to SRs
2020-10-01 19:58:00 +01: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