Commit d1923da0 authored by Laurent THOMAS's avatar Laurent THOMAS

trace dl ack/nack

parent 013656ab
...@@ -229,7 +229,7 @@ typedef struct { ...@@ -229,7 +229,7 @@ typedef struct {
uint8_t pre_dft_occ_len; uint8_t pre_dft_occ_len;
int16_t pucch_tx_power; int16_t pucch_tx_power;
uint32_t n_bit; uint32_t n_bit;
uint64_t payload; uint64_t payloadd;
} fapi_nr_ul_config_pucch_pdu; } fapi_nr_ul_config_pucch_pdu;
typedef struct typedef struct
......
...@@ -163,7 +163,7 @@ void nr_generate_pucch1(const PHY_VARS_NR_UE *ue, ...@@ -163,7 +163,7 @@ void nr_generate_pucch1(const PHY_VARS_NR_UE *ue,
const fapi_nr_ul_config_pucch_pdu *pucch_pdu) const fapi_nr_ul_config_pucch_pdu *pucch_pdu)
{ {
uint16_t m0 = pucch_pdu->initial_cyclic_shift; uint16_t m0 = pucch_pdu->initial_cyclic_shift;
uint64_t payload = pucch_pdu->payload; uint64_t payload = pucch_pdu->payloadd;
uint8_t startingSymbolIndex = pucch_pdu->start_symbol_index; uint8_t startingSymbolIndex = pucch_pdu->start_symbol_index;
uint8_t nrofSymbols = pucch_pdu->nr_of_symbols; uint8_t nrofSymbols = pucch_pdu->nr_of_symbols;
uint16_t startingPRB = pucch_pdu->prb_start + pucch_pdu->bwp_start; uint16_t startingPRB = pucch_pdu->prb_start + pucch_pdu->bwp_start;
...@@ -648,7 +648,7 @@ void nr_generate_pucch2(const PHY_VARS_NR_UE *ue, ...@@ -648,7 +648,7 @@ void nr_generate_pucch2(const PHY_VARS_NR_UE *ue,
uint64_t b[16] = {0}; // limit to 1024-bit encoded length uint64_t b[16] = {0}; // limit to 1024-bit encoded length
// M_bit is the number of bits of block b (payload after encoding) // M_bit is the number of bits of block b (payload after encoding)
uint16_t M_bit = 0; uint16_t M_bit = 0;
nr_uci_encoding(pucch_pdu->payload, nr_uci_encoding(pucch_pdu->payloadd,
pucch_pdu->n_bit, pucch_pdu->n_bit,
2,0, 2,0,
pucch_pdu->nr_of_symbols, pucch_pdu->nr_of_symbols,
...@@ -871,7 +871,7 @@ void nr_generate_pucch3_4(const PHY_VARS_NR_UE *ue, ...@@ -871,7 +871,7 @@ void nr_generate_pucch3_4(const PHY_VARS_NR_UE *ue,
uint16_t startingPRB = pucch_pdu->prb_start + pucch_pdu->bwp_start; uint16_t startingPRB = pucch_pdu->prb_start + pucch_pdu->bwp_start;
uint8_t add_dmrs = pucch_pdu->add_dmrs_flag; uint8_t add_dmrs = pucch_pdu->add_dmrs_flag;
nr_uci_encoding(pucch_pdu->payload, nr_uci_encoding(pucch_pdu->payloadd,
pucch_pdu->n_bit, pucch_pdu->n_bit,
pucch_pdu->format_type, pucch_pdu->format_type,
is_pi_over_2_bpsk_enabled, is_pi_over_2_bpsk_enabled,
......
...@@ -71,7 +71,7 @@ static void fill_uci_2_3_4(nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu_2_3_4, ...@@ -71,7 +71,7 @@ static void fill_uci_2_3_4(nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu_2_3_4,
sizeof(pdu_2_3_4->csi_part1.csi_part1_payload)); sizeof(pdu_2_3_4->csi_part1.csi_part1_payload));
for (int k = 0; k < csi_part1_byte_len; k++) for (int k = 0; k < csi_part1_byte_len; k++)
{ {
pdu_2_3_4->csi_part1.csi_part1_payload[k] = (pucch_pdu->payload >> (k * 8)) & 0xff; pdu_2_3_4->csi_part1.csi_part1_payload[k] = (pucch_pdu->payloadd >> (k * 8)) & 0xff;
} }
pdu_2_3_4->csi_part1.csi_part1_crc = 0; pdu_2_3_4->csi_part1.csi_part1_crc = 0;
} }
...@@ -252,7 +252,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response ...@@ -252,7 +252,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
mac->nr_ue_emul_l1.harq[k].active = false; mac->nr_ue_emul_l1.harq[k].active = false;
harq_pid = k; harq_pid = k;
AssertFatal(harq_index < pdu_0_1->harq.num_harq, "Invalid harq_index %d\n", harq_index); AssertFatal(harq_index < pdu_0_1->harq.num_harq, "Invalid harq_index %d\n", harq_index);
pdu_0_1->harq.harq_list[harq_index].harq_value = !mac->dl_harq_info[k].ack; pdu_0_1->harq.harq_list[harq_index].harq_value = !mac->dl_harq_info[k].acK;
harq_index++; harq_index++;
} }
} }
......
...@@ -360,7 +360,7 @@ typedef struct { ...@@ -360,7 +360,7 @@ typedef struct {
uint8_t pucch_resource_indicator; uint8_t pucch_resource_indicator;
frame_t ul_frame; frame_t ul_frame;
int ul_slot; int ul_slot;
uint8_t ack; uint8_t acK;
int n_CCE; int n_CCE;
int N_CCE; int N_CCE;
int dai_cumul; int dai_cumul;
......
...@@ -1437,7 +1437,7 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac, ...@@ -1437,7 +1437,7 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac,
pucch_pdu->time_domain_occ_idx = 0; pucch_pdu->time_domain_occ_idx = 0;
// Only HARQ transmitted in default PUCCH // Only HARQ transmitted in default PUCCH
pucch_pdu->mcs = get_pucch0_mcs(pucch->n_harq, 0, pucch->ack_payload, 0); pucch_pdu->mcs = get_pucch0_mcs(pucch->n_harq, 0, pucch->ack_payload, 0);
pucch_pdu->payload = pucch->ack_payload; pucch_pdu->payloadd = pucch->ack_payload;
pucch_pdu->n_bit = 1; pucch_pdu->n_bit = 1;
} }
else if (pucch->pucch_resource != NULL) { else if (pucch->pucch_resource != NULL) {
...@@ -1500,13 +1500,13 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac, ...@@ -1500,13 +1500,13 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac,
// only HARQ bits are transmitted, resource selection depends on SR // only HARQ bits are transmitted, resource selection depends on SR
// resource selection handled in function multiplex_pucch_resource // resource selection handled in function multiplex_pucch_resource
pucch_pdu->n_bit = pucch->n_harq; pucch_pdu->n_bit = pucch->n_harq;
pucch_pdu->payload = pucch->ack_payload; pucch_pdu->payloadd = pucch->ack_payload;
} }
else { else {
// For a positive SR transmission using PUCCH format 1, // For a positive SR transmission using PUCCH format 1,
// the UE transmits the PUCCH as described in 38.211 by setting b(0) = 0 // the UE transmits the PUCCH as described in 38.211 by setting b(0) = 0
pucch_pdu->n_bit = pucch->n_sr; pucch_pdu->n_bit = pucch->n_sr;
pucch_pdu->payload = 0; pucch_pdu->payloadd = 0;
} }
break; break;
case NR_PUCCH_Resource__format_PR_format2 : case NR_PUCCH_Resource__format_PR_format2 :
...@@ -1523,7 +1523,7 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac, ...@@ -1523,7 +1523,7 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac,
2, 2,
pucchres->format.choice.format2->nrofSymbols, pucchres->format.choice.format2->nrofSymbols,
8); 8);
pucch_pdu->payload = (pucch->csi_part1_payload << (pucch->n_harq + pucch->n_sr)) | (pucch->sr_payload << pucch->n_harq) | pucch->ack_payload; pucch_pdu->payloadd = (pucch->csi_part1_payload << (pucch->n_harq + pucch->n_sr)) | (pucch->sr_payload << pucch->n_harq) | pucch->ack_payload;
break; break;
case NR_PUCCH_Resource__format_PR_format3 : case NR_PUCCH_Resource__format_PR_format3 :
pucch_pdu->format_type = 3; pucch_pdu->format_type = 3;
...@@ -1556,7 +1556,7 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac, ...@@ -1556,7 +1556,7 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac,
2 - pucch_pdu->pi_2bpsk, 2 - pucch_pdu->pi_2bpsk,
pucchres->format.choice.format3->nrofSymbols - f3_dmrs_symbols, pucchres->format.choice.format3->nrofSymbols - f3_dmrs_symbols,
12); 12);
pucch_pdu->payload = (pucch->csi_part1_payload << (pucch->n_harq + pucch->n_sr)) | (pucch->sr_payload << pucch->n_harq) | pucch->ack_payload; pucch_pdu->payloadd = (pucch->csi_part1_payload << (pucch->n_harq + pucch->n_sr)) | (pucch->sr_payload << pucch->n_harq) | pucch->ack_payload;
break; break;
case NR_PUCCH_Resource__format_PR_format4 : case NR_PUCCH_Resource__format_PR_format4 :
pucch_pdu->format_type = 4; pucch_pdu->format_type = 4;
...@@ -1574,7 +1574,7 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac, ...@@ -1574,7 +1574,7 @@ int nr_ue_configure_pucch(NR_UE_MAC_INST_t *mac,
pucch_pdu->pi_2bpsk = pucchfmt->pi2BPSK!= NULL ? 1 : 0; pucch_pdu->pi_2bpsk = pucchfmt->pi2BPSK!= NULL ? 1 : 0;
pucch_pdu->add_dmrs_flag = pucchfmt->additionalDMRS!= NULL ? 1 : 0; pucch_pdu->add_dmrs_flag = pucchfmt->additionalDMRS!= NULL ? 1 : 0;
} }
pucch_pdu->payload = (pucch->csi_part1_payload << (pucch->n_harq + pucch->n_sr)) | (pucch->sr_payload << pucch->n_harq) | pucch->ack_payload; pucch_pdu->payloadd = (pucch->csi_part1_payload << (pucch->n_harq + pucch->n_sr)) | (pucch->sr_payload << pucch->n_harq) | pucch->ack_payload;
break; break;
default : default :
LOG_E(NR_MAC, "Undefined PUCCH format \n"); LOG_E(NR_MAC, "Undefined PUCCH format \n");
...@@ -2222,7 +2222,7 @@ bool get_downlink_ack(NR_UE_MAC_INST_t *mac, frame_t frame, int slot, PUCCH_sche ...@@ -2222,7 +2222,7 @@ bool get_downlink_ack(NR_UE_MAC_INST_t *mac, frame_t frame, int slot, PUCCH_sche
number_harq_feedback++; number_harq_feedback++;
int dai_index = current_harq->dai_cumul - 1; int dai_index = current_harq->dai_cumul - 1;
if (current_harq->ack_received) { if (current_harq->ack_received) {
ack_data[code_word][dai_index] = current_harq->ack; ack_data[code_word][dai_index] = current_harq->acK;
current_harq->active = false; current_harq->active = false;
current_harq->ack_received = false; current_harq->ack_received = false;
} else { } else {
...@@ -2238,7 +2238,7 @@ bool get_downlink_ack(NR_UE_MAC_INST_t *mac, frame_t frame, int slot, PUCCH_sche ...@@ -2238,7 +2238,7 @@ bool get_downlink_ack(NR_UE_MAC_INST_t *mac, frame_t frame, int slot, PUCCH_sche
res_ind = temp_ind; res_ind = temp_ind;
pucch->n_CCE = current_harq->n_CCE; pucch->n_CCE = current_harq->n_CCE;
pucch->N_CCE = current_harq->N_CCE; pucch->N_CCE = current_harq->N_CCE;
LOG_D(NR_MAC,"%4d.%2d Sent %d ack on harq pid %d\n", frame, slot, current_harq->ack, dl_harq_pid); LOG_I(NR_MAC,"%4d.%2d Sent %d ack on harq pid %d\n", frame, slot, current_harq->acK, dl_harq_pid);
} }
} }
} }
......
...@@ -1123,12 +1123,12 @@ void update_harq_status(NR_UE_MAC_INST_t *mac, uint8_t harq_pid, uint8_t ack_nac ...@@ -1123,12 +1123,12 @@ void update_harq_status(NR_UE_MAC_INST_t *mac, uint8_t harq_pid, uint8_t ack_nac
NR_UE_HARQ_STATUS_t *current_harq = &mac->dl_harq_info[harq_pid]; NR_UE_HARQ_STATUS_t *current_harq = &mac->dl_harq_info[harq_pid];
if (current_harq->active) { if (current_harq->active) {
LOG_D(PHY,"Updating harq_status for harq_id %d, ack/nak %d\n", harq_pid, current_harq->ack); LOG_I(PHY,"Updating harq_status for harq_id %d, ack/nak %d\n", harq_pid, current_harq->acK);
// we can prepare feedback for MSG4 in advance // we can prepare feedback for MSG4 in advance
if (mac->ra.ra_state == nrRA_WAIT_CONTENTION_RESOLUTION) if (mac->ra.ra_state == nrRA_WAIT_CONTENTION_RESOLUTION)
prepare_msg4_feedback(mac, harq_pid, ack_nack); prepare_msg4_feedback(mac, harq_pid, ack_nack);
else { else {
current_harq->ack = ack_nack; current_harq->acK = ack_nack;
current_harq->ack_received = true; current_harq->ack_received = true;
} }
} }
......
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