RLC has timers. We need to keep track of time. We chose to not use
realtime but 'processing time'. That is we send a tick to RLC for every
subframe when it is processed by the softmodem. Before this commit we
used to increase time in the function mac_rlc_status_ind which may not be
called every subframe (especially in TDD mode). So we need another way
to keep track of time.
We introduce rlc_tick() and call it in eNB_dlsch_ulsch_scheduler, which
is called every subframe, both in FDD and TDD.
We also call rlc_tick() in the function ru_thread_synch() because
pdcp_run() and rrc_rx_tx() are called there too.
It may not be the best solution. To be revised if needed.
Note: the UE has not been touched. Some modification is needed for the UE
too, most probably.
- MBMS scheduler re-worked to enable dedicated MBMS serving cells
- added support for multiple eMBMS MCH sessions
- added support for multiple FeMBMS MCH sessions
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
UE_list_t is now used as a separate list. It can be e.g. used in the
scheduler to mark groups of users. The original UE_list_t is renamed to
UE_info_t to reflect that it is a container for information about UEs.
When a header is changed, all including files need to be recompiled,
too. Thus, including a header needlessly all over the place drives
compile times up without any reason.
The timer code used to trigger periodic statistics message sending used
ITTI. Together with a high frequency reporting (e.g. 1ms), this resulted
in high CPU usage. This commit reimplements this:
* using a thread that is synchronized to the RU (if there is no MAC, we
assume there is no RU generating a tick so we create the tick source
ourselves)
* no RB trees but plain arrays
* smaller interface for users
* slight user interface changes
* remove stopped timer state: such timer might be simply removed
* remove one-shot timers
M3AP ASN1 source spec updated
ACKNOWLEDGEMENT:
1. This commit was developed at Vicomtech (https://www.vicomtech.org) under UE project CDN-X-ALL: "CDN edge-cloud computing for efficient cache and reliable streaming aCROSS Aggregated unicast-multicast LinkS"
2. Project funded by Fed4FIRE+ OC5 (https://www.fed4fire.eu)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>
-MBMS scheduler developed (oneFrame allocations implemented at this time)
-UE DSLCH schedulers updated: if an eMBMS session running UE DTCH, DCCH will be only scheduled at non MBSFN sufbframes
-eMBMS L2 procedures implemented
-Dedicated MBMS PDCP pipes src/sink enabled (only for TUN)
-BUGFIX eMBMS MAC procedures (wrong indexing at few loops)
-ENB FAPI updated to enable dynamic MBSFN configurations through M2AP (RRC<->MCE)
ACKNOWLEDGEMENT:
1. This commit was developed at Vicomtech (https://www.vicomtech.org) under UE project CDN-X-ALL: "CDN edge-cloud computing for efficient cache and reliable streaming aCROSS Aggregated unicast-multicast LinkS"
2. Project funded by Fed4FIRE+ OC5 (https://www.fed4fire.eu)
Signed-off-by: Javier Morgade <javier.morgade@ieee.org>