Introduce configuration for maximum UE ULSCH inactivity
This commit is contained in:
@@ -230,6 +230,7 @@ MACRLCs = (
|
|||||||
num_cc = 1;
|
num_cc = 1;
|
||||||
tr_s_preference = "local_L1";
|
tr_s_preference = "local_L1";
|
||||||
tr_n_preference = "local_RRC";
|
tr_n_preference = "local_RRC";
|
||||||
|
ulsch_max_slots_inactivity = 1;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -211,6 +211,7 @@ MACRLCs = (
|
|||||||
num_cc = 1;
|
num_cc = 1;
|
||||||
tr_s_preference = "local_L1";
|
tr_s_preference = "local_L1";
|
||||||
tr_n_preference = "local_RRC";
|
tr_n_preference = "local_RRC";
|
||||||
|
ulsch_max_slots_inactivity = 1;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTC "remote_s_portc"
|
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTC "remote_s_portc"
|
||||||
#define CONFIG_STRING_MACRLC_LOCAL_S_PORTD "local_s_portd"
|
#define CONFIG_STRING_MACRLC_LOCAL_S_PORTD "local_s_portd"
|
||||||
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTD "remote_s_portd"
|
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTD "remote_s_portd"
|
||||||
|
#define CONFIG_STRING_MACRLC_ULSCH_MAX_SLOTS_INACTIVITY "ulsch_max_slots_inactivity"
|
||||||
|
|
||||||
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
/* MacRLC configuration parameters */
|
/* MacRLC configuration parameters */
|
||||||
@@ -79,6 +79,7 @@
|
|||||||
{CONFIG_STRING_MACRLC_REMOTE_S_PORTC, NULL, 0, uptr:NULL, defintval:50020, TYPE_UINT, 0}, \
|
{CONFIG_STRING_MACRLC_REMOTE_S_PORTC, NULL, 0, uptr:NULL, defintval:50020, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_MACRLC_LOCAL_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \
|
{CONFIG_STRING_MACRLC_LOCAL_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \
|
||||||
{CONFIG_STRING_MACRLC_REMOTE_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \
|
{CONFIG_STRING_MACRLC_REMOTE_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \
|
||||||
|
{CONFIG_STRING_MACRLC_ULSCH_MAX_SLOTS_INACTIVITY, "Maximum number of slots before a UE is scheduled ULSCH due to inactivity", 0, uptr:NULL, defintval:200, TYPE_UINT, 0}, \
|
||||||
}
|
}
|
||||||
#define MACRLC_CC_IDX 0
|
#define MACRLC_CC_IDX 0
|
||||||
#define MACRLC_TRANSPORT_N_PREFERENCE_IDX 1
|
#define MACRLC_TRANSPORT_N_PREFERENCE_IDX 1
|
||||||
@@ -97,5 +98,6 @@
|
|||||||
#define MACRLC_REMOTE_S_PORTC_IDX 14
|
#define MACRLC_REMOTE_S_PORTC_IDX 14
|
||||||
#define MACRLC_LOCAL_S_PORTD_IDX 15
|
#define MACRLC_LOCAL_S_PORTD_IDX 15
|
||||||
#define MACRLC_REMOTE_S_PORTD_IDX 16
|
#define MACRLC_REMOTE_S_PORTD_IDX 16
|
||||||
|
#define MACRLC_ULSCH_MAX_SLOTS_INACTIVITY 17
|
||||||
/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
//#include "L1_paramdef.h"
|
//#include "L1_paramdef.h"
|
||||||
#include "L1_nr_paramdef.h"
|
#include "L1_nr_paramdef.h"
|
||||||
#include "MACRLC_paramdef.h"
|
#include "MACRLC_nr_paramdef.h"
|
||||||
#include "common/config/config_userapi.h"
|
#include "common/config/config_userapi.h"
|
||||||
//#include "RRC_config_tools.h"
|
//#include "RRC_config_tools.h"
|
||||||
#include "gnb_paramdef.h"
|
#include "gnb_paramdef.h"
|
||||||
@@ -698,6 +698,7 @@ void RCconfig_nr_macrlc() {
|
|||||||
}else { // other midhaul
|
}else { // other midhaul
|
||||||
AssertFatal(1==0,"MACRLC %d: %s unknown southbound midhaul\n",j,*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr));
|
AssertFatal(1==0,"MACRLC %d: %s unknown southbound midhaul\n",j,*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr));
|
||||||
}
|
}
|
||||||
|
RC.nrmac[j]->ulsch_max_slots_inactivity = *(MacRLC_ParamList.paramarray[j][MACRLC_ULSCH_MAX_SLOTS_INACTIVITY].uptr);
|
||||||
}// for (j=0;j<RC.nb_nr_macrlc_inst;j++)
|
}// for (j=0;j<RC.nb_nr_macrlc_inst;j++)
|
||||||
}else {// MacRLC_ParamList.numelt > 0
|
}else {// MacRLC_ParamList.numelt > 0
|
||||||
AssertFatal (0,"No " CONFIG_STRING_MACRLC_LIST " configuration found");
|
AssertFatal (0,"No " CONFIG_STRING_MACRLC_LIST " configuration found");
|
||||||
|
|||||||
@@ -762,7 +762,7 @@ bool nr_UE_is_to_be_scheduled(module_id_t mod_id, int CC_id, int UE_id, frame_t
|
|||||||
* (2) there is a scheduling request
|
* (2) there is a scheduling request
|
||||||
* (3) or we did not schedule it in more than 10 frames */
|
* (3) or we did not schedule it in more than 10 frames */
|
||||||
const bool has_data = sched_ctrl->estimated_ul_buffer > sched_ctrl->sched_ul_bytes;
|
const bool has_data = sched_ctrl->estimated_ul_buffer > sched_ctrl->sched_ul_bytes;
|
||||||
const bool high_inactivity = diff >= 10 * n;
|
const bool high_inactivity = diff >= nrmac->ulsch_max_slots_inactivity;
|
||||||
LOG_D(MAC,
|
LOG_D(MAC,
|
||||||
"%4d.%2d UL inactivity %d slots has_data %d SR %d\n",
|
"%4d.%2d UL inactivity %d slots has_data %d SR %d\n",
|
||||||
frame,
|
frame,
|
||||||
|
|||||||
@@ -721,6 +721,9 @@ typedef struct gNB_MAC_INST_s {
|
|||||||
/// points to the right UL slot
|
/// points to the right UL slot
|
||||||
int *preferred_ul_tda[MAX_NUM_BWP];
|
int *preferred_ul_tda[MAX_NUM_BWP];
|
||||||
|
|
||||||
|
/// maximum number of slots before a UE will be scheduled ULSCH automatically
|
||||||
|
uint32_t ulsch_max_slots_inactivity;
|
||||||
|
|
||||||
/// DL preprocessor for differentiated scheduling
|
/// DL preprocessor for differentiated scheduling
|
||||||
nr_pp_impl_dl pre_processor_dl;
|
nr_pp_impl_dl pre_processor_dl;
|
||||||
/// UL preprocessor for differentiated scheduling
|
/// UL preprocessor for differentiated scheduling
|
||||||
|
|||||||
Reference in New Issue
Block a user