Commit Graph
71 Commits
Author SHA1 Message Date
6e210e15f1 Handle DL_TTI.request more efficiently
Same as parent.

Co-authored-by: hsum <ming-hong.hsu@eurecom.fr>
Co-authored-by: chenyi <Yi-Quan.Chen@eurecom.fr>
Co-authored-by: Rúben Soares Silva <rsilva@allbesmart.pt>
2025-01-27 10:59:19 +01:00
cba2f92c8a Handle UL_TTI.request more efficiently
Same as parent.

Co-authored-by: hsum <ming-hong.hsu@eurecom.fr>
Co-authored-by: chenyi <Yi-Quan.Chen@eurecom.fr>
Co-authored-by: Rúben Soares Silva <rsilva@allbesmart.pt>
2025-01-27 10:59:19 +01:00
282ee77104 Handle ul_dci.request more efficiently
Same as parent commit.

Co-authored-by: hsum <ming-hong.hsu@eurecom.fr>
Co-authored-by: chenyi <Yi-Quan.Chen@eurecom.fr>
Co-authored-by: Rúben Soares Silva <rsilva@allbesmart.pt>
2025-01-27 10:59:19 +01:00
10beee4fd6 Handle tx_data.request efficiently
Avoid delays in tx_data.request handling by avoiding big malloc()s and
copy operations. Reimplement function to (1) peek the frame/slot
numbers, (2) decide on buffer, and (3) unpack directly into
pre-allocated memory.

Co-authored-by: hsum <ming-hong.hsu@eurecom.fr>
Co-authored-by: chenyi <Yi-Quan.Chen@eurecom.fr>
Co-authored-by: Rúben Soares Silva <rsilva@allbesmart.pt>
2025-01-27 10:59:19 +01:00
Rúben Soares Silva 8da4e92189 Provide check_nr_nfapi_p7_slot_type()
Some messages might arrive for the wrong slot; in those cases, the
message has to be dropped. The next commits will make use of this
functionality.
2025-01-27 10:59:19 +01:00
Rúben Soares Silva d6b8fe93ab Provide peek_nr_nfapi_p7_sfn_slot() for fast msg dec
The next commits refactor the rx handling of messages in the PNF. To
efficiently handle them, provide a "peek()" function that gives us the
frame/slot for which a message is destined. This allows to decide if a
message is on time and select a destination buffer, before unpacking it
completely, avoiding copies.
2025-01-27 10:59:19 +01:00
Robert Schmidt a1190f9fd0 nFAPI: give more time for messages to arrive, make it work
The time that a message between PNF/VNF to arrive depends mostly on the
transport. To allow for some delays, there is a slot_ahead time, during
which the VNF is allowed to schedule and send instructions to the PNF.

This can be multiple slots; the 1ms hitherto given might typically too
short. Increase to 10ms, to encompass a wider range of slot_ahead times.

Make the corresponding log message of when old (stale) message are
removed a bit clearer with respect to times.

This is the first commit in which nFAPI works. Follow-up commits improve
performance.
2025-01-27 10:59:19 +01:00
hsumandRúben Soares Silva 195b23bdc4 Refactor is_nr_p7_request_in_window function for clarity and efficiency
The function now utilizes simpler variable names and logic to determine
if a given NR P7 request falls within the timing window.

The logic for determining if a request is within the timing window is as follows:
- The function calculates the absolute difference between the current
  and received SFN slots, taking into account the possibility of
  wraparound.
- If the absolute difference is greater than half of the maximum SFN
  slot value, it subtracts this difference from the maximum SFN slot
  value to get the actual difference.
- The function then checks if this difference is less than or equal to
  the specified timing window. If it is, the request is considered to be
  within the window.

Additionally, the commit updates the function signature to return a
boolean value for better readability and consistency.

Changes made:
- Simplified variable names for readability
- Improved logic for handling wraparound scenarios
- Updated function signature to return a boolean value

Co-authored-by: Rúben Soares Silva <rsilva@allbesmart.pt>
2025-01-27 10:59:19 +01:00
Robert Schmidt 267be0afc1 Remove huge memset that is pointless 2025-01-27 10:59:19 +01:00
Robert Schmidt 6cdea81e4a Reduce PNF nFAPI logs 2025-01-27 10:59:19 +01:00
Robert Schmidt 50aec62b40 pnf_p7_slot_ind(): don't trigger UL_tti_req twice
This is already triggered in the same function.
2025-01-27 10:59:19 +01:00
Robert Schmidt 63c1b3df03 pnf_p7_slot_ind(): avoid memleak 2025-01-27 10:59:19 +01:00
Robert Schmidt 73478ca27e pnf_p7_slot_ind(): Handle messages in FAPI 222.10.0x order 2025-01-27 10:59:19 +01:00
Robert Schmidt 70474ad130 PNF: don't send dummy data
If nothing is to be sent, nothing is to be done.
2025-01-27 10:59:19 +01:00
Robert Schmidt c7e145a471 pnf_p7_slot_ind(): needs to use TX thread time
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.
2025-01-27 10:59:19 +01:00
Robert Schmidt 337faca6f5 log changes
Remove useless message bytes printing

Print message if callback missing

less newlines in log

logs
2025-01-22 15:04:46 +01:00
Robert Schmidt e2a3cde4b7 Further cleanup: define oai_exit for 4G
The parent commit cleans up and groups oai_exit in one place,
nr-softmodem-common.h. Therefore, this 5G file is included in the 4G
defs_common.h (at least it's mostly 4G), which is not nice. Instead,
define oai_exit also in 4G softmodem-common.h, and include this in
defs_common.h. Remove the cyclic inclusion of defs_common.h in
softmodem-common.h, and resolve all subsequent errors around unknown
types and extern definition mismatches.
2025-01-09 15:28:25 +01:00
Rúben Soares Silva 4e5b841a16 Separate LTE and NR (n)FAPI headers
Update NR P5 and P7 nFAPI headers to have 32-bit message_length
In the NR functions, this causes the header parameters following message_length to have their position shifted by 2 bytes, due to the increase in message_length size.

Change needed to accommodate SCF222.10.02 Table 3-3

Separates nfapi_p4_p5_message_header_t and nfapi_nr_p4_p5_message_header_t

Change the callbacks signature to accept/return void* intead of expecting a particular header type, being the NR/LTE distinction done inside the callback functions.

Create NR related functions for nFAPI transmit timestamp and checksum calculation.

Move nfapi_p7_codec_config_t and nfapi_p4_p5_codec_config_t to separate header to be shared between LTE and NR VNF/PNF

Move nfapi_nr_timing_info_t into NR header.

Move NR specific function declarations to NR header.
2024-11-29 09:15:03 +01:00
Rúben Soares da Silva af2ea8f275 Change hardcoded nFAPI ports to use htons and ntohs and changes to allow OAI VNF and PNF to run 2023-01-24 15:35:20 +00:00
Raymond Knopp 4756c5a167 added configurable "sf_ahead" for NR/LTE in RU section. Tested in NR with sf_ahead=2 (normally 3) 2022-02-13 22:15:48 +01:00
Melissa Elkadi a30f6791f7 Incorrectly removed timeout variable in PNF
Also, putting memset back to help us locate a
bug in the handling of the def_dci_pdu_rel15
2021-09-30 15:57:10 -07:00
Melissa Elkadi 11ab8b55f0 Removing unused variables to get rid of warnings. 2021-09-30 06:29:35 -07:00
Melissa Elkadi 2a979f4e2f Merge branch 'eurecom-nfapi-nr-arch-mod' into episys/merge_nsa_w_develop 2021-08-13 10:27:30 -07:00
Rahul Gottipati 09e32b2839 Code cleanup and documentation update 2021-08-09 19:41:22 +05:30
Rahul Gottipati 78f3bca19a CSI-RS handling in nFAPI 2021-08-09 16:36:27 +05:30
Rahul Gottipati 74c5816c72 VNF clock dependency removed 2021-08-05 17:30:12 +05:30
Gokul Srinivasan 85b8f78d71 process ID overflow bugfix 2021-08-03 17:57:11 +05:30
spclab ac4ae0e0fd Hardcodings removed fully, system runs but unstable 2021-07-27 15:10:54 +05:30
Mahesh dc3f61b5c5 Build error fix, sync hardcode, UL indication called in every slot 2021-07-04 21:57:28 +05:30
Melissa Elkadi 46488432e6 This commit includes the iisc pnf_p7 slot tick fix
It also includes the queuing development. The idea
is that the 5G Userplane messages will be filled
and configured the same as previous commit, but
the uplink messages will be queued and then sent to
the gNB during the correct slot. Still WIP.
2021-06-25 14:49:02 -07:00
Mahesh ba2c28f6b1 PNF slot ticking fix 2021-06-18 19:26:56 +05:30
Mahesh cf0659abe9 Cleanup 2021-05-31 02:13:19 +05:30
Mahesh 7d59106c5f nfapi working with latest threading architecture 2021-05-11 02:26:59 +05:30
Melissa Elkadi e1a77b2d82 Add NSA mode to working dl_tti messages from gNB
This commit is not currently building, but I wanted
to be able to save the changes that I have added.
2021-04-30 13:36:18 -07:00
David Kim 7c6e4ed01d adding nfapi_new update 2021-03-18 11:22:06 -07:00
Mahesh b232c43477 Uplink improvement 2021-03-16 12:49:46 +05:30
David Kim 2948a2445e Merge branch 'episys/master' into episys/david/episys-merge-2nd-x2c 2021-03-15 11:05:35 -07:00
Michael Cook 092caec8ca Merge branch 'episys-merge' into episys/trial-merge-to-master 2021-03-14 10:58:46 -04:00
David Kim 94c9866b7e adding nfapi_nr_develop_new changes 2021-03-13 13:09:34 -08:00
Mahesh 39577ba0d8 UL P7 messages and UL scheduling re-enabled. Disabled HARQ from the UE side --> DL CRC OK 2021-03-11 12:49:40 +05:30
Shruthi 9fce798a0e Fixed errors in nFAPI after first merge 2021-03-03 23:09:02 +05:30
Melissa 9fa09f530f Updated non-blocking PDCP socket
More accurately, we changed the do/while infinite
loop to be an infinite for loop for the read command of
the socket. The socket file descriptor choice is more clear now.
2021-02-09 14:09:39 -08:00
Mahesh d7ccdbe6b0 Resolved build warnings(25+) and 5G nFAPI downlink errors(future_ul_tti_request) 2021-01-14 12:28:45 +05:30
Mahesh 79e792443f L2 nfapi test(noS1) working 2020-12-16 16:17:32 +05:30
Mahesh 7eb016675d Resolved errors in building phy-simulator 2020-12-08 12:28:16 +05:30
Mahesh e174ebdc30 Resolved merge conflicts with nfapi_nr_develop 2020-12-02 16:28:18 +05:30
Mahesh 56db8f4915 RESOLVED build errors 2020-11-24 18:49:41 +05:30
Mahesh 41438a1968 PDSCH decoded at UE 2020-11-18 16:13:42 +05:30
Mahesh e6bf90e2dd LTE and NR NFAPI integration 2020-11-11 15:10:32 +05:30
Mahesh 643fc632d6 PBCH working 2020-11-06 19:48:34 +05:30