From 03e0656e691bff38b836b779d2eb8716471f3192 Mon Sep 17 00:00:00 2001 From: Andrew Burger Date: Thu, 16 Jul 2020 12:29:05 -0700 Subject: [PATCH] Debugging msg4 --- nfapi/oai_integration/nfapi_vnf.c | 3 +- .../nfapi/public_inc/nfapi_interface.h | 2 +- openair2/PHY_INTERFACE/phy_stub_UE.c | 12 ++- openair2/RRC/LTE/rrc_UE.c | 4 +- targets/RT/USER/lte-ue.c | 85 +++++++++++-------- 5 files changed, 62 insertions(+), 44 deletions(-) diff --git a/nfapi/oai_integration/nfapi_vnf.c b/nfapi/oai_integration/nfapi_vnf.c index 2e4c2b580b..0a20a9b45e 100644 --- a/nfapi/oai_integration/nfapi_vnf.c +++ b/nfapi/oai_integration/nfapi_vnf.c @@ -504,7 +504,8 @@ int phy_rach_indication(struct nfapi_vnf_p7_config *config, nfapi_rach_indicatio int phy_harq_indication(struct nfapi_vnf_p7_config *config, nfapi_harq_indication_t *ind) { struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; - LOG_D(MAC, "%s() NFAPI SFN/SF:%d number_of_harqs:%u\n", __FUNCTION__, NFAPI_SFNSF2DEC(ind->sfn_sf), ind->harq_indication_body.number_of_harqs); + LOG_D(MAC, "%s() NFAPI Frame: %d Subframe: %d number_of_harqs:%u\n", __FUNCTION__, NFAPI_SFNSF2SFN(ind->sfn_sf), + NFAPI_SFNSF2SF(ind->sfn_sf), ind->harq_indication_body.number_of_harqs); LOG_E(MAC, "%s entered\n", __func__); pthread_mutex_lock(&eNB->UL_INFO_mutex); if(NFAPI_MODE == NFAPI_MODE_VNF){ diff --git a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h index 32a31a99f6..48b4c2d0c3 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface.h @@ -2566,7 +2566,7 @@ typedef struct { } nfapi_harq_indication_tdd_rel13_t; #define NFAPI_HARQ_INDICATION_TDD_REL13_TAG 0x204F -typedef struct { +typedef struct { nfapi_tl_t tl; uint8_t harq_tb1; uint8_t harq_tb2; diff --git a/openair2/PHY_INTERFACE/phy_stub_UE.c b/openair2/PHY_INTERFACE/phy_stub_UE.c index 183cf77385..ce0652717e 100644 --- a/openair2/PHY_INTERFACE/phy_stub_UE.c +++ b/openair2/PHY_INTERFACE/phy_stub_UE.c @@ -700,8 +700,13 @@ int ul_config_req_UE_MAC(nfapi_ul_config_request_t *req, req->ul_config_request_body.rach_prach_frequency_resources, req->ul_config_request_body.srs_present); - int sfn = timer_frame; - int sf = timer_subframe; + // int sfn = timer_frame; // Needs the ul_config_req sfn_sf + // int sf = timer_subframe; + LOG_D(MAC, "ul_config_req Frame: %d Subframe: %d Proxy Frame: %u Subframe: %u\n", + NFAPI_SFNSF2SFN(req->sfn_sf), NFAPI_SFNSF2SF(req->sfn_sf), + timer_frame, timer_subframe); + int sfn = NFAPI_SFNSF2SFN(req->sfn_sf); // Needs the ul_config_req sfn_sf + int sf = NFAPI_SFNSF2SF(req->sfn_sf); LOG_D(MAC, "ul_config_req_UE_MAC() TOTAL NUMBER OF UL_CONFIG PDUs: %d, SFN/SF: " @@ -1345,8 +1350,9 @@ const char *hexdump(const void *data, size_t data_len, char *out, size_t out_len LOG_E(MAC, "CQI_IND sent to Proxy, Size: %d\n", encoded_size); break; case NFAPI_HARQ_INDICATION: - LOG_E(MAC, "HARQ_IND sent to Proxy, Size: %d\n", encoded_size); encoded_size = nfapi_p7_message_pack(&UL->harq_ind, buffer, sizeof(buffer), NULL); + LOG_E(MAC, "HARQ_IND sent to Proxy, Size: %d Frame %d Subframe %d\n", encoded_size, + NFAPI_SFNSF2SFN(UL->harq_ind.sfn_sf), NFAPI_SFNSF2SF(UL->harq_ind.sfn_sf)); break; case NFAPI_RX_SR_INDICATION: // is this the right nfapi message_id? Ask Raymond encoded_size = nfapi_p7_message_pack(&UL->sr_ind, buffer, sizeof(buffer), NULL); diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c index 4116f5367e..84aedf1fcb 100644 --- a/openair2/RRC/LTE/rrc_UE.c +++ b/openair2/RRC/LTE/rrc_UE.c @@ -505,8 +505,8 @@ static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t *c } size = do_RRCConnectionSetupComplete(ctxt_pP->module_id, buffer, Transaction_id, nas_msg_length, nas_msg); - LOG_I(RRC,"[UE %d][RAPROC] Frame %d : Logical Channel UL-DCCH (SRB1), Generating RRCConnectionSetupComplete (bytes%d, eNB %d)\n", - ctxt_pP->module_id,ctxt_pP->frame, size, eNB_index); + LOG_I(RRC,"[UE %d][RAPROC] Frame %d Subframe %d : Logical Channel UL-DCCH (SRB1), Generating RRCConnectionSetupComplete (bytes%d, eNB %d)\n", + ctxt_pP->module_id,ctxt_pP->frame, ctxt_pP->subframe, size, eNB_index); LOG_D(RLC, "[FRAME %05d][RRC_UE][MOD %02d][][--- PDCP_DATA_REQ/%d Bytes (RRCConnectionSetupComplete to eNB %d MUI %d) --->][PDCP][MOD %02d][RB %02d]\n", ctxt_pP->frame, ctxt_pP->module_id+NB_eNB_INST, size, eNB_index, rrc_mui, ctxt_pP->module_id+NB_eNB_INST, DCCH); diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index af2ea29ab4..2272ce67a9 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -1040,54 +1040,65 @@ static void *UE_phy_stub_standalone_pnf_task(void *arg) int num_pairs = 0; int num_lone = 0; - int last_sfn_sf = -1; while (!oai_exit) { bool sent_any = false; - int sfn_sf = current_sfn_sf; - if (sfn_sf == last_sfn_sf) { - if (sem_wait(&sfn_semaphore) != 0) - { - LOG_E(MAC, "sem_wait() error\n"); - abort(); - } - continue; + if (sem_wait(&sfn_semaphore) != 0) { + LOG_E(MAC, "sem_wait() error\n"); + abort(); } - - last_sfn_sf = sfn_sf; - LOG_E(MAC, "received from proxy frame %d subframe %d\n", NFAPI_SFNSF2SFN(sfn_sf), - NFAPI_SFNSF2SF(sfn_sf)); + int sfn_sf = current_sfn_sf; nfapi_dl_config_request_t *dl_config_req = get_queue(&dl_config_req_queue); nfapi_tx_request_pdu_t *tx_request_pdu_list = get_queue(&tx_req_pdu_queue); nfapi_ul_config_request_t *ul_config_req = get_queue(&ul_config_req_queue); nfapi_hi_dci0_request_t *hi_dci0_req = get_queue(&hi_dci0_req_queue); - if ((dl_config_req != NULL) != (tx_request_pdu_list != NULL)) { - uint64_t start = clock_usec(); - uint64_t deadline = start + 10000; - for (;;) { - if (dl_config_req == NULL) { - dl_config_req = get_queue(&dl_config_req_queue); - } - if (tx_request_pdu_list == NULL) { - tx_request_pdu_list = get_queue(&tx_req_pdu_queue); - } - if (dl_config_req && tx_request_pdu_list) { - uint64_t elapsed = clock_usec() - start; - if (elapsed > 1000) { - LOG_E(MAC, "Time difference between dl_config_req & tx_pdu is: %" PRIu64 "usec (%d %d)\n", - elapsed, num_lone, num_pairs); - } - break; - } - if (clock_usec() > deadline) { - LOG_E(MAC, "In behemoth dl_config_req: %p tx_req_pdu_list: %p (%d %d)\n", dl_config_req, - tx_request_pdu_list, num_lone, num_pairs); - break; - } - } + LOG_I(MAC, "received from proxy frame %d subframe %d\n", + NFAPI_SFNSF2SFN(sfn_sf), NFAPI_SFNSF2SF(sfn_sf)); + if (dl_config_req != NULL) { + LOG_I(MAC, "dl_config_req pdus: %u\n", + dl_config_req->dl_config_request_body.number_pdu); } + if (tx_request_pdu_list != NULL) { + LOG_I(MAC, "tx_req segments: %u\n", + tx_request_pdu_list->num_segments); + } + if (ul_config_req != NULL) { + LOG_I(MAC, "ul_config_req pdus: %u\n", + ul_config_req->ul_config_request_body.number_of_pdus); + } + if (hi_dci0_req != NULL) { + LOG_I(MAC, "hi_dci0_req pdus: %u\n", + hi_dci0_req->hi_dci0_request_body.number_of_dci); + } + // if ((dl_config_req != NULL) != (tx_request_pdu_list != NULL)) { + // uint64_t start = clock_usec(); + // uint64_t deadline = start + 10000; + + // for (;;) { + // if (dl_config_req == NULL) { + // dl_config_req = get_queue(&dl_config_req_queue); + // } + // if (tx_request_pdu_list == NULL) { + // tx_request_pdu_list = get_queue(&tx_req_pdu_queue); + // } + // if (dl_config_req && tx_request_pdu_list) { + // uint64_t elapsed = clock_usec() - start; + // if (elapsed > 1000) { + // LOG_E(MAC, "Time difference between dl_config_req & tx_pdu is: %" PRIu64 "usec (%d %d)\n", + // elapsed, num_lone, num_pairs); + // } + // break; + // } + // if (clock_usec() > deadline) { + // LOG_E(MAC, "In behemoth dl_config_req: %p tx_req_pdu_list: %p (%d %d)\n", dl_config_req, + // tx_request_pdu_list, num_lone, num_pairs); + // break; + // } + // } + // } + if ((dl_config_req != NULL) != (tx_request_pdu_list != NULL)) { num_lone++;