Commit Graph
213 Commits
Author SHA1 Message Date
Raphael Defosseux baf5f1ed93 Merge remote-tracking branch 'origin/develop' into develop-nr_cppcheck 2019-11-22 11:18:28 +01:00
Cedric Roux 2a7ac81b0b hotfix: better CQI requests, especially for TDD
In TDD mode, CQI requests are not possible in special subframes (at
least for some TDD configurations, see 36.213 7.2.3 that says "a
DL subframe is valid if it does not contain a DwPTS field if the
length is less than  7680 Ts").

In the code, we simply disable CQI requests in special subframes,
no matter what the length of DwPTS.

A problem can arise if the DCI0 for a given UE are sent only in
those special subframes. In this case the UE will never report
CQI and the eNB will use low MCS for this UE, impacting performances.

Another, related, problem is when there are several UEs. There again
one UE might always get its DCI0 in special subframes and thus never
report CQI. There again, performance issues.

This commit is an attempt to improve the situation.

It does two things.

1 - tag the UE as schedulable in the function UE_is_to_be_scheduled
    if the cqi_req_timer is expired

2 - use cqi_req_timer as a criterium when ordering UEs for UL scheduling

The value chosen for the expiration of the cqi_req_timer in
UE_is_to_be_scheduled is quite high (300) because as the code is
today we may overschedule the UE for short bursts until we receive
a CQI from the UE. [TODO: fix the code properly to avoid this behavior.]

Note: the fairRR scheduler has not been analyzed and this commit may
      not fix anything in case the fairRR scheduler is used.
2019-11-06 12:30:50 +01:00
frtabu b9b4d05e41 remove RRC_VERSION macros, simplify build-oai and CMakefile.txt accordingly, get rid of remaining compilation warnings (opt module improperly merged and patch asn1c files with tests against max 64 bits integer value) 2019-09-23 19:46:44 +02:00
laurent 924e10f73a fix rfsim ue initial sync and legacy OAI C struct syntax 2019-07-01 15:17:07 +02:00
Dong Anyuan bca84e8160 Fix Coverity Scan CID 340237 (Using variable UE_id as an index to array UE_list->UE_sched_ctrl.) 2019-06-20 13:59:21 +09:00
Dong Anyuan 6986cbdd2a Fix Coverity Scan CID 261468 (Using variable UE_id as an index to array UE_list->UE_sched_ctrl.) 2019-06-20 12:00:10 +09:00
SAWADA Kentaro 95c8693181 Fix Coverity Scan CID 340000 2019-05-28 19:18:27 +09:00
Louis Adrien Dufrene 5ae494e974 merge from develop 2019-04-16 09:13:25 +02:00
Louis Adrien Dufrene 46b0a9fb38 Remove bypass_cdrx variable and add cdrx_waiting_ack. The CDRX is now activated at RRC COnnection Reconfiguration Complete reception. To Test 2019-04-11 07:36:05 +02:00
Louis Adrien Dufrene 3406634b6b This is version 1.0. To test. Cleanup of phy_procedures_lte_eNb.c eNB_scheduler_dlsch.c eNB_scheduler_ulsch.c pre_processor.c and asn1_msg.c 2019-04-10 08:48:37 +02:00
Stefan Schaffelder 42e0929a0c apply last diff from ssr to local orange_cdrx branch. Remove SSR comments 2019-04-04 10:15:38 +02:00
Louis Adrien Dufrene 81f04d2982 Apply diff between ssr (CDRX) branch and develop 2019-04-04 08:17:26 +02:00
Cedric Roux a5a1690394 bugfixes for UL scheduling
- size of PUCCH has been fixed to:
    - 2 RBs for N_RB_UL = 25 (1 RB at top of resource grid, 1 RB at bottom)
    - 4 RBs for N_RB_UL = 50
    - 6 RBs for N_RB_UL = 100
  this is arbitrary and will need some rework at some point.
  This may be also wrong. PUCCH size actually depends on DL traffic
  (if the ack/nack is not done in PUSCH) and scheduling request
  configurations.
- add sched_frame %= 1024 at one needed place
- reserve RBs for retransmission
  this was not done so new transmissions were scheduled in the same
  RBs. Since the code works with the notion of 'first_rb' only, it
  was decided to skip all RBs lower than those retransmitted. This
  works but is not correct (imagine we have to retransmit RB 23, then
  all RBs < 23 will not be used for new transmission). The work to
  fix this properly is complex, a lot has to change, so let's do it
  this simple way for now.
- sort_ue_ul was not correct
  - add the function maxround_ul to use the correct 'round' (the one
    from DL was used, which is totally wrong)
  - be sure to use the correct frame/subframe to get the correct HARQ pid
2019-03-30 15:19:27 +01:00
Cedric Roux 0e38852b05 bugfix: access correctly round_UL 2019-03-30 15:18:18 +01:00
Robert Schmidt 544d80c40d Merge branch 'develop' into feature-127-protocol-split 2019-02-25 18:06:35 +01:00
Robert Schmidt 030e11ba9a Merge branch 'develop' into feature-127-protocol-split 2019-02-21 20:18:35 +01:00
Louis Adrien Dufrene f8ab4080f7 Merge from develop + modification of a X2AP file for code to compile 2019-02-18 10:46:13 +01:00
Louis Adrien Dufrene c7bce0f8d7 Merge from develop 2019-02-13 09:01:51 +01:00
Louis Adrien Dufrene ce87a9dc09 Merge from develop 2019-02-13 08:41:13 +01:00
Stefan 151873e987 pre_processor improvements 2019-01-18 17:04:57 +01:00
Stefan c638d16a04 pre_processor improvements 2019-01-15 17:59:40 +01:00
Cedric Roux aea6b4b5a6 fix a lot of file mode
For whatever reason most of the files had their permission
changed from 644 to 755, which is not wanted.
2019-01-07 16:22:28 +01:00
Stefan a1d5fbea9d SSR 21/12/18 ulsch_scheduler_pre_processor2 2018-12-20 16:52:06 +01:00
Stefan ffed6b7115 SSR 20/12/18 ulsch_scheduler_pre_processor 2018-12-20 11:04:21 +01:00
Stefan da7d2a8ce5 SSR 2018-12-19 2018-12-19 17:00:18 +01:00
Raymond Knopp 6266d5c389 Merge remote-tracking branch 'origin/develop' into enhancement-ltem
Conflicts:
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/LTE_TRANSPORT/dci.c
	openair1/PHY/LTE_TRANSPORT/edci.c
	openair1/PHY/LTE_TRANSPORT/prach.c
	openair1/PHY/LTE_TRANSPORT/transport_eNB.h
	openair1/SCHED/fapi_l1.c
	openair1/SCHED/phy_procedures_lte_eNb.c
	openair2/COMMON/rrc_messages_types.h
	openair2/ENB_APP/enb_config.c
	openair2/LAYER2/MAC/config.c
	openair2/LAYER2/MAC/eNB_scheduler_RA.c
	openair2/LAYER2/MAC/eNB_scheduler_bch.c
	openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
	openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
	openair2/LAYER2/MAC/mac.h
	openair2/RRC/LTE/MESSAGES/asn1_msg.c
	openair2/RRC/LTE/rrc_defs.h
	openair2/RRC/LTE/rrc_eNB.c
	openair2/RRC/LTE/rrc_eNB_S1AP.c
2018-11-19 00:43:49 +01:00
Raymond Knopp d24f521a5a Merge remote-tracking branch 'origin/develop' into enhancement-ltem
Conflicts:
	openair1/PHY/INIT/lte_init.c
	openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
	openair1/PHY/LTE_TRANSPORT/dci.c
	openair1/PHY/LTE_TRANSPORT/dci_tools.c
	openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
	openair1/PHY/LTE_TRANSPORT/edci.c
	openair1/PHY/LTE_TRANSPORT/if4_tools.c
	openair1/PHY/LTE_TRANSPORT/prach.c
	openair1/PHY/LTE_TRANSPORT/print_stats.c
	openair1/PHY/LTE_TRANSPORT/pucch.c
	openair1/PHY/LTE_TRANSPORT/transport_eNB.h
	openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
	openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h
	openair1/PHY/impl_defs_lte.h
	openair1/SCHED/fapi_l1.c
	openair1/SCHED/phy_procedures_lte_eNb.c
	openair2/COMMON/rrc_messages_types.h
	openair2/ENB_APP/enb_config.c
	openair2/ENB_APP/enb_paramdef.h
	openair2/LAYER2/MAC/config.c
	openair2/LAYER2/MAC/defs.h
	openair2/LAYER2/MAC/eNB_scheduler.c
	openair2/LAYER2/MAC/eNB_scheduler_RA.c
	openair2/LAYER2/MAC/eNB_scheduler_bch.c
	openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
	openair2/LAYER2/MAC/eNB_scheduler_primitives.c
	openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
	openair2/LAYER2/MAC/pre_processor.c
	openair2/LAYER2/MAC/rar_tools.c
	openair2/LAYER2/MAC/ue_procedures.c
	openair2/PHY_INTERFACE/IF_Module.c
	openair2/RRC/LITE/rrc_common.c
	openair2/RRC/LTE/L2_interface_ue.c
	openair2/RRC/LTE/MESSAGES/asn1_msg.c
	openair2/RRC/LTE/rrc_eNB.c
	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
	targets/RT/USER/lte-enb.c
	targets/RT/USER/lte-ru.c
2018-10-29 07:54:17 +01:00
Bi-Ruei, Chiu f58ad3c39f Add prefix LTE_ to LTE-RRC generated data types by ASN1C_PREFIX=LTE_
1. Modify all expressions using original LTE-RRC data types for new generated ones
2. Does not change any program logic
2018-10-17 15:46:12 +08:00
Robert Schmidt 7162bf6895 Bugfix: Assure available_rbs is positive 2018-09-05 14:21:39 +02:00
Robert Schmidt ff83dc7017 Fix greedy allocation: schedule not more than what slice has 2018-09-05 14:21:39 +02:00
Robert Schmidt af83d352c8 Fix: use frame_subframe2_dl_harq_pid() 2018-09-05 14:21:39 +02:00
Robert Schmidt 9f04614304 Remove huge comment from sort_UEs()
Commit 7823858e2d11e8cabc1ca7bf7f507b9a050942d3 introduced this as a comment.
2018-09-05 14:21:38 +02:00
Robert Schmidt 49b167d6ae Remove warnings pre_processor 2018-09-03 18:10:28 +02:00
Robert Schmidt e1a598bc8d Fix function parameter definition/order
Affects:
* store_dlsch_buffer()
* assign_rbs_required()
2018-09-03 18:10:28 +02:00
Robert Schmidt 71a9115abd Iterate over actual number of CC, not NFAPI_CC_MAX 2018-09-03 18:10:28 +02:00
Robert Schmidt 088b1d5a8d refine MAC Debug output
- uncomment "Couldn't find RNTI for UE X" in UE_RNTI() and rb_alloc in
  pre_processor_reset() as they only inflate the debug output with little
  benefited
- "doing ue_schedule_spec" is now displayed for individual UEs (and individual
  CCs)
- show messages when not scheduling UE in ue_schedule_spec() due to invalid
  slice or if not in RRC_CONNECTED
2018-09-03 18:10:28 +02:00
Robert Schmidt 8039cd40f5 share the allocation array rballoc_sub between slices 2018-09-03 18:10:28 +02:00
Robert Schmidt 44d1eb8015 preprocessor reset: avoid unnecessary iterations 2018-09-03 18:10:28 +02:00
Robert Schmidt de4ebe0914 remove warnings (comment concerned lines) 2018-09-03 18:10:28 +02:00
Robert Schmidt 1d23a64ced bugfix: memset using the right size 2018-09-03 18:10:28 +02:00
Robert Schmidt 8f2d79709e MAC: change all slice_id_t to slice index variables 2018-09-03 18:10:28 +02:00
Robert Schmidt 048c4d29a2 add slice association in UE_list, test against it in slice_membership() 2018-09-03 18:10:28 +02:00
Robert Schmidt 58c2a00626 MAC: slicing conf struct in RC
- introduce structure in RC for slicing conf (UL/DL)
- move global variables regarding slice configuration into RC
- change ue_slice_membership(): consider UL/DL
- remove the unnecessary header files
- set default parameters: one slice
2018-09-03 18:10:28 +02:00
Niccolò Iardella e6168667d3 Add first_rb_offset 2018-09-03 18:10:28 +02:00
Niccolò Iardella 9efd5d6f27 Inter/intra-slice sharing are now optional 2018-09-03 18:10:28 +02:00
Niccolò Iardella 8d9a8ab59a Add UE sorting on LCID priority 2018-09-03 18:10:28 +02:00
Niccolò Iardella 56405aeef0 Implement interslice_multiplexing, add new constants 2018-09-03 18:10:28 +02:00
Niccolò Iardella e2c270ee94 Fix indentation in schedule_ue_spec() and pre_processor.c 2018-09-03 18:10:28 +02:00
Niccolò Iardella df36e3f054 Bugfix: value of available RBs per slice could be negative 2018-09-03 18:10:28 +02:00
Niccolò Iardella ee4972cd2c Add partitioning as a separate function 2018-09-03 18:10:28 +02:00