Commit Graph
5737 Commits
Author SHA1 Message Date
Remi Hardy de9c8634ad Merge remote-tracking branch 'origin/s1_subnormal' into integration_2021_wk10 2021-03-12 11:08:09 +01:00
Remi Hardy c775073aad Merge remote-tracking branch 'origin/nr-pdcp-improvements' into integration_2021_wk10 2021-03-12 11:07:44 +01:00
Remi Hardy c12dd11d6e Merge remote-tracking branch 'origin/develop-SA-RA' into integration_2021_wk10 2021-03-12 11:07:25 +01:00
Thomas Schlichter 2cf4daefa8 NR: move nr_bandtable from nr_mac_common.c to nr_common.c so PHY can use it, too 2021-03-09 11:56:06 +01:00
cig 443a449119 Fix after review MR 1039
- FAPI structures not to be used as config_req at MAC since that FAPI is
  just for communication between MAC and PHY
- additional frame_type member added to the FAPI struct
2021-03-09 10:36:27 +01:00
masayuki.harada ff994453a4 Merge remote-tracking branch 'remotes/oai/develop' into HEAD
# Conflicts:
#	openair3/S1AP/s1ap_eNB.c
#	openair3/S1AP/s1ap_eNB_handlers.c
2021-03-08 14:51:11 +09:00
Thomas Schlichter 2411743f44 gNB: move get_band() to its only user in nr_init.c 2021-03-05 17:27:45 +01:00
Thomas Schlichter 62612feebf change get_band() to take the duplex spacing into account 2021-03-03 18:02:10 +01:00
Thomas Schlichter 7a6f789aed Merge remote-tracking branch 'develop' into NR_FDD_FIX 2021-03-03 17:59:17 +01:00
Thomas Schlichter 01645168f0 NR_UE: handle initial TA the same way as TA updates, independent of the UE_mode
In FDD mode, the UE_mode switches to PUSCH mode before the initial TA value was applied.
Because of this, the ta_command was misinterpreted.
Fix this by adding 31 to the initial TA comamnd and handle it the same as TA updates.
2021-03-03 17:58:07 +01:00
Cedric Roux 9edc8cce0a nr pdcp: improvements
Implement data transfer (38.331 5.2):
    - transmit operation (in nr_pdcp_entity_recv_sdu)
    - receive operation (in nr_pdcp_entity_recv_pdu)
    - t-Reordering expiration

To keep track of time the function nr_pdcp_wakeup_timer_thread has been
added and is called by the gNB's MAC scheduler via nr_pdcp_tick.

(The UE has not been modified.)

A thread has been introduced to set time of all the existing PDCP
entities in the system. This probably does not scale well with many
PDCP entities (many UEs connected to the gNB). To be changed at some
point when needed. Hopefully, with a few UEs this mechanism won't be
too problematic (ie. won't cause realtime problems).

The problem with time in PDCP is that SDUs are kept if some are
missing, to do reordering. A timer is started and when it expires
we have to transmit the SDUs even if some are still missing. We
want to do that as soon as possible. So we have to check timers
often (every millisecond).

In RLC the time is set when there is some activity (SDU or PDU
received). In PDCP we cannot wait for this kind of activity. We
would keep packets longer than necessary, which may disturb
upper layers (think: TCP). That is why we introduced the thread,
as a simple mechanism to keep packets no longer than necessary.

The locking done by this thread may create realtime issues.

The whole logic of time keeping can be changed later if it turns
out that it is not efficient.

The functions dealing with DRB AM have been removed. All the types
of PDCP entities (DRB AM, DRB UM, SRB) use the same mechanism for
transmit and receive operations. So the code has been made common
for all those types.

We don't deal with:
    - entity re-establishment, entity release or entity suspend
    - SDU discard (the timer is present but not used)
    - status reporting
    - data recovery
    - data volume calculation
    - header compression / decompression

There is no plan to implement those features in a near future.

Integrity protection is not done yet, and will be implemented soon.
2021-03-03 14:06:31 +01:00
rmagueta 5f66269a8b Merge remote-tracking branch 'origin/develop' into develop-SA-RA
# Conflicts:
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-03-02 12:01:11 +00:00
hardy 8d05695722 Merge remote-tracking branch 'origin/benetel_driver_update' into integration_2021_wk09_b 2021-02-26 16:09:05 +01:00
rmagueta 910154c7af Merge branch 'develop' into develop-SA-RA
# Conflicts:
#	cmake_targets/CMakeLists.txt
#	openair1/SIMULATION/NR_PHY/dlsim.c
#	openair1/SIMULATION/NR_PHY/ulsim.c
2021-02-23 13:04:01 +00: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
rmagueta bed43a2a79 Address review comments 2021-02-22 16:31:13 +00:00
rmagueta 4ea560f291 Address review comments 2021-02-22 16:01:05 +00: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
cig c89d349300 Bugfix in nr_ue_prach_scheduler
- scheduled_response was called regardless of the UL config in the PRACH slot
  this was leading to wrong behaviour since it was interfering with the
  UL config of PUSCH
2021-02-16 15:25:48 +01: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
rmagueta e7fb928758 Fix dlsch_config_pdu for DCI with format 1.1 2021-02-12 21:40:04 +00:00
Robert Schmidt ef90d77b0e Reformat nr_initiate_ra_proc() [no other changes] 2021-02-12 20:53:36 +01:00
cig d5877d75bf Bugfix in gNB RA scheduling for FDD duplex mode
- the RA SFN index wasn't increased in the FDD case, therefore the PRACH
  RX was never scheduled
2021-02-12 18:41:19 +01:00
Thomas Schlichter d3982e5809 Merge remote-tracking branch 'develop' into NR_FDD_FIX 2021-02-12 16:39:58 +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
luis_pereira87 9a55e64e54 Fix build errors in physical unitary tests simulators, minor update in the documentation 2021-02-12 12:28:17 +00:00
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
rmagueta 7011b04b75 Code clean up and minor correction in RA for SA 2021-02-12 00:24:31 +00:00
rmagueta d2e9ca590c Fix segmentation fault in PDSCH DMRS when using additional DMRS symbols 2021-02-11 22:21:45 +00:00