Commit 0df80e64 authored by Guido Casati's avatar Guido Casati Committed by Robert Schmidt

Replaced lcid_mask with arrays logic

- this will be later used to prioritise the LCs
parent 68471d05
...@@ -58,19 +58,42 @@ void process_rlcBearerConfig(struct NR_CellGroupConfig__rlc_BearerToAddModList * ...@@ -58,19 +58,42 @@ void process_rlcBearerConfig(struct NR_CellGroupConfig__rlc_BearerToAddModList *
struct NR_CellGroupConfig__rlc_BearerToReleaseList *rlc_bearer2release_list, struct NR_CellGroupConfig__rlc_BearerToReleaseList *rlc_bearer2release_list,
NR_UE_sched_ctrl_t *sched_ctrl) { NR_UE_sched_ctrl_t *sched_ctrl) {
if (rlc_bearer2release_list) {
for (int i = 0; i < rlc_bearer2release_list->list.count; i++) {
for (int idx = 0; idx < sched_ctrl->dl_lc_num; idx++) {
if (sched_ctrl->dl_lc_ids[idx] == *rlc_bearer2release_list->list.array[i]) {
const int remaining_lcs = sched_ctrl->dl_lc_num - idx - 1;
memmove(&sched_ctrl->dl_lc_ids[idx], &sched_ctrl->dl_lc_ids[idx + 1], sizeof(sched_ctrl->dl_lc_ids[idx]) * remaining_lcs);
sched_ctrl->dl_lc_num--;
break;
}
}
}
}
if (rlc_bearer2add_list) if (rlc_bearer2add_list) {
// keep lcids // keep lcids
for (int i=0;i<rlc_bearer2add_list->list.count;i++) { for (int i = 0; i < rlc_bearer2add_list->list.count; i++) {
sched_ctrl->lcid_mask |= (1<<rlc_bearer2add_list->list.array[i]->logicalChannelIdentity); const int lcid = rlc_bearer2add_list->list.array[i]->logicalChannelIdentity;
LOG_I(NR_MAC,"Adding LCID %d (%s %d)\n", bool found = false;
(int)rlc_bearer2add_list->list.array[i]->logicalChannelIdentity, for (int idx = 0; idx < sched_ctrl->dl_lc_num; idx++) {
rlc_bearer2add_list->list.array[i]->logicalChannelIdentity<4 ? "SRB" : "DRB", if (sched_ctrl->dl_lc_ids[idx] == lcid) {
(int)rlc_bearer2add_list->list.array[i]->logicalChannelIdentity); found = true;
} break;
if (rlc_bearer2release_list) }
for (int i=0;i<rlc_bearer2release_list->list.count;i++) }
sched_ctrl->lcid_mask |= (1<<*rlc_bearer2release_list->list.array[i]);
if (!found) {
sched_ctrl->dl_lc_num++;
sched_ctrl->dl_lc_ids[sched_ctrl->dl_lc_num - 1] = lcid;
LOG_D(NR_MAC, "Adding LCID %d (%s %d)\n", lcid, lcid < 4 ? "SRB" : "DRB", lcid);
}
}
}
LOG_D(NR_MAC, "In %s: total num of active bearers %d) \n",
__FUNCTION__,
sched_ctrl->dl_lc_num);
} }
......
...@@ -329,7 +329,6 @@ void nr_preprocessor_phytest(module_id_t module_id, ...@@ -329,7 +329,6 @@ void nr_preprocessor_phytest(module_id_t module_id,
0, 0,
0); 0);
sched_ctrl->num_total_bytes += sched_ctrl->rlc_status[lcid].bytes_in_buffer; sched_ctrl->num_total_bytes += sched_ctrl->rlc_status[lcid].bytes_in_buffer;
sched_ctrl->lcid_to_schedule = lcid;
uint8_t nr_of_candidates; uint8_t nr_of_candidates;
for (int i=0; i<5; i++) { for (int i=0; i<5; i++) {
......
...@@ -2152,6 +2152,7 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG ...@@ -2152,6 +2152,7 @@ int add_new_nr_ue(module_id_t mod_idP, rnti_t rntiP, NR_CellGroupConfig_t *CellG
if (!get_softmodem_params()->phy_test && !get_softmodem_params()->do_ra && !get_softmodem_params()->sa) { if (!get_softmodem_params()->phy_test && !get_softmodem_params()->do_ra && !get_softmodem_params()->sa) {
sched_ctrl->lcid_mask = 1<<DL_SCH_LCID_DTCH; sched_ctrl->lcid_mask = 1<<DL_SCH_LCID_DTCH;
} }
sched_ctrl->dl_lc_num = 0;
sched_ctrl->ta_frame = 0; sched_ctrl->ta_frame = 0;
sched_ctrl->ta_update = 31; sched_ctrl->ta_update = 31;
sched_ctrl->ta_apply = false; sched_ctrl->ta_apply = false;
......
...@@ -604,8 +604,6 @@ typedef struct { ...@@ -604,8 +604,6 @@ typedef struct {
/// Estimation of HARQ from BLER /// Estimation of HARQ from BLER
NR_DL_bler_stats_t dl_bler_stats; NR_DL_bler_stats_t dl_bler_stats;
int lcid_mask;
int lcid_to_schedule;
uint16_t ta_frame; uint16_t ta_frame;
int16_t ta_update; int16_t ta_update;
bool ta_apply; bool ta_apply;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment