Commit 366df745 authored by Vaibhav Shrivastava's avatar Vaibhav Shrivastava

L1MACIND_CTRL Support

parent 3f5695f5
......@@ -38,6 +38,7 @@ MESSAGE_DEF(SS_VNG_PROXY_RESP, MESSAGE_PRIORITY_MED, ss_vng_proxy
MESSAGE_DEF(SS_VTP_PROXY_UPD, MESSAGE_PRIORITY_MED, ss_vtp_proxy_upd_t , ss_vtp_proxy_upd)
MESSAGE_DEF(SS_VTP_PROXY_ACK, MESSAGE_PRIORITY_MED, ss_vtp_proxy_ack_t , ss_vtp_proxy_ack)
MESSAGE_DEF(SS_VT_TIME_OUT, MESSAGE_PRIORITY_MED, ss_vt_time_out_t , ss_vt_time_out)
MESSAGE_DEF(SS_VT_TIME_OUT, MESSAGE_PRIORITY_MED, ss_vt_time_out_t , ss_vt_time_out)
MESSAGE_DEF(SS_SS_PAGING_IND, MESSAGE_PRIORITY_MED, ss_paging_ind_t , ss_paging_ind)
MESSAGE_DEF(SS_SS_PAGING_IND, MESSAGE_PRIORITY_MED, ss_paging_ind_t , ss_paging_ind)
MESSAGE_DEF(SS_L1MACIND_CTRL, MESSAGE_PRIORITY_MED, ss_l1macind_ctrl_t , ss_l1macind_ctrl)
......@@ -40,7 +40,7 @@
#define SS_RRC_PDU_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_rrc_pdu_ind
#define SS_SYS_PROXY_MSG_CNF(mSGpTR) (mSGpTR)->ittiMsg.udp_data_ind
#define SS_PAGING_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_paging_ind
#define SS_L1MACIND_CTRL(mSGpTR) (mSGpTR)->ittiMsg.ss_l1macind_ctrl
/** VNG */
#define SS_VNG_PROXY_REQ(mSGpTR) (mSGpTR)->ittiMsg.ss_vng_proxy_req
......@@ -119,6 +119,10 @@ typedef struct ss_req_pdcp_cnt_s {
uint8_t rb_id;
} ss_req_pdcp_cnt_t;
typedef struct ss_l1macind_ctrl_s {
bool rachpreamble_enable;
} ss_l1macind_ctrl_t;
/** SRB */
typedef struct ss_rrc_pdu_req_s {
uint8_t srb_id;
......
......@@ -301,6 +301,11 @@ void *mac_enb_task(void *arg)
eNB_Config_Local_DRX(ITTI_MSG_DESTINATION_INSTANCE(received_msg), &received_msg->ittiMsg.rrc_mac_drx_config_req);
break;
case SS_L1MACIND_CTRL:
LOG_I(MAC, "MAC Task Received SS_L1MACIND_CTRL\n");
RC.ss.l1macind.rachpreamble_enable = received_msg->ittiMsg.ss_l1macind_ctrl.rachpreamble_enable;
break;
case TERMINATE_MESSAGE:
LOG_W(MAC, " *** Exiting MAC thread\n");
itti_exit_task();
......
......@@ -1372,6 +1372,29 @@ static void sys_handle_enquire_timing(ss_set_timinfo_t *tinfo)
}
}
static void sys_handle_l1macind_ctrl(struct L1Mac_IndicationControl_Type *L1MacInd_Ctrl)
{
MessageDef *message_p = itti_alloc_new_message(TASK_SYS, INSTANCE_DEFAULT, SS_L1MACIND_CTRL);
if (message_p)
{
LOG_A(ENB_SS,"[SYS] l1macind ctrl, prach preamble: %d\n",L1MacInd_Ctrl->RachPreamble.d);
if(L1MacInd_Ctrl->RachPreamble.d)
{
if(IndicationAndControlMode_enable == L1MacInd_Ctrl->RachPreamble.v)
{
SS_L1MACIND_CTRL(message_p).rachpreamble_enable = true;
} else {
SS_L1MACIND_CTRL(message_p).rachpreamble_enable = false;
}
}
int send_res = itti_send_msg_to_task(TASK_MAC_ENB, INSTANCE_DEFAULT, message_p);
if (send_res < 0)
{
LOG_A(ENB_SS, "[SYS] Error sending to MAC");
}
}
}
/*
* Function : sys_handle_as_security_req
* Description: Funtion handler of SYS_PORT. Handles the UE
......@@ -1664,6 +1687,12 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
pg_timinfo.sf = req->Common.TimingInfo.v.SubFrame.Subframe.v.Number;
sys_handle_paging_req(&(req->Request.v.Paging), pg_timinfo);
break;
case SystemRequest_Type_L1MacIndCtrl:
LOG_A(ENB_SS, "[SYS] SystemRequest_Type L1MacIndCtrl received\n");
sys_handle_l1macind_ctrl(&(req->Request.v.L1MacIndCtrl));
break;
case SystemRequest_Type_UNBOUND_VALUE:
LOG_A(ENB_SS, "[SYS] SystemRequest_Type_UNBOUND_VALUE received\n");
break;
......@@ -1791,6 +1820,12 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
cnfType = SystemConfirm_Type_Paging;
reqCnfFlag_g = req->Common.ControlInfo.CnfFlag;
break;
case SystemRequest_Type_L1MacIndCtrl:
valid = TRUE;
sendDummyCnf = FALSE;
cnfType = SystemConfirm_Type_L1MacIndCtrl;
reqCnfFlag_g = req->Common.ControlInfo.CnfFlag;
break;
default:
valid = FALSE;
sendDummyCnf = FALSE;
......
......@@ -62,6 +62,7 @@ typedef struct ss_config_s {
int CBRA_flag;
int mac_rlc_data_ind_frame;
int mac_rlc_data_ind_subframe;
ss_l1macind_ctrl_t l1macind;
} ss_config_t;
......
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