- 21 May, 2024 38 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
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
-
Robert Schmidt authored
-
Robert Schmidt authored
The same function is called in nr_start_resp_cb(), why there and not here?
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
In the PNF, there is no gNBs section. So we cannot rely on it
-
Robert Schmidt authored
-
Robert Schmidt authored
Remove useless message bytes printing Print message if callback missing less newlines in log logs
-
Jaroslava Fiedlerova authored
-
- 16 May, 2024 1 commit
-
-
Robert Schmidt authored
uper_encode_to_buffer() of asn1c returns the number of BITS that have been encoded; if we use this, we need to calculate the resulting number of bytes (rounding up) to get the right buffer size. Note that do_NR_ULInformationTransfer() uses uper_encode_to_new_buffer() which returns the number of BYTES, hence, in this similar function, we should not modify the return value.
-
- 07 May, 2024 1 commit
-
-
Robert Schmidt authored
Integration `2024.w18` See merge request oai/openairinterface5g!2713 * !2705 Fix CRC check in UE DCI detection * !2708 Adding few more NR bands to the list of supported ones * !2701 gNB archi fixes * !2203 DL-MMSE * !2684 remove asserts on min RX/TX, set the RX/TX shift as 2 in the UE * !2594 F1AP refactoring to align with O-RAN.WG5.C.1-v11
-