debugging of F1AP-Setup-Resp procedure in DU. DU configuration is ok now.
This commit is contained in:
@@ -800,10 +800,10 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) {
|
||||
rrc->sctp_out_streams = (uint16_t)*(SCTPParams[ENB_SCTP_OUTSTREAMS_IDX].uptr);
|
||||
|
||||
// MCC and MNC
|
||||
rrc->mcc= (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_MOBILE_COUNTRY_CODE_IDX].strptr) );
|
||||
rrc->mnc= (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_MOBILE_NETWORK_CODE_IDX].strptr) );
|
||||
rrc->mnc_digit_length= strlen(*(ENBParamList.paramarray[i][ENB_MOBILE_NETWORK_CODE_IDX].strptr));
|
||||
rrc->tac= (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_TRACKING_AREA_CODE_IDX].strptr) );
|
||||
rrc->mcc= (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_MOBILE_COUNTRY_CODE_IDX].strptr) );
|
||||
rrc->mnc= (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_MOBILE_NETWORK_CODE_IDX].strptr) );
|
||||
rrc->mnc_digit_length= strlen(*(ENBParamList.paramarray[i][ENB_MOBILE_NETWORK_CODE_IDX].strptr));
|
||||
rrc->tac= (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_TRACKING_AREA_CODE_IDX].strptr) );
|
||||
|
||||
}
|
||||
|
||||
@@ -2891,6 +2891,7 @@ void extract_and_decode_SI(int inst,int si_ind,uint8_t *si_container,int si_cont
|
||||
|
||||
AssertFatal(si_ind==0,"Can only handle a single SI block for now\n");
|
||||
|
||||
LOG_I(ENB_APP, "rrc inst %d: Trying to decode SI block %d @ %p, length %d\n",inst,si_ind,si_container,si_container_length);
|
||||
// point to first SI block
|
||||
bcch_message = &carrier->systemInformation;
|
||||
asn_dec_rval_t dec_rval = uper_decode_complete( NULL,
|
||||
@@ -2903,101 +2904,101 @@ void extract_and_decode_SI(int inst,int si_ind,uint8_t *si_container,int si_cont
|
||||
AssertFatal(1==0, "[ENB_APP][RRC inst %"PRIu8"] Failed to decode BCCH_DLSCH_MESSAGE (%zu bits)\n",
|
||||
inst,
|
||||
dec_rval.consumed );
|
||||
|
||||
if (bcch_message->message.present == BCCH_DL_SCH_MessageType_PR_c1) {
|
||||
switch (bcch_message->message.choice.c1.present) {
|
||||
case BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1:
|
||||
AssertFatal(1==0,"Should have received SIB1 from CU\n");
|
||||
break;
|
||||
case BCCH_DL_SCH_MessageType__c1_PR_systemInformation:
|
||||
{
|
||||
SystemInformation_t *si = &bcch_message->message.choice.c1.choice.systemInformation;
|
||||
}
|
||||
if (bcch_message->message.present == BCCH_DL_SCH_MessageType_PR_c1) {
|
||||
switch (bcch_message->message.choice.c1.present) {
|
||||
case BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1:
|
||||
AssertFatal(1==0,"Should have received SIB1 from CU\n");
|
||||
break;
|
||||
case BCCH_DL_SCH_MessageType__c1_PR_systemInformation:
|
||||
{
|
||||
SystemInformation_t *si = &bcch_message->message.choice.c1.choice.systemInformation;
|
||||
|
||||
for (int i=0; i<si->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count; i++) {
|
||||
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *typeandinfo;
|
||||
typeandinfo = si->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i];
|
||||
|
||||
for (int i=0; i<si->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count; i++) {
|
||||
struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *typeandinfo;
|
||||
typeandinfo = si->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i];
|
||||
switch(typeandinfo->present) {
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2:
|
||||
carrier->sib2 = &typeandinfo->choice.sib2;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB2 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3:
|
||||
carrier->sib3 = &typeandinfo->choice.sib3;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB3 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4:
|
||||
//carrier->sib4 = &typeandinfo->choice.sib4;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB4 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5:
|
||||
//carrier->sib5 = &typeandinfo->choice.sib5;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB5 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6:
|
||||
//carrier->sib6 = &typeandinfo->choice.sib6;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB6 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7:
|
||||
//carrier->sib7 = &typeandinfo->choice.sib7;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB7 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8:
|
||||
//carrier->sib8 = &typeandinfo->choice.sib8;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB8 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9:
|
||||
//carrier->sib9 = &typeandinfo->choice.sib9;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB9 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10:
|
||||
//carrier->sib10 = &typeandinfo->choice.sib10;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB10 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11:
|
||||
//carrier->sib11 = &typeandinfo->choice.sib11;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB11 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
|
||||
switch(typeandinfo->present) {
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2:
|
||||
carrier->sib2 = &typeandinfo->choice.sib2;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB2 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3:
|
||||
carrier->sib3 = &typeandinfo->choice.sib3;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB3 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4:
|
||||
//carrier->sib4 = &typeandinfo->choice.sib4;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB4 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5:
|
||||
//carrier->sib5 = &typeandinfo->choice.sib5;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB5 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6:
|
||||
//carrier->sib6 = &typeandinfo->choice.sib6;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB6 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7:
|
||||
//carrier->sib7 = &typeandinfo->choice.sib7;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB7 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8:
|
||||
//carrier->sib8 = &typeandinfo->choice.sib8;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB8 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9:
|
||||
//carrier->sib9 = &typeandinfo->choice.sib9;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB9 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10:
|
||||
//carrier->sib10 = &typeandinfo->choice.sib10;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB10 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11:
|
||||
//carrier->sib11 = &typeandinfo->choice.sib11;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB11 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
|
||||
#if (RRC_VERSION >= MAKE_VERSION(9, 2, 0))
|
||||
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920:
|
||||
//carrier->sib12 = &typeandinfo->choice.sib12;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB12 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920:
|
||||
carrier->sib13 = &typeandinfo->choice.sib13_v920;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB13 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920:
|
||||
//carrier->sib12 = &typeandinfo->choice.sib12;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB12 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920:
|
||||
carrier->sib13 = &typeandinfo->choice.sib13_v920;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB13 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
#endif
|
||||
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
|
||||
//SIB18
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250:
|
||||
carrier->sib18 = &typeandinfo->choice.sib18_v1250;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB18 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
//SIB19
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250:
|
||||
carrier->sib19 = &typeandinfo->choice.sib19_v1250;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB19 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
//SIB21
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430:
|
||||
carrier->sib21 = &typeandinfo->choice.sib21_v1430;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB21 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
//SIB18
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250:
|
||||
carrier->sib18 = &typeandinfo->choice.sib18_v1250;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB18 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
//SIB19
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250:
|
||||
carrier->sib19 = &typeandinfo->choice.sib19_v1250;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB19 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
//SIB21
|
||||
case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430:
|
||||
carrier->sib21 = &typeandinfo->choice.sib21_v1430;
|
||||
LOG_I( ENB_APP, "[RRC %"PRIu8"] Found SIB21 in CU F1AP_SETUP_RESP message\n", inst);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
AssertFatal(1==0,"Shouldn't have received this SI %d\n",typeandinfo->present);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
AssertFatal(1==0,"Shouldn't have received this SI %d\n",typeandinfo->present);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else AssertFatal(1==0,"No SI messages\n");
|
||||
|
||||
|
||||
|
||||
@@ -297,7 +297,7 @@ void CU_send_F1_SETUP_RESPONSE(instance_t instance, f1ap_setup_resp_t *f1ap_setu
|
||||
/* - nRPCI */
|
||||
if (1) {
|
||||
cells_to_be_activated_list_item.nRPCI = (F1AP_NRPCI_t *)calloc(1, sizeof(F1AP_NRPCI_t));
|
||||
*cells_to_be_activated_list_item.nRPCI = 321L; // int 0..1007
|
||||
*cells_to_be_activated_list_item.nRPCI = f1ap_setup_resp->nrpci[i]; // int 0..1007
|
||||
}
|
||||
|
||||
/* optional */
|
||||
@@ -764,4 +764,4 @@ void CU_handle_gNB_CU_CONFIGURATION_UPDATE_FALIURE(F1AP_GNBCUConfigurationUpdate
|
||||
|
||||
void CU_send_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(F1AP_GNBCUConfigurationUpdateAcknowledge_t *GNBCUConfigurationUpdateAcknowledge) {
|
||||
AssertFatal(1==0,"Not implemented yet\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ static int f1ap_decode_successful_outcome(F1AP_F1AP_PDU_t *pdu)
|
||||
switch(pdu->choice.successfulOutcome->procedureCode) {
|
||||
case F1AP_ProcedureCode_id_F1Setup:
|
||||
LOG_I(F1AP, "get F1AP_ProcedureCode_id_F1Setup\n");
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
#include "f1ap_common.h"
|
||||
#include "f1ap_du_interface_management.h"
|
||||
#include "assertions.h"
|
||||
|
||||
extern f1ap_setup_req_t *f1ap_du_data;
|
||||
|
||||
@@ -309,8 +310,105 @@ int DU_handle_F1_SETUP_RESPONSE(uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
F1AP_F1AP_PDU_t *pdu)
|
||||
{
|
||||
|
||||
printf("DU_handle_F1_SETUP_RESPONSE\n");
|
||||
|
||||
AssertFatal(pdu->present == F1AP_F1AP_PDU_PR_successfulOutcome,
|
||||
"pdu->present != F1AP_F1AP_PDU_PR_successfulOutcome\n");
|
||||
AssertFatal(pdu->choice.successfulOutcome->procedureCode == F1AP_ProcedureCode_id_F1Setup,
|
||||
"pdu->choice.successfulOutcome->procedureCode != F1AP_ProcedureCode_id_F1Setup\n");
|
||||
AssertFatal(pdu->choice.successfulOutcome->criticality == F1AP_Criticality_reject,
|
||||
"pdu->choice.successfulOutcome->criticality != F1AP_Criticality_reject\n");
|
||||
AssertFatal(pdu->choice.successfulOutcome->value.present == F1AP_SuccessfulOutcome__value_PR_F1SetupResponse,
|
||||
"pdu->choice.successfulOutcome->value.present != F1AP_SuccessfulOutcome__value_PR_F1SetupResponse\n");
|
||||
|
||||
F1AP_F1SetupResponse_t *in = &pdu->choice.successfulOutcome->value.choice.F1SetupResponse;
|
||||
|
||||
|
||||
F1AP_F1SetupResponseIEs_t *ie;
|
||||
int TransactionId = -1;
|
||||
int num_cells_to_activate = 0;
|
||||
F1AP_Cells_to_be_Activated_List_Item_t *cell;
|
||||
|
||||
MessageDef *msg_p = itti_alloc_new_message (TASK_ENB_APP, F1AP_SETUP_RESP);
|
||||
|
||||
printf("F1AP: F1Setup-Resp: protocolIEs.list.count %d\n",
|
||||
in->protocolIEs.list.count);
|
||||
for (int i=0;i < in->protocolIEs.list.count; i++) {
|
||||
ie = in->protocolIEs.list.array[i];
|
||||
switch (ie->id) {
|
||||
case F1AP_ProtocolIE_ID_id_TransactionID:
|
||||
AssertFatal(ie->criticality == F1AP_Criticality_reject,
|
||||
"ie->criticality != F1AP_Criticality_reject\n");
|
||||
AssertFatal(ie->value.present == F1AP_F1SetupResponseIEs__value_PR_TransactionID,
|
||||
"ie->value.present != F1AP_F1SetupResponseIEs__value_PR_TransactionID\n");
|
||||
TransactionId=ie->value.choice.TransactionID;
|
||||
printf("F1AP: F1Setup-Resp: TransactionId %d\n",
|
||||
TransactionId);
|
||||
break;
|
||||
case F1AP_ProtocolIE_ID_id_gNB_CU_Name:
|
||||
AssertFatal(ie->criticality == F1AP_Criticality_ignore,
|
||||
"ie->criticality != F1AP_Criticality_ignore\n");
|
||||
AssertFatal(ie->value.present == F1AP_F1SetupResponseIEs__value_PR_GNB_CU_Name,
|
||||
"ie->value.present != F1AP_F1SetupResponseIEs__value_PR_TransactionID\n");
|
||||
F1AP_SETUP_RESP (msg_p).gNB_CU_name = malloc(ie->value.choice.GNB_CU_Name.size+1);
|
||||
memcpy(F1AP_SETUP_RESP (msg_p).gNB_CU_name,ie->value.choice.GNB_CU_Name.buf,ie->value.choice.GNB_CU_Name.size);
|
||||
F1AP_SETUP_RESP (msg_p).gNB_CU_name[ie->value.choice.GNB_CU_Name.size]='\0';
|
||||
printf("F1AP: F1Setup-Resp: gNB_CU_name %s\n",
|
||||
F1AP_SETUP_RESP (msg_p).gNB_CU_name);
|
||||
break;
|
||||
case F1AP_ProtocolIE_ID_id_Cells_to_be_Activated_List:
|
||||
AssertFatal(ie->criticality == F1AP_Criticality_reject,
|
||||
"ie->criticality != F1AP_Criticality_reject\n");
|
||||
AssertFatal(ie->value.present == F1AP_F1SetupResponseIEs__value_PR_Cells_to_be_Activated_List,
|
||||
"ie->value.present != F1AP_F1SetupResponseIEs__value_PR_Cells_to_be_Activated_List\n");
|
||||
num_cells_to_activate = ie->value.choice.Cells_to_be_Activated_List.list.count;
|
||||
printf("F1AP: Activating %d cells\n",num_cells_to_activate);
|
||||
for (int i=0;i<num_cells_to_activate;i++) {
|
||||
|
||||
F1AP_Cells_to_be_Activated_List_ItemIEs_t *cells_to_be_activated_list_item_ies = ie->value.choice.Cells_to_be_Activated_List.list.array[i];
|
||||
|
||||
AssertFatal(cells_to_be_activated_list_item_ies->id == F1AP_ProtocolIE_ID_id_Cells_to_be_Activated_List_Item,
|
||||
"cells_to_be_activated_list_item_ies->id != F1AP_ProtocolIE_ID_id_Cells_to_be_Activated_List_Item");
|
||||
AssertFatal(cells_to_be_activated_list_item_ies->criticality == F1AP_Criticality_reject,
|
||||
"cells_to_be_activated_list_item_ies->criticality == F1AP_Criticality_reject");
|
||||
AssertFatal(cells_to_be_activated_list_item_ies->value.present == F1AP_Cells_to_be_Activated_List_ItemIEs__value_PR_Cells_to_be_Activated_List_Item,
|
||||
"cells_to_be_activated_list_item_ies->value.present == F1AP_Cells_to_be_Activated_List_ItemIEs__value_PR_Cells_to_be_Activated_List_Item");
|
||||
|
||||
cell = &cells_to_be_activated_list_item_ies->value.choice.Cells_to_be_Activated_List_Item;
|
||||
|
||||
TBCD_TO_MCC_MNC(&cell->nRCGI.pLMN_Identity, F1AP_SETUP_RESP (msg_p).mcc[i], F1AP_SETUP_RESP (msg_p).mnc[i], F1AP_SETUP_RESP (msg_p).mnc_digit_length[i]);
|
||||
AssertFatal(cell->nRPCI != NULL, "nRPCI is null\n");
|
||||
|
||||
F1AP_SETUP_RESP (msg_p).nrpci[i] = *cell->nRPCI;
|
||||
|
||||
F1AP_ProtocolExtensionContainer_160P9_t *ext = cell->iE_Extensions;
|
||||
AssertFatal(ext!=NULL,"Extension for SI is null\n");
|
||||
F1AP_SETUP_RESP (msg_p).num_SI[i] = ext->list.count;
|
||||
AssertFatal(ext->list.count==1,"At least one SI message should be there, and only 1 for now!\n");
|
||||
printf("F1AP: F1Setup-Resp Cell %d MCC %d MNC %d NRPCI %d\n",i,F1AP_SETUP_RESP (msg_p).mcc[i],F1AP_SETUP_RESP (msg_p).mnc[i],F1AP_SETUP_RESP (msg_p).nrpci[i],F1AP_SETUP_RESP (msg_p).num_SI[i]);
|
||||
for (int si =0;si < ext->list.count;si++) {
|
||||
size_t size = ext->list.array[si]->extensionValue.choice.GNB_CUSystemInformation.sImessage.size;
|
||||
F1AP_SETUP_RESP (msg_p).SI_container_length[i][si] = size;
|
||||
printf("F1AP: F1Setup-Resp SI_container_length[%d][%d] %d bytes\n",i,si,size);
|
||||
F1AP_SETUP_RESP (msg_p).SI_container[i][si] = ext->list.array[si]->extensionValue.choice.GNB_CUSystemInformation.sImessage.buf;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
AssertFatal(TransactionId!=-1,"TransactionId was not sent\n");
|
||||
AssertFatal(num_cells_to_activate>0,"No cells activated\n");
|
||||
F1AP_SETUP_RESP (msg_p).num_cells_to_activate = num_cells_to_activate;
|
||||
|
||||
for (int i=0;i<num_cells_to_activate;i++)
|
||||
AssertFatal(F1AP_SETUP_RESP (msg_p).num_SI[i] > 0, "System Information %d is missing",i);
|
||||
|
||||
|
||||
printf("Sending F1AP_SETUP_RESP ITTI message to ENB_APP with assoc_id (%d->%d)\n",
|
||||
assoc_id,ENB_MODULE_ID_TO_INSTANCE(assoc_id));
|
||||
itti_send_msg_to_task(TASK_ENB_APP, ENB_MODULE_ID_TO_INSTANCE(assoc_id), msg_p);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -789,4 +887,4 @@ void DU_send_gNB_CU_CONFIGURATION_UPDATE_FALIURE(F1AP_GNBCUConfigurationUpdateFa
|
||||
|
||||
void DU_send_gNB_CU_CONFIGURATION_UPDATE_ACKNOWLEDGE(F1AP_GNBCUConfigurationUpdateAcknowledge_t *GNBCUConfigurationUpdateAcknowledge) {
|
||||
AssertFatal(1==0,"Not implemented yet\n");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user