Restored to the original OAI ue and nr-ue config file
Restored original LOG level. Code cleanup to remove emptry space and added some logs.
This commit is contained in:
@@ -20,9 +20,9 @@ L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "nfapi";
|
||||
local_n_if_name = "lo:";
|
||||
remote_n_address = "127.0.0.2";
|
||||
local_n_address = "127.0.0.1";
|
||||
local_n_if_name = "ens3";
|
||||
remote_n_address = "CI_ENB_IP_ADDR";
|
||||
local_n_address = "CI_UE_IP_ADDR";
|
||||
local_n_portc = 50600;
|
||||
remote_n_portc = 50601;
|
||||
local_n_portd = 50610;
|
||||
|
||||
@@ -20,9 +20,9 @@ L1s = (
|
||||
{
|
||||
num_cc = 1;
|
||||
tr_n_preference = "nfapi";
|
||||
local_n_if_name = "lo";
|
||||
remote_n_address = "127.0.0.1";
|
||||
local_n_address = "127.0.0.1";
|
||||
local_n_if_name = "ens3";
|
||||
remote_n_address = "CI_ENB_IP_ADDR";
|
||||
local_n_address = "CI_UE_IP_ADDR";
|
||||
local_n_portc = 50000;
|
||||
remote_n_portc = 50001;
|
||||
local_n_portd = 50010;
|
||||
|
||||
+2
-2
@@ -242,7 +242,7 @@ static void *NRUE_phy_stub_standalone_pnf_task(void *arg)
|
||||
abort();
|
||||
}
|
||||
sfn_slot_p = get_queue(&nr_sfn_slot_queue);
|
||||
if (sfn_slot_p == NULL)
|
||||
if (sfn_slot_p == NULL)
|
||||
continue;
|
||||
|
||||
sfn_slot = *sfn_slot_p;
|
||||
@@ -359,7 +359,7 @@ static void *NRUE_phy_stub_standalone_pnf_task(void *arg)
|
||||
for (int j = 0; j < crc_ind->number_crcs; j++)
|
||||
{
|
||||
LOG_I(NR_PHY, "Sending crc_ind.harq_id = %d for %d index SFN SLot %u %u with rnti %x\n",
|
||||
crc_ind->crc_list[j].harq_id, j, crc_ind->sfn, crc_ind->slot, crc_ind->crc_list[j].rnti);
|
||||
crc_ind->crc_list[j].harq_id, j, crc_ind->sfn, crc_ind->slot, crc_ind->crc_list[j].rnti);
|
||||
}
|
||||
send_nsa_standalone_msg(&UL_INFO, crc_ind->header.message_id);
|
||||
free(crc_ind->crc_list);
|
||||
|
||||
@@ -982,8 +982,8 @@ int phy_nr_crc_indication(struct nfapi_vnf_p7_config *config, nfapi_nr_crc_indic
|
||||
crc_ind->crc_list[j].tb_crc_status = ind->crc_list[j].tb_crc_status;
|
||||
crc_ind->crc_list[j].timing_advance = ind->crc_list[j].timing_advance;
|
||||
crc_ind->crc_list[j].ul_cqi = ind->crc_list[j].ul_cqi;
|
||||
LOG_I(NR_MAC, "Received crc_ind.harq_id = %d for %d index SFN SLot %u %u with rnti %x\n",
|
||||
ind->crc_list[j].harq_id, j, ind->sfn, ind->slot, ind->crc_list[j].rnti);
|
||||
LOG_I(NR_MAC, "Received crc_ind.harq_id = %d for %d index SFN SLot %u %u with rnti %x\n",
|
||||
ind->crc_list[j].harq_id, j, ind->sfn, ind->slot, ind->crc_list[j].rnti);
|
||||
}
|
||||
if (!put_queue(&gnb_crc_ind_queue, crc_ind))
|
||||
{
|
||||
|
||||
@@ -544,7 +544,7 @@ void phy_procedures_gNB_common_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx)
|
||||
void phy_procedures_gNB_uespec_RX(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx) {
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_UESPEC_RX,1);
|
||||
LOG_I(PHY,"phy_procedures_gNB_uespec_RX frame %d, slot %d\n",frame_rx,slot_rx);
|
||||
LOG_D(PHY,"phy_procedures_gNB_uespec_RX frame %d, slot %d\n",frame_rx,slot_rx);
|
||||
|
||||
if (gNB->frame_parms.frame_type == TDD)
|
||||
if(NFAPI_MODE != NFAPI_MODE_VNF)
|
||||
|
||||
@@ -60,8 +60,8 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
|
||||
"Too many ul_config pdus %d", ul_config->number_pdus);
|
||||
for (int i = 0; i < ul_config->number_pdus; ++i)
|
||||
{
|
||||
//LOG_I(PHY, "In %s: processing %s PDU of %d total UL PDUs (ul_config %p) \n",
|
||||
// __FUNCTION__, ul_pdu_type[ul_config->ul_config_list[i].pdu_type - 1], ul_config->number_pdus, ul_config);
|
||||
LOG_I(PHY, "In %s: processing %s PDU of %d total UL PDUs (ul_config %p) \n",
|
||||
__FUNCTION__, ul_pdu_type[ul_config->ul_config_list[i].pdu_type - 1], ul_config->number_pdus, ul_config);
|
||||
|
||||
uint8_t pdu_type = ul_config->ul_config_list[i].pdu_type;
|
||||
switch (pdu_type)
|
||||
@@ -102,15 +102,14 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
|
||||
{
|
||||
crc_ind->crc_list[j].handle = pusch_config_pdu->handle;
|
||||
crc_ind->crc_list[j].harq_id = pusch_config_pdu->pusch_data.harq_process_id;
|
||||
LOG_I(NR_MAC, "This is the harq pid %d for crc_list[%d] rnti %x\n", crc_ind->crc_list[j].harq_id, j, pusch_config_pdu->rnti);
|
||||
LOG_I(NR_MAC, "This is sched sfn/sl [%d %d] and crc sfn/sl [%d %d]\n",
|
||||
scheduled_response->frame, scheduled_response->slot, crc_ind->sfn, crc_ind->slot);
|
||||
crc_ind->crc_list[j].num_cb = pusch_config_pdu->pusch_data.num_cb;
|
||||
crc_ind->crc_list[j].rnti = pusch_config_pdu->rnti;
|
||||
crc_ind->crc_list[j].tb_crc_status = 0;
|
||||
crc_ind->crc_list[j].timing_advance = scheduled_response->tx_request->tx_config.timing_advance;
|
||||
crc_ind->crc_list[j].ul_cqi = scheduled_response->tx_request->tx_config.ul_cqi;
|
||||
LOG_D(NR_MAC, "This is the harq pid %d for crc_list[%d] rnti %x "
|
||||
"sched sfn/sl [%d %d] and crc sfn/sl [%d %d]\n",
|
||||
crc_ind->crc_list[j].harq_id, j, pusch_config_pdu->rnti,
|
||||
scheduled_response->frame, scheduled_response->slot, crc_ind->sfn, crc_ind->slot);
|
||||
}
|
||||
|
||||
if (!put_queue(&nr_rx_ind_queue, rx_ind))
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
int get_rnti_type(NR_UE_MAC_INST_t *mac, uint16_t rnti){
|
||||
|
||||
RA_config_t *ra = &mac->ra;
|
||||
int rnti_type = NR_RNTI_C;
|
||||
int rnti_type;
|
||||
|
||||
if (rnti == ra->ra_rnti) {
|
||||
rnti_type = NR_RNTI_RA;
|
||||
@@ -82,7 +82,7 @@ int get_rnti_type(NR_UE_MAC_INST_t *mac, uint16_t rnti){
|
||||
} else if (rnti == 0xFFFF) {
|
||||
rnti_type = NR_RNTI_SI;
|
||||
} else {
|
||||
//AssertFatal(1 == 0, "In %s: Not identified/handled rnti %x \n", __FUNCTION__, rnti);
|
||||
AssertFatal(1 == 0, "In %s: Not identified/handled rnti %d \n", __FUNCTION__, rnti);
|
||||
}
|
||||
|
||||
LOG_D(MAC, "In %s: returning rnti_type %s \n", __FUNCTION__, rnti_types[rnti_type]);
|
||||
@@ -446,7 +446,7 @@ int nr_ue_process_dci_indication_pdu(module_id_t module_id,int cc_id, int gNB_in
|
||||
|
||||
NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
|
||||
|
||||
LOG_I(MAC,"Received dci indication (rnti %x,dci format %d,n_CCE %d,payloadSize %d,payload %llx)\n",
|
||||
LOG_D(MAC,"Received dci indication (rnti %x,dci format %d,n_CCE %d,payloadSize %d,payload %llx)\n",
|
||||
dci->rnti,dci->dci_format,dci->n_CCE,dci->payloadSize,*(unsigned long long*)dci->payloadBits);
|
||||
|
||||
uint32_t dci_format = nr_extract_dci_info(mac, dci->dci_format, dci->payloadSize, dci->rnti, (uint64_t *)dci->payloadBits, def_dci_pdu_rel15);
|
||||
@@ -2190,7 +2190,7 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
|
||||
NR_MAC_RAR *rar = (NR_MAC_RAR *) (dlsch_buffer + 1); // RAR subPDU pointer
|
||||
uint8_t preamble_index = mac->ra.rach_ConfigDedicated->cfra->resources.choice.ssb->ssb_ResourceList.list.array[0]->ra_PreambleIndex;
|
||||
|
||||
LOG_I(MAC, "In %s:[%d.%d]: [UE %d][RAPROC] invoking MAC for received RAR (current preamble %d)\n", __FUNCTION__, frame, slot, mod_id, preamble_index);
|
||||
LOG_D(MAC, "In %s:[%d.%d]: [UE %d][RAPROC] invoking MAC for received RAR (current preamble %d)\n", __FUNCTION__, frame, slot, mod_id, preamble_index);
|
||||
|
||||
if( mac->crnti == ra->t_crnti )
|
||||
{
|
||||
@@ -2237,16 +2237,7 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
|
||||
#endif
|
||||
|
||||
// TC-RNTI
|
||||
LOG_I(MAC, "Found RAR_01 with t_crnti %x\n", ra->t_crnti);
|
||||
//if (ra->t_crnti == mac->crnti )
|
||||
// return -1;
|
||||
|
||||
//rar->TCRNTI_1 = (uint8_t) (mac->crnti >> 8); // 8 MSBs of rnti
|
||||
//rar->TCRNTI_2 = (uint8_t) (mac->crnti & 0xff); // 8 LSBs of rnti
|
||||
|
||||
ra->t_crnti = rar->TCRNTI_2 + (rar->TCRNTI_1 << 8);
|
||||
LOG_I(MAC, "Found RAR_02 with t_crnti %x\n", rar->TCRNTI_2 + (rar->TCRNTI_1 << 8));
|
||||
|
||||
|
||||
// TA command
|
||||
ul_time_alignment->apply_ta = 1;
|
||||
@@ -2335,16 +2326,13 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
|
||||
|
||||
// Config Msg3 PDU
|
||||
nr_config_pusch_pdu(mac, pusch_config_pdu, NULL, &rar_grant, rnti, NULL);
|
||||
LOG_I(MAC, "Found RAR_0 with t_crnti %x\n", ra->t_crnti);
|
||||
|
||||
}
|
||||
LOG_I(MAC, "Found RAR_1 with t_crnti %x\n", ra->t_crnti);
|
||||
|
||||
} else {
|
||||
|
||||
ra->t_crnti = 0;
|
||||
ul_time_alignment->ta_command = (0xffff);
|
||||
LOG_I(MAC, "Found RAR_2 with t_crnti %x\n", ra->t_crnti);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -435,10 +435,7 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
|
||||
}
|
||||
}
|
||||
LOG_I(PHY,"Added new RA process for UE RNTI %04x with initial secondaryCellGroup, ra_index %u, rnti %x\n",
|
||||
rnti,
|
||||
ra_index,
|
||||
cc->ra[ra_index].rnti
|
||||
);
|
||||
rnti, ra_index, cc->ra[ra_index].rnti);
|
||||
} else { // secondaryCellGroup has been updated
|
||||
const int UE_id = find_nr_UE_id(Mod_idP,rnti);
|
||||
UE_info->secondaryCellGroup[UE_id] = secondaryCellGroup;
|
||||
|
||||
@@ -456,7 +456,7 @@ void nr_schedule_msg2(uint16_t rach_frame, uint16_t rach_slot,
|
||||
}
|
||||
}
|
||||
|
||||
uint16_t temp_preamble_index = 0;
|
||||
|
||||
void nr_initiate_ra_proc(module_id_t module_idP,
|
||||
int CC_id,
|
||||
frame_t frameP,
|
||||
@@ -751,7 +751,7 @@ void nr_add_msg3(module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t
|
||||
AssertFatal(ra->secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count == 1,
|
||||
"downlinkBWP_ToAddModList has %d BWP!\n", ra->secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list.count);
|
||||
NR_BWP_Uplink_t *ubwp = ra->secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig->uplinkBWP_ToAddModList->list.array[ra->bwp_id - 1];
|
||||
LOG_I(MAC, "Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d,%d) for rnti: %x\n",
|
||||
LOG_D(MAC, "Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d,%d) for rnti: %x\n",
|
||||
frameP,
|
||||
slotP,
|
||||
ra->Msg3_frame,
|
||||
@@ -928,7 +928,7 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
|
||||
dl_req->nPDUs+=1;
|
||||
nfapi_nr_dl_tti_pdsch_pdu_rel15_t *pdsch_pdu_rel15 = &dl_tti_pdsch_pdu->pdsch_pdu.pdsch_pdu_rel15;
|
||||
|
||||
LOG_I(MAC,"[gNB %d] [RAPROC] CC_id %d Frame %d, slotP %d: Generating RAR DCI, state %d, rnti %x\n",
|
||||
LOG_I(MAC,"[gNB %d] [RAPROC] CC_id %d Frame %d, slotP %d: Generating RAR DCI, state %d, rnti %x\n",
|
||||
module_idP,
|
||||
CC_id,
|
||||
frameP,
|
||||
@@ -1071,7 +1071,6 @@ void nr_generate_Msg2(module_id_t module_idP, int CC_id, frame_t frameP, sub_fra
|
||||
nr_mac->TX_req[CC_id].Slot = slotP;
|
||||
|
||||
// Program UL processing for Msg3
|
||||
LOG_I(MAC, "Before Program UL processing for Msg3: rnti %x\n", ra->rnti);
|
||||
nr_get_Msg3alloc(module_idP, CC_id, scc, ubwp, slotP, frameP, ra);
|
||||
LOG_I(MAC, "Frame %d, Subframe %d: Setting Msg3 reception for Frame %d Subframe %d, crnti %x\n", frameP, slotP, ra->Msg3_frame, ra->Msg3_slot, ra->rnti);
|
||||
nr_add_msg3(module_idP, CC_id, frameP, slotP, ra, (uint8_t *) &tx_req->TLVs[0].value.direct[0]);
|
||||
@@ -1138,7 +1137,7 @@ void nr_fill_rar(uint8_t Mod_idP,
|
||||
uint8_t * dlsch_buffer,
|
||||
nfapi_nr_pusch_pdu_t *pusch_pdu){
|
||||
|
||||
LOG_D(MAC, "[gNB] Generate RAR MAC PDU frame %d slot %d preamble index %u TA command %d \n", ra->Msg2_frame, ra-> Msg2_slot, ra->preamble_index, ra->timing_offset);
|
||||
LOG_I(MAC, "[gNB] Generate RAR MAC PDU frame %d slot %d preamble index %u TA command %d \n", ra->Msg2_frame, ra-> Msg2_slot, ra->preamble_index, ra->timing_offset);
|
||||
NR_RA_HEADER_RAPID *rarh = (NR_RA_HEADER_RAPID *) dlsch_buffer;
|
||||
NR_MAC_RAR *rar = (NR_MAC_RAR *) (dlsch_buffer + 1);
|
||||
unsigned char csi_req = 0, tpc_command;
|
||||
@@ -1166,7 +1165,7 @@ void nr_fill_rar(uint8_t Mod_idP,
|
||||
// TC-RNTI
|
||||
rar->TCRNTI_1 = (uint8_t) (ra->rnti >> 8); // 8 MSBs of rnti
|
||||
rar->TCRNTI_2 = (uint8_t) (ra->rnti & 0xff); // 8 LSBs of rnti
|
||||
LOG_I(MAC, "[gNB] Generate RAR MAC PDU frame %d slot %d preamble index %u TA command %d with rnti = %x <---------------NOTICE in nr_fill_rar() \n", ra->Msg2_frame, ra-> Msg2_slot, ra->preamble_index, ra->timing_offset, ra->rnti);
|
||||
|
||||
// UL grant
|
||||
|
||||
ra->msg3_TPC = tpc_command;
|
||||
|
||||
@@ -721,12 +721,11 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
||||
if (current_harq_pid < 0) {
|
||||
/* PP has not selected a specific HARQ Process, get a new one */
|
||||
current_harq_pid = sched_ctrl->available_dl_harq.head;
|
||||
//AssertFatal(current_harq_pid >= 0,
|
||||
// "no free HARQ process available for UE %d\n",
|
||||
// UE_id);
|
||||
AssertFatal(current_harq_pid >= 0,
|
||||
"no free HARQ process available for UE %d\n",
|
||||
UE_id);
|
||||
remove_front_nr_list(&sched_ctrl->available_dl_harq);
|
||||
sched_ctrl->dl_harq_pid = current_harq_pid;
|
||||
return;
|
||||
} else {
|
||||
/* PP selected a specific HARQ process. Check whether it will be a new
|
||||
* transmission or a retransmission, and remove from the corresponding
|
||||
|
||||
@@ -1542,7 +1542,6 @@ void add_front_nr_list(NR_list_t *listP, int id)
|
||||
*/
|
||||
void remove_front_nr_list(NR_list_t *listP)
|
||||
{
|
||||
if (listP->head < 0 ) return;
|
||||
AssertFatal(listP->head >= 0, "Nothing to remove\n");
|
||||
const int ohead = listP->head;
|
||||
listP->head = listP->next[ohead];
|
||||
@@ -1631,9 +1630,6 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *secon
|
||||
UE_info->num_UEs);
|
||||
dump_nr_list(&UE_info->list);
|
||||
|
||||
for (int i = 0; i < MAX_MOBILES_PER_GNB; i++)
|
||||
LOG_I(MAC, "add_new_nr_ue UE_info->active[%d] = %d\n", i, UE_info->active[i]);
|
||||
|
||||
for (int i = 0; i < MAX_MOBILES_PER_GNB; i++) {
|
||||
if (UE_info->active[i])
|
||||
continue;
|
||||
|
||||
@@ -521,9 +521,8 @@ int nr_acknack_scheduling(int mod_id,
|
||||
get_pdsch_to_harq_feedback(mod_id, UE_id, ss_type, pdsch_to_harq_feedback);
|
||||
|
||||
/* there is a HARQ. Check whether we can use it for this ACKNACK */
|
||||
if (pucch->dai_c > 0 && pucch->frame == frame ) {
|
||||
if (pucch->dai_c > 0 && pucch->frame == frame) {
|
||||
/* this UE already has a PUCCH occasion */
|
||||
DevAssert(pucch->frame == frame);
|
||||
|
||||
// Find the right timing_indicator value.
|
||||
int i = 0;
|
||||
@@ -557,14 +556,12 @@ int nr_acknack_scheduling(int mod_id,
|
||||
* scheduled a lot and used all AckNacks, pucch->frame might have been
|
||||
* wrapped around to next frame */
|
||||
if (frame != pucch->frame || pucch->ul_slot < first_ul_slot_tdd) {
|
||||
/*
|
||||
AssertFatal(pucch->sr_flag + pucch->dai_c == 0,
|
||||
"expected no SR/AckNack for UE %d in %4d.%2d, but has %d/%d for %4d.%2d\n",
|
||||
UE_id, frame, slot, pucch->sr_flag, pucch->dai_c, pucch->frame, pucch->ul_slot);
|
||||
AssertFatal(frame + 1 != pucch->frame,
|
||||
"frame wrap around not handled in %s() yet\n",
|
||||
__func__);
|
||||
*/
|
||||
pucch->frame = frame;
|
||||
pucch->ul_slot = first_ul_slot_tdd;
|
||||
}
|
||||
|
||||
@@ -406,7 +406,6 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
|
||||
const int current_rnti = rntiP;
|
||||
const int UE_id = find_nr_UE_id(gnb_mod_idP, current_rnti);
|
||||
const int target_snrx10 = gNB_mac->pusch_target_snrx10;
|
||||
LOG_I(NR_MAC, "nr_rx_sdu entered\n");
|
||||
|
||||
if (UE_id != -1) {
|
||||
NR_UE_sched_ctrl_t *UE_scheduling_control = &UE_info->UE_sched_ctrl[UE_id];
|
||||
@@ -418,7 +417,7 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
|
||||
T_BUFFER(sduP, sdu_lenP));
|
||||
|
||||
UE_info->mac_stats[UE_id].ulsch_total_bytes_rx += sdu_lenP;
|
||||
LOG_I(NR_MAC, "[gNB %d][PUSCH %d] CC_id %d %d.%d Received ULSCH sdu from PHY (rnti %x, UE_id %d) ul_cqi %d sduP %p\n",
|
||||
LOG_D(NR_MAC, "[gNB %d][PUSCH %d] CC_id %d %d.%d Received ULSCH sdu from PHY (rnti %x, UE_id %d) ul_cqi %d sduP %p\n",
|
||||
gnb_mod_idP,
|
||||
harq_pid,
|
||||
CC_idP,
|
||||
@@ -498,13 +497,12 @@ void nr_rx_sdu(const module_id_t gnb_mod_idP,
|
||||
nr_clear_ra_proc(gnb_mod_idP, CC_idP, frameP);
|
||||
} else {
|
||||
|
||||
LOG_I(NR_MAC,
|
||||
LOG_D(NR_MAC,
|
||||
"expected TC_RNTI %04x to match current RNTI %04x\n",
|
||||
ra->rnti,
|
||||
current_rnti);
|
||||
// random access pusch with TC-RNTI
|
||||
if (ra->rnti != current_rnti) {
|
||||
//ra->rnti = current_rnti;
|
||||
LOG_W(NR_MAC,
|
||||
"expected TC_RNTI %04x to match current RNTI %04x\n",
|
||||
ra->rnti,
|
||||
@@ -947,7 +945,7 @@ typedef struct _sched_info
|
||||
struct timespec ts;
|
||||
} sched_info;
|
||||
|
||||
sched_info prev_sched[MAX_MOBILES_PER_GNB];
|
||||
sched_info prev_sched[MAX_MOBILES_PER_GNB];
|
||||
|
||||
void nr_schedule_ulsch(module_id_t module_id,
|
||||
frame_t frame,
|
||||
@@ -1022,14 +1020,14 @@ void nr_schedule_ulsch(module_id_t module_id,
|
||||
int time_diff_in_ms = timespec_diff_in_milliseconds (&ts, &prev_sched[UE_id].ts);
|
||||
|
||||
// The sched tx duration between ul dci req is assumed between 4 ms to 6 ms.
|
||||
if (vnf_pnf_sfnslot_delta < 0 || time_diff_in_ms < 4 * (sfnslot_delta / 10)
|
||||
if (vnf_pnf_sfnslot_delta < 0 || time_diff_in_ms < 4 * (sfnslot_delta / 10)
|
||||
|| time_diff_in_ms > 6 * (sfnslot_delta / 10))
|
||||
{
|
||||
LOG_D(PHY, "%s() SFN/SLOT DELTA between Proxy and gNB. UEID %d, rnti %x Delta %3d. gNB:%4d.%-2d "
|
||||
"slot_diff %4d time_diff %d : %lu.%06lu vs %lu.%06lu --> Skip\n\n\n\n\n\n\n\n\n",
|
||||
__FUNCTION__, UE_id, UE_info->rnti[UE_id],
|
||||
__FUNCTION__, UE_id, UE_info->rnti[UE_id],
|
||||
vnf_pnf_sfnslot_delta,
|
||||
frame, slot, sfnslot_delta, time_diff_in_ms,
|
||||
frame, slot, sfnslot_delta, time_diff_in_ms,
|
||||
ts.tv_sec, ts.tv_nsec / 1000,
|
||||
prev_sched[UE_id].ts.tv_sec, prev_sched[UE_id].ts.tv_nsec / 1000);
|
||||
continue;
|
||||
|
||||
@@ -224,7 +224,7 @@ void handle_nr_ulsch(NR_UL_IND_t *UL_info)
|
||||
// find crc_indication j corresponding rx_indication i
|
||||
const nfapi_nr_rx_data_pdu_t *rx = &UL_INFO.rx_ind.pdu_list[i];
|
||||
const nfapi_nr_crc_t *crc = &UL_INFO.crc_ind.crc_list[j];
|
||||
LOG_I(NR_PHY,
|
||||
LOG_D(NR_PHY,
|
||||
"UL_INFO.crc_ind.pdu_list[%d].rnti:%04x "
|
||||
"UL_INFO.rx_ind.pdu_list[%d].rnti:%04x\n",
|
||||
j,
|
||||
@@ -245,7 +245,7 @@ void handle_nr_ulsch(NR_UL_IND_t *UL_info)
|
||||
crc->tb_crc_status ? "error" : "ok",
|
||||
crc->tb_crc_status);
|
||||
|
||||
// if CRC passes, pass PDU, otherwise pass NULL as error indication
|
||||
/* if CRC passes, pass PDU, otherwise pass NULL as error indication */
|
||||
nr_rx_sdu(UL_INFO.module_id,
|
||||
UL_INFO.CC_id,
|
||||
UL_INFO.rx_ind.sfn,
|
||||
@@ -282,7 +282,6 @@ void handle_nr_ulsch(NR_UL_IND_t *UL_info)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void NR_UL_indication(NR_UL_IND_t *UL_info) {
|
||||
AssertFatal(UL_info!=NULL,"UL_INFO is null\n");
|
||||
#ifdef DUMP_FAPI
|
||||
@@ -293,7 +292,7 @@ void NR_UL_indication(NR_UL_IND_t *UL_info) {
|
||||
NR_Sched_Rsp_t *sched_info = &Sched_INFO[module_id][CC_id];
|
||||
NR_IF_Module_t *ifi = if_inst[module_id];
|
||||
gNB_MAC_INST *mac = RC.nrmac[module_id];
|
||||
LOG_I(PHY,"SFN/SF:%d%d module_id:%d CC_id:%d UL_info[rach_pdus:%d rx_ind:%d crcs:%d]\n",
|
||||
LOG_D(PHY,"SFN/SF:%d%d module_id:%d CC_id:%d UL_info[rach_pdus:%d rx_ind:%d crcs:%d]\n",
|
||||
UL_info->frame,UL_info->slot,
|
||||
module_id,CC_id, UL_info->rach_ind.number_of_pdus,
|
||||
UL_info->rx_ind.number_of_pdus, UL_info->crc_ind.number_crcs);
|
||||
|
||||
@@ -554,8 +554,8 @@ static void save_nr_measurement_info(nfapi_nr_dl_tti_request_t *dl_tti_request)
|
||||
nsa_sendmsg_to_lte_ue(buffer, pack_len, NR_UE_RRC_MEASUREMENT);
|
||||
LOG_A(NR_RRC, "Populated NR_UE_RRC_MEASUREMENT information and sent to LTE UE\n");
|
||||
}
|
||||
uint16_t sfn_slot_pool[512];
|
||||
uint16_t sfn_slot_id ;
|
||||
uint16_t sfn_slot_pool[512];
|
||||
uint16_t sfn_slot_id;
|
||||
|
||||
void *nrue_standalone_pnf_task(void *context)
|
||||
{
|
||||
@@ -593,7 +593,7 @@ void *nrue_standalone_pnf_task(void *context)
|
||||
LOG_I(NR_MAC, "put_queue failed for sfn slot.\n");
|
||||
}
|
||||
LOG_D(NR_MAC, "We have successfully queued snf slot %d.%d, with id %u, qsize %zu\n",
|
||||
sfn_slot_pool[sfn_slot_id]>> 6, sfn_slot_pool[sfn_slot_id] & 0x3F,
|
||||
sfn_slot_pool[sfn_slot_id]>> 6, sfn_slot_pool[sfn_slot_id] & 0x3F,
|
||||
sfn_slot_id, nr_sfn_slot_queue.num_items);
|
||||
|
||||
sfn_slot_id = (sfn_slot_id + 1) % 512;
|
||||
@@ -672,7 +672,7 @@ void *nrue_standalone_pnf_task(void *context)
|
||||
{
|
||||
delta += NFAPI_SFNSLOT2DEC(1024, 0);
|
||||
}
|
||||
AssertFatal(delta < 6, "Slot delta %d < 6 is required. sfn slot %u %u vs ul_dci_request sfn slot %u %u\n",
|
||||
AssertFatal(delta < 6, "Slot delta %d < 6 is required. sfn slot %u %u vs ul_dci_request sfn slot %u %u\n",
|
||||
delta, sfn, slot, ul_dci_request.SFN, ul_dci_request.Slot);
|
||||
check_and_process_dci(NULL, NULL, &ul_dci_request, NULL);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user