- removed redundant initialisation of variables
- introduced two "RF helpers" function that are replacing shared code in the sync routines
- added a new .c file and updated the cmakelists and .h files
- got rid of global variable fp
- code cleanup, removed redundant and unused code
- removed unused command line options and variables
- grouped command line setting in set_options function
- this reflects the implementation of IF and IF offset in the gNB RU
- the RF frequencies are set at HW level while the target frequencies are
stored in fp, therefore the values stored in fp should not be changed
after sync as only the tx/rx freq is updated
- removed overwritten dl/ul carrier frequencies in fp after sync
- removed redundant set of tx/rx freq in ue_synch (done in init_openair0)
- removed irrelevant set of dl/ul carrier freq in get_options
- adapted the get_band function: the algorithm is now taking into account
also the UL frequency in order to fetch the proper band (this was failing
before as some NR bands have the same DL band, e.g. band 65 and 66)
- added new bands to the NR table as per TS 38.101 V16.4.0 (2020)
- made the from_nrarfcn function compatible with UL FDD (this function,
used for both DL and UL was previously working with TDD only as it
did not compute properly the frequency for the UL FDD, throwing asserts)
- introduced common functions to get the NR table idx and the duplex mode,
removing repeated code in the process
- removed the unused function to get the uldl offset
- improved some logging
- other minor fixes to the relevant code
- the RU now supports IF equipment with custom FR1 TX/RX frequencies
- this configuration parameter together with the if_freq parameter allows
to set a custom IF RX frequency for the gNB
- if the IF offset is not specified, legacy code applies
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>