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 ...@@ -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_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_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 @@ ...@@ -40,7 +40,7 @@
#define SS_RRC_PDU_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_rrc_pdu_ind #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_SYS_PROXY_MSG_CNF(mSGpTR) (mSGpTR)->ittiMsg.udp_data_ind
#define SS_PAGING_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_paging_ind #define SS_PAGING_IND(mSGpTR) (mSGpTR)->ittiMsg.ss_paging_ind
#define SS_L1MACIND_CTRL(mSGpTR) (mSGpTR)->ittiMsg.ss_l1macind_ctrl
/** VNG */ /** VNG */
#define SS_VNG_PROXY_REQ(mSGpTR) (mSGpTR)->ittiMsg.ss_vng_proxy_req #define SS_VNG_PROXY_REQ(mSGpTR) (mSGpTR)->ittiMsg.ss_vng_proxy_req
...@@ -119,6 +119,10 @@ typedef struct ss_req_pdcp_cnt_s { ...@@ -119,6 +119,10 @@ typedef struct ss_req_pdcp_cnt_s {
uint8_t rb_id; uint8_t rb_id;
} ss_req_pdcp_cnt_t; } ss_req_pdcp_cnt_t;
typedef struct ss_l1macind_ctrl_s {
bool rachpreamble_enable;
} ss_l1macind_ctrl_t;
/** SRB */ /** SRB */
typedef struct ss_rrc_pdu_req_s { typedef struct ss_rrc_pdu_req_s {
uint8_t srb_id; uint8_t srb_id;
......
...@@ -301,6 +301,11 @@ void *mac_enb_task(void *arg) ...@@ -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); eNB_Config_Local_DRX(ITTI_MSG_DESTINATION_INSTANCE(received_msg), &received_msg->ittiMsg.rrc_mac_drx_config_req);
break; 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: case TERMINATE_MESSAGE:
LOG_W(MAC, " *** Exiting MAC thread\n"); LOG_W(MAC, " *** Exiting MAC thread\n");
itti_exit_task(); itti_exit_task();
......
...@@ -1372,6 +1372,29 @@ static void sys_handle_enquire_timing(ss_set_timinfo_t *tinfo) ...@@ -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 * Function : sys_handle_as_security_req
* Description: Funtion handler of SYS_PORT. Handles the UE * 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 ...@@ -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; pg_timinfo.sf = req->Common.TimingInfo.v.SubFrame.Subframe.v.Number;
sys_handle_paging_req(&(req->Request.v.Paging), pg_timinfo); sys_handle_paging_req(&(req->Request.v.Paging), pg_timinfo);
break; 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: case SystemRequest_Type_UNBOUND_VALUE:
LOG_A(ENB_SS, "[SYS] SystemRequest_Type_UNBOUND_VALUE received\n"); LOG_A(ENB_SS, "[SYS] SystemRequest_Type_UNBOUND_VALUE received\n");
break; break;
...@@ -1791,6 +1820,12 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req) ...@@ -1791,6 +1820,12 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
cnfType = SystemConfirm_Type_Paging; cnfType = SystemConfirm_Type_Paging;
reqCnfFlag_g = req->Common.ControlInfo.CnfFlag; reqCnfFlag_g = req->Common.ControlInfo.CnfFlag;
break; break;
case SystemRequest_Type_L1MacIndCtrl:
valid = TRUE;
sendDummyCnf = FALSE;
cnfType = SystemConfirm_Type_L1MacIndCtrl;
reqCnfFlag_g = req->Common.ControlInfo.CnfFlag;
break;
default: default:
valid = FALSE; valid = FALSE;
sendDummyCnf = FALSE; sendDummyCnf = FALSE;
......
...@@ -62,6 +62,7 @@ typedef struct ss_config_s { ...@@ -62,6 +62,7 @@ typedef struct ss_config_s {
int CBRA_flag; int CBRA_flag;
int mac_rlc_data_ind_frame; int mac_rlc_data_ind_frame;
int mac_rlc_data_ind_subframe; int mac_rlc_data_ind_subframe;
ss_l1macind_ctrl_t l1macind;
} ss_config_t; } 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