Commit Graph
3509 Commits
Author SHA1 Message Date
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 c80193731d Commented some AssertFatal condition in dlsch ack/nack scheduling. 2021-07-29 10:38:56 -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
David Kim 4f23fa2f61 added queues between VNF and MAC to handle indications. 2021-07-19 18:55:02 -07:00
Melissa Elkadi 4dfe7c2596 5G Userplane working 50% of the time
This commit includes several changes.
First, it updates the way we fill the uplink
UCI indication. This still has some todo comments
since all the fields in this ind were hardcoded.
It also updates the pack and unpack functions for
the NR_UCI incations. Lastly, it includes updates
to the gNB UCI scheduler. The updates in the gNB
were cherry picked from develop. There are two updates
to the VNF which allow the VNF timing/slots to be
adjusted based on the received timing_info packets
from the VNF. This adjustment was disabled in IISc's
nFAPI code. For now, it is improving the timing
between the VNF and PNF.
2021-07-01 12:21:57 -07: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
Melissa Elkadi fc79bb1c91 Updating dropping of PUSCH if repeated sfn/slot
The previous two commits did not correctly check
the gNB sfn and slot. The code now correctly sets
the slot in which the PUSCH is SCHEDULED, not the slot
the rx is expected. Also, the sfn/slot is only updated
if we do in fact schedule a PUSCH.
2021-06-30 11:32:57 -07:00
Melissa Elkadi ad653819b9 Not sending DCI if repeated sfn/slot
Also, we are now updating ul_tti_future
for every index in the array, not just slot 7, 8, and 9.
2021-06-29 15:51:48 -07:00
Melissa Elkadi 30fe619000 Dont send DCIs repeatedly for a given sfn/slot
Although the timing isnt perfect, if the VNF adjusts
in the middle of scheduling a DCI the gNB would try to
send two DCIs for a certain sfn/slot; this commit will
stop that from happening. The timing issue still persits.
2021-06-29 13:24:07 -07:00
Melissa Elkadi 912cba163d Enabled VNF timing adjustments.
Also ported in new gNB ulsch scheduler code from
Eurecom/develop branch.
2021-06-24 15:33:22 -07:00
Michael Cook 96efbb2cab Add -Werror compiler option
Fix some warnings, too.
2021-06-21 14:11:53 -07:00
Melissa Elkadi c7875ce24c Properly filling the dci_format
This commit properly is filing the dci_format but the
rx_ind and dl_ind has not been updated in the NR UE
prior to sending to gNB. The chnages in this commit
to properly fill the dci_format include:
- filling the dci canidates every slot indiction
- checking for a dl_tti/ul_tti containing a dci
- when dci payload is received we use the filled
  dci canidates to update the dci_format

Also, a bug in LTE UE is found where we are indexing
passed the end of ue_sdu array. We added a check for this.
Furthermore, in the nr_ue_scheduler we were utilizing
tx_req but the memory wasnt properly initialized.
2021-06-18 13:33:20 -07:00
Deokseong "David" Kim 591e0e1f36 Adjusted UDP port ids for multiple UE connection with proxy 2021-06-16 16:06:38 -07:00
Melissa Elkadi 777bcc6c37 Saving DCI format to mac instance to fill in stub 2021-06-16 14:52:47 -07:00
Melissa Elkadi 17222c91e0 Added assert fatals for ul_config and TLVs
Also started handling ul_dci that is received in NR UE.
We now receive dci format 01, 10, and 11 at the NR UE.
The dl_info being filled in NRUE was not memset to 0, that
has been added. Additionally, we will need to get the dci_format
based on the length in the dl_config structs and map it.
For the moment the dci_format values are hard coded.
2021-06-15 15:55:59 -07:00
Melissa Elkadi 52dafe61c7 Fixed a bug in rx and crc filling in the NR UE
Also, there is not a field for dci_format in
nFAPI so there is a way it is detected by the NR UE.
For now, we have hardcoded the value in the stub when
we receive the DCI. Lastly, updated the nr_harq_handling
in the gNB.
2021-06-14 16:29:42 -07:00
Melissa Elkadi 2b698b77e4 CFRA procedure success commit pt. 2
This commit includes the changes made to gNB.
All of these changes were cherry picked from
the Eurecom/develop branch to ensure the
CFRA procedure is working. Without these changes
there were several seg. faults.
2021-06-11 12:39:01 -07:00
Melissa Elkadi e8cfcbe607 CFRA Procedure success commit pt. 1
This commit contains the changes to the OAI code in
the NR UE and in nFAPI.
- Filling crc_ind for msg3
- Updating pack/unpack of CRC_ind
- Creating phy abstraction CRC_ind handling in VNF
- Removal of old comments
- Only sending on RACH in phy_stub
- Calling nr_msg3_transmitted in scheduler for NSA mode
2021-06-11 12:35:40 -07:00
Melissa Elkadi b91251d1e0 Changed nsa_send_standalone_msg() and sending RX
The send_standlone_msg will now be able to send
any type of uplink message and we fill the RX
indication in the stub_schedule_response and
are trying to send to gNB. Need to update the NR nfapi.
2021-06-10 12:44:34 -07:00
Melissa Elkadi 0752dd20d1 Filling rx_ind with tx_req information 2021-06-10 10:24:21 -07:00
Melissa Elkadi d5a7a1a352 Filling RACH ind with prach_pdu
Also added logs for handling Msg3 and
initialized ul_config->num_pdus at every
received slot ind instead of every time
we call get_ul_config()
2021-06-09 14:57:43 -07:00
Melissa Elkadi 88c614eefc RAR successful here. This commit includes:
- Hardcoding the freq_index when filling RACH
- Not handling DCI unless dci_rel_15 global is allocated
- Verifies ra_rnti matches in prach pdu and RACH
- Updates handling of DCI and RX from dl and tx reqs
2021-06-08 12:31:52 -07:00
Melissa Elkadi d434439596 Using ul_config->prach_pdu in get_rach()
Also, changed freq_index hardcode to 0.
Logging ra_rnti in gNB and NR UE
2021-06-07 14:15:40 -07:00
Melissa Elkadi 6d93b6a663 Removed change to gNB scheduler
Changed NFAPI_mode check in the gNB scheduler
to ensure that the frame is correctly updated for
msg3. Also added comments in NR UE for handling
the RAR and implementing the dci/rx_ind handover
for the RAR procedure.
2021-06-04 10:02:17 -07:00
Melissa Elkadi 5ba3d16fbc gNB scheduler was not updating Msg3 future frame
The fix added in this commit may not be correct and
should be reviewed by Eurecom. For now we set the
future frame based on the PRACH recevied frame + 1.
Also fixed the copying of RACH ind into UL_INFO global.
RAR is being passed to NR UE.
2021-06-03 12:24:13 -07:00
Melissa Elkadi 7a7b668e16 The pRACH is now only generated for slot 19.
Several other changes in this commit include:
- Setting the number of PDUS in the ul_config
  to be zero when we will it (inside of the
  get_ul_config() function.)
- We reset the nprach flag to 0 for each slot.
- We return out of the prach scheduler if
  mac->ul_config == NULL
- Added error checking for array indexing
- Created a dummy scheduler response function.
- Allocated ul_config_req initially
2021-06-01 12:09:15 -07:00
Melissa Elkadi 7db52420bf Created new fill_rach function in the NR UE
Also calling the new L1_nsa_prach_procedures()
function after using the nr_ue_scheduler. Added
some error checking in the nr_ue_scheduler. Added
some error checking in the process_nsa_msg in both
the NR and LTE UE
2021-05-28 15:30:56 -07:00
Melissa Elkadi 96be5588b4 Ready to fill rach indication.
Had to hack the code to schedule the prach.
Need to verify this is ok because ul_config = NULL.
Also had to change logic for calling fill_schedule_response.
2021-05-27 12:53:27 -07:00
Melissa Elkadi b32e3f735f This commit breaks in RACH procedure
However, we are not properly calling the
nr_ue_get_rach() function. The RA is being
properly initialized. In the nr_ue_get_rach()
the pRACH is not scheduled. Tried to add in
the scheduling of this, but it crashes here.
The other changes include revering the
nr_ue_get_rach() changes from previous commit.
Also, changed a few log levels and reverted
a previous change in the NR UE RRC layer that
was incorrect.
2021-05-26 14:36:29 -07:00
Melissa Elkadi eecd5935ee Not working pRACH but starting it 2021-05-25 15:56:08 -07:00
Melissa Elkadi 09fb68de74 Cleaned up trigger function for meas reports
Also removed several warnings by properly
declaring nr-nFAPI functions and removed
declaration of unused functions. Also, reverted
eNB configuration file changes.
2021-05-18 10:25:04 -07:00
Melissa Elkadi e50ca02957 Chaging NR functions to be properly named
This commit removed all the linking errors
between the NR UE and the LTE UE. This was done by
changing:
-      rrc_data_req_ue
+      rrc_data_req_nr_ue
2021-05-01 11:32:26 -07:00
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 45bd0274c4 Updating gNB tun interface name and adding nsa config file. 2021-03-30 11:54:49 -07:00
David Kim 7c6e4ed01d adding nfapi_new update 2021-03-18 11:22:06 -07:00
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
Melissa Elkadi e3168a7d8c Merge remote-tracking branch 'eurecom/develop' into eurecom-episys-merge 2021-03-03 16:12:04 -08:00
Michael Cook 11270af81e eNB_scheduler_ulsch.c: Range checking on array access
-fsanitize=address complained about this code.
2021-02-28 09:29:29 -08:00
Michael Cook 706f0e4421 pdcp_fifo_flush_sdus: Fix message size calculation
-fsanitize=address detected that we were trying to access bytes
past the end of a block of malloc'ed memory.

Specifically, in this code:

```
    } else if (ENB_NAS_USE_TUN) {
      if( LOG_DEBUGFLAG(DEBUG_PDCP) )
        log_dump(PDCP, pdcpData, sizeToWrite, LOG_DUMP_CHAR,"PDCP
      output to be sent to TUN interface: \n");
      ret = write(nas_sock_fd[0], pdcpData, sizeToWrite);
```

-fsanitize=address said:

```
==80==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x61100004ffdc at pc 0x7f57c5f576a5 bp 0x7f57bb53c240 sp
0x7f57bb53b9e8
READ of size 108 at 0x61100004ffdc thread T7

0x61100004ffdc is located 0 bytes to the right of 220-byte region
[0x61100004ff00,0x61100004ffdc)
```

So, the code was trying to access the first byte after a block of
heap memory.

sizeToWrite was calculated like this:

```
    int sizeToWrite= sizeof (pdcp_data_ind_header_t) +
      pdcpHead->data_size;
```

There were a few other similar invocations of write() in the same
function used the wrong size.  That sizeToWrite calculation
should be used only when the header is being sent, too, which
happens in only one place in this function.

With this commit, our tests pass and -fsanitize=address is happy.
2021-02-28 07:39:33 -08:00
Michael Cook d8a7414e48 eNB_scheduler_mch.c: Memory corruption
The global mbms_rab_id was defined as `uint16_t` in
eNB_scheduler_mch.c but `int` in other places.  So, code that
wrotes this global would clobber the two bytes that follow the
variable in memory.

Found by `-fsanitize=address`.
2021-02-27 09:16:27 -08:00
Michael Cook 414d3794fd netlink_init.c: Memory leak
Found by `-fsanitize=address`.
2021-02-27 09:15:38 -08:00
Melissa Elkadi 8b2b78e477 Fixed remote_addr.sin_port
For some reason the htons invocation got deleted which broke
the VNF P7 interface.

Also fixed some build issues, not sure how these got onto the
develop branch to begin with.
2021-02-26 15:57:35 -08:00
hardy 8d05695722 Merge remote-tracking branch 'origin/benetel_driver_update' into integration_2021_wk09_b 2021-02-26 16:09:05 +01:00
Melissa Elkadi 98c8ddb673 Merge remote-tracking branch 'origin/develop' into episys-merge
Removing references to memcpy_dl_config_req and
memcpy_tx_req because these functions are leaking
memory. For our standalone mode we have created
new/modified memcpy_dl/tx_req functions.
2021-02-24 11:49:17 -08:00
hardy 88ce69608c Merge remote-tracking branch 'origin/NR_MAC_Multi_Rach_GlobalEdge' into integration_2021_wk08 2021-02-23 10:29:50 +01:00
hardy 30bede544c Merge remote-tracking branch 'origin/nr-bsr-fix' into integration_2021_wk08 2021-02-23 09:31:22 +01:00