Commit Graph
1264 Commits
Author SHA1 Message Date
Cedric Roux 833016123a hotfix: revert commits that break the basic simulator
This commit manually reverts the commits:
- 97c69dc4a4
- 3278aa494d

The basic simulator was not functional anymore because
the UE did not send RRCConnectionSetupComplete due to
some problem in the PDCP layer, most probably.
2018-09-10 16:22:03 +02:00
Cedric Roux 82ab88f546 integration fix: add missing break
This break was there and went away, for whatever reason...
2018-09-07 17:24:37 +02:00
Cedric Roux 2cb87ddd02 Merge remote-tracking branch 'origin/feature-slice+restart-w35' into develop_integration_2018_w36
Conflicts:
	openair2/ENB_APP/flexran_agent_common_internal.c
	openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
2018-09-07 16:13:40 +02:00
Cedric Roux 2c9be8c102 Merge remote-tracking branch 'origin/fix-nfapi-in-scheduler' into develop_integration_2018_w36 2018-09-07 16:08:09 +02:00
Cedric Roux b0eff6c0a6 Merge remote-tracking branch 'origin/scheduler-small-fix' into develop_integration_2018_w36 2018-09-07 16:07:23 +02:00
Cedric Roux cbdc8f662a Merge remote-tracking branch 'origin/issue343_dlcqi_retransmission' into develop_integration_2018_w36 2018-09-07 16:04:05 +02:00
Masayuki HARADA c1359a103f Fix wrong slice_allocation loop in fairRR scheduler 2018-09-06 19:03:05 +02:00
Cedric Roux 8534982afe bugfix: check that we are manipulating the structure for the correct RNTI
The bug popped up when one UE was doing TCP UL iperf and a second UE
attempted to connect. A crash of the eNB happened because we changed
the wrong NFAPI structure in a TTI where both UEs are scheduled.

Something like that.
2018-09-06 16:42:10 +02:00
Robert Schmidt 7162bf6895 Bugfix: Assure available_rbs is positive 2018-09-05 14:21:39 +02:00
Robert Schmidt 066ab90402 Bugfix: Give correct first_rb value to UE 2018-09-05 14:21:39 +02:00
Robert Schmidt d798e03e9d fix rb_table loop 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 07ad2470d1 Remove warnings pre_processor_fairRR 2018-09-05 14:21:36 +02:00
Cedric Roux 6270d94f91 bugfix: use correct comparison
The comparison in AssertFatal was not correct,
taking the opposite meaning to the one expected.
2018-09-04 12:43:29 +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 21983a2028 Patch fairRR scheduler to use slice iface of pre-processor 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 3278aa494d Return immediately from pdcp_data_req
When the RLC layer returns error codes (like dropped packets), this is still
counted as PDCP layer traffic. In order to reflect dropped packets or
malfunctioning, this patch makes that upon an RLC error code, the function is
exited immediately. In this case, it is not counted as additional PDCP traffic.

An example is too much UDP traffic. If the RLC buffer is saturated and the
packet therefore refused, incoming traffic won't be counted anymore. With this
patch, the PDCP layer statistics won't count such traffic anymore.
2018-09-03 18:10:28 +02:00
Robert Schmidt 97c69dc4a4 Drop traffic in PDCP if RLC buffer is full
If the buffer in the RLC is full, testing the buffer state over and over again
slows the DL traffic down. In order to circumvent this, the PDCP will drop any
data during a configurable time (compile-time) before it delivers data to RLC
again.

To change this, see the constant TM_SKIP_FULL_BUF_MS in pdcp.h.
2018-09-03 18:10:28 +02:00
Navid Nikaein 6c4f58a0a0 move UE_list/slice init in dedicated functions 2018-09-03 18:10:28 +02:00
Robert Schmidt 0bb6a19f71 only initialize RC.mac once 2018-09-03 18:10:28 +02:00
Robert Schmidt da35afb01b fix: repair RC.mac memory allocation
- there can be a race between the FlexRAN agent reading the RC.mac and its
  allocation in main.c
- In order to circumvent this, change the allocation by allocating
  everything "into" a local variable
- finally "make it visible" by storing  the pointer in RC.mac
2018-09-03 18:10:28 +02:00
Robert Schmidt 328a464e37 remove update_sched slice param variables
- whether a scheduler callback has to be changed is now handled by the agent
2018-09-03 18:10:28 +02:00
Robert Schmidt 766e8a5bbe link to scheduler function in mac init fct 2018-09-03 18:10:28 +02:00
Robert Schmidt 21f6609472 FlexRAN: move slice param verification to agent
- until now, on every iteration, the scheduler checked for changed parameter
  (and verified some)
- this functionality moves to the FlexRAN Agent, which verifies all parameters
  * individually, e.g. Max MCS <= 28 for DL
  * group-based, e.g. the sum of slice percentages is <= 100
- slice configuration changes are only applied if all verifications pass
- it is assumed in the scheduler, that configuration passed from outside is
  correct and can be used "as-is"

fix accounting setting
2018-09-03 18:10:28 +02:00
Robert Schmidt 6b3dd8716b FlexRAN: set values of removed slices to 0 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 11e45be9c5 fix: resort UE_list after slice multiplexing
- slice multiplexing resorts UE_list for its purposes with restoring the
  original order
- in order to keep the order in UE_list, resort to original order after
  multiplexing
- ideally, this would happen in the multiplexing but currently, the slice_idx
  is not passed to multiplexing (it does not care), so this cannot be done ATM
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 fcaf237182 FlexRAN: Handle slice configuration
Incoming slice configuration changes are buffered in an intermediate structure.
The MAC scheduler periodically polls the agent about changes. If there has been
a slice configuration change, apply it.
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 b29e20d4dd MAC sched slicing: sort only relevant slices 2018-09-03 18:10:28 +02:00
Robert Schmidt 59fc7832fa bugfixes: set max UL MCS to 20, improve sched loading message 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 87b8b6e86b Increase the number of possible slices to 10 2018-09-03 18:10:28 +02:00
Robert Schmidt 568bf8ae35 bugfix: deactive slice_counter
slice_counter had a wrong condition, not scheduling in DLSCH if the number of
slices is greater than one
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
Robert Schmidt 5cbe5c0df3 remove useless headers in scheduler 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 853ef6fe18 Fix warnings in schedule_dlsch 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
Navid Nikaein 5634aa92a1 Keep the LCID priority in MAC layer to sort the UE accordingly 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