Commit 106f3135 authored by Michele Paffetti's avatar Michele Paffetti

implementation of is_SIB1_NB and is_SIB23_NB function for SI scheduling...

implementation of is_SIB1_NB and is_SIB23_NB function for SI scheduling purposes (NB_mac_rrc_data_req_eNB), the code compile but still warning to be solved
parent 4f5cc15c
...@@ -92,6 +92,10 @@ typedef boolean_t srb1bis_flag_t; ...@@ -92,6 +92,10 @@ typedef boolean_t srb1bis_flag_t;
#define SRB1BIS_FLAG_NO FALSE #define SRB1BIS_FLAG_NO FALSE
#define SRB1BIS_FLAG_YES TRUE #define SRB1BIS_FLAG_YES TRUE
typedef boolean_t mib_flag_t;
#define MIB_FLAG_YES TRUE
#define MIB_FLAG_NO FALSE
typedef enum link_direction_e { typedef enum link_direction_e {
UNKNOWN_DIR = 0, UNKNOWN_DIR = 0,
......
...@@ -69,6 +69,14 @@ schedule_SI( ...@@ -69,6 +69,14 @@ schedule_SI(
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
{ {
/*
* Major changes for NB-IoT needed:
* - any DCI message is transmitted for the SI-Message deconding, but all the information are inside the SIB1
* (once know the SIB1 the UE in principle should also know the TBS of the SI-Message (given by the si-TB field in schedulingInfoList)
* -given the TBS of the SI-Message the corresponding number of consecutive DL subframes for the broadcast of the SI is given (TS 36.331 si-TB):
* if TBS = 56 or 120 bits --> transmission over 2-subframes
* for every other TBS size --> transmission over 8 subframe
*/
int8_t bcch_sdu_length; int8_t bcch_sdu_length;
......
This diff is collapsed.
...@@ -461,6 +461,7 @@ typedef struct { ...@@ -461,6 +461,7 @@ typedef struct {
// buffer that contains the encoded messages // buffer that contains the encoded messages
uint8_t *MIB_NB; uint8_t *MIB_NB;
uint8_t sizeof_MIB_NB; uint8_t sizeof_MIB_NB;
uint8_t *SIB1_NB; uint8_t *SIB1_NB;
uint8_t sizeof_SIB1_NB; uint8_t sizeof_SIB1_NB;
uint8_t *SIB23_NB; uint8_t *SIB23_NB;
...@@ -541,7 +542,7 @@ typedef struct eNB_RRC_INST_NB_s { ...@@ -541,7 +542,7 @@ typedef struct eNB_RRC_INST_NB_s {
hash_table_t *s1ap_id2_s1ap_ids ; // key is content is rrc_ue_s1ap_ids_t hash_table_t *s1ap_id2_s1ap_ids ; // key is content is rrc_ue_s1ap_ids_t
//RRC configuration //RRC configuration
RrcConfigurationReq configuration; //should be changed but need PHY specs also RrcConfigurationReq configuration; //rrc_messages_types.h
// other PLMN parameters // other PLMN parameters
/// Mobile country code /// Mobile country code
......
...@@ -93,21 +93,49 @@ int NB_rrc_mac_config_req_eNB( ...@@ -93,21 +93,49 @@ int NB_rrc_mac_config_req_eNB(
); );
//---------------------------------------- //----------------------------------------
//New
/**\brief function for evaluate if the SIB1-NB transmission occur
* called by the NB_mac_rrc_data_req
*/
boolean_t is_SIB1_NB(
const frame_t frameP,
long schedulingInfoSIB1,//from the mib
int physCellId
);
//--------------------------------------
//New
/**\brief function for evaluate if the SIB23-NB transmission occurr
* called by the NB_mac_rrc_data_req
*
*/
boolean_t is_SIB23_NB(
const frame_t frameP,
const frame_t h_frameP, // the HSFN (increased by 1 every SFN wrap around) (10 bits)
long si_period, //SI-periodicity (rf)
long si_windowLength_ms, //Si-windowlength (ms) XXX received as an enumerative (see the IE of SIB1-NB)
long* si_RadioFrameOffset, //Optional
long si_RepetitionPattern // is given as an Enumerated
);
//-----------------------------------
//defined in L2_interface //defined in L2_interface
int8_t NB_mac_rrc_data_req_eNB( int8_t NB_mac_rrc_data_req_eNB(
const module_id_t Mod_idP, const module_id_t Mod_idP,
const int CC_id, const int CC_id,
const frame_t frameP, const frame_t frameP,
const frame_t h_frameP,
const rb_id_t Srb_id, const rb_id_t Srb_id,
uint8_t* const buffer_pP, uint8_t* const buffer_pP,
long schedulingInfoSIB1,//from the mib long schedulingInfoSIB1,//from the mib
int physCellId, //from the MAC instance-> common_channel int physCellId, //from the MAC instance-> common_channel
const frame_t h_frameP, //HSFN mib_flag_t mib_flag
long si_periodicity, //SI-periodicity
long si_windowLength //Si-windwolength
); );
//--------------------------------------- //---------------------------------------
//defined in L2_interface //defined in L2_interface
//called by rx_sdu only in case of CCCH message (e.g RRCConnectionRequest-NB) //called by rx_sdu only in case of CCCH message (e.g RRCConnectionRequest-NB)
int8_t NB_mac_rrc_data_ind_eNB( int8_t NB_mac_rrc_data_ind_eNB(
......
...@@ -68,7 +68,7 @@ openair_eNB_rrc_on_NB( ...@@ -68,7 +68,7 @@ openair_eNB_rrc_on_NB(
) )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
unsigned short i;
int CC_id; int CC_id;
LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" OPENAIR RRC-NB IN....\n", LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" OPENAIR RRC-NB IN....\n",
...@@ -200,11 +200,10 @@ L3_xface_init_NB( ...@@ -200,11 +200,10 @@ L3_xface_init_NB(
//specialized function for the eNB initialization (NB-IoT) //specialized function for the eNB initialization (NB-IoT)
//(OLD was called in MAC/main.c--> mac_top_init)(NEW is called in directly in "openair_rrc_eNB_configuration_NB") //(OLD was called in MAC/main.c--> mac_top_init)(NEW is called in directly in "openair_rrc_eNB_configuration_NB")
void void
openair_rrc_top_init_eNB_NB()//MP: XXX Raymond put this directly the definition on rrc_eNB.c file openair_rrc_top_init_eNB_NB(void)//MP: XXX Raymond put this directly the definition on rrc_eNB.c file
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{ {
module_id_t module_id;
int CC_id; int CC_id;
/* for no gcc warnings */ /* for no gcc warnings */
......
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