Commit 3fa8ff7d authored by hscuser's avatar hscuser Committed by jperaldi

New Structure created for Cell-specific data

parent 868e37e3
...@@ -50,8 +50,9 @@ ...@@ -50,8 +50,9 @@
#include "flexran_agent_extern.h" #include "flexran_agent_extern.h"
#include "openair2/F1AP/f1ap_du_rrc_message_transfer.h" #include "openair2/F1AP/f1ap_du_rrc_message_transfer.h"
#include "openair3/SS/ss_eNB_context.h"
extern RAN_CONTEXT_t RC; extern RAN_CONTEXT_t RC;
extern SSConfigContext_t SS_context;
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
int8_t int8_t
mac_rrc_data_req( mac_rrc_data_req(
...@@ -340,7 +341,7 @@ mac_rrc_data_ind( ...@@ -340,7 +341,7 @@ mac_rrc_data_ind(
ctxt.brOption = brOption; ctxt.brOption = brOption;
//#ifdef ENB_SS //#ifdef ENB_SS
if (RC.ss.mode >= SS_SOFTMODEM && RC.ss.State >= SS_STATE_CELL_ACTIVE) if (RC.ss.mode >= SS_SOFTMODEM && SS_context.SSCell_list[0].State >= SS_STATE_CELL_ACTIVE)
{ {
LOG_I(RRC,"RRC Sending CCCH PDU_IND to SS \n"); LOG_I(RRC,"RRC Sending CCCH PDU_IND to SS \n");
MessageDef *message_p = itti_alloc_new_message (TASK_RRC_ENB, 0, SS_RRC_PDU_IND); MessageDef *message_p = itti_alloc_new_message (TASK_RRC_ENB, 0, SS_RRC_PDU_IND);
......
...@@ -38,11 +38,12 @@ ...@@ -38,11 +38,12 @@
#include "intertask_interface.h" #include "intertask_interface.h"
#include "openair3/SS/ss_eNB_context.h"
//#define RRC_DATA_REQ_DEBUG //#define RRC_DATA_REQ_DEBUG
//#define DEBUG_RRC 1 //#define DEBUG_RRC 1
extern RAN_CONTEXT_t RC; extern RAN_CONTEXT_t RC;
extern SSConfigContext_t SS_context;
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
uint8_t uint8_t
rrc_data_req( rrc_data_req(
...@@ -122,7 +123,7 @@ rrc_data_ind( ...@@ -122,7 +123,7 @@ rrc_data_ind(
ctxt_pP->rnti); ctxt_pP->rnti);
//#ifdef ENB_SS //#ifdef ENB_SS
if (RC.ss.mode >= SS_SOFTMODEM && RC.ss.State >= SS_STATE_CELL_ACTIVE) if (RC.ss.mode >= SS_SOFTMODEM && SS_context.SSCell_list[0].State >= SS_STATE_CELL_ACTIVE)
{ {
LOG_I(RRC,"L2 Interface Sending DCCH PDU_IND to SS \n"); LOG_I(RRC,"L2 Interface Sending DCCH PDU_IND to SS \n");
MessageDef *message_p = itti_alloc_new_message (TASK_RRC_ENB, 0, SS_RRC_PDU_IND); MessageDef *message_p = itti_alloc_new_message (TASK_RRC_ENB, 0, SS_RRC_PDU_IND);
......
...@@ -47,7 +47,9 @@ typedef enum SSEvents_E { ...@@ -47,7 +47,9 @@ typedef enum SSEvents_E {
SS_VNG_INVALID_MSG SS_VNG_INVALID_MSG
} SSEventsE; } SSEventsE;
typedef struct SSConfigContext_s { /** Structure Containing Cell-specific values only */
typedef struct SSCellConfigContext_s{
int State;
uint16_t dl_earfcn; uint16_t dl_earfcn;
uint16_t ul_earfcn; uint16_t ul_earfcn;
uint32_t dl_freq; uint32_t dl_freq;
...@@ -58,7 +60,12 @@ typedef struct SSConfigContext_s { ...@@ -58,7 +60,12 @@ typedef struct SSConfigContext_s {
//TO DO: Need to remove one of the following cellId //TO DO: Need to remove one of the following cellId
EUTRA_CellId_Type ttcn_cell_id; EUTRA_CellId_Type ttcn_cell_id;
uint16_t eutra_cellId; uint16_t eutra_cellId;
uint16_t ss_rnti_g;
} SSCellConfigContext_t;
typedef struct SSConfigContext_s {
/** List of Cells */
SSCellConfigContext_t SSCell_list[8];
/** Timing info */ /** Timing info */
uint16_t sfn; uint16_t sfn;
uint8_t sf; uint8_t sf;
...@@ -67,6 +74,17 @@ typedef struct SSConfigContext_s { ...@@ -67,6 +74,17 @@ typedef struct SSConfigContext_s {
hash_table_t *vt_timer_table ; // key is SFN_SF hash_table_t *vt_timer_table ; // key is SFN_SF
/** TODO: To add more */ /** TODO: To add more */
} SSConfigContext_t[8];
} SSConfigContext_t;
typedef enum {
SS_STATE_NOT_CONFIGURED = 0,
SS_STATE_CELL_CONFIGURED,
SS_STATE_CELL_ACTIVE,
SS_STATE_AS_SECURITY_ACTIVE,
SS_STATE_AS_RBS_ACTIVE,
SS_STATE_CELL_BROADCASTING,
SS_STATE_MAX_STATE
} SS_STATE_t;
#endif /* _SS_ENB_CONTEXT_ */ #endif /* _SS_ENB_CONTEXT_ */
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
#include "ss_eNB_context.h" #include "ss_eNB_context.h"
extern RAN_CONTEXT_t RC; extern RAN_CONTEXT_t RC;
extern uint16_t ss_rnti_g; //extern uint16_t ss_rnti_g;
static acpCtx_t ctx_drb_g = NULL; static acpCtx_t ctx_drb_g = NULL;
extern SSConfigContext_t SS_context; extern SSConfigContext_t SS_context;
...@@ -80,7 +80,7 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind){ ...@@ -80,7 +80,7 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind){
size_t msgSize = size; size_t msgSize = size;
memset(&ind, 0, sizeof(ind)); memset(&ind, 0, sizeof(ind));
ind.Common.CellId = SS_context[0].eutra_cellId; ind.Common.CellId = SS_context.SSCell_list[0].eutra_cellId;
//Populated the Routing Info //Populated the Routing Info
ind.Common.RoutingInfo.d = RoutingInfo_Type_RadioBearerId; ind.Common.RoutingInfo.d = RoutingInfo_Type_RadioBearerId;
...@@ -106,7 +106,7 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind){ ...@@ -106,7 +106,7 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind){
ind.Common.RlcBearerRouting.d = true; ind.Common.RlcBearerRouting.d = true;
ind.Common.RlcBearerRouting.v.d = RlcBearerRouting_Type_EUTRA; ind.Common.RlcBearerRouting.v.d = RlcBearerRouting_Type_EUTRA;
ind.Common.RlcBearerRouting.v.v.EUTRA = SS_context[0].eutra_cellId; ind.Common.RlcBearerRouting.v.v.EUTRA = SS_context.SSCell_list[0].eutra_cellId;
//Populating the PDU //Populating the PDU
ind.U_Plane.SubframeData.NoOfTTIs = 1; ind.U_Plane.SubframeData.NoOfTTIs = 1;
...@@ -127,7 +127,7 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind){ ...@@ -127,7 +127,7 @@ static void ss_send_drb_data(ss_drb_pdu_ind_t *pdu_ind){
LOG_A(ENB_APP, "[SS_DRB][DRB_COMMON_IND] acpDrbProcessToSSEncSrv Failure\n"); LOG_A(ENB_APP, "[SS_DRB][DRB_COMMON_IND] acpDrbProcessToSSEncSrv Failure\n");
return; return;
} }
LOG_A(ENB_APP, "[SS_DRB][DRB_COMMON_IND] Buffer msgSize=%d (!!2) to EUTRACell %d", (int)msgSize,SS_context[0].eutra_cellId); LOG_A(ENB_APP, "[SS_DRB][DRB_COMMON_IND] Buffer msgSize=%d (!!2) to EUTRACell %d", (int)msgSize,SS_context.SSCell_list[0].eutra_cellId);
//Send Message //Send Message
status = acpSendMsg(ctx_drb_g, msgSize, buffer); status = acpSendMsg(ctx_drb_g, msgSize, buffer);
...@@ -166,7 +166,7 @@ static void ss_task_handle_drb_pdu_req(struct DRB_COMMON_REQ *req) ...@@ -166,7 +166,7 @@ static void ss_task_handle_drb_pdu_req(struct DRB_COMMON_REQ *req)
} }
} }
SS_DRB_PDU_REQ(message_p).rnti = ss_rnti_g; SS_DRB_PDU_REQ(message_p).rnti = SS_context.SSCell_list[0].ss_rnti_g;
int send_res = itti_send_msg_to_task(TASK_RRC_ENB, instance_g, message_p); int send_res = itti_send_msg_to_task(TASK_RRC_ENB, instance_g, message_p);
if (send_res < 0) if (send_res < 0)
...@@ -231,14 +231,14 @@ ss_eNB_read_from_drb_socket(acpCtx_t ctx){ ...@@ -231,14 +231,14 @@ ss_eNB_read_from_drb_socket(acpCtx_t ctx){
LOG_A(ENB_APP, "[SS_DRB][DRB_COMMON_REQ] acpDrbProcessFromSSDecSrv Failed\n"); LOG_A(ENB_APP, "[SS_DRB][DRB_COMMON_REQ] acpDrbProcessFromSSDecSrv Failed\n");
break; break;
} }
if(RC.ss.State >= SS_STATE_CELL_ACTIVE) if(SS_context.SSCell_list[0].State >= SS_STATE_CELL_ACTIVE)
{ {
LOG_A(ENB_APP, "[SS_DRB][DRB_COMMON_REQ] DRB_COMMON_REQ Received in CELL_ACTIVE\n"); LOG_A(ENB_APP, "[SS_DRB][DRB_COMMON_REQ] DRB_COMMON_REQ Received in CELL_ACTIVE\n");
ss_task_handle_drb_pdu_req(req); ss_task_handle_drb_pdu_req(req);
} }
else else
{ {
LOG_W(ENB_APP, "[SS_DRB][DRB_COMMON_REQ] received in SS state %d \n", RC.ss.State); LOG_W(ENB_APP, "[SS_DRB][DRB_COMMON_REQ] received in SS state %d \n", SS_context.SSCell_list[0].State);
} }
acpDrbProcessFromSSFreeSrv(req); acpDrbProcessFromSSFreeSrv(req);
...@@ -272,19 +272,19 @@ void *ss_eNB_drb_process_itti_msg(void *notUsed) ...@@ -272,19 +272,19 @@ void *ss_eNB_drb_process_itti_msg(void *notUsed)
if (origin_task == TASK_SS_PORTMAN) if (origin_task == TASK_SS_PORTMAN)
{ {
LOG_D(ENB_APP, "[SS_DRB] DUMMY WAKEUP recevied from PORTMAN state %d \n", RC.ss.State); LOG_D(ENB_APP, "[SS_DRB] DUMMY WAKEUP recevied from PORTMAN state %d \n", SS_context.SSCell_list[0].State);
} }
else else
{ {
LOG_A(ENB_APP, "[SS_DRB] Received SS_DRB_PDU_IND from RRC PDCP\n"); LOG_A(ENB_APP, "[SS_DRB] Received SS_DRB_PDU_IND from RRC PDCP\n");
if (RC.ss.State >= SS_STATE_CELL_ACTIVE) if (SS_context.SSCell_list[0].State >= SS_STATE_CELL_ACTIVE)
{ {
instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg); instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg);
ss_send_drb_data(&received_msg->ittiMsg.ss_drb_pdu_ind); ss_send_drb_data(&received_msg->ittiMsg.ss_drb_pdu_ind);
} }
else else
{ {
LOG_A(ENB_APP, "ERROR [SS_DRB][SS_DRB_PDU_IND] received in SS state %d \n", RC.ss.State); LOG_A(ENB_APP, "ERROR [SS_DRB][SS_DRB_PDU_IND] received in SS state %d \n", SS_context.SSCell_list[0].State);
} }
} }
......
...@@ -210,7 +210,7 @@ void ss_port_man_send_data( ...@@ -210,7 +210,7 @@ void ss_port_man_send_data(
size_t msgSize = size; size_t msgSize = size;
memset(&cnf, 0, sizeof(cnf)); memset(&cnf, 0, sizeof(cnf));
cnf.Common.CellId = SS_context[0].eutra_cellId; cnf.Common.CellId = SS_context.SSCell_list[0].eutra_cellId;
cnf.Common.RoutingInfo.d = RoutingInfo_Type_None; cnf.Common.RoutingInfo.d = RoutingInfo_Type_None;
cnf.Common.RoutingInfo.v.None = true; cnf.Common.RoutingInfo.v.None = true;
cnf.Common.TimingInfo.d = TimingInfo_Type_Now; cnf.Common.TimingInfo.d = TimingInfo_Type_Now;
...@@ -363,7 +363,7 @@ static inline void ss_eNB_read_from_socket(acpCtx_t ctx) ...@@ -363,7 +363,7 @@ static inline void ss_eNB_read_from_socket(acpCtx_t ctx)
{ {
// No message (timeout on socket) // No message (timeout on socket)
//Send Dummy Wake up ITTI message to SRB task. //Send Dummy Wake up ITTI message to SRB task.
if (RC.ss.mode >= SS_SOFTMODEM && RC.ss.State >= SS_STATE_CELL_ACTIVE) if (RC.ss.mode >= SS_SOFTMODEM && SS_context.SSCell_list[0].State >= SS_STATE_CELL_ACTIVE)
{ {
LOG_A(ENB_SS,"[SS-PORTMAN] Sending Wake up signal to SRB task \n"); LOG_A(ENB_SS,"[SS-PORTMAN] Sending Wake up signal to SRB task \n");
MessageDef *message_p = itti_alloc_new_message(TASK_SS_PORTMAN, 0, SS_RRC_PDU_IND); MessageDef *message_p = itti_alloc_new_message(TASK_SS_PORTMAN, 0, SS_RRC_PDU_IND);
......
...@@ -62,7 +62,7 @@ SSConfigContext_t SS_context; ...@@ -62,7 +62,7 @@ SSConfigContext_t SS_context;
static acpCtx_t ctx_srb_g = NULL; static acpCtx_t ctx_srb_g = NULL;
static uint16_t rnti_g = 0; static uint16_t rnti_g = 0;
static instance_t instance_g = 0; static instance_t instance_g = 0;
uint16_t ss_rnti_g = 0; //uint16_t ss_rnti_g = 0;
enum MsgUserId enum MsgUserId
{ {
...@@ -104,10 +104,10 @@ static void ss_send_srb_data(ss_rrc_pdu_ind_t *pdu_ind) ...@@ -104,10 +104,10 @@ static void ss_send_srb_data(ss_rrc_pdu_ind_t *pdu_ind)
DevAssert(pdu_ind->sdu_size >= 0); DevAssert(pdu_ind->sdu_size >= 0);
DevAssert(pdu_ind->srb_id >= 0); DevAssert(pdu_ind->srb_id >= 0);
rnti_g = pdu_ind->rnti; rnti_g = pdu_ind->rnti;
ss_rnti_g = rnti_g; SS_context.SSCell_list[0].ss_rnti_g = rnti_g;
size_t msgSize = size; size_t msgSize = size;
memset(&ind, 0, sizeof(ind)); memset(&ind, 0, sizeof(ind));
ind.Common.CellId = SS_context[0].eutra_cellId; ind.Common.CellId = SS_context.SSCell_list[0].eutra_cellId;
// Populated the Routing Info // Populated the Routing Info
ind.Common.RoutingInfo.d = RoutingInfo_Type_RadioBearerId; ind.Common.RoutingInfo.d = RoutingInfo_Type_RadioBearerId;
...@@ -133,7 +133,7 @@ static void ss_send_srb_data(ss_rrc_pdu_ind_t *pdu_ind) ...@@ -133,7 +133,7 @@ static void ss_send_srb_data(ss_rrc_pdu_ind_t *pdu_ind)
ind.Common.RlcBearerRouting.d = true; ind.Common.RlcBearerRouting.d = true;
ind.Common.RlcBearerRouting.v.d = RlcBearerRouting_Type_EUTRA; ind.Common.RlcBearerRouting.v.d = RlcBearerRouting_Type_EUTRA;
ind.Common.RlcBearerRouting.v.v.EUTRA = SS_context[0].eutra_cellId; ind.Common.RlcBearerRouting.v.v.EUTRA = SS_context.SSCell_list[0].eutra_cellId;
/* Populate and Send the EUTRA RRC PDU IND to Client */ /* Populate and Send the EUTRA RRC PDU IND to Client */
if (pdu_ind->srb_id == 0) if (pdu_ind->srb_id == 0)
...@@ -181,7 +181,7 @@ static void ss_send_srb_data(ss_rrc_pdu_ind_t *pdu_ind) ...@@ -181,7 +181,7 @@ static void ss_send_srb_data(ss_rrc_pdu_ind_t *pdu_ind)
LOG_A(ENB_SS, "[SS_SRB][EUTRA_RRC_PDU_IND] acpSysSrbProcessToSSEncSrv Failure\n"); LOG_A(ENB_SS, "[SS_SRB][EUTRA_RRC_PDU_IND] acpSysSrbProcessToSSEncSrv Failure\n");
return; return;
} }
LOG_A(ENB_SS, "[SS_SRB][EUTRA_RRC_PDU_IND] Buffer msgSize=%d (!!2) to EUTRACell %d", (int)msgSize,SS_context[0].eutra_cellId); LOG_A(ENB_SS, "[SS_SRB][EUTRA_RRC_PDU_IND] Buffer msgSize=%d (!!2) to EUTRACell %d", (int)msgSize,SS_context.SSCell_list[0].eutra_cellId);
/* Send message /* Send message
*/ */
...@@ -271,7 +271,7 @@ static void ss_task_handle_rrc_pdu_req(struct EUTRA_RRC_PDU_REQ *req) ...@@ -271,7 +271,7 @@ static void ss_task_handle_rrc_pdu_req(struct EUTRA_RRC_PDU_REQ *req)
msg_queued = vt_timer_setup(timer_tinfo, TASK_RRC_ENB, instance_g,message_p); msg_queued = vt_timer_setup(timer_tinfo, TASK_RRC_ENB, instance_g,message_p);
} }
LOG_A(ENB_SS, "RRC_PDU Queued as the scheduled SFN is %d SF: %d and curr SFN %d , SF %d", LOG_A(ENB_SS, "RRC_PDU Queued as the scheduled SFN is %d SF: %d and curr SFN %d , SF %d",
tinfo.sfn,tinfo.sf, SS_context[0].sfn,SS_context[0].sf); tinfo.sfn,tinfo.sf, SS_context.sfn,SS_context.sf);
} }
if (!msg_queued) if (!msg_queued)
...@@ -354,13 +354,13 @@ ss_eNB_read_from_srb_socket(acpCtx_t ctx) ...@@ -354,13 +354,13 @@ ss_eNB_read_from_srb_socket(acpCtx_t ctx)
LOG_A(ENB_SS, "[SS_SRB][EUTRA_RRC_PDU_REQ] acpSysSrbProcessFromSSDecSrv Failed\n"); LOG_A(ENB_SS, "[SS_SRB][EUTRA_RRC_PDU_REQ] acpSysSrbProcessFromSSDecSrv Failed\n");
break; break;
} }
if (RC.ss.State >= SS_STATE_CELL_ACTIVE) if (SS_context.SSCell_list[0].State >= SS_STATE_CELL_ACTIVE)
{ {
ss_task_handle_rrc_pdu_req(req); ss_task_handle_rrc_pdu_req(req);
} }
else else
{ {
LOG_A(ENB_SS, "ERROR [SS_SRB][EUTRA_RRC_PDU_REQ] received in SS state %d \n", RC.ss.State); LOG_A(ENB_SS, "ERROR [SS_SRB][EUTRA_RRC_PDU_REQ] received in SS state %d \n", SS_context.SSCell_list[0].State);
} }
acpSysSrbProcessFromSSFreeSrv(req); acpSysSrbProcessFromSSFreeSrv(req);
...@@ -452,19 +452,19 @@ void *ss_eNB_srb_process_itti_msg(void *notUsed) ...@@ -452,19 +452,19 @@ void *ss_eNB_srb_process_itti_msg(void *notUsed)
if (origin_task == TASK_SS_PORTMAN) if (origin_task == TASK_SS_PORTMAN)
{ {
LOG_D(ENB_APP, "[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d \n", RC.ss.State); LOG_D(ENB_APP, "[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d \n", SS_context.SSCell_list[0].State);
} }
else else
{ {
LOG_A(ENB_SS, "[SS_SRB] Received SS_RRC_PDU_IND from RRC\n"); LOG_A(ENB_SS, "[SS_SRB] Received SS_RRC_PDU_IND from RRC\n");
if (RC.ss.State >= SS_STATE_CELL_ACTIVE) if (SS_context.SSCell_list[0].State >= SS_STATE_CELL_ACTIVE)
{ {
instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg); instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg);
ss_send_srb_data(&received_msg->ittiMsg.ss_rrc_pdu_ind); ss_send_srb_data(&received_msg->ittiMsg.ss_rrc_pdu_ind);
} }
else else
{ {
LOG_A(ENB_SS, "ERROR [SS_SRB][EUTRA_RRC_PDU_IND] received in SS state %d \n", RC.ss.State); LOG_A(ENB_SS, "ERROR [SS_SRB][EUTRA_RRC_PDU_IND] received in SS state %d \n", SS_context.SSCell_list[0].State);
} }
} }
......
This diff is collapsed.
...@@ -80,7 +80,7 @@ static void ss_send_sysind_data(ss_system_ind_t *p_ind) ...@@ -80,7 +80,7 @@ static void ss_send_sysind_data(ss_system_ind_t *p_ind)
DevAssert(p_ind != NULL); DevAssert(p_ind != NULL);
size_t msgSize = size; size_t msgSize = size;
memset(&ind, 0, sizeof(ind)); memset(&ind, 0, sizeof(ind));
ind.Common.CellId = SS_context[0].eutra_cellId; ind.Common.CellId = SS_context.SSCell_list[0].eutra_cellId;
// Populated the Routing Info // Populated the Routing Info
ind.Common.RoutingInfo.d = RoutingInfo_Type_None; ind.Common.RoutingInfo.d = RoutingInfo_Type_None;
...@@ -105,7 +105,7 @@ static void ss_send_sysind_data(ss_system_ind_t *p_ind) ...@@ -105,7 +105,7 @@ static void ss_send_sysind_data(ss_system_ind_t *p_ind)
ind.Common.RlcBearerRouting.d = true; ind.Common.RlcBearerRouting.d = true;
ind.Common.RlcBearerRouting.v.d = RlcBearerRouting_Type_EUTRA; ind.Common.RlcBearerRouting.v.d = RlcBearerRouting_Type_EUTRA;
ind.Common.RlcBearerRouting.v.v.EUTRA = SS_context[0].eutra_cellId; ind.Common.RlcBearerRouting.v.v.EUTRA = SS_context.SSCell_list[0].eutra_cellId;
LOG_A(ENB_SS,"[SS_SYSIND][SYSTEM_IND] Frame: %d, Subframe: %d, RAPID: %d, PRTPower: %d, BitMask: %d \n",p_ind->sfn,p_ind->sf,p_ind->ra_PreambleIndex,p_ind->prtPower_Type,p_ind->bitmask); LOG_A(ENB_SS,"[SS_SYSIND][SYSTEM_IND] Frame: %d, Subframe: %d, RAPID: %d, PRTPower: %d, BitMask: %d \n",p_ind->sfn,p_ind->sf,p_ind->ra_PreambleIndex,p_ind->prtPower_Type,p_ind->bitmask);
...@@ -125,7 +125,7 @@ static void ss_send_sysind_data(ss_system_ind_t *p_ind) ...@@ -125,7 +125,7 @@ static void ss_send_sysind_data(ss_system_ind_t *p_ind)
LOG_A(ENB_SS, "[SS_SYSIND][SYSTEM_IND] acpSysIndProcessToSSEncSrv Failure\n"); LOG_A(ENB_SS, "[SS_SYSIND][SYSTEM_IND] acpSysIndProcessToSSEncSrv Failure\n");
return; return;
} }
LOG_A(ENB_SS, "[SS_SYSIND][SYSTEM_IND] Buffer msgSize=%d (!!2) to EUTRACell %d\n", (int)msgSize,SS_context[0].eutra_cellId); LOG_A(ENB_SS, "[SS_SYSIND][SYSTEM_IND] Buffer msgSize=%d (!!2) to EUTRACell %d\n", (int)msgSize,SS_context.SSCell_list[0].eutra_cellId);
/* Send message */ /* Send message */
status = acpSendMsg(ctx_sysind_g, msgSize, buffer); status = acpSendMsg(ctx_sysind_g, msgSize, buffer);
...@@ -278,19 +278,19 @@ void *ss_eNB_sysind_process_itti_msg(void *notUsed) ...@@ -278,19 +278,19 @@ void *ss_eNB_sysind_process_itti_msg(void *notUsed)
if (origin_task == TASK_SS_PORTMAN) if (origin_task == TASK_SS_PORTMAN)
{ {
LOG_D(ENB_APP, "[SS_SYSIND] DUMMY WAKEUP receviedfrom PORTMAN state %d \n", RC.ss.State); LOG_D(ENB_APP, "[SS_SYSIND] DUMMY WAKEUP receviedfrom PORTMAN state %d \n", SS_context.SSCell_list[0].State);
} }
else else
{ {
LOG_A(ENB_SS, "[SS_SYSIND] Received SS_SYSTEM_IND\n"); LOG_A(ENB_SS, "[SS_SYSIND] Received SS_SYSTEM_IND\n");
if (RC.ss.State >= SS_STATE_CELL_CONFIGURED) if (SS_context.SSCell_list[0].State >= SS_STATE_CELL_CONFIGURED)
{ {
instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg); instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg);
ss_send_sysind_data(&received_msg->ittiMsg.ss_system_ind); ss_send_sysind_data(&received_msg->ittiMsg.ss_system_ind);
} }
else else
{ {
LOG_E(ENB_SS, "[SS_SYSIND][SS_SYSTEM_IND] received in SS state %d \n", RC.ss.State); LOG_E(ENB_SS, "[SS_SYSIND][SS_SYSTEM_IND] received in SS state %d \n", SS_context.SSCell_list[0].State);
} }
} }
result = itti_free(ITTI_MSG_ORIGIN_ID(received_msg), received_msg); result = itti_free(ITTI_MSG_ORIGIN_ID(received_msg), received_msg);
......
...@@ -115,7 +115,7 @@ vng_ss_configure_cell (EUTRA_CellId_Type CellId, Dl_Bandwidth_Type Bandwidth, ...@@ -115,7 +115,7 @@ vng_ss_configure_cell (EUTRA_CellId_Type CellId, Dl_Bandwidth_Type Bandwidth,
MessageDef *message_p = itti_alloc_new_message(TASK_VNG, 0, SS_VNG_PROXY_REQ); MessageDef *message_p = itti_alloc_new_message(TASK_VNG, 0, SS_VNG_PROXY_REQ);
assert(message_p); assert(message_p);
SS_VNG_PROXY_REQ(message_p).cell_id = SS_context[0].cellId; SS_VNG_PROXY_REQ(message_p).cell_id = SS_context.SSCell_list[0].cellId;
SS_VNG_PROXY_REQ(message_p).bw = Bandwidth; SS_VNG_PROXY_REQ(message_p).bw = Bandwidth;
SS_VNG_PROXY_REQ(message_p).Noc_level = NocLevel; SS_VNG_PROXY_REQ(message_p).Noc_level = NocLevel;
SS_VNG_PROXY_REQ(message_p).cmd = cmd; SS_VNG_PROXY_REQ(message_p).cmd = cmd;
...@@ -200,8 +200,8 @@ ss_eNB_read_from_vng_socket(acpCtx_t ctx) ...@@ -200,8 +200,8 @@ ss_eNB_read_from_vng_socket(acpCtx_t ctx)
break; break;
} }
if (RC.ss.State < SS_STATE_CELL_ACTIVE) { if (SS_context.SSCell_list[0].State < SS_STATE_CELL_ACTIVE) {
LOG_A(ENB_SS, "[SS-VNG] Request received in an invalid state: %d \n", RC.ss.State); LOG_A(ENB_SS, "[SS-VNG] Request received in an invalid state: %d \n", SS_context.SSCell_list[0].State);
break; break;
} }
/** TODO: Dump message here */ /** TODO: Dump message here */
......
...@@ -67,8 +67,8 @@ static void vt_subtract_sf(uint16_t *frameP, uint8_t *subframeP, int offset) ...@@ -67,8 +67,8 @@ static void vt_subtract_sf(uint16_t *frameP, uint8_t *subframeP, int offset)
uint8_t msg_can_be_queued(ss_set_timinfo_t req_tinfo, ss_set_timinfo_t *timer_tinfo) uint8_t msg_can_be_queued(ss_set_timinfo_t req_tinfo, ss_set_timinfo_t *timer_tinfo)
{ {
ss_set_timinfo_t curr_tinfo; ss_set_timinfo_t curr_tinfo;
curr_tinfo.sfn = SS_context[0].sfn; curr_tinfo.sfn = SS_context.sfn;
curr_tinfo.sf = SS_context[0].sf; curr_tinfo.sf = SS_context.sf;
LOG_A(ENB_APP,"VT_TIMER Enter msg_can_be_queued for SFN %d , SF %d\n",req_tinfo.sfn,req_tinfo.sf); LOG_A(ENB_APP,"VT_TIMER Enter msg_can_be_queued for SFN %d , SF %d\n",req_tinfo.sfn,req_tinfo.sf);
...@@ -97,7 +97,7 @@ uint8_t vt_timer_setup(ss_set_timinfo_t tinfo, task_id_t task_id,instance_t inst ...@@ -97,7 +97,7 @@ uint8_t vt_timer_setup(ss_set_timinfo_t tinfo, task_id_t task_id,instance_t inst
timer_ele_p->task_id = task_id; timer_ele_p->task_id = task_id;
timer_ele_p->msg = msg; timer_ele_p->msg = msg;
if (hashtable_insert(SS_context[0].vt_timer_table, if (hashtable_insert(SS_context.vt_timer_table,
(hash_key_t)sfnSfKey, (void *)timer_ele_p) == HASH_TABLE_OK) (hash_key_t)sfnSfKey, (void *)timer_ele_p) == HASH_TABLE_OK)
{ {
LOG_A(ENB_APP,"VT_TIMER setup for SFN %d , SF %d\n",tinfo.sfn,tinfo.sf); LOG_A(ENB_APP,"VT_TIMER setup for SFN %d , SF %d\n",tinfo.sfn,tinfo.sf);
...@@ -117,14 +117,14 @@ static inline void ss_vt_timer_check(ss_set_timinfo_t tinfo) ...@@ -117,14 +117,14 @@ static inline void ss_vt_timer_check(ss_set_timinfo_t tinfo)
uint32_t sfnSfKey = (tinfo.sfn << 4) | tinfo.sf; uint32_t sfnSfKey = (tinfo.sfn << 4) | tinfo.sf;
hash_rc = hashtable_is_key_exists(SS_context[0].vt_timer_table, (hash_key_t)sfnSfKey); hash_rc = hashtable_is_key_exists(SS_context.vt_timer_table, (hash_key_t)sfnSfKey);
//printf("VT_TIMER foudn queued SFN %d , SF %d\n",tinfo.sfn,tinfo.sf); //printf("VT_TIMER foudn queued SFN %d , SF %d\n",tinfo.sfn,tinfo.sf);
if (hash_rc == HASH_TABLE_OK) if (hash_rc == HASH_TABLE_OK)
{ {
LOG_D(ENB_APP,"VT_TIMER Timeout sending curr SFN %d SF %d\n", LOG_D(ENB_APP,"VT_TIMER Timeout sending curr SFN %d SF %d\n",
SS_context[0].sfn,SS_context[0].sf); SS_context.sfn,SS_context.sf);
hash_rc = hashtable_get(SS_context[0].vt_timer_table, (hash_key_t)sfnSfKey, (void **)&timer_ele_p); hash_rc = hashtable_get(SS_context.vt_timer_table, (hash_key_t)sfnSfKey, (void **)&timer_ele_p);
LOG_A(ENB_APP,"VT_TIMER Enter check SFN %d , SF %d taskID %d timer_ele.task_id instance %ld \n", LOG_A(ENB_APP,"VT_TIMER Enter check SFN %d , SF %d taskID %d timer_ele.task_id instance %ld \n",
tinfo.sfn,tinfo.sf, timer_ele_p->task_id,timer_ele_p->instance); tinfo.sfn,tinfo.sf, timer_ele_p->task_id,timer_ele_p->instance);
...@@ -138,11 +138,11 @@ static inline void ss_vt_timer_check(ss_set_timinfo_t tinfo) ...@@ -138,11 +138,11 @@ static inline void ss_vt_timer_check(ss_set_timinfo_t tinfo)
{ {
LOG_A(ENB_APP,"VT_TIMER Sent message to taskID %d timer_ele.task_id instance %ld \n", LOG_A(ENB_APP,"VT_TIMER Sent message to taskID %d timer_ele.task_id instance %ld \n",
timer_ele_p->task_id,timer_ele_p->instance); timer_ele_p->task_id,timer_ele_p->instance);
hash_rc = hashtable_remove(SS_context[0].vt_timer_table, (hash_key_t)sfnSfKey); hash_rc = hashtable_remove(SS_context.vt_timer_table, (hash_key_t)sfnSfKey);
} }
LOG_D(ENB_APP,"VT_TIMER Timeout sending done curr SFN %d SF %d\n", LOG_D(ENB_APP,"VT_TIMER Timeout sending done curr SFN %d SF %d\n",
SS_context[0].sfn,SS_context[0].sf); SS_context.sfn,SS_context.sf);
} }
...@@ -195,7 +195,7 @@ void *ss_eNB_vt_timer_process_itti_msg(void *notUsed) ...@@ -195,7 +195,7 @@ void *ss_eNB_vt_timer_process_itti_msg(void *notUsed)
*/ */
int ss_eNB_vt_timer_init(void) int ss_eNB_vt_timer_init(void)
{ {
SS_context[0].vt_timer_table = hashtable_create (32, NULL, NULL); SS_context.vt_timer_table = hashtable_create (32, NULL, NULL);
itti_mark_task_ready(TASK_VT_TIMER); itti_mark_task_ready(TASK_VT_TIMER);
return 0; return 0;
......
...@@ -120,14 +120,14 @@ void ss_vtp_send_tinfo( ...@@ -120,14 +120,14 @@ void ss_vtp_send_tinfo(
LOG_E(ENB_APP, "[SS-VTP] acpSendMsg failed. Error : %d on fd: %d the VTP at SS will be disabled\n", LOG_E(ENB_APP, "[SS-VTP] acpSendMsg failed. Error : %d on fd: %d the VTP at SS will be disabled\n",
status, acpGetSocketFd(ctx_vtp_g)); status, acpGetSocketFd(ctx_vtp_g));
acpFree(buffer); acpFree(buffer);
//SS_context[0].vtp_enabled = VTP_DISABLE; //SS_context.vtp_enabled = VTP_DISABLE;
return; return;
} }
else else
{ {
LOG_A(ENB_APP, "[SS-VTP] acpSendMsg VTP_Send Success SFN %d SF %d virtualTime.Enable %d\n",tinfo->sfn,tinfo->sf,virtualTime.Enable); LOG_A(ENB_APP, "[SS-VTP] acpSendMsg VTP_Send Success SFN %d SF %d virtualTime.Enable %d\n",tinfo->sfn,tinfo->sf,virtualTime.Enable);
SS_context[0].vtinfo = *tinfo; SS_context.vtinfo = *tinfo;
} }
// Free allocated buffer // Free allocated buffer
acpFree(buffer); acpFree(buffer);
...@@ -201,7 +201,7 @@ static inline void ss_send_vtp_resp(struct VirtualTimeInfo_Type *virtualTime) ...@@ -201,7 +201,7 @@ static inline void ss_send_vtp_resp(struct VirtualTimeInfo_Type *virtualTime)
req->header.preamble = 0xFEEDC0DE; req->header.preamble = 0xFEEDC0DE;
req->header.msg_id = SS_VTP_RESP; req->header.msg_id = SS_VTP_RESP;
req->header.length = sizeof(proxy_ss_header_t); req->header.length = sizeof(proxy_ss_header_t);
req->header.cell_id = SS_context[0].cellId; req->header.cell_id = SS_context.SSCell_list[0].cellId;
req->tinfo.sfn = virtualTime->TimingInfo.SFN.v.Number; req->tinfo.sfn = virtualTime->TimingInfo.SFN.v.Number;
req->tinfo.sf = virtualTime->TimingInfo.Subframe.v.Number; req->tinfo.sf = virtualTime->TimingInfo.Subframe.v.Number;
...@@ -234,7 +234,7 @@ static inline void ss_enable_vtp() ...@@ -234,7 +234,7 @@ static inline void ss_enable_vtp()
req->header.preamble = 0xFEEDC0DE; req->header.preamble = 0xFEEDC0DE;
req->header.msg_id = SS_VTP_ENABLE; req->header.msg_id = SS_VTP_ENABLE;
req->header.length = sizeof(proxy_ss_header_t); req->header.length = sizeof(proxy_ss_header_t);
req->header.cell_id = SS_context[0].cellId; req->header.cell_id = SS_context.SSCell_list[0].cellId;
/* Initialize with zero */ /* Initialize with zero */
req->tinfo.sfn = 0; req->tinfo.sfn = 0;
...@@ -320,16 +320,16 @@ static inline void ss_eNB_read_from_vtp_socket(acpCtx_t ctx, bool vtInit) ...@@ -320,16 +320,16 @@ static inline void ss_eNB_read_from_vtp_socket(acpCtx_t ctx, bool vtInit)
break; break;
} }
LOG_A(ENB_APP,"[SS-VTP] Received VTEnquireTimingAck Request SFN %d Subframe %d Waiting for ACK of SFN %d SF %d\n ", LOG_A(ENB_APP,"[SS-VTP] Received VTEnquireTimingAck Request SFN %d Subframe %d Waiting for ACK of SFN %d SF %d\n ",
virtualTime->TimingInfo.SFN.v.Number,virtualTime->TimingInfo.Subframe.v.Number,SS_context[0].vtinfo.sfn,SS_context[0].vtinfo.sf); virtualTime->TimingInfo.SFN.v.Number,virtualTime->TimingInfo.Subframe.v.Number,SS_context.vtinfo.sfn,SS_context.vtinfo.sf);
// if (RC.ss.State < SS_STATE_CELL_ACTIVE) // if (SS_context.SSCell_list[0].State < SS_STATE_CELL_ACTIVE)
// { // {
// LOG_E(ENB_APP, "[SS-VTP] Request received in an invalid state: %d \n", RC.ss.State); // LOG_E(ENB_APP, "[SS-VTP] Request received in an invalid state: %d \n", SS_context.SSCell_list[0].State);
// break; // break;
// } // }
// if((SS_context[0].vtinfo.sfn == virtualTime->TimingInfo.SFN.v.Number) && // if((SS_context.vtinfo.sfn == virtualTime->TimingInfo.SFN.v.Number) &&
// (SS_context[0].vtinfo.sf == virtualTime->TimingInfo.Subframe.v.Number)) // (SS_context.SSCell_list[0].vtinfo.sf == virtualTime->TimingInfo.Subframe.v.Number))
{ {
if (virtualTime->Enable) { if (virtualTime->Enable) {
ss_send_vtp_resp(virtualTime); ss_send_vtp_resp(virtualTime);
...@@ -381,7 +381,7 @@ void *ss_eNB_vtp_process_itti_msg(void *notUsed) ...@@ -381,7 +381,7 @@ void *ss_eNB_vtp_process_itti_msg(void *notUsed)
tinfo.sfn = SS_UPD_TIM_INFO(received_msg).sfn; tinfo.sfn = SS_UPD_TIM_INFO(received_msg).sfn;
LOG_A(ENB_APP, "[VTP] received VTP_UPD_TIM_INFO SFN: %d SF: %d\n", tinfo.sfn, tinfo.sf); LOG_A(ENB_APP, "[VTP] received VTP_UPD_TIM_INFO SFN: %d SF: %d\n", tinfo.sfn, tinfo.sf);
LOG_A(ENB_APP,"[VTP] received VTP_UPD_TIM_INFO SFN: %d SF: %d\n", tinfo.sfn, tinfo.sf); LOG_A(ENB_APP,"[VTP] received VTP_UPD_TIM_INFO SFN: %d SF: %d\n", tinfo.sfn, tinfo.sf);
if (SS_context[0].vtp_enabled == 1) if (SS_context.vtp_enabled == 1)
ss_vtp_send_tinfo(TASK_VTP, &tinfo); ss_vtp_send_tinfo(TASK_VTP, &tinfo);
} }
break; break;
...@@ -488,7 +488,7 @@ void* ss_eNB_vtp_task(void *arg) { ...@@ -488,7 +488,7 @@ void* ss_eNB_vtp_task(void *arg) {
ss_eNB_wait_first_msg(); ss_eNB_wait_first_msg();
SS_context[0].vtp_enabled = 1; SS_context.vtp_enabled = 1;
RC.ss.vtp_ready = 1; RC.ss.vtp_ready = 1;
ss_enable_vtp(); ss_enable_vtp();
sleep(1); sleep(1);
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "SidlCommon.h" #include "SidlCommon.h"
typedef struct SSConfigContext_s { typedef struct SSConfigContext_s {
int State;
uint16_t dl_earfcn; uint16_t dl_earfcn;
uint16_t ul_earfcn; uint16_t ul_earfcn;
uint32_t dl_freq; uint32_t dl_freq;
...@@ -35,9 +36,18 @@ typedef struct SSConfigContext_s { ...@@ -35,9 +36,18 @@ typedef struct SSConfigContext_s {
EUTRA_CellId_Type ttcn_cell_id; EUTRA_CellId_Type ttcn_cell_id;
uint16_t eutra_cellId; uint16_t eutra_cellId;
uint16_t nr_cellId; uint16_t nr_cellId;
uint16_t ss_rnti_g;
/** TODO: To add more */ /** TODO: To add more */
} SSConfigContext_t; } SSConfigContext_t;
typedef enum {
SS_STATE_NOT_CONFIGURED = 0,
SS_STATE_CELL_CONFIGURED,
SS_STATE_CELL_ACTIVE,
SS_STATE_AS_SECURITY_ACTIVE,
SS_STATE_AS_RBS_ACTIVE,
SS_STATE_CELL_BROADCASTING,
SS_STATE_MAX_STATE
} SS_STATE_t;
#endif /* _SS_GNB_CONTEXT_ */ #endif /* _SS_GNB_CONTEXT_ */
...@@ -59,7 +59,7 @@ SSConfigContext_t SS_context; ...@@ -59,7 +59,7 @@ SSConfigContext_t SS_context;
static acpCtx_t ctx_srb_g = NULL; static acpCtx_t ctx_srb_g = NULL;
static uint16_t rnti_g = 0; static uint16_t rnti_g = 0;
static instance_t instance_g = 0; static instance_t instance_g = 0;
uint16_t ss_rnti_g = 0; //uint16_t ss_rnti_g = 0;
typedef enum { typedef enum {
// user defined IDs should be an int number >= 1 // user defined IDs should be an int number >= 1
...@@ -86,7 +86,7 @@ static void ss_send_srb_data(ss_nrrrc_pdu_ind_t *pdu_ind) ...@@ -86,7 +86,7 @@ static void ss_send_srb_data(ss_nrrrc_pdu_ind_t *pdu_ind)
DevAssert(pdu_ind->sdu_size >= 0); DevAssert(pdu_ind->sdu_size >= 0);
DevAssert(pdu_ind->srb_id >= 0); DevAssert(pdu_ind->srb_id >= 0);
rnti_g = pdu_ind->rnti; rnti_g = pdu_ind->rnti;
ss_rnti_g = rnti_g; SS_context.ss_rnti_g = rnti_g;
size_t msgSize = size; size_t msgSize = size;
memset(&ind, 0, sizeof(ind)); memset(&ind, 0, sizeof(ind));
//TODO: Work Around till Sys port is implemented for 5G //TODO: Work Around till Sys port is implemented for 5G
...@@ -300,13 +300,13 @@ ss_gNB_read_from_srb_socket(acpCtx_t ctx) ...@@ -300,13 +300,13 @@ ss_gNB_read_from_srb_socket(acpCtx_t ctx)
LOG_A(GNB_APP, "[SS_SRB][NR_RRC_PDU_REQ] acpNrSysSrbProcessFromSSDecSrv Failed\n"); LOG_A(GNB_APP, "[SS_SRB][NR_RRC_PDU_REQ] acpNrSysSrbProcessFromSSDecSrv Failed\n");
break; break;
} }
if (RC.ss.State >= SS_STATE_CELL_ACTIVE) if (SS_context.State >= SS_STATE_CELL_ACTIVE)
{ {
ss_task_handle_rrc_pdu_req(req); ss_task_handle_rrc_pdu_req(req);
} }
else else
{ {
LOG_A(GNB_APP, "ERROR [SS_SRB][NR_RRC_PDU_REQ] received in SS state %d \n", RC.ss.State); LOG_A(GNB_APP, "ERROR [SS_SRB][NR_RRC_PDU_REQ] received in SS state %d \n", SS_context.State);
} }
acpNrSysSrbProcessFromSSFreeSrv(req); acpNrSysSrbProcessFromSSFreeSrv(req);
...@@ -361,7 +361,7 @@ void ss_gNB_srb_init(void) ...@@ -361,7 +361,7 @@ void ss_gNB_srb_init(void)
buffer = (unsigned char *)acpMalloc(size); buffer = (unsigned char *)acpMalloc(size);
assert(buffer); assert(buffer);
RC.ss.State = SS_STATE_CELL_ACTIVE; SS_context.State = SS_STATE_CELL_ACTIVE;
itti_subscribe_event_fd(TASK_SS_SRB, fd1); itti_subscribe_event_fd(TASK_SS_SRB, fd1);
itti_mark_task_ready(TASK_SS_SRB); itti_mark_task_ready(TASK_SS_SRB);
...@@ -387,20 +387,20 @@ void *ss_gNB_srb_process_itti_msg(void *notUsed) ...@@ -387,20 +387,20 @@ void *ss_gNB_srb_process_itti_msg(void *notUsed)
if (origin_task == TASK_SS_PORTMAN) if (origin_task == TASK_SS_PORTMAN)
{ {
LOG_D(GNB_APP, "[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d \n", RC.ss.State); LOG_D(GNB_APP, "[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d \n", SS_context.State);
} }
else else
#endif #endif
{ {
LOG_A(GNB_APP, "[SS_SRB] Received SS_NRRRC_PDU_IND from RRC\n"); LOG_A(GNB_APP, "[SS_SRB] Received SS_NRRRC_PDU_IND from RRC\n");
if (RC.ss.State >= SS_STATE_CELL_ACTIVE) if (SS_context.State >= SS_STATE_CELL_ACTIVE)
{ {
instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg); instance_g = ITTI_MSG_DESTINATION_INSTANCE(received_msg);
ss_send_srb_data(&received_msg->ittiMsg.ss_nrrrc_pdu_ind); ss_send_srb_data(&received_msg->ittiMsg.ss_nrrrc_pdu_ind);
} }
else else
{ {
LOG_A(GNB_APP, "ERROR [SS_SRB][NR_RRC_PDU_IND] received in SS state %d \n", RC.ss.State); LOG_A(GNB_APP, "ERROR [SS_SRB][NR_RRC_PDU_IND] received in SS state %d \n", SS_context.State);
} }
} }
......
...@@ -310,9 +310,9 @@ static inline void ss_eNB_read_from_vtp_socket(acpCtx_t ctx) ...@@ -310,9 +310,9 @@ static inline void ss_eNB_read_from_vtp_socket(acpCtx_t ctx)
} }
LOG_A(ENB_APP,"[SS-VTP] Received VTEnquireTimingAck Request SFN %d Subframe %d Waiting for ACK of SFN %d SF %d\n ", LOG_A(ENB_APP,"[SS-VTP] Received VTEnquireTimingAck Request SFN %d Subframe %d Waiting for ACK of SFN %d SF %d\n ",
virtualTime->TimingInfo.SFN.v.Number,virtualTime->TimingInfo.Subframe.v.Number,SS_context.vtinfo.sfn,SS_context.vtinfo.sf); virtualTime->TimingInfo.SFN.v.Number,virtualTime->TimingInfo.Subframe.v.Number,SS_context.vtinfo.sfn,SS_context.vtinfo.sf);
// if (RC.ss.State < SS_STATE_CELL_ACTIVE) // if (SS_context.State < SS_STATE_CELL_ACTIVE)
// { // {
// LOG_E(ENB_APP, "[SS-VTP] Request received in an invalid state: %d \n", RC.ss.State); // LOG_E(ENB_APP, "[SS-VTP] Request received in an invalid state: %d \n", SS_context.State);
// break; // break;
// } // }
......
...@@ -65,7 +65,6 @@ typedef struct ss_config_s { ...@@ -65,7 +65,6 @@ typedef struct ss_config_s {
int SysportNR; int SysportNR;
uint8_t configured; uint8_t configured;
/** State info */ /** State info */
int State;
int vtp_ready; int vtp_ready;
int CBRA_flag; int CBRA_flag;
int mac_rlc_data_ind_frame; int mac_rlc_data_ind_frame;
...@@ -74,7 +73,7 @@ typedef struct ss_config_s { ...@@ -74,7 +73,7 @@ typedef struct ss_config_s {
/** Cell Config Array */ /** Cell Config Array */
ss_cell_config_t ss_cell_list[8]; ss_cell_config_t ss_cell_list[8];
} ss_config_t; } ss_config_t;
/**
typedef enum { typedef enum {
SS_STATE_NOT_CONFIGURED = 0, SS_STATE_NOT_CONFIGURED = 0,
SS_STATE_CELL_CONFIGURED, SS_STATE_CELL_CONFIGURED,
...@@ -84,6 +83,7 @@ typedef enum { ...@@ -84,6 +83,7 @@ typedef enum {
SS_STATE_CELL_BROADCASTING, SS_STATE_CELL_BROADCASTING,
SS_STATE_MAX_STATE SS_STATE_MAX_STATE
} SS_STATE_t; } SS_STATE_t;
*/
#endif /** __SS_CONFIG_H__ */ #endif /** __SS_CONFIG_H__ */
/** @} */ /** @} */
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