Commit Graph
189 Commits
Author SHA1 Message Date
Melissa Elkadi 746d074646 Queuing all nFAPI messages and handling after slot ind
This commit changes the stub functionality entirely.
We are now queueing any received NR nFAPI message
and handling it only after we recevie a slot ind
that corresponds with the nFAPI message's sfn/slot
value. When doing this, an existing issue has been
brought to light. The gNB and NR UE are not in sync
when it comes to their slot indications. Generally,
the NR UE seems to be ahead of the gNB by around 6-7
slots. This commit has a hack... when we receive a
slot indication at the moment, we decrament it by 6
to try to keep the NRUE from being ahead of the gNB.
This will be fixed shortly... This was a temporary
fix..
2021-10-06 18:13:13 -07:00
Melissa Elkadi 98bc149e98 Reverting change that that forces DCI config before handling
By reverting this change, we will see the NRUE2 crash
because the DCI wont be configured before handling.
This will get fixed in the next commit by adding
queues for the nFAPI messages, therefore forcing
us to handle the nfapi messages only after we have
processes the corresponding slot indication.
2021-10-06 09:47:19 -07:00
Melissa Elkadi 47e96132f6 Handling multiple DCIs in a single DL_TTI and TX_REQ 2021-10-05 16:09:52 -07:00
Melissa Elkadi 1b2d8b5288 def_dci_pdu_rel15 fix.
In this commit we were trying to understand why
the memset of the def_dci_pdu_rel15 array in the NRUE
was casuing the NR UE to crash. This was happening
becuase some of the members of the def_dci_pdu_rel15
array canont be zero in NSA mode. This was happening
because sometimes, we would recevied two DCI indications
in a row, after the first one, we would be memesetting
the array to all 0s and then try to process the second
DCI. The fix we have implemnted is to call the configure_dci()
prior to processing ANY DCI, to ensure we have properly
configured the UE to handle these DCIs.

Also, in the gNB, it was not able to find the UL scheduled
slot for the feedback harq because it was not accounting for
the slot wrapping.
2021-10-05 11:40:40 -07:00
Melissa Elkadi fb0a80ee84 Adding memset of def_dci_pdu_rel15 back in
Removing the memset seemed to hide the problem
and now the problem is appearing in a differnt
manner... it is causing the NRUE to skip HARQ
PIDs as its filling the UCI indication and process
the DCI PDUs. So adding the memset causes the NR UE
to crash becasue the DL_BWP_ID is becoming 0
which leads us to index into an pointer that is not
allocated and then a crash happens in DCI handling.
2021-10-01 15:53:23 -07: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
Melissa Elkadi ce8301ba38 Setting SR flag to 0 in NR UE to ensure we dont handle SRs 2021-09-30 19:25:57 -07:00
Melissa Elkadi cf0430a5bc Correctly packing UCI indications.
Also, removing memset for def_dci_pdu_rel15 because
it is setting the DL_BWP_ID = 0 before we have used
it.
2021-09-29 12:15:58 -07:00
Deokseong "David" Kim 6a7fe60266 Episys/david/sync between dl tti req and tx data req 2021-09-21 22:38:29 +00:00
Melissa Elkadi 5ae3c8914a Only filtering tx_requests if RAR has been rx'd
But, we are not going to process the tx_request
unless we are waiting for the RAR OR if the RNTI
from the previous DCI matches.
2021-09-15 15:32:17 -07:00
Melissa Elkadi 54e231bfeb Filtering tx_requests based on prev DCI RNTI
In this commit, we create a new flag in the MAC
instance which is set to true if the recevied
DL DCI PDU's RNTI value matches the current UEs
RNTI value. If the RNTI value does not match,
then we should not process the recevied tx_request.
This check should only take place after the CFRA
procedure is complete.
2021-09-15 15:20:07 -07:00
Melissa Elkadi d2daf8e860 Change slot_ahead to process ack/nack after pdsch 2021-09-15 11:07:27 -07:00
Melissa Elkadi 88e1b55f02 Filling UCI after DCI because info is available
Previously, we thought that filling the UCI ind
after we got the pdsch payload would stop the
 harq_pid from going inactive, but this was not
the case. The harq_pid is getting set to inactive
too early because of the sf_slot ahead value. The
fix for this will come in the next commit.
2021-09-15 10:03:21 -07:00
Melissa Elkadi 77548d5bec Properly filtering DCIs in the NR UE 2021-09-14 12:53:39 -07:00
Melissa Elkadi dbc4b0e321 Updating merged code with harq_pid global
The harq_pid is set to inactive during the scheduling
of ACK/NACK, but this is happening before tx_req (PDSCH)
is recevied. We update the global harq_pid then use it
once we get the PDSCH PDU, then we set it to inactive.
Also, the global previously wasnt being set properly because
a memset was changing the def_dci_re15 struct. We now
memset after we update the harq_pid global.
2021-09-14 12:08:38 -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
Melissa Elkadi 3abc7f93e7 Preparing UCIs after we have recevied PDSCH PDU
In this commit, we introduced a new global to save
the harq_pid from the PDCCH that comes down in the
DCI message so that we can use the harq_pid in the
PDSCH. Now, the UCI ind will be filled after we
have recevied the PDSCH in the tx_request.
2021-09-10 14:34:48 -07:00
Melissa Elkadi a34856ba38 Filtering DCI PDUs by RNTI in NR UE 2021-09-09 14:47:58 -07:00
David Kim 6342e67c33 Setting UE and nrUE IP address in config file.
1. Removed hard coded IP address in the code for UE and nrUE's remote address.
2. Read IP address from config file for UE and nrUE's remote address.
2021-09-02 13:33:42 -07:00
francescomani d0c1bc4340 skip dlsch mac pdu processing when crc fails 2021-08-27 12:42:25 +02:00
Melissa Elkadi 512e76dee8 Error checking and meas sending wait for EPC only 2021-08-26 17:37:51 -07:00
Melissa Elkadi cad1175154 Get IP traffic in MAC layer and handling of RAR
Previously, we would assume every downlink in
slot 7 was an RAR; now we assume every slot 7
that occurs before the CFRA procedure is done
is an RAR. Also changed the logic in scheduler
to allow us to get nr_ue_sdus in the MAC layer.
2021-08-25 17:15:16 -07:00
Deokseong "David" Kim 43d8ed216e Update on scheduler to relax AssertFatal. 2021-08-25 22:52:58 +00:00
Melissa Elkadi b7e5c9cf9f Update logic for calling scheduler 2021-08-25 11:28:19 -07:00
Melissa Elkadi 1116d16df2 Need to call scheduler after RACH indefinitly
The ue_sched_mode is reset to 0 again when we
memset the ul_info and after the CFRA procedure
is complete, then uplink CRCs with the PUCCH
response (PUSCH) are not being sent because the
scheduler isnt being called. This makes the
gNB run out of uplink harq ids since its never
getting the proper responses. The change below
will ensure that we call the scheduler AFTER the
RACH is sent and all the time after that.
2021-08-20 14:50:23 -07:00
Melissa Elkadi 671f461e6c Making sure we never are in ONLY_PUSCH mode
When running on some machines, the ue_sched_mode
will be initialized to zero. This will cause
the ul_info the go into the ONLY_PUSCH mode.
We do not want to ever call the scheduler and return.
Furthermore, we only want to call the scheduler after
the NRUE has sent the RACH_IND to the gNB.
2021-08-20 10:50:39 -07:00
Melissa Elkadi 0eb90bd8c8 Setting ue_sched_mode after filling RACH_IND
Also, removed the check before calling the
nr_uescheduler that was associated with the
ra.state. Lastly, removed the DL_HARQ_PID
position change as that was incorrect.
2021-08-20 09:55:17 -07:00
Melissa Elkadi 0ee8f20d54 Updated gNB conf file & last RRC msg in LTE/NR UE 2021-08-19 13:53:12 -07: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
Melissa Elkadi 9b16c1d860 Merge branch 'eurecom-develop' into episys/merge_nsa_w_develop
At this point we are successfully able to build.
Additionally, we can run the scenario,
however, it does not pass. It seems that the gNB
is not connecting to the proxy correctly. Just
wanted to push the progress so far. FYI, the items
that had to be changed to correct the linking issues
were the following:

 - mac_rrc_data_ind_ue vs. nr_mac_rrc_data_ind_ue
 - rrc_data_req vs. nr_rrc_data_req
 - mac_rrc_data_req_ue vs. nr_mac_rrc_data_req_ue
 - rrc_data_req_ue vs. rrc_data_req_nr_ue
 - rrc_data_req vs. nr_rrc_data_req

The listed functions should be declard in the LTE/NR
UE directory depending on the functionality. Several
were mixed. i.e.: LTE functions being called in NR UE.

Also, removing siWindowLength, siWindowLength_int,
SIBType, SIBPeriod, and siPeriod_int from the NR UE RRC.
These variable were not used in the NR UE and are defined
for LTE only.

Lastly, in the NR_IF_Module.c of the NR UE, the global
variable def_dci_pdu_rel15 is not accessible. Need to
revisit this. For not it is commented out.
2021-08-11 10:23:42 -07:00
Melissa Elkadi cf4771520b Merge branch 'episys/david/multiUE_with_crnti_checking' of 10.1.1.59:aburger/openairinterface5g into episys/david/multiUE_with_crnti_checking
Also changed a log and typo
2021-08-09 16:29:58 -07:00
David Kim 85fb91dff7 Merge branch 'episys/nsa_epc_gnb_updates' into episys/david/multiUE_with_crnti_checking 2021-08-09 09:06:15 -07:00
David Kim a8517323e7 Code cleanup for debug logs. 2021-08-06 10:37:02 -07:00
Melissa Elkadi 745241bd63 Merge branch 'episys/nsa_epc_gnb_updates' into episys/david/multiUE_with_crnti_checking
Also, lots of debugging logs added
2021-08-04 16:24:27 -07:00
David Kim c619833442 Added crnti checking routine in nrUE. 2021-08-04 10:08:22 -07:00
Melissa Elkadi 7d505e70f2 Updated PDSCH pdu copy from tx_data_req
Also, finally committing the critical logs for IP traffic.
2021-08-03 16:38:07 -07:00
Melissa Elkadi 5751a0a435 Not sending random data to gNB, sending IP
The IP traffic still does not work. But we are
updating the NR UE scheduler to ensure we are are
sending true IP traffic. Also, we were getting an
assert(); as well, and there was no logs, so we
fix that in this commit as well.
2021-08-03 13:25:45 -07:00
David Kim 54465993d5 queueing sfn slot information contained in channel params. 2021-07-30 16:44:39 -07:00
David Kim dd73b2df87 Updated AssertFatal conditions and LOG level from I to D
Regarding dl_hard, some AssertFatal commented out.
Regarding to memory allocation error, AssertFatal was used.
2021-07-30 08:35:57 -07:00
David Kim 61aa4f99dd Code cleaning in formatting and fixing typo. 2021-07-29 13:32:21 -07:00
David Kim 829bf4f8a2 Restored to the original OAI ue and nr-ue config file
Restored original LOG level.
Code cleanup to remove emptry space and added some logs.
2021-07-28 00:24:35 -07:00
David Kim 38e5415f34 Fixing "Unexpected ULSCH HARQ PID" issue.
1. If VNF is slower than PNF, next scheduling will be done after resync.
2. If VNF is unstable in slot progress, next scheduling will be done in next stable status.
3. SFN/SLOT indications are queued in nrUE.
4. get_queue is used instead of unquque for FIFO operation.
2021-07-27 21:02:01 -07:00
Melissa Elkadi 24245d8805 Log argument indexed passed the end of array.
Unnecessary dl_ind_type array for logging.
2021-07-20 15:21:23 -07:00
David Kim 4f23fa2f61 added queues between VNF and MAC to handle indications. 2021-07-19 18:55:02 -07:00
francescomani 3228ebf3f6 using pdsch_pdu for sib1 indication 2021-07-10 11:26:56 +02:00
Melissa Elkadi 9d644f247c Fixed memory leak for unqueuing uci_inds 2021-07-05 10:15:26 -07:00
Melissa Elkadi 6ddb49d09c Sending uci_ind based on rx'd ul_tti's sfn/slot
Also, updated the filing of the DCI payload
based on the actual number of recevied bits
and not based on the max number of rx'd bits.
2021-07-02 13:51:39 -07:00
francescomani a49ebe249b Merge remote-tracking branch 'origin/develop' into NR_UE_reworking_UCI_procedures 2021-07-01 16:38:41 +02:00
Melissa Elkadi 90d5641770 Filling, queuing and sending UCI ind to gNB
Currently, the pull8 in nFAPI of the VNF
is failing.
2021-06-30 17:21:41 -07:00