1. Previous SW configuration for different RRC version relies on whether macro Rel10,
Rel14 defined or not by checking #ifdef Rel14 or #if defined(Rel10) || defined(R14).
Whenever there is a newer RRC version, e.g. Rel15, it will be very a tedious and
error-prone job to add defined(Rel15) in every place.
2. Some RRC messages are defined in release 13 instead of release 14, NB-IoT
feature is one of such example. Our code shall reflect this fact instead of using
an afterward version number in software configuration.
3. Some RRC messages or some fields of certain RRC messages are added in the middle
a release, e.g. SystemInformationBlockType1_v1310_IEs_t defined in RRC 13.1.0
and RRC 9.2.0 made some changes to SIB12 and SIB13 so we have sib12_v920 and
sib13_v920 fields in SIB12 and SIB13's struct.
We need a finer grain of control when using ASN1 from different RRC version.
4. S1AP also has this problem that it use UPDATE_RELEASE_9 and UPDATE_RELEASE_10 to
differentiate between various S1AP version.
This commit propose using MAKE_VERSION(x,y,z) to designate the version number and
modify current conditional compilation accordingly.
Note: 2018/04/16, Modified based on Cedric's comment.
The agent_id is a uint64 consisting of: module ID (i.e. mod_id, the several
instances of OAI at once, 16 bit), the enb_id from the configuration file (32
bit) and the cell_id from the configuration file (16 bit).
The module ID is part of the agent ID but it is easier to have it directly in
the struct.
- move IMSI extraction code to function, remove FLEXRAN comp. directive
- refactor the code, esp. don't do deep if-nesting
- remove m-tmsi part (does not give correct value)
- copy complete IMSI info to UE context, decode in RAN API
Through configuration, the lte-softmodem can be halted to await a
reconfiguration from the lte-softmodem. A mutex and condition variable are used
to implement this.
Furthermore, the dependance of lte-softmodem.c on FlexRAN has been reduced to
one include and the flexran_agent_start() call.
- when changing values RC.rrc[i]->configuration should be changed too
- then, RRC_RECONFIGURATION_REQ will pass the changed conf down until PHY
- give warnings at functions that are not implemented
- rename functions
flexran_get_tdd_ack_nack_feedback() -> flexran_get_tdd_ack_nack_feedback_mode()
flexran_get_ue_pmi() -> flexran_get_ue_wpmi()
Try to merge feature-68-enb-agent into develop
develop should be fast-forwarded later to this branch to complete the merge
This code does not compile yet. Among other things:
- the scheduler structure needs to be reworked for FlexRAN
- the config is structured differently. The files enb_config.{c,h} from develop
have been copied in here, the files with merge annotations are in
enb_config.{c,h}.before_merge
- the restart needs to be restructured, since the PHY vars data structure lives
in RC now