Commit 802ecfad authored by Anta Huang's avatar Anta Huang

bug fix: ITTI pass the subframe-oaisim subfrmae issue

parent a5bbc21e
...@@ -42,8 +42,8 @@ ...@@ -42,8 +42,8 @@
#include "LAYER2/MAC/extern.h" #include "LAYER2/MAC/extern.h"
//uint8_t ncs_cell[20][7]; //uint8_t ncs_cell[20][7];
#define DEBUG_PUCCH_TX //#define DEBUG_PUCCH_TX
#define DEBUG_PUCCH_RX //#define DEBUG_PUCCH_RX
int16_t cfo_pucch_np[24*7] = {20787,-25330,27244,-18205,31356,-9512,32767,0,31356,9511,27244,18204,20787,25329, int16_t cfo_pucch_np[24*7] = {20787,-25330,27244,-18205,31356,-9512,32767,0,31356,9511,27244,18204,20787,25329,
27244,-18205,30272,-12540,32137,-6393,32767,0,32137,6392,30272,12539,27244,18204, 27244,-18205,30272,-12540,32137,-6393,32767,0,32137,6392,30272,12539,27244,18204,
......
...@@ -2710,6 +2710,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac ...@@ -2710,6 +2710,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
mac_xface->ue_send_sdu(phy_vars_ue->Mod_id, mac_xface->ue_send_sdu(phy_vars_ue->Mod_id,
CC_id, CC_id,
frame_rx, frame_rx,
subframe_prev,
phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[phy_vars_ue->dlsch_ue[eNB_id][0]->current_harq_pid]->b, phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[phy_vars_ue->dlsch_ue[eNB_id][0]->current_harq_pid]->b,
phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[phy_vars_ue->dlsch_ue[eNB_id][0]->current_harq_pid]->TBS>>3, phy_vars_ue->dlsch_ue[eNB_id][0]->harq_processes[phy_vars_ue->dlsch_ue[eNB_id][0]->current_harq_pid]->TBS>>3,
eNB_id); eNB_id);
...@@ -2892,7 +2893,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac ...@@ -2892,7 +2893,7 @@ int phy_procedures_UE_RX(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstrac
*/ */
mac_xface->ue_decode_si(phy_vars_ue->Mod_id, mac_xface->ue_decode_si(phy_vars_ue->Mod_id,
CC_id, CC_id,
frame_rx, frame_rx, subframe_prev,
eNB_id, eNB_id,
phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->b, phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->b,
phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->TBS>>3); phy_vars_ue->dlsch_ue_SI[eNB_id]->harq_processes[0]->TBS>>3);
...@@ -3855,7 +3856,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstr ...@@ -3855,7 +3856,7 @@ void phy_procedures_UE_lte(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint8_t abstr
ret = mac_xface->ue_scheduler(phy_vars_ue->Mod_id, ret = mac_xface->ue_scheduler(phy_vars_ue->Mod_id,
frame_tx, frame_tx,
subframe_rx, subframe_tx,
subframe_select(&phy_vars_ue->lte_frame_parms,subframe_tx), subframe_select(&phy_vars_ue->lte_frame_parms,subframe_tx),
eNB_id, eNB_id,
0/*FIXME CC_id*/); 0/*FIXME CC_id*/);
......
...@@ -60,6 +60,7 @@ typedef struct RrcDcchDataReq_s { ...@@ -60,6 +60,7 @@ typedef struct RrcDcchDataReq_s {
typedef struct RrcDcchDataInd_s { typedef struct RrcDcchDataInd_s {
uint32_t frame; uint32_t frame;
uint32_t subframe;
uint8_t dcch_index; uint8_t dcch_index;
uint32_t sdu_size; uint32_t sdu_size;
uint8_t *sdu_p; uint8_t *sdu_p;
......
...@@ -524,7 +524,6 @@ rrc_mac_config_req( ...@@ -524,7 +524,6 @@ rrc_mac_config_req(
// Assign the new c-rnti in the UE context (during HO) // Assign the new c-rnti in the UE context (during HO)
void rrc_mac_get_new_crnti(protocol_ctxt_t* ctxt_pP,uint8_t eNB_index){ void rrc_mac_get_new_crnti(protocol_ctxt_t* ctxt_pP,uint8_t eNB_index){
PROTOCOL_CTXT_SET_BY_MODULE_ID(ctxt_pP, ctxt_pP->module_id, ENB_FLAG_NO,UE_mac_inst[ctxt_pP->module_id].crnti, ctxt_pP->frame, ctxt_pP->subframe, eNB_index); PROTOCOL_CTXT_SET_BY_MODULE_ID(ctxt_pP, ctxt_pP->module_id, ENB_FLAG_NO,UE_mac_inst[ctxt_pP->module_id].crnti, ctxt_pP->frame, ctxt_pP->subframe, eNB_index);
LOG_D(RRC,"Context-debug: %d/%d\n",ctxt_pP->frame,ctxt_pP->subframe);
} }
#ifdef LOCALIZATION #ifdef LOCALIZATION
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
......
...@@ -364,10 +364,10 @@ uint8_t get_ue_weight(module_id_t module_idP, int CC_id, int UE_id); ...@@ -364,10 +364,10 @@ uint8_t get_ue_weight(module_id_t module_idP, int CC_id, int UE_id);
// UE functions // UE functions
void mac_out_of_sync_ind(module_id_t module_idP, frame_t frameP, uint16_t CH_index); void mac_out_of_sync_ind(module_id_t module_idP, frame_t frameP, uint16_t CH_index);
void ue_decode_si(module_id_t module_idP, int CC_id,frame_t frame, uint8_t CH_index, void *pdu, uint16_t len); void ue_decode_si(module_id_t module_idP, int CC_id,frame_t frame, sub_frame_t subframeP, uint8_t CH_index, void *pdu, uint16_t len);
void ue_send_sdu(module_id_t module_idP, uint8_t CC_id,frame_t frame, uint8_t *sdu,uint16_t sdu_len,uint8_t CH_index); void ue_send_sdu(module_id_t module_idP, uint8_t CC_id,frame_t frame, sub_frame_t subframe, uint8_t *sdu,uint16_t sdu_len,uint8_t CH_index);
#ifdef Rel10 #ifdef Rel10
......
...@@ -306,6 +306,7 @@ ue_send_sdu( ...@@ -306,6 +306,7 @@ ue_send_sdu(
module_id_t module_idP, module_id_t module_idP,
uint8_t CC_id, uint8_t CC_id,
frame_t frameP, frame_t frameP,
sub_frame_t subframeP,
uint8_t* sdu, uint8_t* sdu,
uint16_t sdu_len, uint16_t sdu_len,
uint8_t eNB_index uint8_t eNB_index
...@@ -404,10 +405,10 @@ ue_send_sdu( ...@@ -404,10 +405,10 @@ ue_send_sdu(
if (rx_lcids[i] == CCCH) { if (rx_lcids[i] == CCCH) {
LOG_D(MAC,"[UE %d] rnti %x Frame %d : DLSCH -> DL-CCCH, RRC message (eNB %d, %d bytes)\n", LOG_D(MAC,"[UE %d] rnti %x Frame %d subframe %d: DLSCH -> DL-CCCH, RRC message (eNB %d, %d bytes)\n",
module_idP, module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
frameP, frameP, subframeP,
eNB_index, eNB_index,
rx_lengths[i]); rx_lengths[i]);
...@@ -422,7 +423,7 @@ ue_send_sdu( ...@@ -422,7 +423,7 @@ ue_send_sdu(
#endif #endif
mac_rrc_data_ind(module_idP, mac_rrc_data_ind(module_idP,
CC_id, CC_id,
frameP,0, // unknown subframe frameP,subframeP, // unknown subframe
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
CCCH, CCCH,
(uint8_t*)payload_ptr, (uint8_t*)payload_ptr,
...@@ -435,7 +436,7 @@ ue_send_sdu( ...@@ -435,7 +436,7 @@ ue_send_sdu(
LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i],eNB_index,rx_lengths[i]); LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i],eNB_index,rx_lengths[i]);
mac_rlc_data_ind(module_idP, mac_rlc_data_ind(module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
eNB_index, eNB_index,
frameP, frameP,
ENB_FLAG_NO, ENB_FLAG_NO,
MBMS_FLAG_NO, MBMS_FLAG_NO,
...@@ -448,8 +449,8 @@ ue_send_sdu( ...@@ -448,8 +449,8 @@ ue_send_sdu(
LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i], eNB_index,rx_lengths[i]); LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i], eNB_index,rx_lengths[i]);
mac_rlc_data_ind(module_idP, mac_rlc_data_ind(module_idP,
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
eNB_index, eNB_index,
frameP, frameP,
ENB_FLAG_NO, ENB_FLAG_NO,
MBMS_FLAG_NO, MBMS_FLAG_NO,
DCCH1, DCCH1,
...@@ -490,7 +491,7 @@ ue_send_sdu( ...@@ -490,7 +491,7 @@ ue_send_sdu(
stop_meas(&UE_mac_inst[module_idP].rx_dlsch_sdu); stop_meas(&UE_mac_inst[module_idP].rx_dlsch_sdu);
} }
void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_index, void *pdu,uint16_t len) void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, sub_frame_t subframeP, uint8_t eNB_index, void *pdu,uint16_t len)
{ {
start_meas(&UE_mac_inst[module_idP].rx_si); start_meas(&UE_mac_inst[module_idP].rx_si);
...@@ -500,7 +501,7 @@ void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_i ...@@ -500,7 +501,7 @@ void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_i
mac_rrc_data_ind(module_idP, mac_rrc_data_ind(module_idP,
CC_id, CC_id,
frameP,0, // unknown subframe frameP,subframeP,
SI_RNTI, SI_RNTI,
BCCH, BCCH,
(uint8_t *)pdu, (uint8_t *)pdu,
......
...@@ -143,10 +143,10 @@ typedef struct { ...@@ -143,10 +143,10 @@ typedef struct {
void (*out_of_sync_ind)(module_id_t Mod_id,frame_t frameP,uint16_t eNB_index); void (*out_of_sync_ind)(module_id_t Mod_id,frame_t frameP,uint16_t eNB_index);
/// Send a received SI sdu /// Send a received SI sdu
void (*ue_decode_si)(module_id_t Mod_id,int CC_id,frame_t frameP, uint8_t CH_index, void *pdu, uint16_t len); void (*ue_decode_si)(module_id_t Mod_id,int CC_id,frame_t frameP, sub_frame_t subframeP, uint8_t CH_index, void *pdu, uint16_t len);
/// Send a received DLSCH sdu to MAC /// Send a received DLSCH sdu to MAC
void (*ue_send_sdu)(module_id_t Mod_id,uint8_t CC_id,frame_t frameP,uint8_t *sdu,uint16_t sdu_len,uint8_t CH_index); void (*ue_send_sdu)(module_id_t Mod_id,uint8_t CC_id,frame_t frameP, sub_frame_t subframeP, uint8_t *sdu,uint16_t sdu_len,uint8_t CH_index);
#ifdef Rel10 #ifdef Rel10
/// Send a received MCH sdu to MAC /// Send a received MCH sdu to MAC
......
...@@ -593,12 +593,12 @@ rrc_lite_data_ind( ...@@ -593,12 +593,12 @@ rrc_lite_data_ind(
rb_id_t DCCH_index = Srb_id; rb_id_t DCCH_index = Srb_id;
if (ctxt_pP->enb_flag == ENB_FLAG_NO) { if (ctxt_pP->enb_flag == ENB_FLAG_NO) {
LOG_N(RRC, "[UE %x] Frame %d: received a DCCH %d message on SRB %d with Size %d from eNB ???\n", LOG_N(RRC, "[UE %x] Frame %d - subframe %d: received a DCCH %d message on SRB %d with Size %d from eNB ???\n",
ctxt_pP->module_id, ctxt_pP->frame, DCCH_index,Srb_id-1,sdu_sizeP); ctxt_pP->module_id, ctxt_pP->frame, ctxt_pP->subframe,DCCH_index,Srb_id-1,sdu_sizeP);
} else { } else {
LOG_N(RRC, "[eNB %d] Frame %d: received a DCCH %d message on SRB %d with Size %d from UE %x\n", LOG_N(RRC, "[eNB %d] Frame %d - subframe %d: received a DCCH %d message on SRB %d with Size %d from UE %x\n",
ctxt_pP->module_id, ctxt_pP->module_id,
ctxt_pP->frame, ctxt_pP->frame,ctxt_pP->subframe,
DCCH_index, DCCH_index,
Srb_id-1, Srb_id-1,
sdu_sizeP, sdu_sizeP,
...@@ -616,6 +616,7 @@ rrc_lite_data_ind( ...@@ -616,6 +616,7 @@ rrc_lite_data_ind(
message_p = itti_alloc_new_message (ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE, RRC_DCCH_DATA_IND); message_p = itti_alloc_new_message (ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE, RRC_DCCH_DATA_IND);
RRC_DCCH_DATA_IND (message_p).frame = ctxt_pP->frame; RRC_DCCH_DATA_IND (message_p).frame = ctxt_pP->frame;
RRC_DCCH_DATA_IND (message_p).subframe = ctxt_pP->subframe;
RRC_DCCH_DATA_IND (message_p).dcch_index = DCCH_index; RRC_DCCH_DATA_IND (message_p).dcch_index = DCCH_index;
RRC_DCCH_DATA_IND (message_p).sdu_size = sdu_sizeP; RRC_DCCH_DATA_IND (message_p).sdu_size = sdu_sizeP;
RRC_DCCH_DATA_IND (message_p).sdu_p = message_buffer; RRC_DCCH_DATA_IND (message_p).sdu_p = message_buffer;
...@@ -634,7 +635,7 @@ rrc_lite_data_ind( ...@@ -634,7 +635,7 @@ rrc_lite_data_ind(
buffer_pP, buffer_pP,
sdu_sizeP); sdu_sizeP);
} else { } else {
#warning "LG put 0 to arg4 that is eNB index" #warning "LG put 0 to arg4 that is eNB index"
rrc_ue_decode_dcch( rrc_ue_decode_dcch(
ctxt_pP, ctxt_pP,
DCCH_index, DCCH_index,
......
...@@ -1961,7 +1961,6 @@ rrc_ue_decode_dcch( ...@@ -1961,7 +1961,6 @@ rrc_ue_decode_dcch(
} }
} }
rrc_ue_process_rrcConnectionReconfiguration( rrc_ue_process_rrcConnectionReconfiguration(
ctxt_pP, ctxt_pP,
&dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration, &dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration,
...@@ -1977,7 +1976,9 @@ rrc_ue_decode_dcch( ...@@ -1977,7 +1976,9 @@ rrc_ue_decode_dcch(
LOG_D(RRC,"Stop-Time-debug: %d/%lf/%d/%d\n", ctxt_pP->frame*10+ctxt_pP->subframe, (double) UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_src_enb_ms,ctxt_pP->frame,ctxt_pP->subframe); LOG_D(RRC,"Stop-Time-debug: %d/%lf/%d/%d\n", ctxt_pP->frame*10+ctxt_pP->subframe, (double) UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_src_enb_ms,ctxt_pP->frame,ctxt_pP->subframe);
// Start to measure (delay to the UE-->target) // Start to measure (delay to the UE-->target)
//start_meas(&UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb); //start_meas(&UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb);
UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb_ms = ctxt_pP->frame*10+ctxt_pP->subframe ; UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb_ms = ctxt_pP->frame*10+ctxt_pP->subframe;
LOG_D(RRC,"Start-Time-debug: %lf/%d/%d\n", (double) UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb_ms,ctxt_pP->frame,ctxt_pP->subframe);
init_meas_timers(ctxt_pP); // Initialize handover measurement timers init_meas_timers(ctxt_pP); // Initialize handover measurement timers
rrc_ue_generate_RRCConnectionReconfigurationComplete( rrc_ue_generate_RRCConnectionReconfigurationComplete(
ctxt_pP, ctxt_pP,
...@@ -4077,7 +4078,7 @@ void *rrc_ue_task( void *args_p ) ...@@ -4077,7 +4078,7 @@ void *rrc_ue_task( void *args_p )
/* PDCP messages */ /* PDCP messages */
case RRC_DCCH_DATA_IND: case RRC_DCCH_DATA_IND:
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, RRC_DCCH_DATA_IND (msg_p).module_id, ENB_FLAG_NO, RRC_DCCH_DATA_IND (msg_p).rnti, RRC_DCCH_DATA_IND (msg_p).frame, 0,RRC_DCCH_DATA_IND (msg_p).eNB_index); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, RRC_DCCH_DATA_IND (msg_p).module_id, ENB_FLAG_NO, RRC_DCCH_DATA_IND (msg_p).rnti, RRC_DCCH_DATA_IND (msg_p).frame, RRC_DCCH_DATA_IND (msg_p).subframe, RRC_DCCH_DATA_IND (msg_p).eNB_index);
LOG_D(RRC, "[UE %d] Received %s: frameP %d, DCCH %d, eNB %d\n", LOG_D(RRC, "[UE %d] Received %s: frameP %d, DCCH %d, eNB %d\n",
RRC_DCCH_DATA_IND (msg_p).module_id, RRC_DCCH_DATA_IND (msg_p).module_id,
msg_name, msg_name,
......
...@@ -582,7 +582,7 @@ rrc_rx_tx( ...@@ -582,7 +582,7 @@ rrc_rx_tx(
ue_measurement_report_triggering(ctxt_pP,enb_indexP); ue_measurement_report_triggering(ctxt_pP,enb_indexP);
if (UE_rrc_inst[ctxt_pP->module_id].Info[0].handoverTarget > 0) { if (UE_rrc_inst[ctxt_pP->module_id].Info[0].handoverTarget > 0) {
LOG_I(RRC,"[UE %d] Frame %d : RRC handover initiated\n", ctxt_pP->module_id, ctxt_pP->frame); LOG_I(RRC,"[UE %d] Frame %d - subframe: %d: RRC handover initiated\n", ctxt_pP->module_id, ctxt_pP->frame, ctxt_pP->subframe);
} }
if((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].State == RRC_HO_EXECUTION) && if((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].State == RRC_HO_EXECUTION) &&
......
...@@ -4304,6 +4304,7 @@ rrc_eNB_decode_dcch( ...@@ -4304,6 +4304,7 @@ rrc_eNB_decode_dcch(
//double t_x2_target_enb = (double)UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb.p_time/get_cpu_freq_GHz()/1000.0; //double t_x2_target_enb = (double)UE_rrc_inst[ctxt_pP->module_id].rrc_ue_x2_target_enb.p_time/get_cpu_freq_GHz()/1000.0;
double t_x2_target_enb = (double)ctxt_pP->frame*10+ctxt_pP->subframe - UE_rrc_inst[0].rrc_ue_x2_target_enb_ms; double t_x2_target_enb = (double)ctxt_pP->frame*10+ctxt_pP->subframe - UE_rrc_inst[0].rrc_ue_x2_target_enb_ms;
push_front(&UE_rrc_inst[0].rrc_ue_x2_target_enb_list, t_x2_target_enb); push_front(&UE_rrc_inst[0].rrc_ue_x2_target_enb_list, t_x2_target_enb);
LOG_D(RRC,"Stop-Time-debug: %d/%lf/%d/%d\n", ctxt_pP->frame*10+ctxt_pP->subframe, (double) UE_rrc_inst[0].rrc_ue_x2_target_enb_ms,ctxt_pP->frame,ctxt_pP->subframe);
} }
ue_context_p->ue_context.Status = RRC_RECONFIGURED; ue_context_p->ue_context.Status = RRC_RECONFIGURED;
LOG_I(RRC, LOG_I(RRC,
...@@ -4675,12 +4676,13 @@ rrc_enb_task( ...@@ -4675,12 +4676,13 @@ rrc_enb_task(
instance, instance,
ENB_FLAG_YES, ENB_FLAG_YES,
RRC_DCCH_DATA_IND(msg_p).rnti, RRC_DCCH_DATA_IND(msg_p).rnti,
msg_p->ittiMsgHeader.lte_time.frame, RRC_DCCH_DATA_IND (msg_p).frame,
msg_p->ittiMsgHeader.lte_time.slot); RRC_DCCH_DATA_IND (msg_p).subframe);
LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Received on DCCH %d %s\n", LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Received on DCCH %d %s\n",
PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt), PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt),
RRC_DCCH_DATA_IND(msg_p).dcch_index, RRC_DCCH_DATA_IND(msg_p).dcch_index,
msg_name_p); msg_name_p);
rrc_eNB_decode_dcch(&ctxt, rrc_eNB_decode_dcch(&ctxt,
RRC_DCCH_DATA_IND(msg_p).dcch_index, RRC_DCCH_DATA_IND(msg_p).dcch_index,
RRC_DCCH_DATA_IND(msg_p).sdu_p, RRC_DCCH_DATA_IND(msg_p).sdu_p,
......
...@@ -822,13 +822,16 @@ l2l1_task (void *args_p) ...@@ -822,13 +822,16 @@ l2l1_task (void *args_p)
if (PHY_vars_UE_g[UE_inst][0]->UE_mode[0] if (PHY_vars_UE_g[UE_inst][0]->UE_mode[0]
!= NOT_SYNCHED) { != NOT_SYNCHED) {
if (frame > 0) { if (frame > 0) {
PHY_vars_UE_g[UE_inst][0]->frame_rx = frame; if (last_slot < 18) // 0 - 18
PHY_vars_UE_g[UE_inst][0]->frame_rx = frame;
else // 19
PHY_vars_UE_g[UE_inst][0]->frame_rx = frame + 1 ;
PHY_vars_UE_g[UE_inst][0]->slot_rx = last_slot; PHY_vars_UE_g[UE_inst][0]->slot_rx = last_slot;
PHY_vars_UE_g[UE_inst][0]->slot_tx = next_slot; PHY_vars_UE_g[UE_inst][0]->slot_tx = next_slot;
if (next_slot > 1) if (next_slot > 1) // all except SF0
PHY_vars_UE_g[UE_inst][0]->frame_tx = frame; PHY_vars_UE_g[UE_inst][0]->frame_tx = frame;
else else // slot 0 or 1
PHY_vars_UE_g[UE_inst][0]->frame_tx = frame + 1; PHY_vars_UE_g[UE_inst][0]->frame_tx = frame + 1;
#ifdef OPENAIR2 #ifdef OPENAIR2
...@@ -836,7 +839,7 @@ l2l1_task (void *args_p) ...@@ -836,7 +839,7 @@ l2l1_task (void *args_p)
update_otg_UE (UE_inst, oai_emulation.info.time_ms); update_otg_UE (UE_inst, oai_emulation.info.time_ms);
//Access layer //Access layer
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, UE_inst, 0, ENB_FLAG_NO, NOT_A_RNTI, frame, next_slot); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, UE_inst, ENB_FLAG_NO, NOT_A_RNTI, frame, next_slot>>1,0);
pdcp_run (&ctxt); pdcp_run (&ctxt);
#endif #endif
......
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