- 03 Sep, 2018 40 commits
-
-
Robert Schmidt authored
* give the correct UE_id instead an index of the protobuf message (they can diverge from each other) * in the PDCP part of the RAN API, the RAN API has to make the conversion UE_id (MAC) to UID (PDCP) * a follow up commit could clean up the interfaces: - the MAC functions take the UE_id - the RRC functions take the RNTI - the PDCP functions take the UID this would mean the caller has to find those ID but would decrease computations since the RAN API functions do not have to do that themselves
-
Robert Schmidt authored
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.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Navid Nikaein authored
-
Navid Nikaein authored
-
Robert Schmidt authored
-
Robert Schmidt authored
- 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
-
Robert Schmidt authored
-
Robert Schmidt authored
don't fail in library utility function, return with error code instead and let application decide what is best on how to proceed
-
Robert Schmidt authored
-
Robert Schmidt authored
* 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
-
Robert Schmidt authored
* put mutex lock around instance_prach * destroy attributes
-
Robert Schmidt authored
-
Robert Schmidt authored
* 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
-
Robert Schmidt authored
* 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
-
Robert Schmidt authored
-
Robert Schmidt authored
* 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()
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
* 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
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
- 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
-
Robert Schmidt authored
-
Robert Schmidt authored
- whether a scheduler callback has to be changed is now handled by the agent
-
Robert Schmidt authored
-
Robert Schmidt authored
- 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
-
Robert Schmidt authored
- 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
-
Robert Schmidt authored
-
Robert Schmidt authored
- 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
-
Robert Schmidt authored
- 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
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Prevent sc_update from being changed by an incoming slice reconfiguration change while writing data to the scheduler
-