- in order to facilitate the steps as verification and parameter setting,
slices are "filled up" with default values:
* if it is an update, with the values of the concerned slice
* if it is a new one, with the parameters of slice 0
- because of this, it can be assumed that all slices have all parameters
- setter & getter have been renamed
- setter sets scheduler name and links to the corresponding function
- it also returns whether it succeeded (whether the scheduler callback is
non-null)
- it performs a strdup on the scheduler name
- the remove function free the scheduler function name
- until now, on every iteration, the scheduler checked for changed parameter
(and verified some)
- this functionality moves to the FlexRAN Agent, which verifies all parameters
* individually, e.g. Max MCS <= 28 for DL
* group-based, e.g. the sum of slice percentages is <= 100
- slice configuration changes are only applied if all verifications pass
- it is assumed in the scheduler, that configuration passed from outside is
correct and can be used "as-is"
fix accounting setting
Incoming slice configuration changes are buffered in an intermediate structure.
The MAC scheduler periodically polls the agent about changes. If there has been
a slice configuration change, apply it.
TODO: Currently the driver picks the two first RX and TX channels when nb_tx and nb_rx are both set to 2. If a developers wants to force usage of two devices, 'set_rx_subdev_spec' and 'set_tx_subdev_spec' can be used to indicate to the driver so that antennas from separate devices will be used. To rephrase: until 4 antennas are supported by OAI, testing with two devices, so that antennas from both devices are used, requires manual configuration of which subdevices' antennas are used.
Conflicts:
targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
20 was wrong, it means 2 dB.
200 is a bit high on my setup. Today the code hardcodes the noise
level as 30dB and a target of 20dB above noise is chosen by default.
Some more work is needed to estimate the real noise level. Some
more work is needed to set proper defaults.
Since now pucch_n1_AN is taken from the configuration file,
it has to be set to 0. Value 32 will not work well, at least
in FDD. This has to be handled properly at some point
(do not use uplink resource blocks used by PUCCH for PUSCH).
To minimize migration effort, we follow the logic of legacy macro Rel10 and Rel14 used
for conditional compilation of current code.
In the future, they might be changed to accommodate finer software configuration, e.g.
MAKE_VERSION(12,2,0) or MAKE_VERSION(13,1,0) .... etc.
Status so far:
- monolithic eNB compiles and is functional with 1 UE in FDD, 5/10/20MHz.
For 20MHz we don't have a nice TCP downlink (on haswell).
- oaisim does not compile
- UE does not compile
- phy simulators don't compile
- many new warnings
Conflicts:
cmake_targets/CMakeLists.txt
openair1/PHY/LTE_TRANSPORT/transport_eNB.h
openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h
openair1/PHY/defs_eNB.h
openair1/SCHED/pusch_pc.c
openair1/SCHED/sched_common.h
openair1/SCHED_UE/phy_procedures_lte_ue.c
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler_mch.c
openair2/LAYER2/MAC/mac.h
openair2/LAYER2/MAC/ra_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
openair2/RRC/LTE/MESSAGES/asn1_msg.h
openair2/RRC/LTE/rrc_UE.c
openair2/RRC/LTE/rrc_defs.h
targets/RT/USER/lte-softmodem.h
targets/RT/USER/lte-ue.c