Revert more pieces of code to LTE
This commit is contained in:
@@ -315,17 +315,17 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
|
|||||||
/* mandatory */
|
/* mandatory */
|
||||||
/* c3. cells to be Activated list */
|
/* c3. cells to be Activated list */
|
||||||
int num_cells_to_activate = f1ap_setup_resp->num_cells_to_activate;
|
int num_cells_to_activate = f1ap_setup_resp->num_cells_to_activate;
|
||||||
LOG_D(F1AP, "num_cells_to_activate = %d \n", num_cells_to_activate);
|
LOG_I(F1AP, "num_cells_to_activate = %d \n", num_cells_to_activate);
|
||||||
if (num_cells_to_activate >0) {
|
if (num_cells_to_activate >0) {
|
||||||
ie = (F1AP_F1SetupResponseIEs_t *)calloc(1, sizeof(F1AP_F1SetupResponseIEs_t));
|
ie = (F1AP_F1SetupResponseIEs_t *)calloc(1, sizeof(F1AP_F1SetupResponseIEs_t));
|
||||||
ie->id = F1AP_ProtocolIE_ID_id_Cells_to_be_Activated_List;
|
ie->id = F1AP_ProtocolIE_ID_id_Cells_to_be_Activated_List;
|
||||||
ie->criticality = F1AP_Criticality_reject;
|
ie->criticality = F1AP_Criticality_reject;
|
||||||
ie->value.present = F1AP_F1SetupResponseIEs__value_PR_Cells_to_be_Activated_List;
|
ie->value.present = F1AP_F1SetupResponseIEs__value_PR_Cells_to_be_Activated_List;
|
||||||
|
|
||||||
|
for (i=0; i<num_cells_to_activate; i++) {
|
||||||
|
|
||||||
for (i=0;
|
LOG_I(F1AP, "(%d) mcc = %d, mnc = %d, mnc_digit_length = %d\n",
|
||||||
i<num_cells_to_activate;
|
i, f1ap_setup_resp->cells_to_activate[i].mcc, f1ap_setup_resp->cells_to_activate[i].mnc, f1ap_setup_resp->cells_to_activate[i].mnc_digit_length);
|
||||||
i++) {
|
|
||||||
|
|
||||||
F1AP_Cells_to_be_Activated_List_ItemIEs_t *cells_to_be_activated_list_item_ies;
|
F1AP_Cells_to_be_Activated_List_ItemIEs_t *cells_to_be_activated_list_item_ies;
|
||||||
cells_to_be_activated_list_item_ies = (F1AP_Cells_to_be_Activated_List_ItemIEs_t *)calloc(1, sizeof(F1AP_Cells_to_be_Activated_List_ItemIEs_t));
|
cells_to_be_activated_list_item_ies = (F1AP_Cells_to_be_Activated_List_ItemIEs_t *)calloc(1, sizeof(F1AP_Cells_to_be_Activated_List_ItemIEs_t));
|
||||||
@@ -379,7 +379,7 @@ int CU_send_F1_SETUP_RESPONSE(instance_t instance,
|
|||||||
(const char*)f1ap_setup_resp->cells_to_activate[i].SI_container[sIBtype],
|
(const char*)f1ap_setup_resp->cells_to_activate[i].SI_container[sIBtype],
|
||||||
f1ap_setup_resp->cells_to_activate[i].SI_container_length[sIBtype]);
|
f1ap_setup_resp->cells_to_activate[i].SI_container_length[sIBtype]);
|
||||||
|
|
||||||
LOG_D(F1AP, "f1ap_setup_resp->SI_container_length[%d][%d] = %d \n", i,sIBtype,f1ap_setup_resp->cells_to_activate[i].SI_container_length[sIBtype]);
|
LOG_I(F1AP, "f1ap_setup_resp->SI_container_length[%d][%d] = %d \n", i,sIBtype,f1ap_setup_resp->cells_to_activate[i].SI_container_length[sIBtype]);
|
||||||
ASN_SEQUENCE_ADD(&gNB_CUSystemInformation->sibtypetobeupdatedlist.list,sib_item);
|
ASN_SEQUENCE_ADD(&gNB_CUSystemInformation->sibtypetobeupdatedlist.list,sib_item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -569,6 +569,9 @@ int CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, f1ap_gnb_cu_configu
|
|||||||
|
|
||||||
for (i=0; i<f1ap_gnb_cu_configuration_update->num_cells_to_activate; i++) {
|
for (i=0; i<f1ap_gnb_cu_configuration_update->num_cells_to_activate; i++) {
|
||||||
|
|
||||||
|
LOG_I(F1AP, "(%d) mcc = %d, mnc = %d, mnc_digit_length = %d\n",
|
||||||
|
i, f1ap_gnb_cu_configuration_update->cells_to_activate[i].mcc, f1ap_gnb_cu_configuration_update->cells_to_activate[i].mnc, f1ap_gnb_cu_configuration_update->cells_to_activate[i].mnc_digit_length);
|
||||||
|
|
||||||
F1AP_Cells_to_be_Activated_List_ItemIEs_t *cells_to_be_activated_list_item_ies;
|
F1AP_Cells_to_be_Activated_List_ItemIEs_t *cells_to_be_activated_list_item_ies;
|
||||||
cells_to_be_activated_list_item_ies = (F1AP_Cells_to_be_Activated_List_ItemIEs_t *)calloc(1, sizeof(F1AP_Cells_to_be_Activated_List_ItemIEs_t));
|
cells_to_be_activated_list_item_ies = (F1AP_Cells_to_be_Activated_List_ItemIEs_t *)calloc(1, sizeof(F1AP_Cells_to_be_Activated_List_ItemIEs_t));
|
||||||
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;
|
||||||
@@ -590,53 +593,56 @@ int CU_send_gNB_CU_CONFIGURATION_UPDATE(instance_t instance, f1ap_gnb_cu_configu
|
|||||||
&nRCGI.nRCellIdentity);
|
&nRCGI.nRCellIdentity);
|
||||||
cells_to_be_activated_list_item.nRCGI = nRCGI;
|
cells_to_be_activated_list_item.nRCGI = nRCGI;
|
||||||
|
|
||||||
// optional
|
if(RC.nrrrc) {
|
||||||
// -nRPCI
|
|
||||||
cells_to_be_activated_list_item.nRPCI = (F1AP_NRPCI_t *)calloc(1, sizeof(F1AP_NRPCI_t));
|
|
||||||
*cells_to_be_activated_list_item.nRPCI = f1ap_gnb_cu_configuration_update->cells_to_activate[i].nrpci; // int 0..1007
|
|
||||||
|
|
||||||
// optional
|
// optional
|
||||||
// 3.1.2 gNB-CUSystem Information
|
// -nRPCI
|
||||||
F1AP_Cells_to_be_Activated_List_ItemExtIEs_t *cells_to_be_activated_list_itemExtIEs;
|
cells_to_be_activated_list_item.nRPCI = (F1AP_NRPCI_t *)calloc(1, sizeof(F1AP_NRPCI_t));
|
||||||
cells_to_be_activated_list_itemExtIEs = (F1AP_Cells_to_be_Activated_List_ItemExtIEs_t *)calloc(1, sizeof(F1AP_Cells_to_be_Activated_List_ItemExtIEs_t));
|
*cells_to_be_activated_list_item.nRPCI = f1ap_gnb_cu_configuration_update->cells_to_activate[i].nrpci; // int 0..1007
|
||||||
cells_to_be_activated_list_itemExtIEs->id = F1AP_ProtocolIE_ID_id_gNB_CUSystemInformation;
|
|
||||||
cells_to_be_activated_list_itemExtIEs->criticality = F1AP_Criticality_reject;
|
|
||||||
cells_to_be_activated_list_itemExtIEs->extensionValue.present = F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_GNB_CUSystemInformation;
|
|
||||||
|
|
||||||
if (f1ap_gnb_cu_configuration_update->cells_to_activate[i].num_SI > 0) {
|
// optional
|
||||||
F1AP_GNB_CUSystemInformation_t *gNB_CUSystemInformation = (F1AP_GNB_CUSystemInformation_t *)calloc(1, sizeof(F1AP_GNB_CUSystemInformation_t));
|
// 3.1.2 gNB-CUSystem Information
|
||||||
//LOG_I(F1AP, "%s() SI %d size %d: ", __func__, i, f1ap_setup_resp->SI_container_length[i][0]);
|
F1AP_Cells_to_be_Activated_List_ItemExtIEs_t *cells_to_be_activated_list_itemExtIEs;
|
||||||
//for (int n = 0; n < f1ap_setup_resp->SI_container_length[i][0]; n++)
|
cells_to_be_activated_list_itemExtIEs = (F1AP_Cells_to_be_Activated_List_ItemExtIEs_t *)calloc(1, sizeof(F1AP_Cells_to_be_Activated_List_ItemExtIEs_t));
|
||||||
// printf("%02x ", f1ap_setup_resp->SI_container[i][0][n]);
|
cells_to_be_activated_list_itemExtIEs->id = F1AP_ProtocolIE_ID_id_gNB_CUSystemInformation;
|
||||||
//printf("\n");
|
cells_to_be_activated_list_itemExtIEs->criticality = F1AP_Criticality_reject;
|
||||||
|
cells_to_be_activated_list_itemExtIEs->extensionValue.present = F1AP_Cells_to_be_Activated_List_ItemExtIEs__extensionValue_PR_GNB_CUSystemInformation;
|
||||||
|
|
||||||
// for (int sIBtype=2;sIBtype<33;sIBtype++) { //21 ? 33 ?
|
if (f1ap_gnb_cu_configuration_update->cells_to_activate[i].num_SI > 0) {
|
||||||
for (int sIBtype=2;sIBtype<21;sIBtype++) {
|
F1AP_GNB_CUSystemInformation_t *gNB_CUSystemInformation = (F1AP_GNB_CUSystemInformation_t *)calloc(1, sizeof(F1AP_GNB_CUSystemInformation_t));
|
||||||
if (f1ap_gnb_cu_configuration_update->cells_to_activate[i].SI_container[sIBtype]!=NULL) {
|
//LOG_I(F1AP, "%s() SI %d size %d: ", __func__, i, f1ap_setup_resp->SI_container_length[i][0]);
|
||||||
AssertFatal(sIBtype < 6 || sIBtype == 9, "Illegal SI type %d\n",sIBtype);
|
//for (int n = 0; n < f1ap_setup_resp->SI_container_length[i][0]; n++)
|
||||||
F1AP_SibtypetobeupdatedListItem_t *sib_item = calloc(1,sizeof(*sib_item));
|
// printf("%02x ", f1ap_setup_resp->SI_container[i][0][n]);
|
||||||
memset((void*)sib_item,0,sizeof(*sib_item));
|
//printf("\n");
|
||||||
sib_item->sIBtype = sIBtype;
|
|
||||||
OCTET_STRING_fromBuf(&sib_item->sIBmessage,
|
|
||||||
(const char*)f1ap_gnb_cu_configuration_update->cells_to_activate[i].SI_container[sIBtype],
|
|
||||||
f1ap_gnb_cu_configuration_update->cells_to_activate[i].SI_container_length[sIBtype]);
|
|
||||||
|
|
||||||
LOG_D(F1AP, "f1ap_setup_resp->SI_container_length[%d][%d] = %d \n", i,sIBtype,f1ap_gnb_cu_configuration_update->cells_to_activate[i].SI_container_length[sIBtype]);
|
// for (int sIBtype=2;sIBtype<33;sIBtype++) { //21 ? 33 ?
|
||||||
ASN_SEQUENCE_ADD(&gNB_CUSystemInformation->sibtypetobeupdatedlist.list,sib_item);
|
for (int sIBtype=2;sIBtype<21;sIBtype++) {
|
||||||
}
|
if (f1ap_gnb_cu_configuration_update->cells_to_activate[i].SI_container[sIBtype]!=NULL) {
|
||||||
}
|
AssertFatal(sIBtype < 6 || sIBtype == 9, "Illegal SI type %d\n",sIBtype);
|
||||||
cells_to_be_activated_list_itemExtIEs->extensionValue.choice.GNB_CUSystemInformation = *gNB_CUSystemInformation;
|
F1AP_SibtypetobeupdatedListItem_t *sib_item = calloc(1,sizeof(*sib_item));
|
||||||
|
memset((void*)sib_item,0,sizeof(*sib_item));
|
||||||
|
sib_item->sIBtype = sIBtype;
|
||||||
|
OCTET_STRING_fromBuf(&sib_item->sIBmessage,
|
||||||
|
(const char*)f1ap_gnb_cu_configuration_update->cells_to_activate[i].SI_container[sIBtype],
|
||||||
|
f1ap_gnb_cu_configuration_update->cells_to_activate[i].SI_container_length[sIBtype]);
|
||||||
|
|
||||||
|
LOG_D(F1AP, "f1ap_setup_resp->SI_container_length[%d][%d] = %d \n", i,sIBtype,f1ap_gnb_cu_configuration_update->cells_to_activate[i].SI_container_length[sIBtype]);
|
||||||
|
ASN_SEQUENCE_ADD(&gNB_CUSystemInformation->sibtypetobeupdatedlist.list,sib_item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cells_to_be_activated_list_itemExtIEs->extensionValue.choice.GNB_CUSystemInformation = *gNB_CUSystemInformation;
|
||||||
|
|
||||||
|
|
||||||
F1AP_ProtocolExtensionContainer_154P112_t p_154P112_t;
|
F1AP_ProtocolExtensionContainer_154P112_t p_154P112_t;
|
||||||
memset((void *)&p_154P112_t, 0, sizeof(F1AP_ProtocolExtensionContainer_154P112_t));
|
memset((void *)&p_154P112_t, 0, sizeof(F1AP_ProtocolExtensionContainer_154P112_t));
|
||||||
|
|
||||||
ASN_SEQUENCE_ADD(&p_154P112_t.list,
|
ASN_SEQUENCE_ADD(&p_154P112_t.list,
|
||||||
cells_to_be_activated_list_itemExtIEs);
|
cells_to_be_activated_list_itemExtIEs);
|
||||||
cells_to_be_activated_list_item.iE_Extensions = (struct F1AP_ProtocolExtensionContainer*)&p_154P112_t;
|
cells_to_be_activated_list_item.iE_Extensions = (struct F1AP_ProtocolExtensionContainer*)&p_154P112_t;
|
||||||
|
|
||||||
free(gNB_CUSystemInformation);
|
free(gNB_CUSystemInformation);
|
||||||
gNB_CUSystemInformation = NULL;
|
gNB_CUSystemInformation = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ADD
|
// ADD
|
||||||
|
|||||||
@@ -130,13 +130,13 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
ccch_sdu_len);
|
ccch_sdu_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_I(F1AP, "%s() RRCContainer (CCCH) size %ld: ", __func__,
|
|
||||||
ie->value.choice.RRCContainer.size);
|
|
||||||
for (int i = 0; i < ie->value.choice.RRCContainer.size; i++)
|
|
||||||
printf("%02x ", RRC_MAC_CCCH_DATA_IND (message_p).sdu[i]);
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
if (RC.nrrrc && RC.nrrrc[GNB_INSTANCE_TO_MODULE_ID(instance)]->node_type == ngran_gNB_CU) {
|
if (RC.nrrrc && RC.nrrrc[GNB_INSTANCE_TO_MODULE_ID(instance)]->node_type == ngran_gNB_CU) {
|
||||||
|
|
||||||
|
LOG_I(F1AP, "%s() RRCContainer (CCCH) size %ld: ", __func__, ie->value.choice.RRCContainer.size);
|
||||||
|
for (int i = 0; i < ie->value.choice.RRCContainer.size; i++)
|
||||||
|
printf("%02x ", RRC_MAC_CCCH_DATA_IND (message_p).sdu[i]);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
/* DUtoCURRCContainer */
|
/* DUtoCURRCContainer */
|
||||||
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, container,
|
F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, container,
|
||||||
F1AP_ProtocolIE_ID_id_DUtoCURRCContainer, true);
|
F1AP_ProtocolIE_ID_id_DUtoCURRCContainer, true);
|
||||||
@@ -295,10 +295,12 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance,
|
|||||||
OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer, (const char*)f1ap_dl_rrc->rrc_container, f1ap_dl_rrc->rrc_container_length);
|
OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer, (const char*)f1ap_dl_rrc->rrc_container, f1ap_dl_rrc->rrc_container_length);
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
|
|
||||||
LOG_I(F1AP, "%s() RRCContainer size %d: ", __func__, f1ap_dl_rrc->rrc_container_length);
|
if (RC.nrrrc && RC.nrrrc[GNB_INSTANCE_TO_MODULE_ID(instance)]->node_type == ngran_gNB_CU) {
|
||||||
for (int i = 0; i < ie->value.choice.RRCContainer.size; i++)
|
LOG_I(F1AP, "%s() RRCContainer size %d: ", __func__, f1ap_dl_rrc->rrc_container_length);
|
||||||
printf("%02x ", f1ap_dl_rrc->rrc_container[i]);
|
for (int i = 0; i < ie->value.choice.RRCContainer.size; i++)
|
||||||
printf("\n");
|
printf("%02x ", f1ap_dl_rrc->rrc_container[i]);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
/* optional */
|
/* optional */
|
||||||
/* c7. RAT_FrequencyPriorityInformation */
|
/* c7. RAT_FrequencyPriorityInformation */
|
||||||
|
|||||||
@@ -742,13 +742,15 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* RRCContainer */
|
/* RRCContainer */
|
||||||
ie = (F1AP_UEContextSetupRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextSetupRequestIEs_t));
|
if(RC.nrrrc) {
|
||||||
ie->id = F1AP_ProtocolIE_ID_id_RRCContainer;
|
ie = (F1AP_UEContextSetupRequestIEs_t *)calloc(1, sizeof(F1AP_UEContextSetupRequestIEs_t));
|
||||||
ie->criticality = F1AP_Criticality_reject;
|
ie->id = F1AP_ProtocolIE_ID_id_RRCContainer;
|
||||||
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_RRCContainer;
|
ie->criticality = F1AP_Criticality_reject;
|
||||||
OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer, (const char*)f1ap_ue_context_setup_req->rrc_container,
|
ie->value.present = F1AP_UEContextSetupRequestIEs__value_PR_RRCContainer;
|
||||||
f1ap_ue_context_setup_req->rrc_container_length);
|
OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer, (const char*)f1ap_ue_context_setup_req->rrc_container,
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
f1ap_ue_context_setup_req->rrc_container_length);
|
||||||
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
|
}
|
||||||
|
|
||||||
/* OPTIONAL */
|
/* OPTIONAL */
|
||||||
/* MaskedIMEISV */
|
/* MaskedIMEISV */
|
||||||
@@ -781,7 +783,9 @@ int CU_send_UE_CONTEXT_SETUP_REQUEST(instance_t instance,
|
|||||||
|
|
||||||
LOG_D(F1AP,"F1AP UEContextSetupRequest Encoded %u bits\n", len);
|
LOG_D(F1AP,"F1AP UEContextSetupRequest Encoded %u bits\n", len);
|
||||||
|
|
||||||
cu_f1ap_itti_send_sctp_data_req(instance, f1ap_assoc_id /* BK: fix me*/ , buffer, len, 0 /* BK: fix me*/);
|
if(RC.nrrrc) {
|
||||||
|
cu_f1ap_itti_send_sctp_data_req(instance, f1ap_assoc_id /* BK: fix me*/ , buffer, len, 0 /* BK: fix me*/);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -415,15 +415,17 @@ int DU_send_F1_SETUP_REQUEST(instance_t instance) {
|
|||||||
|
|
||||||
/* mandatory */
|
/* mandatory */
|
||||||
/* c5. RRC VERSION */
|
/* c5. RRC VERSION */
|
||||||
ie = (F1AP_F1SetupRequestIEs_t *)calloc(1, sizeof(F1AP_F1SetupRequestIEs_t));
|
if(RC.nrrrc) {
|
||||||
ie->id = F1AP_ProtocolIE_ID_id_GNB_DU_RRC_Version;
|
ie = (F1AP_F1SetupRequestIEs_t *) calloc(1, sizeof(F1AP_F1SetupRequestIEs_t));
|
||||||
ie->criticality = F1AP_Criticality_reject;
|
ie->id = F1AP_ProtocolIE_ID_id_GNB_DU_RRC_Version;
|
||||||
ie->value.present = F1AP_F1SetupRequestIEs__value_PR_RRC_Version;
|
ie->criticality = F1AP_Criticality_reject;
|
||||||
ie->value.choice.RRC_Version.latest_RRC_Version.buf=calloc(1,sizeof(char));
|
ie->value.present = F1AP_F1SetupRequestIEs__value_PR_RRC_Version;
|
||||||
ie->value.choice.RRC_Version.latest_RRC_Version.buf[0] = 0xe0;
|
ie->value.choice.RRC_Version.latest_RRC_Version.buf = calloc(1, sizeof(char));
|
||||||
ie->value.choice.RRC_Version.latest_RRC_Version.size = 1;
|
ie->value.choice.RRC_Version.latest_RRC_Version.buf[0] = 0xe0;
|
||||||
ie->value.choice.RRC_Version.latest_RRC_Version.bits_unused = 5;
|
ie->value.choice.RRC_Version.latest_RRC_Version.size = 1;
|
||||||
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
ie->value.choice.RRC_Version.latest_RRC_Version.bits_unused = 5;
|
||||||
|
ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie);
|
||||||
|
}
|
||||||
|
|
||||||
/* encode */
|
/* encode */
|
||||||
if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
|
if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user