Commit 0fdd3c8e authored by Matthieu Kanj's avatar Matthieu Kanj

seperation completed for the file /LTE_TRANSPORT/dci_tools_nb_iot.c (the includes to review)

+ creation of new file : openair2/LAYER2/MAC/extern_NB_IoT.h
parent 92f0af71
......@@ -32,11 +32,11 @@
#ifndef __DCI_NB_IOT_H__
#define __DCI_NB_IOT_H__
#ifndef USER_MODE
#include "PHY/types.h"
#else
#include <stdint.h>
#endif
//#ifndef USER_MODE
//#include "PHY/types.h"
//#else
////////////////////////////////////////#include <stdint.h>
//#endif
typedef enum
{
......@@ -284,6 +284,7 @@ struct DCIN2_Pag{
} __attribute__ ((__packed__));;
typedef struct DCIN2_Pag DCIN2_Pag_t;
#define sizeof_DCIN2_Pag_t 15
#define MAX_DCI_SIZE_BITS_NB_IOT 23
......
......@@ -30,10 +30,10 @@
* \warning
*/
//#include "PHY/defs.h"
#include "PHY/extern.h"
#include "SCHED/defs.h"
#include "PHY/extern_NB_IoT.h"
#include "SCHED/defs_nb_iot.h"
#ifdef DEBUG_DCI_TOOLS
#include "PHY/vars.h"
#include "PHY/vars_NB_IoT.h"
#endif
#include "assertions.h"
//#include "dlsch_tbs_full.h"
......@@ -41,13 +41,13 @@
//#define DEBUG_HARQ
#include "LAYER2/MAC/extern.h"
#include "LAYER2/MAC/defs.h"
#include "LAYER2/MAC/extern_NB_IoT.h"
#include "LAYER2/MAC/defs_nb_iot.h"
#include "PHY/defs_nb_iot.h"
//#define DEBUG_DCI
void add_dci_NB_IoT(DCI_PDU_NB *DCI_pdu,void *pdu,rnti_t rnti,unsigned char dci_size_bytes,unsigned char aggregation,unsigned char dci_size_bits,unsigned char dci_fmt, uint8_t npdcch_start_symbol)
void add_dci_NB_IoT(DCI_PDU_NB_IoT *DCI_pdu,void *pdu,rnti_t rnti,unsigned char dci_size_bytes,unsigned char aggregation,unsigned char dci_size_bits,unsigned char dci_fmt, uint8_t npdcch_start_symbol)
{
//put the pdu
memcpy(&DCI_pdu->dci_alloc[DCI_pdu->Num_dci].dci_pdu[0],pdu,dci_size_bytes);
......@@ -74,9 +74,9 @@ int generate_eNB_ulsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
uint8_t npdcch_start_symbol)
{
void *ULSCH_DCI_NB = NULL;
void *ULSCH_DCI_NB_IoT = NULL;
eNB->DCI_pdu = (DCI_PDU_NB*) malloc(sizeof(DCI_PDU_NB));
eNB->DCI_pdu = (DCI_PDU_NB_IoT*) malloc(sizeof(DCI_PDU_NB_IoT));
/// type = 0 => DCI Format N0, type = 1 => DCI Format N1, 1 bits
uint8_t type;
......@@ -111,18 +111,18 @@ int generate_eNB_ulsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
DCIRep = DCI_Content->DCIN0.DCIRep;
/*Packed DCI here*/
((DCIN0_t *)ULSCH_DCI_NB)->type =type;
((DCIN0_t *)ULSCH_DCI_NB)->scind =scind;
((DCIN0_t *)ULSCH_DCI_NB)->ResAssign =ResAssign;
((DCIN0_t *)ULSCH_DCI_NB)->Scheddly =Scheddly;
((DCIN0_t *)ULSCH_DCI_NB)->mcs =mcs;
((DCIN0_t *)ULSCH_DCI_NB)->rv =rv;
((DCIN0_t *)ULSCH_DCI_NB)->RepNum =RepNum;
((DCIN0_t *)ULSCH_DCI_NB)->ndi =ndi;
((DCIN0_t *)ULSCH_DCI_NB)->DCIRep =DCIRep;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->type =type;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->scind =scind;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->ResAssign =ResAssign;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->Scheddly =Scheddly;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->mcs =mcs;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->rv =rv;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->RepNum =RepNum;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->ndi =ndi;
((DCIN0_t *)ULSCH_DCI_NB_IoT)->DCIRep =DCIRep;
add_dci_NB_IoT(eNB->DCI_pdu,ULSCH_DCI_NB,rnti,sizeof(DCIN0_t),aggregation,sizeof_DCIN0_t,DCIFormatN0, npdcch_start_symbol);
add_dci_NB_IoT(eNB->DCI_pdu,ULSCH_DCI_NB_IoT,rnti,sizeof(DCIN0_t),aggregation,sizeof_DCIN0_t,DCIFormatN0, npdcch_start_symbol);
// use this value to configure PHY both harq_processes and resource mapping.
......@@ -153,8 +153,8 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
{
NB_IoT_DL_eNB_HARQ_t* ndlsch_harq = ndlsch->harq_process;
void *DLSCH_DCI_NB = NULL;
eNB->DCI_pdu = (DCI_PDU_NB*) malloc(sizeof(DCI_PDU_NB));
void *DLSCH_DCI_NB_IoT = NULL;
eNB->DCI_pdu = (DCI_PDU_NB_IoT*) malloc(sizeof(DCI_PDU_NB_IoT));
......@@ -210,18 +210,18 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
DCIRep = DCI_Content->DCIN1_RAR.DCIRep;
//DCI pdu content
((DCIN1_RAR_t *)DLSCH_DCI_NB)->type =type;
((DCIN1_RAR_t *)DLSCH_DCI_NB)->orderIndicator =orderIndicator;
((DCIN1_RAR_t *)DLSCH_DCI_NB)->Scheddly =Sched_delay;
((DCIN1_RAR_t *)DLSCH_DCI_NB)->ResAssign =ResAssign;
((DCIN1_RAR_t *)DLSCH_DCI_NB)->mcs =mcs;
((DCIN1_RAR_t *)DLSCH_DCI_NB)->RepNum =RepNum;
((DCIN1_RAR_t *)DLSCH_DCI_NB)->ndi =ndi;
((DCIN1_RAR_t *)DLSCH_DCI_NB)->HARQackRes =HARQackRes;
((DCIN1_RAR_t *)DLSCH_DCI_NB)->DCIRep =DCIRep;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->type =type;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->orderIndicator =orderIndicator;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->Scheddly =Sched_delay;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->ResAssign =ResAssign;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->mcs =mcs;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->RepNum =RepNum;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->ndi =ndi;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->HARQackRes =HARQackRes;
((DCIN1_RAR_t *)DLSCH_DCI_NB_IoT)->DCIRep =DCIRep;
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB,rnti,sizeof(DCIN1_RAR_t),aggregation,sizeof_DCIN1_RAR_t,DCIFormatN1_RAR, npdcch_start_symbol);
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN1_RAR_t),aggregation,sizeof_DCIN1_RAR_t,DCIFormatN1_RAR, npdcch_start_symbol);
/*Now configure the ndlsch structure*/
......@@ -238,6 +238,7 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
ndlsch_harq->modulation = 2; //QPSK
if(ndlsch_harq->round == 0) //this should be set from initialization (init-lte)
ndlsch_harq->status = ACTIVE;
ndlsch_harq->mcs = mcs;
/*
......@@ -280,18 +281,18 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
DCIRep = DCI_Content->DCIN1.DCIRep;
/*Packed DCI here*/
((DCIN1_t *)DLSCH_DCI_NB)->type =type;
((DCIN1_t *)DLSCH_DCI_NB)->orderIndicator =orderIndicator;
((DCIN1_t *)DLSCH_DCI_NB)->Scheddly =Sched_delay;
((DCIN1_t *)DLSCH_DCI_NB)->ResAssign =ResAssign;
((DCIN1_t *)DLSCH_DCI_NB)->mcs =mcs;
((DCIN1_t *)DLSCH_DCI_NB)->RepNum =RepNum;
((DCIN1_t *)DLSCH_DCI_NB)->ndi =ndi;
((DCIN1_t *)DLSCH_DCI_NB)->HARQackRes =HARQackRes;
((DCIN1_t *)DLSCH_DCI_NB)->DCIRep =DCIRep;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->type =type;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->orderIndicator =orderIndicator;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->Scheddly =Sched_delay;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->ResAssign =ResAssign;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->mcs =mcs;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->RepNum =RepNum;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->ndi =ndi;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->HARQackRes =HARQackRes;
((DCIN1_t *)DLSCH_DCI_NB_IoT)->DCIRep =DCIRep;
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB,rnti,sizeof(DCIN1_t),aggregation,sizeof_DCIN1_t,DCIFormatN1,npdcch_start_symbol);
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN1_t),aggregation,sizeof_DCIN1_t,DCIFormatN1,npdcch_start_symbol);
/*Now configure the ndlsch structure*/
......@@ -324,12 +325,12 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
resInfoBits = DCI_Content->DCIN2_Ind.resInfoBits;
/*Packed DCI here*/
((DCIN2_Ind_t *)DLSCH_DCI_NB)->type =type;
((DCIN2_Ind_t *)DLSCH_DCI_NB)->directIndInf =directIndInf;
((DCIN2_Ind_t *)DLSCH_DCI_NB)->resInfoBits =resInfoBits;
((DCIN2_Ind_t *)DLSCH_DCI_NB_IoT)->type =type;
((DCIN2_Ind_t *)DLSCH_DCI_NB_IoT)->directIndInf =directIndInf;
((DCIN2_Ind_t *)DLSCH_DCI_NB_IoT)->resInfoBits =resInfoBits;
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB,rnti,sizeof(DCIN2_Ind_t),aggregation,sizeof_DCIN2_Ind_t,DCIFormatN2_Ind,npdcch_start_symbol);
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN2_Ind_t),aggregation,sizeof_DCIN2_Ind_t,DCIFormatN2_Ind,npdcch_start_symbol);
// use this value to configure PHY both harq_processes and resource mapping.
break;
......@@ -344,14 +345,14 @@ int generate_eNB_dlsch_params_from_dci_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
DCIRep = DCI_Content->DCIN2_Pag.DCIRep;
/*Packed DCI here*/
((DCIN2_Pag_t *)DLSCH_DCI_NB)->type =type;
((DCIN2_Pag_t *)DLSCH_DCI_NB)->ResAssign =ResAssign;
((DCIN2_Pag_t *)DLSCH_DCI_NB)->mcs =mcs;
((DCIN2_Pag_t *)DLSCH_DCI_NB)->RepNum =RepNum;
((DCIN2_Pag_t *)DLSCH_DCI_NB)->DCIRep =DCIRep;
((DCIN2_Pag_t *)DLSCH_DCI_NB_IoT)->type =type;
((DCIN2_Pag_t *)DLSCH_DCI_NB_IoT)->ResAssign =ResAssign;
((DCIN2_Pag_t *)DLSCH_DCI_NB_IoT)->mcs =mcs;
((DCIN2_Pag_t *)DLSCH_DCI_NB_IoT)->RepNum =RepNum;
((DCIN2_Pag_t *)DLSCH_DCI_NB_IoT)->DCIRep =DCIRep;
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB,rnti,sizeof(DCIN2_Pag_t),aggregation,sizeof_DCIN2_Pag_t,DCIFormatN2_Pag,npdcch_start_symbol);
add_dci_NB_IoT(eNB->DCI_pdu,DLSCH_DCI_NB_IoT,rnti,sizeof(DCIN2_Pag_t),aggregation,sizeof_DCIN2_Pag_t,DCIFormatN2_Pag,npdcch_start_symbol);
// use this value to configure PHY both harq_processes and resource mapping.
break;
......
......@@ -802,7 +802,6 @@ typedef struct {
uint8_t dci_pdu[8];
} DCI_ALLOC_t;
//----------------------------------------------------------------------------------------------------------
// NB-IoT
//----------------------------------------------------------------------------------------------------
......@@ -853,7 +852,6 @@ uint16_t repetition_idx_Pag;
}NB_IoT_eNB_COMMON_NPDCCH_t;
typedef struct {
/// Length of DCI in bits
......@@ -872,6 +870,7 @@ typedef struct {
uint8_t dci_pdu[8];
} DCI_ALLOC_NB_IoT_t;
typedef struct {
//delete the count for the DCI numbers,NUM_DCI_MAX should set to 2
uint32_t num_npdcch_symbols;
......@@ -880,7 +879,7 @@ typedef struct {
uint8_t npdcch_start_symbol;
uint8_t Num_dci;
DCI_ALLOC_NB_IoT_t dci_alloc[2] ;
} DCI_PDU_NB;
} DCI_PDU_NB_IoT;
typedef struct {
......@@ -1102,8 +1101,5 @@ typedef struct {
//---------------------------------------------------------------------------------------
/**@}*/
#endif
......@@ -11,8 +11,8 @@
* \note
* \warning
*/
//#ifndef __LTE_TRANSPORT_DEFS_NB_IOT__H__
//#define __LTE_TRANSPORT_DEFS_NB_IOT__H__
#ifndef __LTE_TRANSPORT_DEFS_NB_IOT__H__
#define __LTE_TRANSPORT_DEFS_NB_IOT__H__
////#include "PHY/defs.h"
//#include "PHY/defs_nb_iot.h"
//#include "dci_nb_iot.h"
......@@ -179,4 +179,7 @@
//} NB_IoT_DL_eNB_HARQ_t;
//#endif
#endif
......@@ -91,7 +91,7 @@ void npbch_scrambling(NB_IoT_DL_FRAME_PARMS *frame_parms,
/*Function to pack the DCI*/
// newly added function for NB-IoT , does not exist for LTE
void add_dci_NB_IoT(DCI_PDU_NB *DCI_pdu,
void add_dci_NB_IoT(DCI_PDU_NB_IoT *DCI_pdu,
void *pdu,rnti_t rnti,
unsigned char dci_size_bytes,
unsigned char aggregation,
......
......@@ -706,7 +706,7 @@ typedef struct PHY_VARS_eNB_s {
NB_IoT_DL_FRAME_PARMS frame_parms_NB_IoT;
// DCI for at most 2 DCI pdus
DCI_PDU_NB *DCI_pdu;
DCI_PDU_NB_IoT *DCI_pdu;
*/
......
......@@ -717,7 +717,7 @@ typedef struct PHY_VARS_eNB_NB_IoT_s {
NB_IoT_DL_FRAME_PARMS frame_parms_NB_IoT;
// DCI for at most 2 DCI pdus
DCI_PDU_NB *DCI_pdu;
DCI_PDU_NB_IoT *DCI_pdu;
......
......@@ -77,7 +77,7 @@ extern int flagMag;
extern char mode_string[4][20];
*/
#include "PHY/LTE_TRANSPORT/extern.h"
/*
#ifndef OPENAIR2
......
......@@ -941,7 +941,7 @@ void phy_procedures_eNB_TX_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
int frame = proc->frame_tx;
int subframe = proc->subframe_tx;
uint32_t aa;
DCI_PDU_NB *dci_pdu = eNB->DCI_pdu;
DCI_PDU_NB_IoT *dci_pdu = eNB->DCI_pdu;
NB_IoT_DL_FRAME_PARMS *fp = &eNB->frame_parms_NB_IoT;
int8_t UE_id = 0;
int **txdataF = eNB->common_vars.txdataF[0];
......
......@@ -453,7 +453,7 @@ typedef struct {
ARFCN_ValueEUTRA_r9_t ul_CarrierFreq;
struct MasterInformationBlock_NB__operationModeInfo_r13 operationModeInfo;
/// Outgoing DCI for PHY generated by eNB scheduler
DCI_PDU_NB DCI_pdu;
DCI_PDU_NB_IoT DCI_pdu;
/// Outgoing BCCH pdu for PHY
BCCH_PDU_NB BCCH_pdu;
/// Outgoing BCCH DCI allocation
......
......@@ -126,7 +126,7 @@ printf("MAC: remove UE %d rnti %x\n", UE_id, rntiP);
}
//------------------------------------------------------------------------------
DCI_PDU_NB *NB_get_dci_sdu(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframeP)
DCI_PDU_NB_IoT *NB_get_dci_sdu(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframeP)
//------------------------------------------------------------------------------
{
......
/*
* 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.0 (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
*/
/*! \file extern.h
* \brief mac externs
* \author Navid Nikaein and Raymond Knopp
* \date 2010 - 2014
* \version 1.0
* \email navid.nikaein@eurecom.fr
* @ingroup _mac
*/
#ifndef __MAC_EXTERN_NB_IoT_H__
#define __MAC_EXTERN_NB_IoT_H__
// #ifdef USER_MODE
// //#include "stdio.h"
// #endif //USER_MODE
// #include "PHY/defs.h"
// #include "defs.h"
// #include "COMMON/mac_rrc_primitives.h"
// #ifdef PHY_EMUL
// //#include "SIMULATION/simulation_defs.h"
// #endif //PHY_EMUL
#include "PHY_INTERFACE/defs.h"
#include "RRC/LITE/defs.h"
#ifdef NB_IOT
#include "defs_nb_iot.h"
//NB-IoT
extern IF_Module_t *if_inst;
extern eNB_MAC_INST_NB *eNB_mac_inst_NB;
#endif
// extern const uint32_t BSR_TABLE[BSR_TABLE_SIZE];
// //extern uint32_t EBSR_Level[63];
// extern const uint32_t Extended_BSR_TABLE[BSR_TABLE_SIZE];
// //extern uint32_t Extended_BSR_TABLE[63]; ----currently not used
// extern const uint8_t cqi2fmt0_agg[MAX_SUPPORTED_BW][CQI_VALUE_RANGE];
// extern const uint8_t cqi2fmt1x_agg[MAX_SUPPORTED_BW][CQI_VALUE_RANGE];
// extern const uint8_t cqi2fmt2x_agg[MAX_SUPPORTED_BW][CQI_VALUE_RANGE];
// extern UE_MAC_INST *UE_mac_inst;
// extern eNB_MAC_INST *eNB_mac_inst;
// extern eNB_RRC_INST *eNB_rrc_inst;
// extern UE_RRC_INST *UE_rrc_inst;
// extern UE_MAC_INST *ue_mac_inst;
// extern MAC_RLC_XFACE *Mac_rlc_xface;
// extern uint8_t Is_rrc_registered;
// extern eNB_ULSCH_INFO eNB_ulsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][NUMBER_OF_UE_MAX]; // eNBxUE = 8x8
// extern eNB_DLSCH_INFO eNB_dlsch_info[NUMBER_OF_eNB_MAX][MAX_NUM_CCs][NUMBER_OF_UE_MAX]; // eNBxUE = 8x8
// //#ifndef USER_MODE
// extern MAC_xface *mac_xface;
// extern RRC_XFACE *Rrc_xface;
// extern uint8_t Is_rrc_registered;
#ifndef PHY_EMUL
#ifndef PHYSIM
#define NB_INST 1
#else
extern unsigned char NB_INST;
#endif
extern unsigned char NB_eNB_INST;
extern unsigned char NB_UE_INST;
extern unsigned char NB_RN_INST;
extern unsigned short NODE_ID[1];
extern void* bigphys_malloc(int);
#else
extern EMULATION_VARS *Emul_vars;
#endif //PHY_EMUL
// extern int cqi_to_mcs[16];
// extern uint32_t RRC_CONNECTION_FLAG;
// extern uint8_t rb_table[33];
// extern DCI0_5MHz_TDD_1_6_t UL_alloc_pdu;
// extern DCI1A_5MHz_TDD_1_6_t RA_alloc_pdu;
// extern DCI1A_5MHz_TDD_1_6_t DLSCH_alloc_pdu1A;
// extern DCI1A_5MHz_TDD_1_6_t BCCH_alloc_pdu;
// extern DCI1A_5MHz_TDD_1_6_t CCCH_alloc_pdu;
// extern DCI1_5MHz_TDD_t DLSCH_alloc_pdu;
// extern DCI0_5MHz_FDD_t UL_alloc_pdu_fdd;
// extern DCI1A_5MHz_FDD_t DLSCH_alloc_pdu1A_fdd;
// extern DCI1A_5MHz_FDD_t RA_alloc_pdu_fdd;
// extern DCI1A_5MHz_FDD_t BCCH_alloc_pdu_fdd;
// extern DCI1A_5MHz_FDD_t CCCH_alloc_pdu_fdd;
// extern DCI1_5MHz_FDD_t DLSCH_alloc_pdu_fdd;
// extern DCI2_5MHz_2A_TDD_t DLSCH_alloc_pdu1;
// extern DCI2_5MHz_2A_TDD_t DLSCH_alloc_pdu2;
// extern DCI1E_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu1E;
//NB-IoT---------------------------------
extern eNB_MAC_INST_NB *eNB_mac_inst_NB;
extern uint8_t Is_rrc_nb_iot_registered;
#endif //DEF_H
......@@ -43,7 +43,7 @@ void NB_rx_sdu(const module_id_t module_idP, const int CC_id,const frame_t frame
/* \brief Function to retrieve result of scheduling (DCI) in current subframe. Can be called an arbitrary numeber of times after eNB_dlsch_ulsch_scheduler
in a given subframe.
*/
DCI_PDU_NB *NB_get_dci_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subframe);
DCI_PDU_NB_IoT *NB_get_dci_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subframe);
/* \brief Function to trigger the eNB scheduling procedure. It is called by PHY at the beginning of each subframe, \f$n$\f
......
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