Commit befd0112 authored by chenhsunyang0922's avatar chenhsunyang0922

fix error in phy_procedures_lte_eNB_NB_IoT.c

parent fe75a544
...@@ -522,6 +522,8 @@ typedef struct { ...@@ -522,6 +522,8 @@ typedef struct {
///indicates the starting OFDM symbol in the first slot of a subframe k for the NPDCCH transmission ///indicates the starting OFDM symbol in the first slot of a subframe k for the NPDCCH transmission
/// see FAPI/NFAPI specs Table 4-45 /// see FAPI/NFAPI specs Table 4-45
uint8_t npdcch_start_symbol; uint8_t npdcch_start_symbol;
uint8_t Num_ue_spec_dci;
uint8_t Num_common_dci;
uint8_t Num_dci; uint8_t Num_dci;
DCI_ALLOC_NB_IoT_t dci_alloc[2] ; DCI_ALLOC_NB_IoT_t dci_alloc[2] ;
...@@ -591,6 +593,9 @@ typedef struct { ...@@ -591,6 +593,9 @@ typedef struct {
//(used inside the ndlsch procedure for distinguish the different type of data to manage also in term of repetitions and transmission over more subframes //(used inside the ndlsch procedure for distinguish the different type of data to manage also in term of repetitions and transmission over more subframes
ndlsch_flag_t ndlsch_type; ndlsch_flag_t ndlsch_type;
/// Maximum number of HARQ rounds
uint8_t Mlimit;
} NB_IoT_eNB_NDLSCH_t; } NB_IoT_eNB_NDLSCH_t;
typedef struct { typedef struct {
...@@ -743,6 +748,11 @@ typedef struct { ...@@ -743,6 +748,11 @@ typedef struct {
/// is done after a new scheduling /// is done after a new scheduling
uint16_t previous_first_rb; uint16_t previous_first_rb;
/// Subframe cba scheduling indicator (i.e. CBA Transmission opportunity indicator)
uint8_t subframe_cba_scheduling_flag;
} NB_IoT_UL_eNB_HARQ_t; } NB_IoT_UL_eNB_HARQ_t;
......
...@@ -820,7 +820,7 @@ typedef struct PHY_VARS_eNB_NB_IoT_s { ...@@ -820,7 +820,7 @@ typedef struct PHY_VARS_eNB_NB_IoT_s {
uint8_t msg3_pdu[6]; //phy_procedures_lte_eNb_NB_IoT.c uint8_t msg3_pdu[6]; //phy_procedures_lte_eNb_NB_IoT.c
volatile uint16_t preamble_index_NB_IoT; //phy_procedures_lte_eNb_NB_IoT.c
} PHY_VARS_eNB_NB_IoT; } PHY_VARS_eNB_NB_IoT;
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
int Irep_to_Nrep_x[16] = {1,2,4,8,16,32,64,128,192,256,384,512,768,1024,1536,2048}; int Irep_to_Nrep_x[16] = {1,2,4,8,16,32,64,128,192,256,384,512,768,1024,1536,2048};
void handle_nfapi_dlsch_pdu_NB_IoT(PHy_vars_eNB_NB_IoT *eNB, void handle_nfapi_dlsch_pdu_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
eNB_rxtx_proc_NB_IoT_t *proc, eNB_rxtx_proc_NB_IoT_t *proc,
nfapi_dl_config_request_pdu_t *dl_config_pdu, nfapi_dl_config_request_pdu_t *dl_config_pdu,
uint8_t *sdu) uint8_t *sdu)
...@@ -281,7 +281,7 @@ void schedule_response_NB_IoT(Sched_Rsp_NB_IoT_t *Sched_INFO) ...@@ -281,7 +281,7 @@ void schedule_response_NB_IoT(Sched_Rsp_NB_IoT_t *Sched_INFO)
{ {
//LOG_I(PHY,"schedule_response_NB_IoT\n"); //LOG_I(PHY,"schedule_response_NB_IoT\n");
//XXX check if correct to take eNB like this //XXX check if correct to take eNB like this
PHY_VARS_eNB *eNB = PHY_vars_eNB_g[0][Sched_INFO->CC_id]; PHY_VARS_eNB_NB_IoT *eNB = PHY_vars_eNB_NB_IoT_g[0][Sched_INFO->CC_id];
eNB_rxtx_proc_NB_IoT_t *proc = &eNB->proc.proc_rxtx[0]; eNB_rxtx_proc_NB_IoT_t *proc = &eNB->proc.proc_rxtx[0];
NB_IoT_eNB_NPBCH_t *npbch; NB_IoT_eNB_NPBCH_t *npbch;
/// ///
......
...@@ -12,8 +12,7 @@ ...@@ -12,8 +12,7 @@
//#include "LAYER2/MAC/proto_NB_IoT.h" //#include "LAYER2/MAC/proto_NB_IoT.h"
//#include "openair2/PHY_INTERFACE/IF_Module_NB_IoT.h" //#include "openair2/PHY_INTERFACE/IF_Module_NB_IoT.h"
void handle_nfapi_dlsch_pdu_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,
void handle_nfapi_dlsch_pdu_NB_IoT(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_NB_IoT_t *proc, eNB_rxtx_proc_NB_IoT_t *proc,
nfapi_dl_config_request_pdu_t *dl_config_pdu, nfapi_dl_config_request_pdu_t *dl_config_pdu,
uint8_t *sdu); uint8_t *sdu);
......
...@@ -22,8 +22,6 @@ void process_schedule_rsp_NB_IoT(Sched_Rsp_NB_IoT_t *sched_rsp, ...@@ -22,8 +22,6 @@ void process_schedule_rsp_NB_IoT(Sched_Rsp_NB_IoT_t *sched_rsp,
PHY_VARS_eNB_NB_IoT *eNB, PHY_VARS_eNB_NB_IoT *eNB,
eNB_rxtx_proc_NB_IoT_t *proc); eNB_rxtx_proc_NB_IoT_t *proc);
/*Processing the ue-specific resources for uplink in NB-IoT*/
void phy_procedures_eNB_uespec_RX_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_NB_IoT_t *proc); // UL_IND_NB_IoT_t *UL_INFO);
/* For NB-IoT, we put NPBCH in later part, since it would be scheduled by MAC scheduler,this generates NRS/NPSS/NSSS*/ /* For NB-IoT, we put NPBCH in later part, since it would be scheduled by MAC scheduler,this generates NRS/NPSS/NSSS*/
void common_signal_procedures_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_NB_IoT_t *proc); void common_signal_procedures_NB_IoT(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_NB_IoT_t *proc);
......
...@@ -31,6 +31,9 @@ ...@@ -31,6 +31,9 @@
#include "assertions.h" #include "assertions.h"
#include "PHY/NBIoT_TRANSPORT/defs_NB_IoT.h"
#include "LAYER2/MAC/defs_NB_IoT.h"
#include "LAYER2/MAC/mac.h" #include "LAYER2/MAC/mac.h"
#include "LAYER2/MAC/mac_extern.h" #include "LAYER2/MAC/mac_extern.h"
...@@ -62,7 +65,7 @@ extern uint16_t frame_cnt; ...@@ -62,7 +65,7 @@ extern uint16_t frame_cnt;
extern RAN_CONTEXT_t RC; extern RAN_CONTEXT_t RC;
extern eNB_MAC_INST_NB_IoT *eNB_mac_inst;
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
int int
...@@ -1970,6 +1973,14 @@ get_ue_weight(module_id_t module_idP, ...@@ -1970,6 +1973,14 @@ get_ue_weight(module_id_t module_idP,
{ {
return (eNB_dlsch_info[module_idP][CC_idP][ue_idP].weight); return (eNB_dlsch_info[module_idP][CC_idP][ue_idP].weight);
} }
//------------------------------------------------------------------------------
DCI_PDU_NB_IoT *get_dci_sdu(module_id_t module_idP, int CC_id,frame_t frameP, sub_frame_t subframeP)
//------------------------------------------------------------------------------
{
return(&eNB_mac_inst[module_idP].common_channels[CC_id].DCI_pdu);
}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
int int
......
...@@ -183,7 +183,14 @@ void add_UL_Resource(void); ...@@ -183,7 +183,14 @@ void add_UL_Resource(void);
int get_resource_field_value(int subcarrier, int k0); int get_resource_field_value(int subcarrier, int k0);
/*Get DL Repetition index*/ /*Get DL Repetition index*/
uint8_t get_index_Rep_dl(uint16_t R); uint8_t get_index_Rep_dl(uint16_t R);
/* \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.
@param Mod_id Instance ID of eNB
@param CC_id Component Carrier Index
@param subframe Index of current subframe
@returns Pointer to generated DCI for subframe
*/
DCI_PDU_NB_IoT *get_dci_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subframe);
/*******DL Scheduler********/ /*******DL Scheduler********/
//void schedule_DL_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, UE_TEMPLATE_NB_IoT *UE_info, uint32_t hyperSF_start, uint32_t frame_start, uint32_t subframe_start); //void schedule_DL_NB_IoT(module_id_t module_id, eNB_MAC_INST_NB_IoT *mac_inst, UE_TEMPLATE_NB_IoT *UE_info, uint32_t hyperSF_start, uint32_t frame_start, uint32_t subframe_start);
int check_resource_NPDCCH_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, uint32_t hyperSF_start, uint32_t frame_start, uint32_t subframe_start, sched_temp_DL_NB_IoT_t *NPDCCH_info, uint32_t cdd_num, uint32_t dci_rep); int check_resource_NPDCCH_NB_IoT(eNB_MAC_INST_NB_IoT *mac_inst, uint32_t hyperSF_start, uint32_t frame_start, uint32_t subframe_start, sched_temp_DL_NB_IoT_t *NPDCCH_info, uint32_t cdd_num, uint32_t dci_rep);
......
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