Commit Graph
15699 Commits
Author SHA1 Message Date
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
Michael Cook 2520d111da Fix shutdown crashes
In phy_free_lte_eNB in lte_init.c, the lte-uesoftmodem would
crash during shutdown because it was dereferencing null pointers.
This commit adds checks to avoid that.
2021-02-27 07:20:43 -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
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
Remi Hardy 17d4c5c2f4 Integration 2021 wk08
MR1046 : Add support for NR UL SC-FDMA up to 100 MHz

MR1053Nr : pdcp nea2 security

MR1049 : improve rfsim
-Fix a regression 
Earlier parameter reading was moved to an external thread,  
Eventually the check at the end of the main was too early, 
Declaration of  some extra parameters are now on command line
-Enhancement: 
use the rfsim as a server on UE side, so we can connect two xNB to one UE
-Simplification: 
remove rfsim flags that have been made for convergence with replay function in usrp driver, but this is useless as they changed their code
-Fix a bug in ubuntu 20.04 (now the code is ready in whole OAI)


MR1056 : Bugfix: NR BSR calculation
Fixes a bug in the scheduler for BSR calculation. 
Before, we might wrongly track the BSR of a UE and not schedule it anymore although it has data. 
Should be fixed now and improve UL throughput. 

MR963 : Nr mac multi rach global edge
-Handling of Multiple Users triggering RACH request in different RACH Occasions in same slot
-Providing Random Access Response according to RACH request
2021-02-24 18:47:54 +01: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
Remi Hardy 0114160246 Merge branch 'integration_2021_wk06_MR978' into 'develop'
MR978 : 
We have incorporated 5G NR nFAPI into the develop branch
P5 and P7 interfaces for NR have been implemented. 
With this MR, downlink transmission through nFAPI will be possible. 
We have also made sure that 4G nFAPI can be used from within the develop branch.
2021-02-23 09:15:56 +01:00
Gokul Srinivasan 880096cc95 Delete create_nr_tasks.c 2021-02-21 18:40:51 +01:00
laurent c910668e7b add LOG_M() binary format 2021-02-19 10:48:35 +01:00
guhan e893ee8a16 Fixed the issue w.r.t looping of configured preamble list 2021-02-19 11:47:55 +05:30
Laurent Thomas abea2ef926 protect nrscope when thread starts before end of init 2021-02-18 22:36:45 +01:00
Laurent Thomas 11a318170e memory wrong free in global vars used for configuration storage 2021-02-18 22:23:31 +01:00
Mahesh 7ea8211b85 Code fixes for NSA test 2021-02-18 16:19:12 +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 ecaa20ed14 Re-do fix for merge issues 2021-02-15 15:08:46 -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 3cfa2c266b hack: fix NR prachsim compilation
Dirty!
2021-02-15 15:25:52 +01:00
Cedric Roux 778e487323 hack: fix NR ulsim compilation
Dirty.
2021-02-15 15:25:52 +01:00
Cedric Roux 67b9cd1892 hack: fix NR dlsim compilation
Dirty...
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
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
Cedric Roux 0b4335accc NSA: some work on security (for PDCP)
- compute correct kgNB
- propagate properly NR security capabilities of an UE
  (involves: rrc, s1ap, x2ap)
2021-02-12 16:01:37 +01:00
guhan 0d5f1dfea0 Fixed the index issue 2021-02-12 19:49:42 +05:30
Mahesh b681d67d7f Cleanup 2021-02-12 16:36:58 +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