Commit Graph
8053 Commits
Author SHA1 Message Date
Robert Schmidt 1e9f3235d3 fix: avoid AssertFatal() in load_module_shlib()
don't fail in library utility function, return with error code instead and let
application decide what is best on how to proceed
2018-09-03 18:10:28 +02:00
Robert Schmidt 604ec25a68 improve soft-restarting messages 2018-09-03 18:10:28 +02:00
Robert Schmidt d24e17f0f7 improve load_module_shlib()
* check whether a library has been loaded before; in this case, don't allocate
  new memory but load from old library again
* vital parameters, previous exit_fun are checked by AssertFatal()
* structure has changed a bit to make it easier to follow (instead of nested
  ifs includes one goto to the end of the function)
* formatting has been improved
2018-09-03 18:10:28 +02:00
Robert Schmidt 175d28ee35 bugfixes kill_eNB_proc()
* put mutex lock around instance_prach
* destroy attributes
2018-09-03 18:10:28 +02:00
Robert Schmidt 917b9ca0c2 correct ITTI task name 2018-09-03 18:10:28 +02:00
Robert Schmidt c4077f3cf7 cell reconfiguration/restart: take protobuf, perform in ENB_APP
* instead of the lengthy YAML parsing, can now handle protobuf message
* after setting the parameters, send a message to ENB_APP to perform it
* old YAML way still works
2018-09-03 18:10:28 +02:00
Robert Schmidt f0670154b3 Correctly join RU threads
* join pthread_FH (ru_thread) once all condition variables have been set
* join RU FHTX only if it has been started (check as for pthread_create())
* join PRACH thread in the monolithic case
* send broadcast on condition variable cond_eNBs, as there can be multiple
  waits on it
* integrate stop_ru(*ru) into kill_RU_proc(*ru)
* Correct memory freeing
2018-09-03 18:10:28 +02:00
Robert Schmidt 2e1dfb5b3e place oai_exit test after wait_on_condition() in threads 2018-09-03 18:10:28 +02:00
Robert Schmidt c56b5af00e bugfix: kill td/te threads only if initialized
* init_td_thread()/init_te_thread() are only initialized depending on condition
  get_nprocs() > 2 && codingw
* apply the same the same for the functions kill_td_thread()/kill_te_thread()
2018-09-03 18:10:28 +02:00
Robert Schmidt 35b3a2af14 Reorganize TASK_L2L1 loop 2018-09-03 18:10:28 +02:00
Robert Schmidt 0846460753 show which task sends TERMINATE_MESSAGE to which task 2018-09-03 18:10:28 +02:00
Robert Schmidt ef0d86564c when sending config report, copy slice config to new mem 2018-09-03 18:10:28 +02:00
Robert Schmidt 7a0c00330b put intra-/inter slice sharing within slice config 2018-09-03 18:10:28 +02:00
Robert Schmidt 44481a5649 FlexRAN: improve info messages 2018-09-03 18:10:28 +02:00
Robert Schmidt 472ebf5622 mark UL slice sorting overwriting as TODO 2018-09-03 18:10:28 +02:00
Robert Schmidt e94b0bde51 FlexRAN fixes
* properly allocate memory for scheduler name/sorting
* free mem of sc_update, include todo for slice_config
* set has_x to one, add fct whether sorting update necessary
* set n_ul/n_dl to correct value after every loop iteration
* support for delete of multiple slices
* allocate memory for scheduler name in slice_config
* check that we really set the scheduler
2018-09-03 18:10:28 +02:00
Robert Schmidt 0c0e7b6ead simplify control flow 2018-09-03 18:10:28 +02:00
Robert Schmidt bd041a34aa use changed RAN API, set scheduler for new slice 2018-09-03 18:10:28 +02:00
Robert Schmidt 6e5a2f45ce FlexRAN: set deleted slice configuration to zero 2018-09-03 18:10:28 +02:00
Robert Schmidt 8804319322 FlexRAN MAC: before verifying slice params, set default vals
- in order to facilitate the steps as verification and parameter setting,
  slices are "filled up" with default values:
  * if it is an update, with the values of the concerned slice
  * if it is a new one, with the parameters of slice 0
- because of this, it can be assumed that all slices have all parameters
2018-09-03 18:10:28 +02:00
Robert Schmidt d8c2943f60 FlexRAN RAN API: slice creation does not set default vals 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 0778481f75 FlexRAN RAN API: extend scheduler set&get functions
- setter & getter have been renamed
- setter sets scheduler name and links to the corresponding function
- it also returns whether it succeeded (whether the scheduler callback is
  non-null)
- it performs a strdup on the scheduler name
- the remove function free the scheduler function name
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 5ceba4a2a6 FlexRAN: lock sc_update with mutex
Prevent sc_update from being changed by an incoming slice reconfiguration
change while writing data to the scheduler
2018-09-03 18:10:28 +02:00
Robert Schmidt 7b8c5cea52 FlexRAN: handle incoming UE-slice association message 2018-09-03 18:10:28 +02:00
Robert Schmidt 3a78d85f5e FlexRAN: Handle enb_config_reply reconfiguration message 2018-09-03 18:10:28 +02:00
Robert Schmidt 3d8586a5bf FlexRAN: Send Slice ID to which UE belongs in UE config reply 2018-09-03 18:10:28 +02:00
Robert Schmidt d93d73fe9b FlexRAN: Send the Slice Configuration in enb_config_reply 2018-09-03 18:10:28 +02:00
Robert Schmidt 92a3b07bca FlexRAN: send slice ID to which UE belongs + reformat
- flexran_agent_ue_config_reply() and flexran_agent_ue_state_change() send
  slice_id
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 9d75b5c3b7 Add FlexRAN RAN API for slice configuration
adds support for:
* create/remove slices
* change UE-slice association
* read/write slice parameters
* find slice index via ID
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 1e840a9996 FlexRAN: add slice configuration protobuf messages 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