Commit f368d46e authored by masayuki.harada's avatar masayuki.harada

Add SRB1 in nrUE.

Temporary fixes
parent c49dac96
......@@ -1351,6 +1351,17 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
#else
int off = 0;
#endif
double p_shift=0.00476190476190476;
short * IQ_temp = (short*)&gNB->pusch_vars[ulsch_id]->rxdataF_comp[0][rel15_ul->start_symbol_index * (off + rel15_ul->rb_size * NR_NB_SC_PER_RB)];
double ttt[2];
if(rel15_ul->num_dmrs_cdm_grps_no_data==1){
for(int pp=0; pp< rel15_ul->nr_of_symbols * rel15_ul->rb_size * NR_NB_SC_PER_RB;pp++){
ttt[0]=(double)IQ_temp[pp*2]*cos(pp*p_shift) - (double)IQ_temp[pp*2+1]*sin(pp*p_shift);
ttt[1]=(double)IQ_temp[pp*2]*sin(pp*p_shift) + (double)IQ_temp[pp*2+1]*cos(pp*p_shift);
IQ_temp[pp*2]=(short)ttt[0];
IQ_temp[pp*2+1]=(short)ttt[1];
}
}
uint32_t rxdataF_ext_offset = 0;
for(uint8_t i =rel15_ul->start_symbol_index; i< (rel15_ul->start_symbol_index + rel15_ul->nr_of_symbols);i++) {
start_meas(&gNB->ulsch_llr_stats);
......
......@@ -661,6 +661,7 @@ void pf_ul(module_id_t module_id,
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
if(sched_ctrl->ra_state==1) continue;
int rbStart = NRRIV2PRBOFFSET(sched_ctrl->active_bwp->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
rbStart+=27;
const uint16_t bwpSize = NRRIV2BW(sched_ctrl->active_ubwp->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE);
/* Calculate throughput */
......@@ -1145,7 +1146,11 @@ void nr_schedule_ulsch(module_id_t module_id,
/* PUSCH PDU */
pusch_pdu->pusch_data.rv_index = nr_rv_round_map[cur_harq->round];
pusch_pdu->pusch_data.harq_process_id = harq_id;
if (cur_harq->round == 0) {
pusch_pdu->pusch_data.new_data_indicator = 1 - cur_harq->ndi;
}else{
pusch_pdu->pusch_data.new_data_indicator = cur_harq->ndi;
}
pusch_pdu->pusch_data.tb_size = sched_pusch->tb_size;
pusch_pdu->pusch_data.num_cb = 0; //CBG not supported
......
......@@ -149,7 +149,7 @@ int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP,
}
uint8_t
rrc_data_req_ue(
nr_rrc_data_req_ue(
const protocol_ctxt_t *const ctxt_pP,
const rb_id_t rb_idP,
const mui_t muiP,
......@@ -163,11 +163,11 @@ rrc_data_req_ue(
// Uses a new buffer to avoid issue with PDCP buffer content that could be changed by PDCP (asynchronous message handling).
uint8_t *message_buffer;
message_buffer = itti_malloc (
TASK_RRC_UE,
TASK_RRC_NRUE,
TASK_PDCP_UE,
sdu_sizeP);
memcpy (message_buffer, buffer_pP, sdu_sizeP);
message_p = itti_alloc_new_message ( TASK_RRC_UE, 0, RRC_DCCH_DATA_REQ);
message_p = itti_alloc_new_message ( TASK_RRC_NRUE, 0, RRC_DCCH_DATA_REQ);
RRC_DCCH_DATA_REQ (message_p).frame = ctxt_pP->frame;
RRC_DCCH_DATA_REQ (message_p).enb_flag = ctxt_pP->enb_flag;
RRC_DCCH_DATA_REQ (message_p).rb_id = rb_idP;
......
......@@ -198,8 +198,7 @@ extern rlc_op_status_t nr_rrc_rlc_config_asn1_req (const protocol_ctxt_t * con
const NR_DRB_ToAddModList_t * const drb2add_listP,
const NR_DRB_ToReleaseList_t * const drb2release_listP,
const LTE_PMCH_InfoList_r9_t * const pmch_InfoList_r9_pP,
struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_srb_bearer2add_list,
struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_drb_bearer2add_list);
struct NR_CellGroupConfig__rlc_BearerToAddModList *rlc_bearer2add_list);
// from LTE-RRC DL-DCCH RRCConnectionReconfiguration nr-secondary-cell-group-config (encoded)
int8_t nr_rrc_ue_decode_secondary_cellgroup_config(
......@@ -1299,7 +1298,46 @@ nr_rrc_ue_process_masterCellGroup(
//TODO (perform the BH RLC channel addition/modification as specified in 5.3.5.5.11)
}
}
/*--------------------------------------------------*/
static void rrc_ue_generate_RRCSetup_procedure(
const protocol_ctxt_t *const ctxt_pP,
uint8_t gNB_index,
OCTET_STRING_t *masterCellGroup,
NR_RadioBearerConfig_t *const radioBearerConfig
){
NR_CellGroupConfig_t *cellGroupConfig;
asn_dec_rval_t dec_rval;
dec_rval = uper_decode(NULL,
&asn_DEF_NR_CellGroupConfig,
(void **)&cellGroupConfig,
masterCellGroup->buf,
masterCellGroup->size,
0, 0);
if (dec_rval.code != RC_OK) {
LOG_E(RRC, "could not decode RRCSetup\n");
return;
}
nr_rrc_pdcp_config_asn1_req(
ctxt_pP,
radioBearerConfig->srb_ToAddModList,
NULL,
NULL,
0xff,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL);
nr_rrc_rlc_config_asn1_req (ctxt_pP,
radioBearerConfig->srb_ToAddModList,
NULL,
NULL,
(LTE_PMCH_InfoList_r9_t *) NULL,
cellGroupConfig->rlc_BearerToAddModList);
}
/*--------------------------------------------------*/
static void rrc_ue_generate_RRCSetupComplete(
const protocol_ctxt_t *const ctxt_pP,
......@@ -1332,7 +1370,7 @@ static void rrc_ue_generate_RRCSetupComplete(
"[FRAME %05d][RRC_UE][MOD %02d][][--- PDCP_DATA_REQ/%d Bytes (RRCConnectionSetupComplete to gNB %d MUI %d) --->][PDCP][MOD %02d][RB %02d]\n",
ctxt_pP->frame, ctxt_pP->module_id+NB_RN_INST, size, gNB_index, nr_rrc_mui, ctxt_pP->module_id+NB_eNB_INST, DCCH);
// ctxt_pP_local.rnti = ctxt_pP->rnti;
rrc_data_req_ue(
nr_rrc_data_req_ue(
ctxt_pP,
DCCH,
nr_rrc_mui++,
......@@ -1409,10 +1447,11 @@ int8_t nr_rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const NR_SRB
// ctxt_pP,
// gNB_index,
// &dl_ccch_msg->message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup->masterCellGroup);
// nr_sa_rrc_ue_process_radioBearerConfig(
// ctxt_pP,
// gNB_index,
// &dl_ccch_msg->message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup->radioBearerConfig);
rrc_ue_generate_RRCSetup_procedure(
ctxt_pP,
gNB_index,
&dl_ccch_msg->message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup->masterCellGroup,
&dl_ccch_msg->message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup->radioBearerConfig);
nr_rrc_set_state (ctxt_pP->module_id, RRC_STATE_CONNECTED);
nr_rrc_set_sub_state (ctxt_pP->module_id, RRC_SUB_STATE_CONNECTED);
NR_UE_rrc_inst[ctxt_pP->module_id].Info[gNB_index].rnti = ctxt_pP->rnti;
......@@ -1690,7 +1729,7 @@ nr_rrc_ue_process_securityModeCommand(
GNB_RRC_DCCH_DATA_IND (message_p).size = (enc_rval.encoded + 7) / 8;
itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt_pP->instance, message_p);
#else
rrc_data_req_ue (
nr_rrc_data_req_ue (
ctxt_pP,
DCCH,
nr_rrc_mui++,
......@@ -1745,7 +1784,7 @@ void nr_rrc_ue_generate_RRCSetupRequest(module_id_t module_id, const uint8_t gNB
log_dump(RRC,NR_UE_rrc_inst[module_id].Srb0[gNB_index].Tx_buffer.Payload,NR_UE_rrc_inst[module_id].Srb0[gNB_index].Tx_buffer.payload_size,
LOG_DUMP_CHAR,"RRCSetupRequest :\n");
rrc_data_req_ue (
nr_rrc_data_req_ue (
&ctxt,
DCCH,
nr_rrc_mui++,
......@@ -2216,7 +2255,7 @@ void nr_rrc_ue_generate_RRCReconfigurationComplete( const protocol_ctxt_t *const
itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt_pP->instance, message_p);
#else
rrc_data_req_ue (
nr_rrc_data_req_ue (
ctxt_pP,
DCCH,
nr_rrc_mui++,
......@@ -2468,14 +2507,14 @@ void *rrc_nrue_task( void *args_p ) {
#else
// check if SRB2 is created, if yes request data_req on DCCH1 (SRB2)
if(NR_UE_rrc_inst[ue_mod_id].SRB2_config[0] == NULL) {
rrc_data_req_ue (&ctxt,
nr_rrc_data_req_ue (&ctxt,
DCCH,
nr_rrc_mui++,
SDU_CONFIRM_NO,
length, buffer,
PDCP_TRANSMISSION_MODE_CONTROL);
} else {
rrc_data_req_ue (&ctxt,
nr_rrc_data_req_ue (&ctxt,
DCCH1,
nr_rrc_mui++,
SDU_CONFIRM_NO,
......@@ -2615,7 +2654,7 @@ nr_rrc_ue_process_ueCapabilityEnquiry(
GNB_RRC_DCCH_DATA_IND (message_p).size = (enc_rval.encoded + 7) / 8;
itti_send_msg_to_task (TASK_RRC_GNB_SIM, ctxt_pP->instance, message_p);
#else
rrc_data_req_ue (
nr_rrc_data_req_ue (
ctxt_pP,
DCCH,
nr_rrc_mui++,
......
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