uplink scheduling
This commit is contained in:
@@ -1044,6 +1044,39 @@ int flexran_agent_mac_destroy_dl_config(Protocol__FlexranMessage *msg) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int flexran_agent_mac_create_empty_ul_config(mid_t mod_id, Protocol__FlexranMessage **msg) {
|
||||
|
||||
int xid = 0;
|
||||
Protocol__FlexHeader *header;
|
||||
if (flexran_create_header(xid, PROTOCOL__FLEX_TYPE__FLPT_UL_MAC_CONFIG, &header) != 0)
|
||||
goto error;
|
||||
|
||||
Protocol__FlexUlMacConfig *ul_mac_config_msg;
|
||||
ul_mac_config_msg = malloc(sizeof(Protocol__FlexUlMacConfig));
|
||||
if (ul_mac_config_msg == NULL) {
|
||||
goto error;
|
||||
}
|
||||
protocol__flex_ul_mac_config__init(ul_mac_config_msg);
|
||||
|
||||
ul_mac_config_msg->header = header;
|
||||
ul_mac_config_msg->has_sfn_sf = 1;
|
||||
ul_mac_config_msg->sfn_sf = flexran_get_sfn_sf(mod_id);
|
||||
|
||||
*msg = malloc(sizeof(Protocol__FlexranMessage));
|
||||
if(*msg == NULL)
|
||||
goto error;
|
||||
protocol__flexran_message__init(*msg);
|
||||
(*msg)->msg_case = PROTOCOL__FLEXRAN_MESSAGE__MSG_UL_MAC_CONFIG_MSG;
|
||||
(*msg)->msg_dir = PROTOCOL__FLEXRAN_DIRECTION__INITIATING_MESSAGE;
|
||||
(*msg)->ul_mac_config_msg = ul_mac_config_msg;
|
||||
|
||||
return 0;
|
||||
|
||||
error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
void flexran_agent_get_pending_dl_mac_config(mid_t mod_id, Protocol__FlexranMessage **msg) {
|
||||
|
||||
struct lfds700_misc_prng_state ls;
|
||||
|
||||
@@ -24,12 +24,12 @@ message flexran_message {
|
||||
flex_ue_config_reply ue_config_reply_msg = 11;
|
||||
flex_lc_config_request lc_config_request_msg = 12;
|
||||
flex_lc_config_reply lc_config_reply_msg = 13;
|
||||
flex_dl_mac_config dl_mac_config_msg = 14;
|
||||
flex_ul_mac_config ul_mac_config_msg = 19;
|
||||
flex_dl_mac_config dl_mac_config_msg = 14;
|
||||
flex_ue_state_change ue_state_change_msg = 15;
|
||||
flex_control_delegation control_delegation_msg = 16;
|
||||
flex_agent_reconfiguration agent_reconfiguration_msg = 17;
|
||||
flex_rrc_triggering rrc_triggering = 18;
|
||||
flex_ul_mac_config ul_mac_config_msg = 19;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,14 +32,15 @@ enum flex_type {
|
||||
|
||||
//Controller command messages
|
||||
FLPT_DL_MAC_CONFIG = 13;
|
||||
|
||||
FLPT_UL_MAC_CONFIG = 14
|
||||
;
|
||||
// UE state change messages
|
||||
FLPT_UE_STATE_CHANGE = 14;
|
||||
FLPT_UE_STATE_CHANGE = 15;
|
||||
|
||||
// Control delegation messages
|
||||
FLPT_DELEGATE_CONTROL = 15;
|
||||
FLPT_RECONFIGURE_AGENT = 16;
|
||||
FLPT_RRC_TRIGGERING = 17;
|
||||
FLPT_DELEGATE_CONTROL = 16;
|
||||
FLPT_RECONFIGURE_AGENT = 17;
|
||||
FLPT_RRC_TRIGGERING = 18;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -398,7 +398,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
|
||||
schedule_ulsch(module_idP,frameP,cooperation_flag,subframeP,4);//,calibration_flag);
|
||||
#else
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,4);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -438,7 +438,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,7);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -453,7 +453,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,8);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -472,7 +472,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,1,5);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -511,7 +511,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,2,6);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -553,7 +553,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,7);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -591,7 +591,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,3,7);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -634,7 +634,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,8);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -679,7 +679,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,4,8);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -724,7 +724,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,5,9);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -796,7 +796,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,2);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -812,7 +812,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,3);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -879,7 +879,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,6,0);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -971,7 +971,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,7,1);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1018,7 +1018,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,2);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1054,7 +1054,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,8,2);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1094,7 +1094,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,3);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1128,7 +1128,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,3);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1161,7 +1161,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,subframeP,4);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -1222,7 +1222,7 @@ if (mac_agent_registered[module_idP]){
|
||||
#else
|
||||
|
||||
if (mac_agent_registered[module_idP]){
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,0,4);
|
||||
agent_mac_xface[module_idP]->flexran_agent_schedule_ul_spec(module_idP,frameP,cooperation_flag,9,3);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -790,6 +790,7 @@ void flexran_agent_schedule_ulsch_ue_spec(module_id_t module_idP,
|
||||
unsigned char sched_subframe) {
|
||||
|
||||
|
||||
// flexran_agent_mac_create_empty_ul_config(module_idP, ul_info);
|
||||
|
||||
uint16_t first_rb[MAX_NUM_CCs],i;
|
||||
int CC_id;
|
||||
@@ -884,6 +885,11 @@ void flexran_agent_schedule_ulsch_rnti(module_id_t module_idP,
|
||||
|
||||
// LOG_I(MAC,"entering ulsch preprocesor\n");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
_ulsch_scheduler_pre_processor(module_idP,
|
||||
frameP,
|
||||
subframeP,
|
||||
|
||||
Reference in New Issue
Block a user