Commit 6c1c711e authored by WEI-TAI CHEN's avatar WEI-TAI CHEN

1. NR gNB Application use ITTI transmit config. to RRC

2.NR RRC do_SERVINGCELLCONFIGCOMMON for all of common config. will be transmit to lower layer by rrc_mac_config_req_gNB"
parent 5e1c6029
...@@ -364,9 +364,9 @@ file(GLOB nr_rrc_source ${NR_RRC_FULL_DIR}/*.c) ...@@ -364,9 +364,9 @@ file(GLOB nr_rrc_source ${NR_RRC_FULL_DIR}/*.c)
file(GLOB nr_rrc_h ${NR_RRC_FULL_DIR}/*.h) file(GLOB nr_rrc_h ${NR_RRC_FULL_DIR}/*.h)
set(nr_rrc_h ${nr_rrc_h} ${NR_RRC_FULL_DIR}/asn1_constants.h) set(nr_rrc_h ${nr_rrc_h} ${NR_RRC_FULL_DIR}/asn1_constants.h)
set_source_files_properties(${nr_rrc_source} PROPERTIES COMPILE_FLAGS -w) # suppress warnings from generated code set_source_files_properties(${nr_rrc_source} PROPERTIES COMPILE_FLAGS -w) # suppress warnings from generated code
add_library(NR_RRC_LIB ${nr_rrc_h} ${nr_rrc_source} #add_library(NR_RRC_LIB ${nr_rrc_h} ${nr_rrc_source}
${OPENAIR2_DIR}/RRC/NR/MESSAGES/asn1_msg.c) # ${OPENAIR2_DIR}/RRC/NR/MESSAGES/asn1_msg.c)
include_directories ("${NR_RRC_FULL_DIR}") #include_directories ("${NR_RRC_FULL_DIR}")
# add the command to generate the source code # add the command to generate the source code
# Warning: if you modify ASN.1 source file to generate new C files, cmake should be re-run instead of make # Warning: if you modify ASN.1 source file to generate new C files, cmake should be re-run instead of make
......
...@@ -91,7 +91,7 @@ typedef struct { ...@@ -91,7 +91,7 @@ typedef struct {
/// NB_IoT RRC context variables /// NB_IoT RRC context variables
//struct eNB_RRC_INST_NB_IoT_s **nb_iot_rrc; //struct eNB_RRC_INST_NB_IoT_s **nb_iot_rrc;
/// NR RRC context variables /// NR RRC context variables
struct gNB_RRC_INST_s **nr_rrc; struct gNB_RRC_INST_s **nrrrc;
/// MAC context variables /// MAC context variables
struct eNB_MAC_INST_s **mac; struct eNB_MAC_INST_s **mac;
/// NB_IoT MAC context variables /// NB_IoT MAC context variables
......
...@@ -84,6 +84,10 @@ typedef boolean_t eNB_flag_t; ...@@ -84,6 +84,10 @@ typedef boolean_t eNB_flag_t;
#define ENB_FLAG_NO FALSE #define ENB_FLAG_NO FALSE
#define ENB_FLAG_YES TRUE #define ENB_FLAG_YES TRUE
typedef boolean_t gNB_flag_t;
#define GNB_FLAG_NO FALSE
#define GNB_FLAG_YES TRUE
typedef boolean_t srb_flag_t; typedef boolean_t srb_flag_t;
#define SRB_FLAG_NO FALSE #define SRB_FLAG_NO FALSE
#define SRB_FLAG_YES TRUE #define SRB_FLAG_YES TRUE
...@@ -236,6 +240,9 @@ typedef struct protocol_ctxt_s { ...@@ -236,6 +240,9 @@ typedef struct protocol_ctxt_s {
#define UE_INSTANCE_TO_MODULE_ID( iNSTANCE ) iNSTANCE - NB_eNB_INST #define UE_INSTANCE_TO_MODULE_ID( iNSTANCE ) iNSTANCE - NB_eNB_INST
#define ENB_INSTANCE_TO_MODULE_ID( iNSTANCE )iNSTANCE #define ENB_INSTANCE_TO_MODULE_ID( iNSTANCE )iNSTANCE
//NR
#define GNB_MODULE_ID_TO_INSTANCE( mODULE_iD ) mODULE_iD
#define GNB_INSTANCE_TO_MODULE_ID( iNSTANCE )iNSTANCE
#define MODULE_ID_TO_INSTANCE(mODULE_iD, iNSTANCE, eNB_fLAG) \ #define MODULE_ID_TO_INSTANCE(mODULE_iD, iNSTANCE, eNB_fLAG) \
if(eNB_fLAG == ENB_FLAG_YES) \ if(eNB_fLAG == ENB_FLAG_YES) \
......
...@@ -280,28 +280,34 @@ typedef struct NRRrcConfigurationReq_s { ...@@ -280,28 +280,34 @@ typedef struct NRRrcConfigurationReq_s {
//NR DL SCS-SpecificCarrier //NR DL SCS-SpecificCarrier
uint32_t DL_offsetToCarrier[MAX_NUM_CCs]; uint32_t DL_offsetToCarrier[MAX_NUM_CCs];
long DL_SubcarrierSpacing[MAX_NUM_CCs]; long DL_SCS_SubcarrierSpacing[MAX_NUM_CCs];
long DL_SCS_SpecificCarrier_k0[MAX_NUM_CCs]; long DL_SCS_SpecificCarrier_k0[MAX_NUM_CCs];
uint32_t DL_carrierBandwidth[MAX_NUM_CCs]; uint32_t DL_carrierBandwidth[MAX_NUM_CCs];
//NR BWP-DownlinkCommon //NR BWP-DownlinkCommon
uint32_t DL_locationAndBandwidth[MAX_NUM_CCs]; uint32_t DL_locationAndBandwidth[MAX_NUM_CCs];
long DL_BWP_SubcarrierSpacing[MAX_NUM_CCs];
lte_prefix_type_t DL_BWP_prefix_type[MAX_NUM_CCs];
//NR FrequencyInfoUL //NR FrequencyInfoUL
long UL_FreqBandIndicatorNR[MAX_NUM_CCs]; long UL_FreqBandIndicatorNR[MAX_NUM_CCs];
long UL_absoluteFrequencyPointA[MAX_NUM_CCs]; long UL_absoluteFrequencyPointA[MAX_NUM_CCs];
long FrequencyInfoUL_p_Max[MAX_NUM_CCs]; lte_prefix_type_t UL_additionalSpectrumEmission[MAX_NUM_CCs]
long frequencyShift7p5khz[MAX_NUM_CCs]; long UL_p_Max[MAX_NUM_CCs];
long ULfrequencyShift7p5khz[MAX_NUM_CCs];
//NR UL SCS-SpecificCarrier //NR UL SCS-SpecificCarrier
uint32_t UL_offsetToCarrier[MAX_NUM_CCs]; uint32_t UL_offsetToCarrier[MAX_NUM_CCs];
long UL_SubcarrierSpacing[MAX_NUM_CCs]; long UL_SCS_SubcarrierSpacing[MAX_NUM_CCs];
long UL_SCS_SpecificCarrier_k0[MAX_NUM_CCs]; long UL_SCS_SpecificCarrier_k0[MAX_NUM_CCs];
uint32_t UL_carrierBandwidth[MAX_NUM_CCs]; uint32_t UL_carrierBandwidth[MAX_NUM_CCs];
// NR BWP-UplinkCommon // NR BWP-UplinkCommon
uint32_t UL_locationAndBandwidth[MAX_NUM_CCs]; uint32_t UL_locationAndBandwidth[MAX_NUM_CCs];
long UL_BWP_SubcarrierSpacing[MAX_NUM_CCs];
lte_prefix_type_t UL_BWP_prefix_type[MAX_NUM_CCs];
long ServingCellConfigCommon_ssb_PositionsInBurst_PR[MAX_NUM_CCs];
long ServingCellConfigCommon_ssb_periodicityServingCell[MAX_NUM_CCs]; //ServingCellConfigCommon long ServingCellConfigCommon_ssb_periodicityServingCell[MAX_NUM_CCs]; //ServingCellConfigCommon
long ServingCellConfigCommon_dmrs_TypeA_Position[MAX_NUM_CCs]; //ServingCellConfigCommon long ServingCellConfigCommon_dmrs_TypeA_Position[MAX_NUM_CCs]; //ServingCellConfigCommon
long NIA_SubcarrierSpacing[MAX_NUM_CCs]; //ServingCellConfigCommon Used only for non-initial access long NIA_SubcarrierSpacing[MAX_NUM_CCs]; //ServingCellConfigCommon Used only for non-initial access
...@@ -394,6 +400,7 @@ typedef struct NRRrcConfigurationReq_s { ...@@ -394,6 +400,7 @@ typedef struct NRRrcConfigurationReq_s {
long PDCCH_interleaverSize[MAX_NUM_CCs]; long PDCCH_interleaverSize[MAX_NUM_CCs];
long PDCCH_shiftIndex[MAX_NUM_CCs]; long PDCCH_shiftIndex[MAX_NUM_CCs];
long PDCCH_precoderGranularity[MAX_NUM_CCs]; //Corresponds to L1 parameter 'CORESET-precoder-granuality' long PDCCH_precoderGranularity[MAX_NUM_CCs]; //Corresponds to L1 parameter 'CORESET-precoder-granuality'
long PDCCH_TCI_StateId[MAX_NUM_CCs];
BOOLEAN_t tci_PresentInDCI[MAX_NUM_CCs]; BOOLEAN_t tci_PresentInDCI[MAX_NUM_CCs];
//NR PDCCH-ConfigCommon commonSearchSpaces //NR PDCCH-ConfigCommon commonSearchSpaces
......
...@@ -92,7 +92,7 @@ static void configure_nrrrc(uint32_t gnb_id) ...@@ -92,7 +92,7 @@ static void configure_nrrrc(uint32_t gnb_id)
msg_p = itti_alloc_new_message (TASK_GNB_APP, NRRRC_CONFIGURATION_REQ); msg_p = itti_alloc_new_message (TASK_GNB_APP, NRRRC_CONFIGURATION_REQ);
if (RC.nr_rrc[gnb_id]) { if (RC.nr_rrc[gnb_id]) {
RCconfig_NRRRC(msg_p,gnb_id, RC.nr_rrc[gnb_id]); RCconfig_NRRRC(msg_p,gnb_id, RC.nrrrc[gnb_id]);
LOG_I(GNB_APP,"Sending configuration message to NR_RRC task\n"); LOG_I(GNB_APP,"Sending configuration message to NR_RRC task\n");
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -20,11 +20,11 @@ ...@@ -20,11 +20,11 @@
/*! \file RRC/LITE/defs_NR.h /*! \file RRC/LITE/defs_NR.h
* \brief NR RRC struct definitions and function prototypes * \brief NR RRC struct definitions and function prototypes
* \author Navid Nikaein, Raymond Knopp and WEI-TAI CHEN * \author Navid Nikaein, Raymond Knopp
* \date 2010 - 2014, 2018 * \date 2010 - 2014, 2018
* \version 1.0 * \version 1.0
* \company Eurecom * \company Eurecom
* \email: navid.nikaein@eurecom.fr, raymond.knopp@eurecom.fr, kroempa@gmail.com.tw * \email: navid.nikaein@eurecom.fr, raymond.knopp@eurecom.fr
*/ */
#ifndef __OPENAIR_RRC_DEFS_NR_H__ #ifndef __OPENAIR_RRC_DEFS_NR_H__
...@@ -45,6 +45,8 @@ ...@@ -45,6 +45,8 @@
#include "SIB1.h" #include "SIB1.h"
//#include "SystemInformation.h" //#include "SystemInformation.h"
//#include "RRCConnectionReconfiguration.h" //#include "RRCConnectionReconfiguration.h"
#include "RRCReconfigurationComplete.h"
#include "RRCReconfiguration"
//#include "RRCConnectionReconfigurationComplete.h" //#include "RRCConnectionReconfigurationComplete.h"
//#include "RRCConnectionSetup.h" //#include "RRCConnectionSetup.h"
//#include "RRCConnectionSetupComplete.h" //#include "RRCConnectionSetupComplete.h"
...@@ -59,6 +61,7 @@ ...@@ -59,6 +61,7 @@
//#include "AS-Context.h" //#include "AS-Context.h"
#include "UE-NR-Capability.h" #include "UE-NR-Capability.h"
#include "MeasResults.h" #include "MeasResults.h"
#include "ServingCellConfigCommon.h"
#endif #endif
//------------------- //-------------------
...@@ -389,78 +392,35 @@ typedef struct rrc_gNB_ue_context_s { ...@@ -389,78 +392,35 @@ typedef struct rrc_gNB_ue_context_s {
typedef struct { typedef struct {
// buffer that contains the encoded messages // buffer that contains the encoded messages
uint8_t *MIB_NR; uint8_t *MIB;
uint8_t sizeof_MIB_NR; uint8_t sizeof_MIB;
uint8_t *SIB1_NR; uint8_t *SIB1;
uint8_t sizeof_SIB1_NR; uint8_t sizeof_SIB1;
/*
uint8_t *SIB23_NB_IoT; uint8_t *SERVINGCELLCONFIGCOMMON;
uint8_t sizeof_SIB23_NB_IoT; uint8_t sizeof_SERVINGCELLCONFIGCOMMON;
*/
/*
//not actually implemented in OAI
uint8_t *SIB4_NB_IoT;
uint8_t sizeof_SIB4_NB_IoT;
uint8_t *SIB5_NB_IoT;
uint8_t sizeof_SIB5_NB_IoT;
uint8_t *SIB14_NB_IoT;
uint8_t sizeof_SIB14_NB_IoT;
uint8_t *SIB16_NB_IoT;
uint8_t sizeof_SIB16_NB_IoT;
*/
//TS 36.331 V14.2.1
// uint8_t *SIB15_NB;
// uint8_t sizeof_SIB15_NB;
// uint8_t *SIB20_NB;
// uint8_t sizeof_SIB20_NB;
// uint8_t *SIB22_NB;
// uint8_t sizeof_SIB22_NB;
//implicit parameters needed //implicit parameters needed
int Ncp; //cyclic prefix for DL int Ncp; //cyclic prefix for DL
int Ncp_UL; //cyclic prefix for UL int Ncp_UL; //cyclic prefix for UL
int p_eNB; //number of tx antenna port int p_gNB; //number of tx antenna port
int p_rx_eNB; //number of receiving antenna ports int p_rx_gNB; //number of receiving antenna ports
uint32_t dl_CarrierFreq; //detected by the UE uint32_t dl_CarrierFreq; //detected by the UE
uint32_t ul_CarrierFreq; //detected by the UE uint32_t ul_CarrierFreq; //detected by the UE
uint16_t physCellId; //not stored in the MIB-NB but is getting through NPSS/NSSS uint16_t physCellId;
//are the only static one (memory has been already allocated) //are the only static one (memory has been already allocated)
BCCH_BCH_Message_t mib_NR; BCCH_BCH_Message_t mib;
/* SIB1_t *sib1;
BCCH_DL_SCH_Message_NR_t siblock1_NB_IoT; //SIB1-NB ServingCellConfigCommon_t *servingcellconfigcommon;
BCCH_DL_SCH_Message_NR_t systemInformation_NB_IoT; //SI
*/
SIB1_t *sib1_NR;
/*
SIB2_t *sib2_NR;
SIB3_t *sib3_NR;
//not implemented yet
SIB4_t *sib4_NR;
SIB5_t *sib5_NR;
*/
SRB_INFO_NR SI; SRB_INFO_NR SI;
SRB_INFO_NR Srb0; SRB_INFO_NR Srb0;
uint8_t **MCCH_MESSAGE; // probably not needed , but added to remove errors
uint8_t sizeof_MCCH_MESSAGE[8];// but added to remove errors
SRB_INFO_NR MCCH_MESS[8];// MAX_MBSFN_AREA
/*future implementation TS 36.331 V14.2.1
SystemInformationBlockType15_NB_r14_t *sib15;
SystemInformationBlockType20_NB_r14_t *sib20;
SystemInformationBlockType22_NB_r14_t *sib22;
uint8_t SCPTM_flag;
uint8_t sizeof_SC_MCHH_MESS[];
SC_MCCH_Message_NR_t scptm;*/
} rrc_gNB_carrier_data_t; } rrc_gNB_carrier_data_t;
//--------------------------------------------------- //---------------------------------------------------
...@@ -484,6 +444,7 @@ typedef struct gNB_RRC_INST_s { ...@@ -484,6 +444,7 @@ typedef struct gNB_RRC_INST_s {
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
gNB_RrcConfigurationReq configuration;//rrc_messages_types.h gNB_RrcConfigurationReq configuration;//rrc_messages_types.h
#endif #endif
// other PLMN parameters // other PLMN parameters
/// Mobile country code /// Mobile country code
int mcc; int mcc;
......
This diff is collapsed.
...@@ -275,19 +275,25 @@ gNBs = ...@@ -275,19 +275,25 @@ gNBs =
DL_FreqBandIndicatorNR = 0; DL_FreqBandIndicatorNR = 0;
DL_absoluteFrequencyPointA = 0; DL_absoluteFrequencyPointA = 0;
DL_offsetToCarrier = 0; DL_offsetToCarrier = 0;
DL_SubcarrierSpacing = 0; DL_SCS_SubcarrierSpacing = 0;
DL_SCS_SpecificCarrier_k0 = 0; DL_SCS_SpecificCarrier_k0 = 0;
DL_carrierBandwidth = 0; DL_carrierBandwidth = 0;
DL_locationAndBandwidth = 0; DL_locationAndBandwidth = 0;
DL_BWP_SubcarrierSpacing = 0;
DL_BWP_prefix_type = "NORMAL";
UL_FreqBandIndicatorNR = 0; UL_FreqBandIndicatorNR = 0;
UL_absoluteFrequencyPointA = 0; UL_absoluteFrequencyPointA = 0;
FrequencyInfoUL_p_Max = 0; UL_additionalSpectrumEmission = 0;
frequencyShift7p5khz = 0; UL_p_Max = 0;
UL_frequencyShift7p5khz = 0;
UL_offsetToCarrier = 0; UL_offsetToCarrier = 0;
UL_SubcarrierSpacing = 0; UL_SCS_SubcarrierSpacing = 0;
UL_SCS_SpecificCarrier_k0 = 0; UL_SCS_SpecificCarrier_k0 = 0;
UL_carrierBandwidth = 0; UL_carrierBandwidth = 0;
UL_locationAndBandwidth = 0; UL_locationAndBandwidth = 0;
UL_BWP_SubcarrierSpacing = 0;
UL_BWP_prefix_type = 0;
ServingCellConfigCommon__ssb_PositionsInBurst_PR = 0;
ServingCellConfigCommon_ssb_periodicityServingCell = 0; ServingCellConfigCommon_ssb_periodicityServingCell = 0;
ServingCellConfigCommon_dmrs_TypeA_Position = 0; ServingCellConfigCommon_dmrs_TypeA_Position = 0;
NIA_SubcarrierSpacing = 0; NIA_SubcarrierSpacing = 0;
...@@ -357,6 +363,7 @@ gNBs = ...@@ -357,6 +363,7 @@ gNBs =
PDCCH_interleaverSize = 0; PDCCH_interleaverSize = 0;
PDCCH_shiftIndex = 0; PDCCH_shiftIndex = 0;
PDCCH_precoderGranularity = 0; PDCCH_precoderGranularity = 0;
PDCCH_TCI_StateId = 0;
tci_PresentInDCI = NULL; tci_PresentInDCI = NULL;
SearchSpaceId = 0; SearchSpaceId = 0;
commonSearchSpaces_controlResourceSetId = 0; commonSearchSpaces_controlResourceSetId = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment