Commit Graph
5825 Commits
Author SHA1 Message Date
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
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
Melissa Elkadi 4dcb32c180 Removed unused memcpy functions and references 2021-02-24 09:12:00 -08:00
Melissa Elkadi 125e0aa186 Updating incorrect logic in phy_stub_ue.c 2021-02-24 07:07:45 -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
hardy accae67113 Merge remote-tracking branch 'origin/nr-pdcp-nea2-security' into integration_2021_wk08 2021-02-23 09:31:05 +01:00
hardy 3199b81584 Merge remote-tracking branch 'origin/enhance-rfsim' into integration_2021_wk08 2021-02-23 09:30:42 +01:00
hardy 90d6a57a3c Merge remote-tracking branch 'origin/NR_UL_SCFDMA_100MHz' into integration_2021_wk08 2021-02-23 09:30:22 +01:00
Melissa Elkadi df2d3459d8 Set first random value to be UE number
Also added logs for debugging this rare random value issue.
2021-02-19 15:00:36 -08:00
Florian Kaltenberger a51e3defa8 when PRACH config 4 is used (Benetel RRU) we only schedule UL slots 8 and 9 2021-02-19 11:15:59 +01:00
Florian Kaltenberger 670c807a56 Merge remote-tracking branch 'origin/develop' into benetel_driver_update 2021-02-19 11:46:41 +01:00
guhan e893ee8a16 Fixed the issue w.r.t looping of configured preamble list 2021-02-19 11:47:55 +05:30
Francesco Mani 80cac226fc fixed a warning in gNB_scheduler_ulsch.c 2021-02-18 08:50:45 +01:00
Melissa Elkadi 2c8aab0671 Included PHY channel parameter handling
Also, updated openairinterface5g_limits.h to match develop branch.
2021-02-17 16:04:00 -08:00
Robert Schmidt a3b1216b23 Fixup sched_ul_bytes logic
1) Only count new transmission as scheduled bytes (which is then
compared against the BSR)

2) When subtracting scheduled bytes after successful reception, subtract
TBsize from correct HARQ process
2021-02-17 10:17:59 +01:00
Melissa Elkadi 17ede97029 Changed UE Capabilities log to a LOG_A 2021-02-15 15:27:25 -08:00
Melissa Elkadi 26e3f32b69 Fixed fill_ul_mutex
Mutexes were not being initialized. In multiple
places they were not being unlocked. In fill rach
it was not being locked or unlocked.
2021-02-15 12:40:32 -08:00
Melissa Elkadi bc524ea192 Minor fixes and new definitions for build success 2021-02-15 09:00:22 -08:00
Cedric Roux 21ff70e84f hack: put back a hack that seems necessary for NR rfsim tests in the CI
go figure...
2021-02-15 15:25:52 +01:00
Cedric Roux 73f3a458cf NSA: finalize nea2 security for gNB
- a new section in the configuration file to select security algorithms,
  with new code to deal with it
- cleanup CG-ConfigInfo: specs seem to indicate that we must not
  add mcg_RB_Config; the gNB has to deal with that
- as a consequence, modify fill_default_rbconfig() that is called in
  every cases and needs security and bearer parameters

The new section in the configuration file looks like:

    security = {
      # preferred ciphering algorithms
      # the first one of the list that an UE supports in chosen
      # valid values: nea0, nea1, nea2, nea3
      ciphering_algorithms = ( "nea0", "nea2" );

      # preferred integrity algorithms
      # the first one of the list that an UE supports in chosen
      # valid values: nia0, nia1, nia2, nia3
      integrity_algorithms = ( "nia0" );
    };
2021-02-15 15:25:52 +01:00
Cedric Roux cb589c211c minor trivial bugfix 2021-02-15 15:25:52 +01:00
Cedric Roux 10e021e96d NSA: first draft of nea2 security for gNB
The code is forced to use nea2, no matter what the UE supports.

After 2^18 PDCP packets, it will fail to work (we don't use HFN yet).

These limitations will be fixed in later commits.

The existing security function was not reused, because it does too
much memory allocation and initializes the security context at each
ciphering. So here comes nr_pdcp_security_nea2_cipher(). And also
the ciphering is done inplace. To be changed if necessary.
2021-02-15 15:25:47 +01:00