Commit 16209b05 authored by Andrew Burger's avatar Andrew Burger

Changes for supporting UL_config req and DCI0_req

parent 6a34a8ad
...@@ -438,7 +438,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -438,7 +438,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
uint16_t frame, uint16_t frame,
uint8_t subframe, uint8_t subframe,
uint8_t srs_present, uint8_t srs_present,
int index) { int index,
nfapi_ul_config_request_t *ul_config_req) {
if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) { if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) {
LOG_D(PHY, LOG_D(PHY,
"Applying UL config for UE, rnti %x for frame %d, subframe %d\n", "Applying UL config for UE, rnti %x for frame %d, subframe %d\n",
...@@ -457,7 +458,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -457,7 +458,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
Mod_id, Mod_id,
frame, frame,
subframe); subframe);
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti,
ul_config_req);
fill_rx_indication_UE_MAC(Mod_id, fill_rx_indication_UE_MAC(Mod_id,
frame, frame,
subframe, subframe,
...@@ -465,7 +467,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -465,7 +467,7 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
UE_mac_inst[Mod_id].RA_prach_resources.Msg3, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,
buflen, buflen,
rnti, rnti,
index); index, ul_config_req);
Msg3_transmitted(Mod_id, 0, frame, 0); Msg3_transmitted(Mod_id, 0, frame, 0);
// Modification // Modification
UE_mac_inst[Mod_id].UE_mode[0] = PUSCH; UE_mac_inst[Mod_id].UE_mode[0] = PUSCH;
...@@ -475,7 +477,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -475,7 +477,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
// UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; // UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
} else { } else {
ue_get_sdu(Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode); ue_get_sdu(Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode);
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti,
ul_config_req);
fill_rx_indication_UE_MAC(Mod_id, fill_rx_indication_UE_MAC(Mod_id,
frame, frame,
subframe, subframe,
...@@ -483,7 +486,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -483,7 +486,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
ulsch_buffer, ulsch_buffer,
buflen, buflen,
rnti, rnti,
index); index,
ul_config_req);
} }
} }
} }
...@@ -502,7 +506,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -502,7 +506,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
uint8_t access_mode = SCHEDULED_ACCESS; uint8_t access_mode = SCHEDULED_ACCESS;
if (buflen > 0) { if (buflen > 0) {
if (UE_mac_inst[Mod_id].first_ULSCH_Tx == 1) { // Msg3 case if (UE_mac_inst[Mod_id].first_ULSCH_Tx == 1) { // Msg3 case
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti,
ul_config_req);
fill_rx_indication_UE_MAC(Mod_id, fill_rx_indication_UE_MAC(Mod_id,
frame, frame,
subframe, subframe,
...@@ -510,7 +515,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -510,7 +515,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
UE_mac_inst[Mod_id].RA_prach_resources.Msg3, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,
buflen, buflen,
rnti, rnti,
index); index,
ul_config_req);
Msg3_transmitted(Mod_id, 0, frame, 0); Msg3_transmitted(Mod_id, 0, frame, 0);
// UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; // UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
// Modification // Modification
...@@ -518,7 +524,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -518,7 +524,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
} else { } else {
ue_get_sdu(Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode); ue_get_sdu(Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode);
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti,
ul_config_req);
fill_rx_indication_UE_MAC(Mod_id, fill_rx_indication_UE_MAC(Mod_id,
frame, frame,
subframe, subframe,
...@@ -526,12 +533,14 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -526,12 +533,14 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
ulsch_buffer, ulsch_buffer,
buflen, buflen,
rnti, rnti,
index); index,
ul_config_req);
} }
} }
if (ulsch_harq_information != NULL) if (ulsch_harq_information != NULL)
fill_ulsch_harq_indication_UE_MAC( fill_ulsch_harq_indication_UE_MAC(
Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti); Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti,
ul_config_req);
} else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_RI_PDU_TYPE) { } else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_RI_PDU_TYPE) {
uint8_t ulsch_buffer[5477] __attribute__((aligned(32))); uint8_t ulsch_buffer[5477] __attribute__((aligned(32)));
...@@ -541,7 +550,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -541,7 +550,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
uint8_t access_mode = SCHEDULED_ACCESS; uint8_t access_mode = SCHEDULED_ACCESS;
if (buflen > 0) { if (buflen > 0) {
if (UE_mac_inst[Mod_id].first_ULSCH_Tx == 1) { // Msg3 case if (UE_mac_inst[Mod_id].first_ULSCH_Tx == 1) { // Msg3 case
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti,
ul_config_req);
fill_rx_indication_UE_MAC(Mod_id, fill_rx_indication_UE_MAC(Mod_id,
frame, frame,
subframe, subframe,
...@@ -549,7 +559,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -549,7 +559,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
UE_mac_inst[Mod_id].RA_prach_resources.Msg3, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,
buflen, buflen,
rnti, rnti,
index); index,
ul_config_req);
Msg3_transmitted(Mod_id, 0, frame, 0); Msg3_transmitted(Mod_id, 0, frame, 0);
// UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; // UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
// Modification // Modification
...@@ -557,7 +568,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -557,7 +568,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
} else { } else {
ue_get_sdu(Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode); ue_get_sdu(Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode);
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti,
ul_config_req);
fill_rx_indication_UE_MAC(Mod_id, fill_rx_indication_UE_MAC(Mod_id,
frame, frame,
subframe, subframe,
...@@ -565,7 +577,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -565,7 +577,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
ulsch_buffer, ulsch_buffer,
buflen, buflen,
rnti, rnti,
index); index,
ul_config_req);
} }
} }
} else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE) { } else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_CQI_HARQ_RI_PDU_TYPE) {
...@@ -578,7 +591,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -578,7 +591,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
uint8_t access_mode = SCHEDULED_ACCESS; uint8_t access_mode = SCHEDULED_ACCESS;
if (buflen > 0) { if (buflen > 0) {
if (UE_mac_inst[Mod_id].first_ULSCH_Tx == 1) { // Msg3 case if (UE_mac_inst[Mod_id].first_ULSCH_Tx == 1) { // Msg3 case
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti,
ul_config_req);
fill_rx_indication_UE_MAC(Mod_id, fill_rx_indication_UE_MAC(Mod_id,
frame, frame,
subframe, subframe,
...@@ -586,7 +600,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -586,7 +600,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
UE_mac_inst[Mod_id].RA_prach_resources.Msg3, UE_mac_inst[Mod_id].RA_prach_resources.Msg3,
buflen, buflen,
rnti, rnti,
index); index,
ul_config_req);
Msg3_transmitted(Mod_id, 0, frame, 0); Msg3_transmitted(Mod_id, 0, frame, 0);
// UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; // UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
// Modification // Modification
...@@ -594,7 +609,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -594,7 +609,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
UE_mac_inst[Mod_id].first_ULSCH_Tx = 0; UE_mac_inst[Mod_id].first_ULSCH_Tx = 0;
} else { } else {
ue_get_sdu(Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode); ue_get_sdu(Mod_id, 0, frame, subframe, 0, ulsch_buffer, buflen, &access_mode);
fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti); fill_crc_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, 0, index, rnti,
ul_config_req);
fill_rx_indication_UE_MAC(Mod_id, fill_rx_indication_UE_MAC(Mod_id,
frame, frame,
subframe, subframe,
...@@ -602,18 +618,21 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -602,18 +618,21 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
ulsch_buffer, ulsch_buffer,
buflen, buflen,
rnti, rnti,
index); index,
ul_config_req);
} }
} }
if (ulsch_harq_information != NULL) if (ulsch_harq_information != NULL)
fill_ulsch_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti); fill_ulsch_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti,
ul_config_req);
} else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) { } else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) {
uint16_t rnti = ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti; uint16_t rnti = ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti;
nfapi_ul_config_harq_information *ulsch_harq_information = &ul_config_pdu->uci_harq_pdu.harq_information; nfapi_ul_config_harq_information *ulsch_harq_information = &ul_config_pdu->uci_harq_pdu.harq_information;
if (ulsch_harq_information != NULL) if (ulsch_harq_information != NULL)
fill_uci_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti); fill_uci_harq_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti,
ul_config_req);
} else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE) { } else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE) {
AssertFatal(1 == 0, "NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE not handled yet\n"); AssertFatal(1 == 0, "NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE not handled yet\n");
} else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_HARQ_PDU_TYPE) { } else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_HARQ_PDU_TYPE) {
...@@ -627,7 +646,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -627,7 +646,8 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel8.rnti; ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel8.rnti;
if (ue_get_SR(Mod_id, 0, frame, 0, rnti, subframe)) if (ue_get_SR(Mod_id, 0, frame, 0, rnti, subframe))
fill_sr_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, rnti); fill_sr_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, rnti,
ul_config_req);
} else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE) { } else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE) {
// AssertFatal((UE_id = // AssertFatal((UE_id =
...@@ -641,13 +661,15 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, ...@@ -641,13 +661,15 @@ void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
// We fill the sr_indication only if ue_get_sr() would normally instruct PHY // We fill the sr_indication only if ue_get_sr() would normally instruct PHY
// to send a SR. // to send a SR.
if (ue_get_SR(Mod_id, 0, frame, 0, rnti, subframe)) if (ue_get_SR(Mod_id, 0, frame, 0, rnti, subframe))
fill_sr_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, rnti); fill_sr_indication_UE_MAC(Mod_id, frame, subframe, UL_INFO, rnti,
ul_config_req);
nfapi_ul_config_harq_information *ulsch_harq_information = nfapi_ul_config_harq_information *ulsch_harq_information =
&ul_config_pdu->uci_sr_harq_pdu.harq_information; &ul_config_pdu->uci_sr_harq_pdu.harq_information;
if (ulsch_harq_information != NULL) if (ulsch_harq_information != NULL)
fill_uci_harq_indication_UE_MAC( fill_uci_harq_indication_UE_MAC(
Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti); Mod_id, frame, subframe, UL_INFO, ulsch_harq_information, rnti,
ul_config_req);
} }
} }
...@@ -693,7 +715,7 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t *req, ...@@ -693,7 +715,7 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t *req,
|| (pdu_type == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE || (pdu_type == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE
&& pdu->uci_cqi_sr_harq_pdu.ue_information.ue_information_rel8.rnti == rnti)) { && pdu->uci_cqi_sr_harq_pdu.ue_information.ue_information_rel8.rnti == rnti)) {
handle_nfapi_ul_pdu_UE_MAC( handle_nfapi_ul_pdu_UE_MAC(
Mod_id, pdu, sfn, sf, req->ul_config_request_body.srs_present, i); Mod_id, pdu, sfn, sf, req->ul_config_request_body.srs_present, i, req);
} else { } else {
// NFAPI_TRACE(NFAPI_TRACE_ERROR, "%s() PDU:%i UNKNOWN type :%d\n", // NFAPI_TRACE(NFAPI_TRACE_ERROR, "%s() PDU:%i UNKNOWN type :%d\n",
// __FUNCTION__, i, ul_config_pdu_list[i].pdu_type); // __FUNCTION__, i, ul_config_pdu_list[i].pdu_type);
...@@ -1202,6 +1224,7 @@ void *ue_standalone_pnf_task(void *context) ...@@ -1202,6 +1224,7 @@ void *ue_standalone_pnf_task(void *context)
// check to see if ul_config_req is null // check to see if ul_config_req is null
memcpy_ul_config_req(NULL, NULL, &ul_config_req); memcpy_ul_config_req(NULL, NULL, &ul_config_req);
} }
break;
} }
default: default:
LOG_E(MAC, "Case Statement has no corresponding nfapi message\n"); LOG_E(MAC, "Case Statement has no corresponding nfapi message\n");
......
...@@ -62,16 +62,19 @@ void send_nfapi_UL_indications(UL_IND_t UL_INFO); ...@@ -62,16 +62,19 @@ void send_nfapi_UL_indications(UL_IND_t UL_INFO);
//void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe); //void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe);
void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t *ulsch_buffer, uint16_t buflen, uint16_t rnti, int index); void fill_rx_indication_UE_MAC(module_id_t Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t *ulsch_buffer, uint16_t buflen, uint16_t rnti, int index,
nfapi_ul_config_request_t *ul_config_req);
// This function should be indicating directly to the eNB when there is a planned scheduling request at the MAC layer // This function should be indicating directly to the eNB when there is a planned scheduling request at the MAC layer
// of the UE. It should get called from ue_get_SR() // of the UE. It should get called from ue_get_SR()
void fill_sr_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint16_t rnti); void fill_sr_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint16_t rnti,
nfapi_ul_config_request_t *ul_config_req);
// In our case the this function will be always indicating ACK to the MAC of the eNB (i.e. always assuming) // In our case the this function will be always indicating ACK to the MAC of the eNB (i.e. always assuming)
// successful decoding. // successful decoding.
void fill_crc_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t crc_flag, int index, uint16_t rnti); void fill_crc_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t crc_flag, int index, uint16_t rnti,
nfapi_ul_config_request_t *ul_config_req);
void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t ra_PreambleIndex, uint16_t ra_RNTI); void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL_INFO, uint8_t ra_PreambleIndex, uint16_t ra_RNTI);
...@@ -80,9 +83,11 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL ...@@ -80,9 +83,11 @@ void fill_rach_indication_UE_MAC(int Mod_id,int frame,int subframe, UL_IND_t *UL
void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subframe, UL_IND_t *UL_INFO, uint16_t rnti); void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, uint16_t frame,uint8_t subframe, UL_IND_t *UL_INFO, uint16_t rnti);
void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IND_t *UL_INFO, nfapi_ul_config_ulsch_harq_information *harq_information, uint16_t rnti); void fill_ulsch_harq_indication_UE_MAC(int Mod_id, int frame,int subframe, UL_IND_t *UL_INFO, nfapi_ul_config_ulsch_harq_information *harq_information, uint16_t rnti,
nfapi_ul_config_request_t *ul_config_req);
void fill_uci_harq_indication_UE_MAC(int Mod_id, int frame, int subframe, UL_IND_t *UL_INFO,nfapi_ul_config_harq_information *harq_information, uint16_t rnti void fill_uci_harq_indication_UE_MAC(int Mod_id, int frame, int subframe, UL_IND_t *UL_INFO,nfapi_ul_config_harq_information *harq_information, uint16_t rnti,
nfapi_ul_config_request_t *ul_config_req
/*uint8_t tdd_mapping_mode, /*uint8_t tdd_mapping_mode,
uint16_t tdd_multiplexing_mask*/); uint16_t tdd_multiplexing_mask*/);
...@@ -90,7 +95,8 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int frame, int subframe ...@@ -90,7 +95,8 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t* req, int frame, int subframe
void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
nfapi_ul_config_request_pdu_t *ul_config_pdu, nfapi_ul_config_request_pdu_t *ul_config_pdu,
uint16_t frame,uint8_t subframe,uint8_t srs_present, int index); uint16_t frame,uint8_t subframe,uint8_t srs_present, int index,
nfapi_ul_config_request_t *ul_config_req);
void dl_config_req_UE_MAC_dci(int sfn, void dl_config_req_UE_MAC_dci(int sfn,
int sf, int sf,
......
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