Commit Graph
5847 Commits
Author SHA1 Message Date
Melissa Elkadi e2c0bd52f0 Successfully encoding RRC_Complete in LTE UE
The eNB may only check for RRC_Complete in EPC
mode. Need to look at this further. Updated how
we pass the RRC_Complete msg from NR UE to LTE UE.
Need to still handle transaction_id from dl_dcch_msg
in the LTE UE and trans_id from nr_dl_msg.
2021-05-20 15:04:33 -07:00
Melissa Elkadi 4129f8c6c9 Attempting to send RRCComplete message to eNB
It is seg faulting at the moment.
2021-05-19 16:42:22 -07:00
Melissa Elkadi 02928ec2b2 Passing RRCConfigComplete to LTE UE success!
However, the NR UE is crashing because it is receiving
a second RRCReconfig message from the LTE UE and it is
having trouble decoding it. Need to understand this.
2021-05-19 15:38:05 -07:00
Melissa Elkadi b4faa5990e Trying to send last RRC message to NRUE 2021-05-18 16:00:21 -07:00
Melissa Elkadi a31ee2f051 Checking for nr_r15 configs in RRC message
Also, updated the DCCH decode message to use
the sdu_size not RRC_BUF_SIZE. This was a bug fix.
2021-05-18 14:38:07 -07:00
Melissa Elkadi 3416b84675 Log demotion and size for buffer encoding updated 2021-05-18 12:02:39 -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
Michael Cook 9ac06d4b3a Fix warning about log message argument type 2021-05-16 05:44:25 -07:00
Melissa Elkadi dc2865f3ba Added logs and updated eNB conf file for EPC if necessary 2021-05-13 15:13:59 -07:00
Melissa Elkadi bfa5d486e3 Added comments to show MRDC and free() hacks 2021-05-13 13:45:47 -07:00
Melissa Elkadi bc5677f4c4 Triggering works, not using OAI mechanism
gNB is crashing when setting up the tunnel interface
between the NR UE and itself.
2021-05-13 09:30:30 -07:00
Melissa Elkadi 63ca5f692d Hack to not free measObjs
Also, 12 Frame triggering of MeasurementReport
is still in development and not working.
2021-05-12 16:10:14 -07:00
Melissa Elkadi e455ae22c8 Added MRDC capabilites in a hacky way 2021-05-11 17:03:35 -07:00
Melissa Elkadi 31e51f3663 Processing NR_UE_Capability_info and sending 2021-05-11 15:40:43 -07:00
Melissa Elkadi 04315e89f5 Reverting acccidental changes. 2021-05-10 17:03:08 -07:00
Melissa Elkadi a7cbe98fa7 mbms_create_tasks was calling SCTP task again.
This caused the SCTP descriptor to be reset. This
made issues in the X2 interface between gNB and eNB.
Lots of logs added here. Need to fill NR_UE_Capability_Info
properly.
2021-05-10 17:01:12 -07:00
Melissa Elkadi 9009124223 Handling UE_capability_enquiry at NR UE
Now, we are able to fill the UE_Capability_Info that
the LTE UE and eNB are expecting. We then are able to
generate a RRC_DCCH_DATA_COPY_IND to trigger the
processing of the UE_Capability_Info (and sending the
info to the eNB). The info being received at eNB has not
been tested yet.
Also some code clean up.
2021-05-10 11:06:45 -07:00
Melissa Elkadi 5f2d246a8c Added comments and cleaned up the code.
The encode is still  working but now we need to
add in some new functionality to handle NR Capabilites.
2021-05-08 14:52:08 -07:00
Melissa Elkadi 56f2203b1d WIP: Encoding is succeeding. Hacked phy_id. 2021-05-08 09:30:55 -07:00
Melissa Elkadi 997c2e07ad Added rsrp/q back into report. ASN debug on. 2021-05-07 15:19:55 -07:00
Melissa Elkadi 1f3b397043 do_nrMeasReport updated for elements eNB expects
Also updated the generate_nrMeasReport().
The uper_encode_to_buffer is still not working.
2021-05-06 16:54:01 -07:00
Melissa Elkadi c4d7e11c1c Working on do_nrMeasurementReport 2021-05-05 16:42:22 -07:00
Melissa Elkadi cee317b73f Removed reportConfig dump funciton
Also removed the [eNB_index + 1] saving/writing
in the process_MeasObj function. This indexing
was incorrect. Also cleaned up the code, fixed
ssRSRB -> ssbRSRP. Lastly, added assertFatals
around indexing in process_measObj function.
2021-05-05 10:07:37 -07:00
Melissa Elkadi 842774254b ReportConfig was being indexed out of bounds
Added check and logs. If we change ind = 1 it
crashes the LTE UE so we log for now. Also cleaned
up a lot of the code. Lastly, we set freed vars to NULL.
2021-05-04 16:20:37 -07:00
Melissa Elkadi 7e339b4610 Currently receiving measurement data from NR UE
This commit has several other changes. The changes
include the following:
1. Changed the port numbers for the NRUE<->Proxy
2. Fixed the send to function in the NR UE
   (Previously only sending buffer not buffer+msg_type)
3. Updated pack/unpack of the SSB PDU (new RSRB field added)
4. Fixed several NR logs
5. Opening socket with NRUE<->Proxy AFTER receving RRC
   measurement request from the LTE UE
2021-05-03 15:31:32 -07:00
Melissa Elkadi 34eeae0874 NR SA thread and sockets have been added.
This commit also removed MAX_NUM_NEIGH_CELLs and
replaced it with MAX_GNB_CELLS. This was a minor change
OAI added. The standalone sockets for the NR UE correctly
connect to the proxy. We are currently receiving dl_tti
messages from the proxy.
2021-05-01 15:05:04 -07:00
Melissa Elkadi 6cace48013 Added in init function in RRC_NSA_NRUE task creation 2021-05-01 12:47:16 -07:00
Melissa Elkadi 539b1b564a Removed commented code in nr-softmodem.c
Also enabled X2 when we are not using the EPC
Added in the case statement for handling the
dl_dcch_msg from the NR UE. Also added in the
proper decoding of that dl_dcch_msg and freeing
2021-05-01 11:48:21 -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 7dbdcc2d34 changing env for test
1. restoring ci test environment.
2. packet drop disabled.
2021-03-23 13:45:24 -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 8120c7978c Merge branch 'episys-merge-future' into episys/master 2021-03-14 09:17:34 -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
Michael Cook c5ff3376ef Size asserts for harq_pdu_list, sr_pdu_list, cqi_pdu_list 2021-03-13 11:56:55 -08:00
Michael Cook 6d2590906c Assert NFAPI_CRC_IND_MAX_PDU 2021-03-13 10:58:33 -08:00
Michael Cook df81c0de14 Add asserts for size of rx_indication_body.rx_pdu_list 2021-03-13 10:26:33 -08:00
Melissa Elkadi e50de8be02 Demoting logs and removing duplicate #define
Commented out an abort(); used for debugging.
An incoming merge request will properly handle
the issue of multiple CQIs.
2021-03-06 12:22:52 -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 034d2cfed6 lte-ue.c: Allocate bigger arrays
This code allocates memory from the heap:

```
static void *UE_phy_stub_standalone_pnf_task(void *arg)
{
...
  UL_INFO->crc_ind.crc_indication_body.crc_pdu_list =
  calloc(NB_UE_INST, sizeof(nfapi_crc_indication_pdu_t));
```

I see NB_UE_INST==1.

Then this code:

```
void fill_crc_indication_UE_MAC(int Mod_id,
                                int frame,
                                int subframe,
                                UL_IND_t *UL_INFO,
                                uint8_t crc_flag,
                                int index,
                                uint16_t rnti,
                                nfapi_ul_config_request_t
                                *ul_config_req) {
...
  nfapi_crc_indication_pdu_t *pdu =
      &UL_INFO->crc_ind.crc_indication_body
           .crc_pdu_list[UL_INFO->crc_ind.crc_indication_body.number_of_crcs];
```

used .number_of_crcs to index into .crc_pdu_list without first
checking if .number_of_crcs is in range.

When run with multiple UEs, sometimes .number_of_crcs==1 and then
-fsanitize=address complains.

Change is to use NUMBER_OF_UE_MAX instead of NB_UE_INST.

With this change, -fsanitize=address stopping complaining.
2021-02-28 09:45:31 -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 b6766ee8ae decode_SIB1: Was reading past the end of plmn_data
Found by -fsanitize=address
2021-02-27 09:29:09 -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