Commit 5ce9858d authored by shahab SHARIATBAGHERI's avatar shahab SHARIATBAGHERI

uplink scheduling

parent 169f3346
...@@ -1044,6 +1044,39 @@ int flexran_agent_mac_destroy_dl_config(Protocol__FlexranMessage *msg) { ...@@ -1044,6 +1044,39 @@ int flexran_agent_mac_destroy_dl_config(Protocol__FlexranMessage *msg) {
return -1; 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) { void flexran_agent_get_pending_dl_mac_config(mid_t mod_id, Protocol__FlexranMessage **msg) {
struct lfds700_misc_prng_state ls; struct lfds700_misc_prng_state ls;
......
...@@ -24,12 +24,12 @@ message flexran_message { ...@@ -24,12 +24,12 @@ message flexran_message {
flex_ue_config_reply ue_config_reply_msg = 11; flex_ue_config_reply ue_config_reply_msg = 11;
flex_lc_config_request lc_config_request_msg = 12; flex_lc_config_request lc_config_request_msg = 12;
flex_lc_config_reply lc_config_reply_msg = 13; flex_lc_config_reply lc_config_reply_msg = 13;
flex_dl_mac_config dl_mac_config_msg = 14; flex_dl_mac_config dl_mac_config_msg = 14;
flex_ul_mac_config ul_mac_config_msg = 19;
flex_ue_state_change ue_state_change_msg = 15; flex_ue_state_change ue_state_change_msg = 15;
flex_control_delegation control_delegation_msg = 16; flex_control_delegation control_delegation_msg = 16;
flex_agent_reconfiguration agent_reconfiguration_msg = 17; flex_agent_reconfiguration agent_reconfiguration_msg = 17;
flex_rrc_triggering rrc_triggering = 18; flex_rrc_triggering rrc_triggering = 18;
flex_ul_mac_config ul_mac_config_msg = 19;
} }
} }
......
...@@ -32,14 +32,15 @@ enum flex_type { ...@@ -32,14 +32,15 @@ enum flex_type {
//Controller command messages //Controller command messages
FLPT_DL_MAC_CONFIG = 13; FLPT_DL_MAC_CONFIG = 13;
FLPT_UL_MAC_CONFIG = 14
;
// UE state change messages // UE state change messages
FLPT_UE_STATE_CHANGE = 14; FLPT_UE_STATE_CHANGE = 15;
// Control delegation messages // Control delegation messages
FLPT_DELEGATE_CONTROL = 15; FLPT_DELEGATE_CONTROL = 16;
FLPT_RECONFIGURE_AGENT = 16; FLPT_RECONFIGURE_AGENT = 17;
FLPT_RRC_TRIGGERING = 17; FLPT_RRC_TRIGGERING = 18;
} }
...@@ -398,7 +398,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -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); schedule_ulsch(module_idP,frameP,cooperation_flag,subframeP,4);//,calibration_flag);
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -438,7 +438,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -438,7 +438,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -453,7 +453,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -453,7 +453,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -472,7 +472,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -472,7 +472,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -511,7 +511,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -511,7 +511,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -553,7 +553,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -553,7 +553,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -591,7 +591,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -591,7 +591,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -634,7 +634,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -634,7 +634,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -679,7 +679,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -679,7 +679,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -724,7 +724,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -724,7 +724,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -796,7 +796,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -796,7 +796,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -812,7 +812,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -812,7 +812,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -879,7 +879,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -879,7 +879,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -971,7 +971,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -971,7 +971,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -1018,7 +1018,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -1018,7 +1018,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -1054,7 +1054,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -1054,7 +1054,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -1094,7 +1094,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -1094,7 +1094,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -1128,7 +1128,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -1128,7 +1128,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -1161,7 +1161,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -1161,7 +1161,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
...@@ -1222,7 +1222,7 @@ if (mac_agent_registered[module_idP]){ ...@@ -1222,7 +1222,7 @@ if (mac_agent_registered[module_idP]){
#else #else
if (mac_agent_registered[module_idP]){ 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 #endif
......
...@@ -790,6 +790,7 @@ void flexran_agent_schedule_ulsch_ue_spec(module_id_t module_idP, ...@@ -790,6 +790,7 @@ void flexran_agent_schedule_ulsch_ue_spec(module_id_t module_idP,
unsigned char sched_subframe) { unsigned char sched_subframe) {
// flexran_agent_mac_create_empty_ul_config(module_idP, ul_info);
uint16_t first_rb[MAX_NUM_CCs],i; uint16_t first_rb[MAX_NUM_CCs],i;
int CC_id; int CC_id;
...@@ -884,6 +885,11 @@ void flexran_agent_schedule_ulsch_rnti(module_id_t module_idP, ...@@ -884,6 +885,11 @@ void flexran_agent_schedule_ulsch_rnti(module_id_t module_idP,
// LOG_I(MAC,"entering ulsch preprocesor\n"); // LOG_I(MAC,"entering ulsch preprocesor\n");
_ulsch_scheduler_pre_processor(module_idP, _ulsch_scheduler_pre_processor(module_idP,
frameP, frameP,
subframeP, subframeP,
......
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