- 21 May, 2024 40 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
This function applied an sf_ahead, bigger than the actual slot indication message sending (so a message could NEVER arrive on time!). Reduce to zero, because this is when it should arrive for us.
-
Robert Schmidt authored
The previous designs seems to do: loop { poll_ind_queue() if (msg) scheduler; pselect() on messages; handle_message { if slot_ind put_ind_queue() } } So basically, we artificially put a queue for slot indications in the middle, but still handle it in the same thread(!). This for some reason results in a big slow down if the PNF runs faster. Now, we just do pselect(), waiting for messages. We handle the slot indication immediately (the schedule should take some microseconds), then return to pselect().
-
Robert Schmidt authored
-
hsum authored
In the previous patch, an issue was identified where the number of slots in the TDD table was hardcoded inconsistently during packing and unpacking. This led to a mismatch in the number of slots processed, causing errors during execution. Upon further investigation, it was found that the number of slots in the TDD table should be determined dynamically based on the value of mu, derived from the configured tdd-UL-DL-ConfigurationCommon. To address this issue, this commit introduces dynamic allocation of memory for the TDD table during unpacking based on the value of mu. Additionally, the packing process now calculates the number of slots to pack dynamically, ensuring consistency between packing and unpacking. This change resolves the discrepancy in the number of slots processed during packing and unpacking, ensuring that the PNF receives a complete and accurate TDD table.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
diff --git a/nfapi/open-nFAPI/nfapi/src/nfapi_p5.c b/nfapi/open-nFAPI/nfapi/src/nfapi_p5.c index d58dc98a3d..26153f755a 100644 --- a/nfapi/open-nFAPI/nfapi/src/nfapi_p5.c +++ b/nfapi/open-nFAPI/nfapi/src/nfapi_p5.c @@ -30,6 +30,7 @@ #include <errno.h> #include <pthread.h> #include <stdint.h> +#include <assert.h> #include <nfapi_interface.h> #include <nfapi.h> @@ -1838,6 +1839,19 @@ static uint8_t pack_nr_config_request(void *msg, uint8_t **ppWritePackedMsg, uin retval &= pack_nr_tlv(NFAPI_NR_CONFIG_TDD_PERIOD_TAG, &(pNfapiMsg->tdd_table.tdd_period), ppWritePackedMsg, end, &pack_uint8_tlv_value); numTLVs++; + + assert(6 == pNfapiMsg->tdd_table.tdd_period.value); + for (int i = 0; i < 20; i++) { + for (int k = 0; k < 14; k++) { + pack_nr_tlv(NFAPI_NR_CONFIG_SLOT_CONFIG_TAG, + &pNfapiMsg->tdd_table.max_tdd_periodicity_list[i].max_num_of_symbol_per_slot_list[k].slot_config, + ppWritePackedMsg, + end, + &pack_uint8_tlv_value); + numTLVs++; + } + } + // probably near here // END TDD Table // START Measurement Config @@ -3336,6 +3350,7 @@ static uint8_t unpack_nr_config_request(uint8_t **ppReadPackedMsg, uint8_t *end, } } else { NFAPI_TRACE(NFAPI_TRACE_ERROR, "Unknown TAG value: 0x%04x\n", generic_tl.tag); + assert(0); if (++numBadTags > MAX_BAD_TAG) { NFAPI_TRACE(NFAPI_TRACE_ERROR, "Supplied message has had too many bad tags\n"); return 0;
-
Robert Schmidt authored
-
Rúben Soares da Silva authored
Assign NFAPI_NR_CONFIG_SLOT_CONFIG_TAG tag in TLVs used for transmitting the TDD Slot configuration through CONFIG.request.
-
Robert Schmidt authored
-
Robert Schmidt authored
-