Introduction of S1-flex. It handles multiple PLMN IDs (up to 6) in the SIB as well as the selection of an MME based on the selected PLMN identity.
Major impact: changes on the eNB configuration files:
tracking_area_code = 1;
plmn_list = (
{ mcc = 208; mnc = 94; mnc_length = 2; },
{ mcc = 208; mnc = 95; mnc_length = 2; }
)
See https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/s1-flex-conf-nnsf for more details.
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
* instead of the lengthy YAML parsing, can now handle protobuf message
* after setting the parameters, send a message to ENB_APP to perform it
* old YAML way still works
But NR-RRC-Definitions.asn file only include the NR-RRC-Definitions DEFINITIONS section
If we include the NR-UE-Variables into asn file, it will can't be compile in asn tool
and also some of implict problem for new version asn file
1. It's no need to modify LTE-RRC's ASN.1 file for enabling option group
feature in generate_asn1.
2. It's no need to patch the C header files generated from
LTE-RRC/S1AP/X2AP's ASN.1 in fix_asn1.
3. It's no need to pre-process S1AP/X2AP's ASN.1 for enabling information
object class feature by asn1tostruct.py.
This commit requires an un-official version of asn1c which are
collaboration of asn1c community members and `build_helper` is modified
in this commit accordingly :
https://github.com/brchiu/asn1c/tree/velichkov_s1ap_plus_option_group
This asn1c can also convert ASN.1 of 5G NR RRC (38.331, v15.1.0) and
generate C files with -findirect-choice command line option without
tweaking ASN.1 file.
Examples for how to use this asn1c for S1AP are in S1AP files, e.g.
s1ap_eNB_nas_procedures.c and s1ap_eNB_handler.c.
There is an modified openair-cn (based on tag 0.5.0) with this new asn1c at :
https://github.com/brchiu/openair-cn/tree/new-asn1c
Basic S1AP interaction and data transfer operation between OAI eNB and
this modified openair-cn has been tested.
Note: Community version of asn1c is keeping evolved to provide better usage.
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