Commit Graph
215 Commits
Author SHA1 Message Date
Cedric Roux 733c7e5e89 bugfix: change memory management of interface between PHY and MAC scheduler
This commit fixes a bug caused by global variables in the gNB_MAC_INST
structure used to transfer MAC scheduler's results to the PHY layer.

When using several threads in the PHY layer, it may happen that the
MAC scheduler is called a second time by the second PHY thread for the
next slot before the content of the global variables in the gNB_MAC_INST
structure used to store the result of the MAC scheduler for the current
slot have been consumed by the first thread, leading to unpredictable
results (all of them certainly wrong).

The solution is to introduce a small memory management module for the
interface between the PHY threads and the MAC scheduler. The MAC
scheduler now fills the data structures passed to it, and not a
global variable anymore. The PHY layer manages the structures and
ensures that no data is overwritten before being fully consumed by
the various threads of the PHY layer.

Some care has to be taken because several PHY threads will access the
same structures at the same time for a given slot (in read mode, so
it's okay). A mechanism of reference counting has thus been introduced.

Only one CC is supported. This restriction should not be too hard
to remove if/when needed. (The code before this commit does not seem
to work for more than one CC anyway.)
2023-04-05 16:39:12 +02: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
Roberto Louro Magueta c6bfb97988 Remove calloc of report_tlv, prg_list and prgs 2022-12-23 10:39:11 +00:00
Roberto Louro Magueta ae7a2f5893 Merge remote-tracking branch 'origin/develop-SRS-MIMO' into develop-SRS-feedback
# Conflicts:
#	openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
2022-08-22 14:47:55 +01:00
Robert Schmidt 51a7b7bd6e Remove memory leaks in FAPI PUCCH 0-4 PDU handling 2022-08-16 14:44:22 +02:00
Roberto Louro Magueta a721c658c8 Merge remote-tracking branch 'origin/develop-SRS-MIMO' into develop-SRS-feedback
# Conflicts:
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2022-06-19 03:09:32 +01:00
Roberto Louro Magueta f6cbde5343 Add const qualifier in some variables 2022-06-16 12:49:13 +01:00
rmagueta 0a71e520d6 Merge remote-tracking branch 'origin/develop-SRS-MIMO' into develop-SRS-feedback
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/main.c
2022-06-13 13:43:33 +01:00
rmagueta 7b770042ad Merge remote-tracking branch 'origin/develop' into develop-SRS-Measurements
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/main.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
2022-06-13 12:00:11 +01:00
Roberto Louro Magueta fa94c338a8 Updates in FAPI so in the future to be able to have a TPMI on MAC at gNB based on SRS 2022-06-08 11:37:03 +01:00
Melissa Elkadi cc2c3b9123 Adding required LOG_As for EpiSci CI testing. (Proxy)
In commit 05c07c401f,
four of the LOG_A logs were demoted. These are required
for the L2 simulator proxy CI testbed.
2022-06-03 16:40:46 -07:00
Roberto Louro Magueta 1bb0ce90cc Merge remote-tracking branch 'origin/develop' into develop-SRS-Measurements
# Conflicts:
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
#	openair2/LAYER2/NR_MAC_gNB/main.c
2022-06-01 15:46:37 +01:00
Laurent THOMAS 236f7d56e5 Remove UEid in the MAC
After this commit, only the RNTI is used as an identifier in the MAC.
Further, it removes some module_id, but a lot of them remain (the goal
to remove all is still far from us)
2022-05-28 16:37:26 +02:00
Roberto Louro Magueta 05fffa4916 Merge remote-tracking branch 'origin/develop' into develop-SRS-Measurements
# Conflicts:
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.band78.tm1.106PRB.usrpn300.gtp-itti.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
#	targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
2022-05-06 13:39:45 +01:00
Roberto Louro Magueta b106913dc0 Send SRS measurements (still empty) from PHY to MAC 2022-05-05 18:10:08 +01:00
Raymond Knopp 05c07c401f removal of some logs. Temporary suppression of QAM256 for 5G Records testing 2022-03-18 18:51:22 +01:00
Raymond Knopp f99754a5ea Merge remote-tracking branch 'origin/develop' into tdd25period_for_MR
Conflicts:
	openair1/PHY/NR_TRANSPORT/nr_dlsch.c
	openair1/PHY/NR_TRANSPORT/nr_sch_dmrs.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	openair2/GNB_APP/gnb_config.c
	openair2/LAYER2/NR_MAC_gNB/config.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
	openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
	openair2/RRC/NR/MESSAGES/asn1_msg.c
2022-03-05 21:12:32 +01:00
Robert Schmidt 2adf56b08a Lower logging in handle_nr_ulsch() 2022-02-26 16:10:03 +01:00
Melissa Elkadi abbcbe6aa5 Adding fixes for MR from review
These include:
- Simplifying VNF code.
- Adding comments to several areas of the code.
- Using free_and_zero macros
- Fixing spelling errors
2022-02-22 09:16:59 -08: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 8b4ae5ef2b Remove the new UL_INFO local variable in the VNF.
This struct is used to store the uplink 5G nFAPI
messages between the proxy and the gNB MAC layer.
The original OAI implementation utilizes a similarly
named variable (UL_info) to store the uplink 5G nFAPI
messages between the PHY and MAC layer. This commit
will utilize the original UL_info variable prior to
calling the handle functions. These changes allow us
to make minimal changes to the nFAPI handle functions
and modifies the NR_UL_Indication parent function instead.
2022-02-07 15:14:22 -08:00
luis_pereira87 015e360d42 Merge remote-tracking branch 'origin/develop' into bler_txoptim
# Conflicts:
#	ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
#	ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf
#	openair1/SCHED_NR/fapi_nr_l1.c
2022-01-10 14:03:55 +00:00
Robert Schmidt 850efd197c Fix: mark rach_ind PDUs as handled in L1 mode 2021-12-27 14:00:03 +01:00
Michael Cook 589033f4b4 Change some LOG_I's to LOG_A's
Our proxy_testscript.py expects these specific log messages to be
logged as LOG_A
2021-11-26 09:16:38 -08:00
Melissa Elkadi 94d146e80b Renaming queue.h in PHY_INTERFACE layer to queue_t.h
There are two queue.h files in this repository.
2021-11-23 08:05:58 -08:00
Raymond Knopp 02b17c79d6 commit before merge. minor changes for testing 2021-11-14 17:28:24 +01:00
David Kim d564d8f94d Updated to emulate_l1 instead of nsa in gNB indication. 2021-11-08 21:27:55 -08:00
David Kim b13fce5385 Removed NSA mode further in nrUE codes and fixed format. 2021-11-08 16:04:39 -08:00
David Kim d51314f57d Updated coding format in unified way. 2021-11-05 14:42:39 -07:00
David Kim 6420c3166b Removed unrequired comments. 2021-11-05 14:34:18 -07:00
David Kim 8d6b112c17 Removed unrequired nsa conditions. 2021-11-05 12:35:15 -07:00
David Kim fc1815170e Fixed a bug on setting the number of pdus. 2021-11-05 09:48:48 -07:00
David Kim 4fb67cbd9c Resolved conflict in Merge remote-tracking branch 'origin/episys/master-nsa' into episys/david/nsa_ci_debug_for_sa 2021-11-04 10:24:48 -07:00
David Kim f4049a9fe2 Code cleanup 2021-11-04 09:31:42 -07:00
David Kim c7f083b14a Updated gNB part to handle CI test 2021-11-03 22:30:28 -07:00
Melissa Elkadi 7825350905 Fixing merge request comments 2021-11-01 16:24:59 -07:00
Melissa Elkadi 8a56d146cc Merge branch 'episys/master-nsa' into episys/mel/merge_bw_testing_abs 2021-10-25 11:07:59 -07:00
Deokseong "David" Kim a5d23a0e08 Fixed nr_dlsim and nr_ulsim build errors. 2021-10-13 16:27:13 +00:00
Melissa Elkadi a5d6ff5a75 We are now sending either SR or HARQ based on UL_TTI_REQ
This requires some updates to the nFAPI code as well.
We also have declared the def_dci_rel15 extern variable
consistently throughout the code.

In this commit, the gNB is still crashing. However, it seems
that the NSA UE is sending the proper responses back, but there
some sort of incorrect management of the def_dci_pdu_rel15
variable. If we memset this array to 0, we can see incorrect
0 assignments to elements of the UCI indications. Hopefully
fixing this issue will result in less gNB crashes.
2021-10-01 14:52:32 -07:00
Deokseong "David" Kim a3557eb486 processing crc_ind and rx_ind per pdu in gNB. 2021-09-28 21:57:10 +00:00
Melissa Elkadi abb81d8d70 Fixing a typo 2021-09-28 14:46:40 -07:00
Melissa Elkadi 4cbea4cc8c Cleaning up MR code 2021-09-28 14:30:31 -07:00
David Kim 60dca0657b processing crc_ind and rx_ind per pdu in gNB.
1. If matched rnti does not exist between crc_ind pdus and rx_ind puds, the ind or unmatched pdus will be requeued.
2. Sending crc_ind and rx_ind togetehr with crc_ind first in nrUE.
2021-09-27 12:59:40 -07:00
Melissa Elkadi 6a8e4e2883 Merge remote-tracking branch 'eurecom/develop' into episys/mel/merge_develop_cfra_working 2021-09-14 07:34:58 -07:00
David Kim 86d605eea1 Fix to handle multiple UEs and typo bug.
1. Changed hard coded preamble index(63) to soft coded.
2. Active UE will not be considered in gNB scheduging RA.
3. Added condition to process dci indication to handle multiple UEs.
4. Bug fix in mutex_lock (unlock to lock). It should be lock rather than unlock.
5. nr_ue_scheduler update not to entering into getting IP traffic to be transmitted in noS1 mode.
6. log update in checking the number of rx_ind or crc
2021-08-30 11:01:32 -07:00
Deokseong "David" Kim 43d8ed216e Update on scheduler to relax AssertFatal. 2021-08-25 22:52:58 +00:00
francescomani b356a8166b Merge remote-tracking branch 'origin/develop' into NR_msg3_retransmission 2021-08-25 16:02:31 +02:00
Melissa Elkadi 2c5f0af081 CFRA procedure is working! But gNB still crashes
How? Well, we had to properly allocate the
ul_config_req. We also had to update the
ue_get_rach function. There were several
places where the functionality would check
for a particular mode (ra, sa, phy_test, etc).
In some of these places we had to add NSA mode.
In the VNF, they start the scheduler after 3 sec,
this is sort of a hack, might want to revisit.
This commit also includes removal of printfs.
2021-08-18 16:09:37 -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
francescomani 6d4437e607 fix unnecessary error message in handle_nr_ul_harq during RA 2021-08-13 17:37:35 +02:00