Updated the following for SA development:
1. The preamble index in the NRUE is random for SA. Using the preamble index from the mac->ra is correct. 2. The dl_pathloss calculated is from L1. We should shunt this feature out for our emulated mode. If we add the abstraction later, we can model the pathloss in the proxy and update it in the RA procedure of the NRUE. 3. Checking that the crnti != t_crnti is not valid for SA mode. And may only be needed for multi-UE in NSA mode. We might be able to delete it all together. For now, we only use for NSA mode. 4. Checking the RAR based on rnti = 10b and not the RA_STATE is better.
This commit is contained in:
@@ -15,6 +15,14 @@ log_config = {
|
||||
rrc_log_verbosity ="full";
|
||||
};
|
||||
|
||||
uicc0 = {
|
||||
imsi = "2089900007487";
|
||||
key = "fec86ba6eb707ed08905757b1bb44b8f";
|
||||
opc= "C42449363BBAD02B66D16BC975D77CC1";
|
||||
dnn= "oai";
|
||||
nssai_sst=1;
|
||||
nssai_sd=1;
|
||||
}
|
||||
|
||||
L1s = (
|
||||
{
|
||||
|
||||
+4
-1
@@ -177,7 +177,10 @@ static void L1_nsa_prach_procedures(frame_t frame, int slot, fapi_nr_ul_config_p
|
||||
rach_ind->pdu_list[pdu_index].num_preamble = 1;
|
||||
const int num_p = rach_ind->pdu_list[pdu_index].num_preamble;
|
||||
rach_ind->pdu_list[pdu_index].preamble_list = calloc(num_p, sizeof(nfapi_nr_prach_indication_preamble_t));
|
||||
rach_ind->pdu_list[pdu_index].preamble_list[0].preamble_index = mac->ra.rach_ConfigDedicated->cfra->resources.choice.ssb->ssb_ResourceList.list.array[0]->ra_PreambleIndex;
|
||||
uint8_t preamble_index = get_softmodem_params()->nsa ?
|
||||
mac->ra.rach_ConfigDedicated->cfra->resources.choice.ssb->ssb_ResourceList.list.array[0]->ra_PreambleIndex :
|
||||
mac->ra.ra_PreambleIndex;
|
||||
rach_ind->pdu_list[pdu_index].preamble_list[0].preamble_index = preamble_index;
|
||||
|
||||
rach_ind->pdu_list[pdu_index].preamble_list[0].timing_advance = 0;
|
||||
rach_ind->pdu_list[pdu_index].preamble_list[0].preamble_pwr = 0xffffffff;
|
||||
|
||||
@@ -595,7 +595,9 @@ void nr_get_prach_resources(module_id_t mod_id,
|
||||
LOG_D(MAC, "In %s: selected RA preamble index %d for contention-free random access procedure for SSB with Id %d\n", __FUNCTION__, prach_resources->ra_PreambleIndex, cfra_ssb_resource_idx);
|
||||
}
|
||||
} else {
|
||||
int16_t dl_pathloss = get_nr_PL(mod_id, CC_id, gNB_id);
|
||||
/* TODO: This controls the tx_power of UE and the ramping procedure of RA of UE. Later we
|
||||
can abstract this, perhaps in the proxy. But for the time being lets leave it as below. */
|
||||
int16_t dl_pathloss = !get_softmodem_params()->emulate_l2 ? get_nr_PL(mod_id, CC_id, gNB_id) : 0;
|
||||
ssb_rach_config(ra, prach_resources, nr_rach_ConfigCommon, prach_pdu);
|
||||
ra_preambles_config(prach_resources, mac, dl_pathloss);
|
||||
LOG_D(MAC, "[RAPROC] - Selected RA preamble index %d for contention-based random access procedure... \n", prach_resources->ra_PreambleIndex);
|
||||
|
||||
@@ -3802,7 +3802,7 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
|
||||
|
||||
LOG_D(NR_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 )
|
||||
if (get_softmodem_params()->nsa && mac->crnti == ra->t_crnti)
|
||||
{
|
||||
LOG_D(MAC, "Discarding the received RAR.\n");
|
||||
return -1;
|
||||
|
||||
@@ -388,7 +388,7 @@ static void copy_tx_data_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi
|
||||
fill_rx_ind(pdu_list, rx_ind, pdu_idx, FAPI_NR_RX_PDU_TYPE_SIB);
|
||||
pdu_idx++;
|
||||
}
|
||||
else if(mac->ra.ra_state <= WAIT_RAR)
|
||||
else if (dl_info->dci_ind->dci_list[i].rnti == 0x10b)
|
||||
{
|
||||
fill_rx_ind(pdu_list, rx_ind, pdu_idx, FAPI_NR_RX_PDU_TYPE_RAR);
|
||||
pdu_idx++;
|
||||
|
||||
Reference in New Issue
Block a user