fix some warnings
modify some issues add f1ap ue context procedure
This commit is contained in:
@@ -33,4 +33,5 @@ MESSAGE_DEF(RRC_DCCH_DATA_IND, MESSAGE_PRIORITY_MED_PLUS, RrcDcchDataIn
|
|||||||
MESSAGE_DEF(RRC_PCCH_DATA_REQ, MESSAGE_PRIORITY_MED_PLUS, RrcPcchDataReq, rrc_pcch_data_req)
|
MESSAGE_DEF(RRC_PCCH_DATA_REQ, MESSAGE_PRIORITY_MED_PLUS, RrcPcchDataReq, rrc_pcch_data_req)
|
||||||
|
|
||||||
// gNB
|
// gNB
|
||||||
|
MESSAGE_DEF(NR_RRC_DCCH_DATA_REQ, MESSAGE_PRIORITY_MED_PLUS, NRRrcDcchDataReq, nr_rrc_dcch_data_req)
|
||||||
MESSAGE_DEF(NR_RRC_DCCH_DATA_IND, MESSAGE_PRIORITY_MED_PLUS, NRRrcDcchDataInd, nr_rrc_dcch_data_ind)
|
MESSAGE_DEF(NR_RRC_DCCH_DATA_IND, MESSAGE_PRIORITY_MED_PLUS, NRRrcDcchDataInd, nr_rrc_dcch_data_ind)
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
#define RRC_PCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_pcch_data_req
|
#define RRC_PCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_pcch_data_req
|
||||||
|
|
||||||
// gNB
|
// gNB
|
||||||
|
#define NR_RRC_DCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_dcch_data_req
|
||||||
#define NR_RRC_DCCH_DATA_IND(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_dcch_data_ind
|
#define NR_RRC_DCCH_DATA_IND(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_dcch_data_ind
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------------------------//
|
||||||
@@ -64,6 +65,20 @@ typedef struct RrcDcchDataInd_s {
|
|||||||
uint8_t eNB_index; // LG: needed in UE
|
uint8_t eNB_index; // LG: needed in UE
|
||||||
} RrcDcchDataInd;
|
} RrcDcchDataInd;
|
||||||
|
|
||||||
|
typedef struct NRRrcDcchDataReq_s {
|
||||||
|
uint32_t frame;
|
||||||
|
uint8_t gnb_flag;
|
||||||
|
rb_id_t rb_id;
|
||||||
|
uint32_t muip;
|
||||||
|
uint32_t confirmp;
|
||||||
|
uint32_t sdu_size;
|
||||||
|
uint8_t *sdu_p;
|
||||||
|
uint8_t mode;
|
||||||
|
uint16_t rnti;
|
||||||
|
uint8_t module_id;
|
||||||
|
uint8_t gNB_index;
|
||||||
|
} NRRrcDcchDataReq;
|
||||||
|
|
||||||
typedef struct NRRrcDcchDataInd_s {
|
typedef struct NRRrcDcchDataInd_s {
|
||||||
uint32_t frame;
|
uint32_t frame;
|
||||||
uint8_t dcch_index;
|
uint8_t dcch_index;
|
||||||
|
|||||||
@@ -729,15 +729,13 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* RRCContainer */
|
/* RRCContainer */
|
||||||
if (0) {
|
ie = (F1AP_UEContextSetupRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextSetupRequestIEs_t));
|
||||||
ie = (F1AP_UEContextSetupRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextSetupRequestIEs_t));
|
ie->id = F1AP_ProtocolIE_ID_id_RRCContainer;
|
||||||
ie->id = F1AP_ProtocolIE_ID_id_RRCContainer;
|
ie->criticality = F1AP_Criticality_reject;
|
||||||
ie->criticality = F1AP_Criticality_reject;
|
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_RRCContainer;
|
||||||
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_RRCContainer;
|
OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer, (const char*)f1ap_ue_context_setup_req->rrc_container,
|
||||||
OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer, "asdsa1d32sa1d31asd31as",
|
f1ap_ue_context_setup_req->rrc_container_length);
|
||||||
strlen("asdsa1d32sa1d31asd31as"));
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* MaskedIMEISV */
|
/* MaskedIMEISV */
|
||||||
@@ -763,7 +761,42 @@ int CU_handle_UE_CONTEXT_SETUP_RESPONSE(instance_t instance,
|
|||||||
uint32_t assoc_id,
|
uint32_t assoc_id,
|
||||||
uint32_t stream,
|
uint32_t stream,
|
||||||
F1AP_F1AP_PDU_t *pdu) {
|
F1AP_F1AP_PDU_t *pdu) {
|
||||||
AssertFatal(1==0,"Not implemented yet\n");
|
F1AP_UEContextSetupResponse_t *container;
|
||||||
|
F1AP_UEContextSetupResponseIEs_t *ie;
|
||||||
|
|
||||||
|
DevAssert(pdu);
|
||||||
|
|
||||||
|
container = &pdu->choice.successfulOutcome->value.choice.UEContextSetupResponse;
|
||||||
|
|
||||||
|
/* GNB_CU_UE_F1AP_ID */
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupResponseIEs_t, ie, container,
|
||||||
|
F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID, true);
|
||||||
|
|
||||||
|
/* GNB_DU_UE_F1AP_ID */
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupResponseIEs_t, ie, container,
|
||||||
|
F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID, true);
|
||||||
|
|
||||||
|
/* DUtoCURRCInformation */
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupResponseIEs_t, ie, container,
|
||||||
|
F1AP_ProtocolIE_ID_id_DUtoCURRCInformation, true);
|
||||||
|
|
||||||
|
/* DRBs_Setup_List */
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupResponseIEs_t, ie, container,
|
||||||
|
F1AP_ProtocolIE_ID_id_DRBs_Setup_List, true);
|
||||||
|
|
||||||
|
/* SRBs_FailedToBeSetup_List */
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupResponseIEs_t, ie, container,
|
||||||
|
F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetup_List, true);
|
||||||
|
|
||||||
|
/* DRBs_FailedToBeSetup_List */
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupResponseIEs_t, ie, container,
|
||||||
|
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetup_List, true);
|
||||||
|
|
||||||
|
/* SCell_FailedtoSetup_List */
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupResponseIEs_t, ie, container,
|
||||||
|
F1AP_ProtocolIE_ID_id_SCell_FailedtoSetup_List, true);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CU_handle_UE_CONTEXT_SETUP_FAILURE(instance_t instance,
|
int CU_handle_UE_CONTEXT_SETUP_FAILURE(instance_t instance,
|
||||||
|
|||||||
@@ -1242,19 +1242,19 @@ int DU_handle_DL_NR_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
NR_RRCSetup_IEs_t *rrcSetup_ies = rrcSetup->criticalExtensions.choice.rrcSetup;
|
NR_RRCSetup_IEs_t *rrcSetup_ies = rrcSetup->criticalExtensions.choice.rrcSetup;
|
||||||
|
|
||||||
// get SRB logical channel information
|
// get SRB logical channel information
|
||||||
NR_SRB_ToAddModList_t *SRB_configList;
|
// NR_SRB_ToAddModList_t *SRB_configList;
|
||||||
NR_SRB_ToAddMod_t *SRB1_config;
|
// NR_SRB_ToAddMod_t *SRB1_config;
|
||||||
NR_CellGroupConfig_t *cellGroupConfig = NULL;
|
NR_CellGroupConfig_t *cellGroupConfig = NULL;
|
||||||
NR_LogicalChannelConfig_t *logicalChannelConfig = NULL;
|
// NR_LogicalChannelConfig_t *logicalChannelConfig = NULL;
|
||||||
|
|
||||||
AssertFatal(rrcSetup_ies->masterCellGroup.buf!=NULL,"masterCellGroup is null\n");
|
AssertFatal(rrcSetup_ies->masterCellGroup.buf!=NULL,"masterCellGroup is null\n");
|
||||||
cellGroupConfig = rrcSetup_ies->masterCellGroup.buf;
|
cellGroupConfig = (NR_CellGroupConfig_t *)rrcSetup_ies->masterCellGroup.buf;
|
||||||
|
|
||||||
// SRB_configList = rrcSetup_ies->radioBearerConfig.srb_ToAddModList;
|
// SRB_configList = rrcSetup_ies->radioBearerConfig.srb_ToAddModList;
|
||||||
// AssertFatal(SRB_configList!=NULL,"SRB_configList is null\n");
|
// AssertFatal(SRB_configList!=NULL,"SRB_configList is null\n");
|
||||||
for (int cnt = 0; cnt < cellGroupConfig->rlc_BearerToAddModList->list.count; cnt++) {
|
for (int cnt = 0; cnt < cellGroupConfig->rlc_BearerToAddModList->list.count; cnt++) {
|
||||||
if (cellGroupConfig->rlc_BearerToAddModList->list.array[cnt]) {
|
if (cellGroupConfig->rlc_BearerToAddModList->list.array[cnt]) {
|
||||||
logicalChannelConfig = cellGroupConfig->rlc_BearerToAddModList->list.array[cnt];
|
// logicalChannelConfig = (NR_LogicalChannelConfig_t *)cellGroupConfig->rlc_BearerToAddModList->list.array[cnt];
|
||||||
}
|
}
|
||||||
} // for
|
} // for
|
||||||
|
|
||||||
@@ -1275,9 +1275,9 @@ int DU_handle_DL_NR_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
|
|
||||||
ue_p->Srb0.Tx_buffer.payload_size = rrc_dl_sdu_len;
|
ue_p->Srb0.Tx_buffer.payload_size = rrc_dl_sdu_len;
|
||||||
|
|
||||||
NR_MAC_CellGroupConfig_t *mac_CellGroupConfig = NULL;
|
// NR_MAC_CellGroupConfig_t *mac_CellGroupConfig = NULL;
|
||||||
if (cellGroupConfig->mac_CellGroupConfig)
|
// if (cellGroupConfig->mac_CellGroupConfig)
|
||||||
mac_CellGroupConfig = cellGroupConfig->mac_CellGroupConfig;
|
// mac_CellGroupConfig = cellGroupConfig->mac_CellGroupConfig;
|
||||||
|
|
||||||
// rrc_mac_config_req_gNB
|
// rrc_mac_config_req_gNB
|
||||||
break;
|
break;
|
||||||
@@ -1328,7 +1328,7 @@ int DU_handle_DL_NR_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
du_ue_f1ap_id,
|
du_ue_f1ap_id,
|
||||||
f1ap_get_rnti_by_du_id(&f1ap_du_inst[instance], du_ue_f1ap_id));
|
f1ap_get_rnti_by_du_id(&f1ap_du_inst[instance], du_ue_f1ap_id));
|
||||||
|
|
||||||
NR_RRCReconfiguration_t* rrcReconfiguration = &dl_dcch_msg->message.choice.c1->choice.rrcReconfiguration;
|
NR_RRCReconfiguration_t* rrcReconfiguration = dl_dcch_msg->message.choice.c1->choice.rrcReconfiguration;
|
||||||
|
|
||||||
if (rrcReconfiguration->criticalExtensions.present == NR_RRCReconfiguration__criticalExtensions_PR_rrcReconfiguration) {
|
if (rrcReconfiguration->criticalExtensions.present == NR_RRCReconfiguration__criticalExtensions_PR_rrcReconfiguration) {
|
||||||
NR_RRCReconfiguration_IEs_t* rrcReconfiguration_ies =
|
NR_RRCReconfiguration_IEs_t* rrcReconfiguration_ies =
|
||||||
@@ -1345,7 +1345,7 @@ int DU_handle_DL_NR_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
int i;
|
int i;
|
||||||
NR_DRB_ToAddModList_t *DRB_configList = rrcReconfiguration_ies->radioBearerConfig->drb_ToAddModList;
|
NR_DRB_ToAddModList_t *DRB_configList = rrcReconfiguration_ies->radioBearerConfig->drb_ToAddModList;
|
||||||
NR_SRB_ToAddModList_t *SRB_configList = rrcReconfiguration_ies->radioBearerConfig->srb_ToAddModList;
|
NR_SRB_ToAddModList_t *SRB_configList = rrcReconfiguration_ies->radioBearerConfig->srb_ToAddModList;
|
||||||
NR_DRB_ToReleaseList_t *DRB_ReleaseList = rrcReconfiguration_ies->radioBearerConfig->drb_ToReleaseList;
|
// NR_DRB_ToReleaseList_t *DRB_ReleaseList = rrcReconfiguration_ies->radioBearerConfig->drb_ToReleaseList;
|
||||||
|
|
||||||
for (i = 0; i< 8; i++){
|
for (i = 0; i< 8; i++){
|
||||||
DRB2LCHAN[i] = 0;
|
DRB2LCHAN[i] = 0;
|
||||||
@@ -1433,6 +1433,7 @@ int DU_handle_DL_NR_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
}
|
}
|
||||||
|
|
||||||
LOG_I(F1AP, "Received DL RRC Transfer on srb_id %ld\n", srb_id);
|
LOG_I(F1AP, "Received DL RRC Transfer on srb_id %ld\n", srb_id);
|
||||||
|
#if(0)
|
||||||
rlc_op_status_t rlc_status;
|
rlc_op_status_t rlc_status;
|
||||||
boolean_t ret = TRUE;
|
boolean_t ret = TRUE;
|
||||||
mem_block_t *pdcp_pdu_p = NULL;
|
mem_block_t *pdcp_pdu_p = NULL;
|
||||||
@@ -1446,7 +1447,6 @@ int DU_handle_DL_NR_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
//for (int i=0;i<rrc_dl_sdu_len;i++) printf("%2x ",pdcp_pdu_p->data[i]);
|
//for (int i=0;i<rrc_dl_sdu_len;i++) printf("%2x ",pdcp_pdu_p->data[i]);
|
||||||
//printf("\n");
|
//printf("\n");
|
||||||
|
|
||||||
#if(0)
|
|
||||||
if (pdcp_pdu_p != NULL) {
|
if (pdcp_pdu_p != NULL) {
|
||||||
memset(pdcp_pdu_p->data, 0, rrc_dl_sdu_len);
|
memset(pdcp_pdu_p->data, 0, rrc_dl_sdu_len);
|
||||||
memcpy(&pdcp_pdu_p->data[0], ie->value.choice.RRCContainer.buf, rrc_dl_sdu_len);
|
memcpy(&pdcp_pdu_p->data[0], ie->value.choice.RRCContainer.buf, rrc_dl_sdu_len);
|
||||||
|
|||||||
@@ -152,6 +152,17 @@ int DU_handle_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* RRCContainer */
|
||||||
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_UEContextSetupRequestIEs_t, ie, container,
|
||||||
|
F1AP_ProtocolIE_ID_id_RRCContainer, false);
|
||||||
|
if (ie) {
|
||||||
|
/* correct here */
|
||||||
|
f1ap_ue_context_setup_req->rrc_container = malloc(ie->value.choice.RRCContainer.size);
|
||||||
|
memcpy(f1ap_ue_context_setup_req->rrc_container, ie->value.choice.RRCContainer.buf, ie->value.choice.RRCContainer.size);
|
||||||
|
} else {
|
||||||
|
LOG_E(F1AP, "can't find RRCContainer in UEContextSetupRequestIEs by id %d \n", F1AP_ProtocolIE_ID_id_RRCContainer);
|
||||||
|
}
|
||||||
|
|
||||||
AssertFatal(0, "check configuration, send to appropriate handler\n");
|
AssertFatal(0, "check configuration, send to appropriate handler\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ nr_rrc_data_req(
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
if(sdu_sizeP == 255) {
|
if(sdu_sizeP == 255) {
|
||||||
LOG_I(RRC,"sdu_sizeP == 255");
|
LOG_I(NR_RRC,"sdu_sizeP == 255");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,19 +86,19 @@ nr_rrc_data_req(
|
|||||||
ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE,
|
ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE,
|
||||||
sdu_sizeP);
|
sdu_sizeP);
|
||||||
memcpy (message_buffer, buffer_pP, sdu_sizeP);
|
memcpy (message_buffer, buffer_pP, sdu_sizeP);
|
||||||
message_p = itti_alloc_new_message (ctxt_pP->enb_flag ? TASK_RRC_GNB : TASK_RRC_UE, NR_RRC_DCCH_DATA_IND);
|
message_p = itti_alloc_new_message (ctxt_pP->enb_flag ? TASK_RRC_GNB : TASK_RRC_UE, NR_RRC_DCCH_DATA_REQ);
|
||||||
NR_RRC_DCCH_DATA_IND (message_p).frame = ctxt_pP->frame;
|
NR_RRC_DCCH_DATA_REQ (message_p).frame = ctxt_pP->frame;
|
||||||
// NR_RRC_DCCH_DATA_IND (message_p).gnb_flag = ctxt_pP->enb_flag;
|
NR_RRC_DCCH_DATA_REQ (message_p).gnb_flag = ctxt_pP->enb_flag;
|
||||||
// NR_RRC_DCCH_DATA_IND (message_p).rb_id = rb_idP;
|
NR_RRC_DCCH_DATA_REQ (message_p).rb_id = rb_idP;
|
||||||
// NR_RRC_DCCH_DATA_IND (message_p).muip = muiP;
|
NR_RRC_DCCH_DATA_REQ (message_p).muip = muiP;
|
||||||
// NR_RRC_DCCH_DATA_IND (message_p).confirmp = confirmP;
|
NR_RRC_DCCH_DATA_REQ (message_p).confirmp = confirmP;
|
||||||
NR_RRC_DCCH_DATA_IND (message_p).sdu_size = sdu_sizeP;
|
NR_RRC_DCCH_DATA_REQ (message_p).sdu_size = sdu_sizeP;
|
||||||
NR_RRC_DCCH_DATA_IND (message_p).sdu_p = message_buffer;
|
NR_RRC_DCCH_DATA_REQ (message_p).sdu_p = message_buffer;
|
||||||
//memcpy (NR_RRC_DCCH_DATA_IND (message_p).sdu_p, buffer_pP, sdu_sizeP);
|
//memcpy (NR_RRC_DCCH_DATA_REQ (message_p).sdu_p, buffer_pP, sdu_sizeP);
|
||||||
// NR_RRC_DCCH_DATA_IND (message_p).mode = modeP;
|
NR_RRC_DCCH_DATA_REQ (message_p).mode = modeP;
|
||||||
NR_RRC_DCCH_DATA_IND (message_p).module_id = ctxt_pP->module_id;
|
NR_RRC_DCCH_DATA_REQ (message_p).module_id = ctxt_pP->module_id;
|
||||||
NR_RRC_DCCH_DATA_IND (message_p).rnti = ctxt_pP->rnti;
|
NR_RRC_DCCH_DATA_REQ (message_p).rnti = ctxt_pP->rnti;
|
||||||
NR_RRC_DCCH_DATA_IND (message_p).gNB_index = ctxt_pP->eNB_index;
|
NR_RRC_DCCH_DATA_REQ (message_p).gNB_index = ctxt_pP->eNB_index;
|
||||||
itti_send_msg_to_task (
|
itti_send_msg_to_task (
|
||||||
ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE,
|
ctxt_pP->enb_flag ? TASK_PDCP_ENB : TASK_PDCP_UE,
|
||||||
ctxt_pP->instance,
|
ctxt_pP->instance,
|
||||||
|
|||||||
@@ -1618,13 +1618,12 @@ void *rrc_gnb_task(void *args_p) {
|
|||||||
void
|
void
|
||||||
rrc_gNB_generate_SecurityModeCommand(
|
rrc_gNB_generate_SecurityModeCommand(
|
||||||
const protocol_ctxt_t *const ctxt_pP,
|
const protocol_ctxt_t *const ctxt_pP,
|
||||||
rrc_gNB_ue_context_t *const ue_context_pP
|
rrc_gNB_ue_context_t *const ue_context_pP
|
||||||
)
|
)
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
uint8_t buffer[100];
|
uint8_t buffer[100];
|
||||||
uint8_t size;
|
uint8_t size;
|
||||||
MessageDef *message_p;
|
|
||||||
|
|
||||||
T(T_ENB_RRC_SECURITY_MODE_COMMAND, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
|
T(T_ENB_RRC_SECURITY_MODE_COMMAND, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame),
|
||||||
T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
|
T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti));
|
||||||
@@ -1644,19 +1643,8 @@ rrc_gNB_generate_SecurityModeCommand(
|
|||||||
switch (RC.nrrrc[ctxt_pP->module_id]->node_type) {
|
switch (RC.nrrrc[ctxt_pP->module_id]->node_type) {
|
||||||
case ngran_gNB_CU:
|
case ngran_gNB_CU:
|
||||||
// create an ITTI message
|
// create an ITTI message
|
||||||
// F1AP_DL_RRC_MESSAGE
|
memcpy(ue_context_pP->ue_context.Srb1.Srb_info.Tx_buffer.Payload, buffer, size);
|
||||||
message_p = itti_alloc_new_message (TASK_RRC_GNB, F1AP_DL_RRC_MESSAGE);
|
ue_context_pP->ue_context.Srb1.Srb_info.Tx_buffer.payload_size = size;
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).rrc_container = buffer;
|
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).rrc_container_length = size;
|
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).gNB_CU_ue_id = 0;
|
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).gNB_DU_ue_id = 0;
|
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).old_gNB_DU_ue_id = 0xFFFFFFFF; // unknown
|
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).rnti = ue_context_pP->ue_context.rnti;
|
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).srb_id = DCCH;
|
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).execute_duplication = 1;
|
|
||||||
F1AP_DL_RRC_MESSAGE (message_p).RAT_frequency_priority_information.en_dc = 0;
|
|
||||||
itti_send_msg_to_task (TASK_CU_F1, ctxt_pP->module_id, message_p);
|
|
||||||
LOG_D(NR_RRC, "Send F1AP_DL_RRC_MESSAGE with ITTI\n");
|
|
||||||
|
|
||||||
LOG_I(NR_RRC,"calling rrc_data_req :securityModeCommand\n");
|
LOG_I(NR_RRC,"calling rrc_data_req :securityModeCommand\n");
|
||||||
nr_rrc_data_req(ctxt_pP,
|
nr_rrc_data_req(ctxt_pP,
|
||||||
@@ -1691,6 +1679,7 @@ rrc_gNB_generate_SecurityModeCommand(
|
|||||||
rrc_gNB_mui,
|
rrc_gNB_mui,
|
||||||
size);
|
size);
|
||||||
#ifdef ITTI_SIM
|
#ifdef ITTI_SIM
|
||||||
|
MessageDef *message_p;
|
||||||
uint8_t *message_buffer;
|
uint8_t *message_buffer;
|
||||||
message_buffer = itti_malloc (TASK_RRC_GNB_SIM, TASK_RRC_UE_SIM,size);
|
message_buffer = itti_malloc (TASK_RRC_GNB_SIM, TASK_RRC_UE_SIM,size);
|
||||||
memcpy (message_buffer, buffer, size);
|
memcpy (message_buffer, buffer, size);
|
||||||
|
|||||||
@@ -576,25 +576,18 @@ rrc_gNB_process_NGAP_INITIAL_CONTEXT_SETUP_REQ(
|
|||||||
rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP(&ctxt,ue_context_p);
|
rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP(&ctxt,ue_context_p);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if(0)
|
if (RC.nrrrc[ctxt.module_id]->node_type == ngran_gNB_CU) {
|
||||||
if (RC.nrrrc[ctxt.module_id]->node_type == ngran_gNB_CU) {
|
|
||||||
MessageDef *message_p;
|
MessageDef *message_p;
|
||||||
message_p = itti_alloc_new_message (TASK_RRC_GNB, F1AP_UE_CONTEXT_SETUP_REQ);
|
message_p = itti_alloc_new_message (TASK_RRC_GNB, F1AP_UE_CONTEXT_SETUP_REQ);
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).rrc_container = ue_context_p->Srb0.Tx_buffer.Payload;
|
F1AP_UE_CONTEXT_SETUP_REQ (message_p).rrc_container = (uint8_t *)ue_context_p->ue_context.Srb1.Srb_info.Tx_buffer.Payload;
|
||||||
|
F1AP_UE_CONTEXT_SETUP_REQ (message_p).rrc_container_length = ue_context_p->ue_context.Srb1.Srb_info.Tx_buffer.payload_size;
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).rrc_container_length = ue_context_p->Srb0.Tx_buffer.payload_size;
|
F1AP_UE_CONTEXT_SETUP_REQ (message_p).gNB_CU_ue_id = 0;
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).gNB_CU_ue_id = 0;
|
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).gNB_DU_ue_id = 0;
|
F1AP_UE_CONTEXT_SETUP_REQ (message_p).gNB_DU_ue_id = 0;
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).old_gNB_DU_ue_id = 0xFFFFFFFF; // unknown
|
F1AP_UE_CONTEXT_SETUP_REQ (message_p).rnti = ue_context_p->ue_context.rnti;
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).rnti = ue_context_p->rnti;
|
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).srb_id = CCCH;
|
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).execute_duplication = 1;
|
|
||||||
F1AP_UE_CONTEXT_SETUP_REQ (message_p).RAT_frequency_priority_information.en_dc = 0;
|
|
||||||
itti_send_msg_to_task (TASK_CU_F1, ctxt_pP->module_id, message_p);
|
|
||||||
LOG_D(NR_RRC, "Send F1AP_UE_CONTEXT_SETUP_REQ with ITTI\n");
|
|
||||||
|
|
||||||
|
itti_send_msg_to_task (TASK_CU_F1, ctxt.module_id, message_p);
|
||||||
|
LOG_D(NR_RRC, "Send F1AP_UE_CONTEXT_SETUP_REQ with ITTI\n");
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user