Commit fa5d2f5e authored by Lionel Gauthier's avatar Lionel Gauthier

Add subframe in some proc calls


git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7480 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 58f0fbc1
...@@ -3639,7 +3639,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_ ...@@ -3639,7 +3639,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
#endif #endif
mac_xface->rx_sdu(phy_vars_eNB->Mod_id, mac_xface->rx_sdu(phy_vars_eNB->Mod_id,
phy_vars_eNB->CC_id, phy_vars_eNB->CC_id,
frame, frame,subframe,
phy_vars_eNB->ulsch_eNB[i]->rnti, phy_vars_eNB->ulsch_eNB[i]->rnti,
phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->b, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->b,
phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3,
...@@ -3717,7 +3717,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_ ...@@ -3717,7 +3717,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
// if (phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->calibration_flag == 0) { // if (phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->calibration_flag == 0) {
mac_xface->rx_sdu(phy_vars_eNB->Mod_id, mac_xface->rx_sdu(phy_vars_eNB->Mod_id,
phy_vars_eNB->CC_id, phy_vars_eNB->CC_id,
frame, frame,subframe,
phy_vars_eNB->ulsch_eNB[i]->rnti, phy_vars_eNB->ulsch_eNB[i]->rnti,
phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->b, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->b,
phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3,
...@@ -4207,7 +4207,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_ ...@@ -4207,7 +4207,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
if (phy_vars_eNB->cba_last_reception[i%num_active_cba_groups] == 0 ) { if (phy_vars_eNB->cba_last_reception[i%num_active_cba_groups] == 0 ) {
mac_xface->rx_sdu(phy_vars_eNB->Mod_id, mac_xface->rx_sdu(phy_vars_eNB->Mod_id,
phy_vars_eNB->CC_id, phy_vars_eNB->CC_id,
frame, frame,subframe,
phy_vars_eNB->ulsch_eNB[i]->rnti, phy_vars_eNB->ulsch_eNB[i]->rnti,
phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->b, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->b,
phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3, phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3,
......
...@@ -136,6 +136,32 @@ typedef struct { ...@@ -136,6 +136,32 @@ typedef struct {
} u; } u;
} imsi_t; } imsi_t;
#define NAS_IMSI2STR(iMsI_t_PtR,iMsI_sTr, MaXlEn) \
{\
int l_offset = 0;\
int l_ret = 0;\
l_ret = snprintf(iMsI_sTr + l_offset, MaXlEn - l_offset, "%u%u%u%u%u",\
iMsI_t_PtR->u.num.digit1, iMsI_t_PtR->u.num.digit2,\
iMsI_t_PtR->u.num.digit3, iMsI_t_PtR->u.num.digit4,\
iMsI_t_PtR->u.num.digit5);\
if ((iMsI_t_PtR->u.num.digit6 != 0xf) && (l_ret > 0)) {\
l_offset += l_ret;\
l_ret = snprintf(iMsI_sTr + l_offset, MaXlEn - l_offset, "%u", iMsI_t_PtR->u.num.digit6);\
}\
if (l_ret > 0) {\
l_offset += l_ret;\
l_ret = snprintf(iMsI_sTr + l_offset, MaXlEn - l_offset, "%u%u%u%u%u%u%u%u",\
iMsI_t_PtR->u.num.digit7, iMsI_t_PtR->u.num.digit8,\
iMsI_t_PtR->u.num.digit9, iMsI_t_PtR->u.num.digit10,\
iMsI_t_PtR->u.num.digit11, iMsI_t_PtR->u.num.digit12,\
iMsI_t_PtR->u.num.digit13, iMsI_t_PtR->u.num.digit14);\
}\
if ((iMsI_t_PtR->u.num.digit15 != 0xf) && (l_ret > 0)) {\
l_offset += l_ret;\
l_ret = snprintf(iMsI_sTr + l_offset, MaXlEn - l_offset, "%u", iMsI_t_PtR->u.num.digit15);\
}\
}
/* /*
* Mobile subscriber dialing number * Mobile subscriber dialing number
*/ */
...@@ -230,6 +256,37 @@ typedef struct { ...@@ -230,6 +256,37 @@ typedef struct {
UInt32_t m_tmsi; /* M-Temporary Mobile Subscriber Identity */ UInt32_t m_tmsi; /* M-Temporary Mobile Subscriber Identity */
} GUTI_t; } GUTI_t;
#define GUTI2STR(GuTi_PtR, GuTi_StR, MaXlEn) \
{\
int l_offset = 0;\
int l_ret = 0;\
l_ret += snprintf(GuTi_StR + l_offset,MaXlEn-l_offset, "%03u.",\
GuTi_PtR->gummei.plmn.MCCdigit3 * 100 +\
GuTi_PtR->gummei.plmn.MCCdigit2 * 10 +\
GuTi_PtR->gummei.plmn.MCCdigit1);\
if (l_ret > 0) {\
l_offset += l_ret;\
} else {\
l_offset = MaXlEn;\
}\
if (GuTi_PtR->gummei.plmn.MNCdigit1 != 0xf) {\
l_ret += snprintf(GuTi_StR + l_offset,MaXlEn-l_offset, "%03u|%04x|%02x|%08x",\
GuTi_PtR->gummei.plmn.MNCdigit3 * 100 +\
GuTi_PtR->gummei.plmn.MNCdigit2 * 10 +\
GuTi_PtR->gummei.plmn.MNCdigit1,\
GuTi_PtR->gummei.MMEgid,\
GuTi_PtR->gummei.MMEcode,\
GuTi_PtR->m_tmsi);\
} else {\
l_ret += snprintf(GuTi_StR + l_offset,MaXlEn-l_offset, "%02u|%04x|%02x|%08x",\
GuTi_PtR->gummei.plmn.MNCdigit2 * 10 +\
GuTi_PtR->gummei.plmn.MNCdigit1,\
GuTi_PtR->gummei.MMEgid,\
GuTi_PtR->gummei.MMEcode,\
GuTi_PtR->m_tmsi);\
}
/* Checks PLMN validity */ /* Checks PLMN validity */
#define PLMN_IS_VALID(plmn) (((plmn).MCCdigit1 & \ #define PLMN_IS_VALID(plmn) (((plmn).MCCdigit1 & \
(plmn).MCCdigit2 & \ (plmn).MCCdigit2 & \
......
...@@ -61,6 +61,7 @@ ...@@ -61,6 +61,7 @@
// Messages between RRC and MAC layers // Messages between RRC and MAC layers
typedef struct RrcMacInSyncInd_s { typedef struct RrcMacInSyncInd_s {
uint32_t frame; uint32_t frame;
uint8_t sub_frame;
uint16_t enb_index; uint16_t enb_index;
} RrcMacInSyncInd; } RrcMacInSyncInd;
...@@ -75,6 +76,7 @@ typedef struct RrcMacBcchDataReq_s { ...@@ -75,6 +76,7 @@ typedef struct RrcMacBcchDataReq_s {
typedef struct RrcMacBcchDataInd_s { typedef struct RrcMacBcchDataInd_s {
uint32_t frame; uint32_t frame;
uint8_t sub_frame;
uint32_t sdu_size; uint32_t sdu_size;
uint8_t sdu[BCCH_SDU_SIZE]; uint8_t sdu[BCCH_SDU_SIZE];
uint8_t enb_index; uint8_t enb_index;
...@@ -95,6 +97,7 @@ typedef struct RrcMacCcchDataCnf_s { ...@@ -95,6 +97,7 @@ typedef struct RrcMacCcchDataCnf_s {
typedef struct RrcMacCcchDataInd_s { typedef struct RrcMacCcchDataInd_s {
uint32_t frame; uint32_t frame;
uint8_t sub_frame;
uint16_t rnti; uint16_t rnti;
uint32_t sdu_size; uint32_t sdu_size;
uint8_t sdu[CCCH_SDU_SIZE]; uint8_t sdu[CCCH_SDU_SIZE];
...@@ -112,6 +115,7 @@ typedef struct RrcMacMcchDataReq_s { ...@@ -112,6 +115,7 @@ typedef struct RrcMacMcchDataReq_s {
typedef struct RrcMacMcchDataInd_s { typedef struct RrcMacMcchDataInd_s {
uint32_t frame; uint32_t frame;
uint8_t sub_frame;
uint32_t sdu_size; uint32_t sdu_size;
uint8_t sdu[MCCH_SDU_SIZE]; uint8_t sdu[MCCH_SDU_SIZE];
uint8_t enb_index; uint8_t enb_index;
......
...@@ -73,6 +73,7 @@ void rx_sdu( ...@@ -73,6 +73,7 @@ void rx_sdu(
const module_id_t enb_mod_idP, const module_id_t enb_mod_idP,
const int CC_idP, const int CC_idP,
const frame_t frameP, const frame_t frameP,
const sub_frame_t subframeP,
const rnti_t rntiP, const rnti_t rntiP,
uint8_t *sduP, uint8_t *sduP,
const uint16_t sdu_lenP, const uint16_t sdu_lenP,
...@@ -96,8 +97,14 @@ void rx_sdu( ...@@ -96,8 +97,14 @@ void rx_sdu(
} }
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RX_SDU,1); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RX_SDU,1);
if (opt_enabled == 1) {
trace_pdu(0, sduP,sdu_lenP, 0, 2, rntiP,frameP, 0,0);
LOG_D(OPT,"[eNB %d][ULSCH] Frame %d rnti %x with size %d\n",
enb_mod_idP, frameP, rntiP, rx_lengths[ii]);
}
LOG_D(MAC,"[eNB %d] CC_id %d Received ULSCH sdu from PHY (rnti %x, UE_id %d), parsing header\n",enb_mod_idP,CC_idP,rntiP,UE_id); LOG_D(MAC,"[eNB %d] CC_id %d Received ULSCH sdu from PHY (rnti %x, UE_id %d), parsing header\n",enb_mod_idP,CC_idP,rntiP,UE_id);
payload_ptr = parse_ulsch_header(sduP,&num_ce,&num_sdu,rx_ces,rx_lcids,rx_lengths,sdu_lenP); payload_ptr = parse_ulsch_header(sduP,&num_ce,&num_sdu,rx_ces,rx_lcids,rx_lengths,sdu_lenP);
// control element // control element
...@@ -230,7 +237,7 @@ void rx_sdu( ...@@ -230,7 +237,7 @@ void rx_sdu(
mac_rrc_data_ind( mac_rrc_data_ind(
enb_mod_idP, enb_mod_idP,
CC_idP, CC_idP,
frameP, frameP,subframeP,
rntiP, rntiP,
CCCH, CCCH,
(uint8_t*)payload_ptr, (uint8_t*)payload_ptr,
...@@ -247,9 +254,7 @@ void rx_sdu( ...@@ -247,9 +254,7 @@ void rx_sdu(
eNB->common_channels[CC_idP].RA_template[ii].generate_Msg4 = 1; eNB->common_channels[CC_idP].RA_template[ii].generate_Msg4 = 1;
eNB->common_channels[CC_idP].RA_template[ii].wait_ack_Msg4 = 0; eNB->common_channels[CC_idP].RA_template[ii].wait_ack_Msg4 = 0;
} // if process is active } // if process is active
} // loop on RA processes } // loop on RA processes
break; break;
...@@ -276,7 +281,7 @@ void rx_sdu( ...@@ -276,7 +281,7 @@ void rx_sdu(
mac_rlc_data_ind( mac_rlc_data_ind(
enb_mod_idP, enb_mod_idP,
rntiP, rntiP,
enb_mod_idP, enb_mod_idP,
frameP, frameP,
ENB_FLAG_YES, ENB_FLAG_YES,
MBMS_FLAG_NO, MBMS_FLAG_NO,
...@@ -287,7 +292,6 @@ void rx_sdu( ...@@ -287,7 +292,6 @@ void rx_sdu(
NULL);//(unsigned int*)crc_status); NULL);//(unsigned int*)crc_status);
UE_list->eNB_UE_stats[CC_idP][UE_id].num_pdu_rx[rx_lcids[i]]+=1; UE_list->eNB_UE_stats[CC_idP][UE_id].num_pdu_rx[rx_lcids[i]]+=1;
UE_list->eNB_UE_stats[CC_idP][UE_id].num_bytes_rx[rx_lcids[i]]+=rx_lengths[i]; UE_list->eNB_UE_stats[CC_idP][UE_id].num_bytes_rx[rx_lcids[i]]+=rx_lengths[i];
} }
// } // }
......
...@@ -275,7 +275,7 @@ void cancel_ra_proc(module_id_t module_idP,int CC_id,frame_t frameP, uint16_t pr ...@@ -275,7 +275,7 @@ void cancel_ra_proc(module_id_t module_idP,int CC_id,frame_t frameP, uint16_t pr
@param harq_pid Index of harq process corresponding to this sdu @param harq_pid Index of harq process corresponding to this sdu
@param msg3_flag flag indicating that this sdu is msg3 @param msg3_flag flag indicating that this sdu is msg3
*/ */
void rx_sdu(const module_id_t module_idP, const int CC_id,const frame_t frameP, const rnti_t rnti, uint8_t *sdu, const uint16_t sdu_len, const int harq_pid,uint8_t *msg3_flag); void rx_sdu(const module_id_t module_idP, const int CC_id,const frame_t frameP, const sub_frame_t subframeP, const rnti_t rnti, uint8_t *sdu, const uint16_t sdu_len, const int harq_pid,uint8_t *msg3_flag);
/* \brief Function to indicate a scheduled schduling request (SR) was received by eNB. /* \brief Function to indicate a scheduled schduling request (SR) was received by eNB.
@param Mod_id Instance ID of eNB @param Mod_id Instance ID of eNB
......
...@@ -123,9 +123,8 @@ unsigned short fill_rar( ...@@ -123,9 +123,8 @@ unsigned short fill_rar(
eNB_mac_inst[module_idP].common_channels[CC_id].RA_template[ra_idx].rnti, eNB_mac_inst[module_idP].common_channels[CC_id].RA_template[ra_idx].rnti,
rarh->RAPID,eNB_mac_inst[module_idP].common_channels[CC_id].RA_template[0].preamble_index, rarh->RAPID,eNB_mac_inst[module_idP].common_channels[CC_id].RA_template[0].preamble_index,
eNB_mac_inst[module_idP].common_channels[CC_id].RA_template[ra_idx].timing_offset); eNB_mac_inst[module_idP].common_channels[CC_id].RA_template[ra_idx].timing_offset);
#if defined(USER_MODE) && defined(OAI_EMU)
if (oai_emulation.info.opt_enabled) { if (opt_enabled) {
trace_pdu(1, dlsch_buffer, input_buffer_length, module_idP, 2, 1, trace_pdu(1, dlsch_buffer, input_buffer_length, module_idP, 2, 1,
eNB_mac_inst[module_idP].subframe, 0, 0); eNB_mac_inst[module_idP].subframe, 0, 0);
LOG_D(OPT,"[eNB %d][RAPROC] CC_id %d RAR Frame %d trace pdu for rnti %x and rapid %d size %d\n", LOG_D(OPT,"[eNB %d][RAPROC] CC_id %d RAR Frame %d trace pdu for rnti %x and rapid %d size %d\n",
...@@ -133,7 +132,6 @@ unsigned short fill_rar( ...@@ -133,7 +132,6 @@ unsigned short fill_rar(
rarh->RAPID, input_buffer_length); rarh->RAPID, input_buffer_length);
} }
#endif
return(eNB_mac_inst[module_idP].common_channels[CC_id].RA_template[ra_idx].rnti); return(eNB_mac_inst[module_idP].common_channels[CC_id].RA_template[ra_idx].rnti);
} }
......
...@@ -322,14 +322,12 @@ ue_send_sdu( ...@@ -322,14 +322,12 @@ ue_send_sdu(
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SEND_SDU, VCD_FUNCTION_IN); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SEND_SDU, VCD_FUNCTION_IN);
LOG_T(MAC,"sdu: %x.%x.%x\n",sdu[0],sdu[1],sdu[2]); LOG_T(MAC,"sdu: %x.%x.%x\n",sdu[0],sdu[1],sdu[2]);
#if defined(USER_MODE) && defined(OAI_EMU)
if (oai_emulation.info.opt_enabled) { if (opt_enabled) {
trace_pdu(1, sdu, sdu_len, module_idP, 3, UE_mac_inst[module_idP].crnti, trace_pdu(1, sdu, sdu_len, module_idP, 3, UE_mac_inst[module_idP].crnti,
UE_mac_inst[module_idP].subframe, 0, 0); UE_mac_inst[module_idP].subframe, 0, 0);
} }
#endif
payload_ptr = parse_header(sdu,&num_ce,&num_sdu,rx_ces,rx_lcids,rx_lengths,sdu_len); payload_ptr = parse_header(sdu,&num_ce,&num_sdu,rx_ces,rx_lcids,rx_lengths,sdu_len);
#ifdef DEBUG_HEADER_PARSING #ifdef DEBUG_HEADER_PARSING
...@@ -422,7 +420,7 @@ ue_send_sdu( ...@@ -422,7 +420,7 @@ ue_send_sdu(
#endif #endif
mac_rrc_data_ind(module_idP, mac_rrc_data_ind(module_idP,
CC_id, CC_id,
frameP, frameP,0, // unknown subframe
UE_mac_inst[module_idP].crnti, UE_mac_inst[module_idP].crnti,
CCCH, CCCH,
(uint8_t*)payload_ptr, (uint8_t*)payload_ptr,
...@@ -500,7 +498,7 @@ void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_i ...@@ -500,7 +498,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, frameP,0, // unknown subframe
SI_RNTI, SI_RNTI,
BCCH, BCCH,
(uint8_t *)pdu, (uint8_t *)pdu,
...@@ -593,7 +591,7 @@ void ue_send_mch_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frameP, uint ...@@ -593,7 +591,7 @@ void ue_send_mch_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frameP, uint
LOG_I(MAC,"[UE %d] Frame %d : SDU %d MCH->MCCH for sync area %d (eNB %d, %d bytes)\n",module_idP,frameP, i, sync_area, eNB_index, rx_lengths[i]); LOG_I(MAC,"[UE %d] Frame %d : SDU %d MCH->MCCH for sync area %d (eNB %d, %d bytes)\n",module_idP,frameP, i, sync_area, eNB_index, rx_lengths[i]);
mac_rrc_data_ind(module_idP, mac_rrc_data_ind(module_idP,
CC_id, CC_id,
frameP, frameP,0, // unknown subframe
M_RNTI, M_RNTI,
MCCH, MCCH,
payload_ptr, rx_lengths[i], 0, eNB_index, sync_area); payload_ptr, rx_lengths[i], 0, eNB_index, sync_area);
...@@ -1449,15 +1447,13 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf ...@@ -1449,15 +1447,13 @@ void ue_get_sdu(module_id_t module_idP,int CC_id,frame_t frameP,sub_frame_t subf
ulsch_buffer[payload_offset+sdu_length_total+j] = (char)(taus()&0xff); ulsch_buffer[payload_offset+sdu_length_total+j] = (char)(taus()&0xff);
} }
#if defined(USER_MODE) && defined(OAI_EMU)
if (oai_emulation.info.opt_enabled) { if (opt_enabled) {
trace_pdu(0, ulsch_buffer, buflen, module_idP, 3, UE_mac_inst[module_idP].crnti, subframe, 0, 0); trace_pdu(0, ulsch_buffer, buflen, module_idP, 3, UE_mac_inst[module_idP].crnti, subframe, 0, 0);
LOG_D(OPT,"[UE %d][ULSCH] Frame %d trace pdu for rnti %x with size %d\n",
module_idP, frameP, UE_mac_inst[module_idP].crnti, buflen);
} }
LOG_D(OPT,"[UE %d][ULSCH] Frame %d trace pdu for rnti %x with size %d\n",
module_idP, frameP, UE_mac_inst[module_idP].crnti, buflen);
#endif
LOG_D(MAC,"[UE %d][SR] Gave SDU to PHY, clearing any scheduling request\n", LOG_D(MAC,"[UE %d][SR] Gave SDU to PHY, clearing any scheduling request\n",
module_idP,payload_offset, sdu_length_total); module_idP,payload_offset, sdu_length_total);
......
...@@ -87,7 +87,7 @@ typedef struct { ...@@ -87,7 +87,7 @@ typedef struct {
uint8_t* (*get_dlsch_sdu)(module_id_t Mod_id,int CC_id,frame_t frameP,rnti_t rnti,uint8_t TB_index); uint8_t* (*get_dlsch_sdu)(module_id_t Mod_id,int CC_id,frame_t frameP,rnti_t rnti,uint8_t TB_index);
/// Send ULSCH sdu to MAC for given rnti /// Send ULSCH sdu to MAC for given rnti
void (*rx_sdu)(module_id_t Mod_id,int CC_id,frame_t frameP,rnti_t rnti, uint8_t *sdu,uint16_t sdu_len, int harq_pid,uint8_t *msg3_flag); void (*rx_sdu)(module_id_t Mod_id,int CC_id,frame_t frameP, sub_frame_t sub_frameP,rnti_t rnti, uint8_t *sdu,uint16_t sdu_len, int harq_pid,uint8_t *msg3_flag);
/// Indicate failure to synch to external source /// Indicate failure to synch to external source
void (*mrbch_phy_sync_failure) (module_id_t Mod_id,frame_t frameP, uint8_t free_eNB_index); void (*mrbch_phy_sync_failure) (module_id_t Mod_id,frame_t frameP, uint8_t free_eNB_index);
......
...@@ -120,6 +120,7 @@ mac_rrc_data_ind( ...@@ -120,6 +120,7 @@ mac_rrc_data_ind(
const module_id_t module_idP, const module_id_t module_idP,
const int CC_idP, const int CC_idP,
const frame_t frameP, const frame_t frameP,
const sub_frame_t subframeP,
const rnti_t rntiP, const rnti_t rntiP,
const rb_id_t srb_idP, const rb_id_t srb_idP,
const uint8_t *sduP, const uint8_t *sduP,
...@@ -133,7 +134,7 @@ mac_rrc_data_ind( ...@@ -133,7 +134,7 @@ mac_rrc_data_ind(
return(mac_rrc_lite_data_ind( return(mac_rrc_lite_data_ind(
module_idP, module_idP,
CC_idP, CC_idP,
frameP, frameP,subframeP,
rntiP, rntiP,
srb_idP, srb_idP,
sduP, sduP,
......
...@@ -59,6 +59,7 @@ mac_rrc_data_ind( ...@@ -59,6 +59,7 @@ mac_rrc_data_ind(
const module_id_t module_idP, const module_id_t module_idP,
const int CC_idP, const int CC_idP,
const frame_t frameP, const frame_t frameP,
const sub_frame_t sub_frameP,
const rnti_t rntiP, const rnti_t rntiP,
const rb_id_t srb_idP, const rb_id_t srb_idP,
const uint8_t *sduP, const uint8_t *sduP,
......
...@@ -341,6 +341,7 @@ mac_rrc_lite_data_ind( ...@@ -341,6 +341,7 @@ mac_rrc_lite_data_ind(
const module_id_t module_idP, const module_id_t module_idP,
const int CC_id, const int CC_id,
const frame_t frameP, const frame_t frameP,
const sub_frame_t sub_frameP,
const rnti_t rntiP, const rnti_t rntiP,
const rb_id_t srb_idP, const rb_id_t srb_idP,
const uint8_t* sduP, const uint8_t* sduP,
...@@ -357,7 +358,7 @@ mac_rrc_lite_data_ind( ...@@ -357,7 +358,7 @@ mac_rrc_lite_data_ind(
/* /*
int si_window; int si_window;
*/ */
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, eNB_flagP, rntiP, frameP, 0,eNB_indexP); PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, eNB_flagP, rntiP, frameP, sub_frameP,eNB_indexP);
if(eNB_flagP == ENB_FLAG_NO) { if(eNB_flagP == ENB_FLAG_NO) {
if(srb_idP == BCCH) { if(srb_idP == BCCH) {
...@@ -377,12 +378,13 @@ mac_rrc_lite_data_ind( ...@@ -377,12 +378,13 @@ mac_rrc_lite_data_ind(
message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_BCCH_DATA_IND); message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_BCCH_DATA_IND);
memset (RRC_MAC_BCCH_DATA_IND (message_p).sdu, 0, BCCH_SDU_SIZE); memset (RRC_MAC_BCCH_DATA_IND (message_p).sdu, 0, BCCH_SDU_SIZE);
RRC_MAC_BCCH_DATA_IND (message_p).frame = frameP; RRC_MAC_BCCH_DATA_IND (message_p).frame = frameP;
RRC_MAC_BCCH_DATA_IND (message_p).sdu_size = sdu_size; RRC_MAC_BCCH_DATA_IND (message_p).sub_frame = sub_frameP;
RRC_MAC_BCCH_DATA_IND (message_p).sdu_size = sdu_size;
memcpy (RRC_MAC_BCCH_DATA_IND (message_p).sdu, sduP, sdu_size); memcpy (RRC_MAC_BCCH_DATA_IND (message_p).sdu, sduP, sdu_size);
RRC_MAC_BCCH_DATA_IND (message_p).enb_index = eNB_indexP; RRC_MAC_BCCH_DATA_IND (message_p).enb_index = eNB_indexP;
RRC_MAC_BCCH_DATA_IND (message_p).rsrq = 30 /* TODO change phy to report rspq */; RRC_MAC_BCCH_DATA_IND (message_p).rsrq = 30 /* TODO change phy to report rspq */;
RRC_MAC_BCCH_DATA_IND (message_p).rsrp = 45 /* TODO change phy to report rspp */; RRC_MAC_BCCH_DATA_IND (message_p).rsrp = 45 /* TODO change phy to report rspp */;
itti_send_msg_to_task (TASK_RRC_UE, ctxt.instance, message_p); itti_send_msg_to_task (TASK_RRC_UE, ctxt.instance, message_p);
} }
...@@ -410,8 +412,9 @@ mac_rrc_lite_data_ind( ...@@ -410,8 +412,9 @@ mac_rrc_lite_data_ind(
message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_CCCH_DATA_IND); message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_CCCH_DATA_IND);
memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE); memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE);
memcpy (RRC_MAC_CCCH_DATA_IND (message_p).sdu, sduP, sdu_size); memcpy (RRC_MAC_CCCH_DATA_IND (message_p).sdu, sduP, sdu_size);
RRC_MAC_CCCH_DATA_IND (message_p).frame = frameP; RRC_MAC_CCCH_DATA_IND (message_p).frame = frameP;
RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = sdu_size; RRC_MAC_CCCH_DATA_IND (message_p).sub_frame = sub_frameP;
RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = sdu_size;
RRC_MAC_CCCH_DATA_IND (message_p).enb_index = eNB_indexP; RRC_MAC_CCCH_DATA_IND (message_p).enb_index = eNB_indexP;
RRC_MAC_CCCH_DATA_IND (message_p).rnti = rntiP; RRC_MAC_CCCH_DATA_IND (message_p).rnti = rntiP;
itti_send_msg_to_task (TASK_RRC_UE, ctxt.instance, message_p); itti_send_msg_to_task (TASK_RRC_UE, ctxt.instance, message_p);
...@@ -443,6 +446,7 @@ mac_rrc_lite_data_ind( ...@@ -443,6 +446,7 @@ mac_rrc_lite_data_ind(
message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_MCCH_DATA_IND); message_p = itti_alloc_new_message (TASK_MAC_UE, RRC_MAC_MCCH_DATA_IND);
RRC_MAC_MCCH_DATA_IND (message_p).frame = frameP; RRC_MAC_MCCH_DATA_IND (message_p).frame = frameP;
RRC_MAC_MCCH_DATA_IND (message_p).sub_frame = sub_frameP;
RRC_MAC_MCCH_DATA_IND (message_p).sdu_size = sdu_lenP; RRC_MAC_MCCH_DATA_IND (message_p).sdu_size = sdu_lenP;
memset (RRC_MAC_MCCH_DATA_IND (message_p).sdu, 0, MCCH_SDU_SIZE); memset (RRC_MAC_MCCH_DATA_IND (message_p).sdu, 0, MCCH_SDU_SIZE);
memcpy (RRC_MAC_MCCH_DATA_IND (message_p).sdu, sduP, sdu_lenP); memcpy (RRC_MAC_MCCH_DATA_IND (message_p).sdu, sduP, sdu_lenP);
...@@ -474,9 +478,10 @@ mac_rrc_lite_data_ind( ...@@ -474,9 +478,10 @@ mac_rrc_lite_data_ind(
} }
message_p = itti_alloc_new_message (TASK_MAC_ENB, RRC_MAC_CCCH_DATA_IND); message_p = itti_alloc_new_message (TASK_MAC_ENB, RRC_MAC_CCCH_DATA_IND);
RRC_MAC_CCCH_DATA_IND (message_p).frame = frameP; RRC_MAC_CCCH_DATA_IND (message_p).frame = frameP;
RRC_MAC_CCCH_DATA_IND (message_p).rnti = rntiP; RRC_MAC_CCCH_DATA_IND (message_p).sub_frame = sub_frameP;
RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = sdu_size; RRC_MAC_CCCH_DATA_IND (message_p).rnti = rntiP;
RRC_MAC_CCCH_DATA_IND (message_p).sdu_size = sdu_size;
RRC_MAC_CCCH_DATA_IND (message_p).CC_id = CC_id; RRC_MAC_CCCH_DATA_IND (message_p).CC_id = CC_id;
memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE); memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE);
memcpy (RRC_MAC_CCCH_DATA_IND (message_p).sdu, sduP, sdu_size); memcpy (RRC_MAC_CCCH_DATA_IND (message_p).sdu, sduP, sdu_size);
......
...@@ -312,6 +312,7 @@ mac_rrc_lite_data_ind( ...@@ -312,6 +312,7 @@ mac_rrc_lite_data_ind(
const module_id_t module_idP, const module_id_t module_idP,
const int CC_id, const int CC_id,
const frame_t frameP, const frame_t frameP,
const sub_frame_t sub_frameP,
const rnti_t rntiP, const rnti_t rntiP,
const rb_id_t srb_idP, const rb_id_t srb_idP,
const uint8_t* sduP, const uint8_t* sduP,
......
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