Commit Graph
3470 Commits
Author SHA1 Message Date
Michael Cook 092caec8ca Merge branch 'episys-merge' into episys/trial-merge-to-master 2021-03-14 10:58:46 -04: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
hardy accae67113 Merge remote-tracking branch 'origin/nr-pdcp-nea2-security' into integration_2021_wk08 2021-02-23 09:31:05 +01: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
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 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 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
Raymond Knopp a446eb0ebc Merge branch 'episys/master' into episys-merge
Conflicts:
	common/utils/LOG/log.h
	common/utils/ocp_itti/intertask_interface.cpp
	nfapi/oai_integration/nfapi_vnf.c
	nfapi/open-nFAPI/nfapi/src/nfapi.c
	openair2/LAYER2/MAC/main_ue.c
	openair2/LAYER2/PDCP_v10.1.0/pdcp.c
	openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
	openair2/PHY_INTERFACE/phy_stub_UE.c
	openair2/RRC/LTE/rrc_UE.c
	openair2/RRC/LTE/rrc_eNB.c
	openair3/NAS/UE/ESM/esm_ebr_context.c
	targets/COMMON/openairinterface5g_limits.h
	targets/RT/USER/lte-softmodem.c
	targets/RT/USER/lte-uesoftmodem.c
2021-02-13 22:52:33 +01:00
Robert Schmidt ef90d77b0e Reformat nr_initiate_ra_proc() [no other changes] 2021-02-12 20:53:36 +01:00
Melissa 3a5912a00a Updated non-blocking PDCP socket
More accurately, we changed the do/while infinite
loop to be an infinite for loop for the read command of
the socket. The socket file descriptor choice is more clear now.
2021-02-12 08:59:00 -08:00
guhan 0d5f1dfea0 Fixed the index issue 2021-02-12 19:49:42 +05:30
Mahesh f69af6abaf merge MR978 (5G nFAPI) into develop 2021-02-12 16:26:22 +05:30
kn.raju 37d112f511 Check that resources are free for Msg2/RAR 2021-02-12 08:31:35 +01:00
kn.raju 13e719d74a fixes nr_initiate_ra_proc() 2021-02-12 08:31:30 +01:00
kn.raju bf81ea19d3 Check cfra in nr_initiate_ra_proc() 2021-02-12 08:31:28 +01:00
kn.raju 66ffa08a3d Handle individual RAs in nr_generate_Msg2() and nr_add_msg3()
* add the RA process to handle to command parameters
* Do not create the RAR_pdu into an intermediate array, but directly
  into the nFAPI TX_req
* Slightly restructure nr_generate_Msg2() to first make AssertFatal()
  checks, then proceed allocating
2021-02-12 08:31:26 +01:00
kn.raju 25a520e4fa find_SSB_and_RO_available() 2021-02-12 08:31:23 +01:00
kn.raju 68b4a6bf28 Fixing association period 2021-02-12 08:31:17 +01:00
kn.raju 054934c4f8 Do nr_schedule_RA() for all RA processes 2021-02-12 08:31:13 +01:00
kn.raju baba8d69be nr_initiate_ra_proc(): check in all RA processes, check beam_index 2021-02-12 08:31:11 +01:00
kn.raju 4dacea921c New UE: check for free RA and copy preamble list 2021-02-12 08:31:07 +01:00
Mahesh 7f4ffe29c8 Fix whitespaces 2021-02-12 01:25:09 +05:30
Mahesh eb19e02cf3 Merging MR978 with develop 2021-02-11 22:50:25 +05:30
Melissa 9fa09f530f Updated non-blocking PDCP socket
More accurately, we changed the do/while infinite
loop to be an infinite for loop for the read command of
the socket. The socket file descriptor choice is more clear now.
2021-02-09 14:09:39 -08:00
Robert Schmidt 54a2d698db Fix build: test for slot from within preprocessor 2021-02-09 16:46:44 +01:00
Florian Kaltenberger 04a4a6f451 Merge remote-tracking branch 'origin/develop' into benetel_driver_update 2021-02-09 11:13:01 +01:00
hardy 665688681b Merge remote-tracking branch 'origin/ue-fixes' into integration_2021_wk06_b 2021-02-09 10:54:58 +01:00
Sakthivel Velumani 8902902706 Merge branch 'develop' into ue-fixes 2021-02-08 15:06:17 +01:00
Mahesh 0e6f1e6ad6 Merge conflicts resolved 2021-02-08 18:05:29 +05:30
Sakthivel Velumani 3380f1a455 send data from MAC to PHY when NDI toggles 2021-02-08 12:49:32 +01:00
Robert Schmidt b86fdaf59b Revert "Lower UE log level"
This reverts commit 71e297de9d.
2021-02-08 11:20:23 +01:00
Robert Schmidt 9b77575af2 Use the MAX_BWP_SIZE macro everywhere 2021-02-07 10:45:57 +01:00
Robert Schmidt 318c4e0fd7 Skip DL HARQ feedbacks if the timing does not match
As the precedent commit, this commit deals with the realtime problems
that we currently have on the CI bench.

For DL HARQ feedback, nFAPI does not give us the HARQ process ID.
Instead, we have to figure this out "from timing", i.e., if we trigger
PUCCH reception, we will get a message with HARQ if we instructed the
PHY to do so. If we have real-time problems, it seems (I cannot verify:
don't have real time problems) that we do not get the nFAPI message with
HARQ feedback. Thus, we need to skip the HARQ processes that should have
been processed in the past, which happens in this commit.
2021-02-07 10:45:57 +01:00
Robert Schmidt f23890e0b9 Search correct UL HARQ, don't assert on late slot
At the time of this commit, the CI has realtime issues. This can mean
that the HARQ result is delivered in a delayed fashion. Before this
commit, we were asserting on whether the slot corresponds to the HARQ
process's expected feedback slot, but a particular feedback might be
delayed under realtime issues, and we actually don't care about the
timing since we get the HARQ process ID.

Instead, we loop through the HARQ processes for which we wait for a
feedback in the beginning until we have the right process (which did not
seem to cause a problem till now, but who knows.
2021-02-07 10:45:57 +01:00
Robert Schmidt 423a0e4afe Handle UL HARQ slot wrap around for slot = 0 2021-02-07 10:45:57 +01:00
Robert Schmidt 30d13ebf6d Lower various log levels 2021-02-07 10:45:57 +01:00