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.
78 lines
3.0 KiB
C
78 lines
3.0 KiB
C
/*
|
|
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright ownership.
|
|
* The OpenAirInterface Software Alliance licenses this file to You under
|
|
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.openairinterface.org/?page_id=698
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*-------------------------------------------------------------------------------
|
|
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
|
* contact@openairinterface.org
|
|
*/
|
|
|
|
|
|
#ifndef __INIT_DEFS_NB_IOT__H__
|
|
#define __INIT_DEFS_NB_IOT__H__
|
|
|
|
//#include "PHY/defs_NB_IoT.h"
|
|
#include "openair2/PHY_INTERFACE/IF_Module_NB_IoT.h"
|
|
#include "nfapi_interface.h"
|
|
|
|
//#include "SystemInformationBlockType2.h"
|
|
//#include "RadioResourceConfigCommonSIB.h"
|
|
//#include "RadioResourceConfigDedicated.h"
|
|
//#include "TDD-Config.h"
|
|
//#include "MBSFN-SubframeConfigList.h"
|
|
//#include "MobilityControlInfo.h"
|
|
//#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
|
//#include "SCellToAddMod-r10.h"
|
|
//#endif
|
|
|
|
/*brief Configure LTE_DL_FRAME_PARMS with components derived after initial synchronization (MIB-NB decoding + primary/secondary synch).*/
|
|
void phy_config_mib_eNB_NB_IoT(int Mod_id,
|
|
int eutra_band,
|
|
int Nid_cell,
|
|
int Ncp,
|
|
int Ncp_UL,
|
|
int p_eNB,
|
|
uint16_t EARFCN,
|
|
uint16_t prb_index, // NB_IoT_RB_ID,
|
|
uint16_t operating_mode,
|
|
uint16_t control_region_size,
|
|
uint16_t eutra_NumCRS_ports);
|
|
|
|
/*NB_phy_config_sib1_eNB is not needed since NB-IoT use only FDD mode*/
|
|
|
|
/*brief Configure LTE_DL_FRAME_PARMS with components of SIB2-NB (at eNB).*/
|
|
|
|
//void NB_phy_config_sib2_eNB(module_id_t Mod_id,
|
|
// int CC_id,
|
|
// RadioResourceConfigCommonSIB_NB_r13_t *radioResourceConfigCommon
|
|
// );
|
|
|
|
void phy_config_sib2_eNB_NB_IoT(uint8_t Mod_id,
|
|
nfapi_nb_iot_config_t *config,
|
|
nfapi_rf_config_t *rf_config,
|
|
nfapi_uplink_reference_signal_config_t* ul_nrs_config,
|
|
extra_phyConfig_t* extra_phy_parms);
|
|
|
|
void phy_config_dedicated_eNB_NB_IoT(module_id_t Mod_id,
|
|
rnti_t rnti,
|
|
extra_phyConfig_t* extra_phy_parms);
|
|
|
|
// void phy_init_lte_top_NB_IoT(NB_IoT_DL_FRAME_PARMS *frame_parms);
|
|
void phy_init_nb_iot_eNB(PHY_VARS_eNB_NB_IoT *phyvar);
|
|
int l1_north_init_NB_IoT(void);
|
|
|
|
#endif
|
|
|