dedicated_DRB was not set properly when the NSA UE sends
ReconfigurationComplete so the wrong code was executed below
(we had dedicated_DRB == 0). Let's put a value that does
nothing (-1 seems fine).
MR 896 : Nsa remove band hardcodings
Removes hardcodings of EUTRA and NR bands in UE_Capability_Enquiry and NR_UE Capability_Enquiry messages, providing them from the eNB config file and gNB over X2 respectively. Moreover, the SSB Absolute frequency of the gNB is now provided by the eNB configuration file (instead of being hardcoded at rrc_eNB.c)
MR903 : pusch ta update
Update of PUSCH Timing advance
MR 900 : improve x2/rrc for ENDC
This MR introduces several enhancements in X2AP and RRC to deal with ENDC.
The main goal is to deal with UE's on/off and with various errors.
Includes :
- DC prep and DC overall X2 timers
- X2 messages for UE release and DC timers' timeout
After the UE disconnects, the next connection fails
because the gNB cannot decode Msg3. The root cause
seems to be this ul_valid_re_per_slot not set to 0.
Setting it before the test fixes the problem and
does not seem to impact anything else.
Some data remains in the PHY of the gNB after UE removal by
upper layers. After some connection/deconnection/reconnection
the gNB will exit because there is no free space in PHY.
This commit adds some global variables shared by MAC and PHY.
The function mac_remove_nr_ue puts UEs to be removed in it
and the function rxtx removes what needs to be removed.
This is a hack. It will be removed at some point in time.
The real way to remove in the PHY should be to release
data after some time of inactivity in the PHY, which would
mean the UE has been removed in upper layers. Kind of
timer-based thing. There should be no communication between
PHY and MAC.
This commit introduces several enhancements in X2AP and RRC to deal
with ENDC. The main goal is to deal with UE's on/off and with various
errors.
The following work is included:
- DC prep and DC overall X2 timers
- X2 messages for UE release and DC timers' timeout
Open problems:
- what to do when the UE sends an scg Failure? This commit removes
the UE. And this removal may not be correctly done
- UE removal in the gNB's PHY layer (a next commit is coming,
but it is hackish and will need a rework)
also correction for Circular Dependency Protection on header files
also correction on the banner check
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
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 is called
for every subframe in the eNB, but not in the gNB (at least not in the
current gNB). So we need another way to keep track of time.
The function gNB_dlsch_ulsch_scheduler is called for every slot. It seems
to be the perfect candidate to send a tick to RLC for every subframe. We
take care of subcarrier spacing to send every subframe (one subframe is
always 1ms), not every slot (slot duration depends on subcarrier spacing).
It may not be the best solution. To be revised if needed.
Note: the UE has not been fixed. Some modification is needed for the UE
too, most probably.
Create a temporary rrc_eNB_ue_context_t when it can't be obtained from
current RRC state:
- if UE was not attached to current eNB
- when RRCConnectionReestablishmentRequest has a wrong encoding
- in all other cases when ue_context_p can't be obtained.
Signed-off-by: Sergey Aranovskiy <aranovskiy@mwnts.ru>
Develop integration 2020 week 37
The following Merge Requests have been included:
* MR [878] : CI framework update for 5G NSA FR1 setup
* MR [885] : PTRS-based UL phase compensation