From 0e7887de76c82ecc100571e1112d0f77136856af Mon Sep 17 00:00:00 2001 From: Bing-Kai Hong Date: Sun, 16 Sep 2018 21:51:15 +0800 Subject: [PATCH 1/5] Handle DL\UL RRC MESSAGE TRANSFER at f1ap_handlers --- openair2/F1AP/f1ap_cu_rrc_message_transfer.c | 79 +++++++++++-- openair2/F1AP/f1ap_decoder.c | 27 +++-- openair2/F1AP/f1ap_du_rrc_message_transfer.c | 110 +++++++++++++++++-- openair2/F1AP/f1ap_handlers.c | 5 +- 4 files changed, 191 insertions(+), 30 deletions(-) diff --git a/openair2/F1AP/f1ap_cu_rrc_message_transfer.c b/openair2/F1AP/f1ap_cu_rrc_message_transfer.c index 78090104bb..f7d8ac929d 100644 --- a/openair2/F1AP/f1ap_cu_rrc_message_transfer.c +++ b/openair2/F1AP/f1ap_cu_rrc_message_transfer.c @@ -246,16 +246,7 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance) { printf("Failed to encode F1 setup request\n"); return -1; } - - printf("\n"); - - /* decode */ - if (f1ap_decode_pdu(&pdu, buffer, len) > 0) { - printf("Failed to decode F1 setup request\n"); - return -1; - } - - return 0; + } /* @@ -266,5 +257,71 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance, uint32_t assoc_id, uint32_t stream, F1AP_F1AP_PDU_t *pdu) { - AssertFatal(1==0,"Not implemented yet\n"); + + printf("CU_handle_UL_RRC_MESSAGE_TRANSFER \n"); + + MessageDef *message_p; + F1AP_ULRRCMessageTransfer_t *container; + F1AP_ULRRCMessageTransferIEs_t *ie; + + uint8_t *buffer; + uint32_t len; + + uint64_t cu_ue_f1ap_id; + uint64_t du_ue_f1ap_id; + uint64_t srb_id; + int executeDuplication; + sdu_size_t ccch_sdu_len; + uint64_t subscriberProfileIDforRFP; + uint64_t rAT_FrequencySelectionPriority; + + DevAssert(pdu != NULL); + + if (stream != 0) { + LOG_E(F1AP, "[SCTP %d] Received F1 on stream != 0 (%d)\n", + assoc_id, stream); + return -1; + } + + container = &pdu->choice.initiatingMessage->value.choice.ULRRCMessageTransfer; + + + /* GNB_CU_UE_F1AP_ID */ + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_ULRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID, true); + cu_ue_f1ap_id = ie->value.choice.GNB_CU_UE_F1AP_ID; + printf("cu_ue_f1ap_id %lu \n", cu_ue_f1ap_id); + + + /* GNB_DU_UE_F1AP_ID */ + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_ULRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID, true); + du_ue_f1ap_id = ie->value.choice.GNB_DU_UE_F1AP_ID; + printf("du_ue_f1ap_id %lu \n", du_ue_f1ap_id); + + + /* mandatory */ + /* SRBID */ + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_ULRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_SRBID, true); + srb_id = ie->value.choice.SRBID; + printf("srb_id %lu \n", srb_id); + + + // issue in here + /* mandatory */ + /* RRC Container */ + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_ULRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_RRCContainer, true); + // BK: need check + // create an ITTI message and copy SDU + message_p = itti_alloc_new_message (TASK_CU_F1, RRC_MAC_CCCH_DATA_IND); + memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE); + ccch_sdu_len = ie->value.choice.RRCContainer.size; + memcpy(RRC_MAC_CCCH_DATA_IND (message_p).sdu, ie->value.choice.RRCContainer.buf, + ccch_sdu_len); + printf ("RRCContainer(CCCH) :"); + for (int i=0;ivalue.choice.RRCContainer.size;i++) printf("%2x ",RRC_MAC_CCCH_DATA_IND (message_p).sdu[i]); + + return 0; } diff --git a/openair2/F1AP/f1ap_decoder.c b/openair2/F1AP/f1ap_decoder.c index 80279d6258..08816bd82b 100644 --- a/openair2/F1AP/f1ap_decoder.c +++ b/openair2/F1AP/f1ap_decoder.c @@ -42,14 +42,25 @@ static int f1ap_decode_initiating_message(F1AP_F1AP_PDU_t *pdu) switch(pdu->choice.initiatingMessage->procedureCode) { - case F1AP_ProcedureCode_id_F1Setup: - res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_F1AP_F1AP_PDU, pdu); - printf("f1ap_eNB_decode_initiating_message!\n"); - break; - case F1AP_ProcedureCode_id_InitialULRRCMessageTransfer: - res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_F1AP_F1AP_PDU, pdu); - printf("f1ap_eNB_decode_initiating_message!\n"); - break; + case F1AP_ProcedureCode_id_F1Setup: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_F1AP_F1AP_PDU, pdu); + printf("f1ap_eNB_decode_initiating_message!\n"); + break; + + case F1AP_ProcedureCode_id_InitialULRRCMessageTransfer: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_F1AP_F1AP_PDU, pdu); + printf("f1ap_eNB_decode_initiating_message!\n"); + break; + + case F1AP_ProcedureCode_id_DLRRCMessageTransfer: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_F1AP_F1AP_PDU, pdu); + printf("f1ap_eNB_decode_initiating_message!\n"); + break; + + case F1AP_ProcedureCode_id_ULRRCMessageTransfer: + res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_F1AP_F1AP_PDU, pdu); + printf("f1ap_eNB_decode_initiating_message!\n"); + break; // case F1AP_ProcedureCode_id_InitialContextSetup: // res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_F1AP_F1AP_PDU, pdu); // message_id = F1AP_INITIAL_CONTEXT_SETUP_LOG; diff --git a/openair2/F1AP/f1ap_du_rrc_message_transfer.c b/openair2/F1AP/f1ap_du_rrc_message_transfer.c index fef7fac097..a2febfaa62 100644 --- a/openair2/F1AP/f1ap_du_rrc_message_transfer.c +++ b/openair2/F1AP/f1ap_du_rrc_message_transfer.c @@ -48,7 +48,107 @@ int DU_handle_DL_RRC_MESSAGE_TRANSFER(instance_t instance, uint32_t assoc_id, uint32_t stream, F1AP_F1AP_PDU_t *pdu) { - AssertFatal(1==0,"Not implemented yet\n"); + + printf("DU_handle_DL_RRC_MESSAGE_TRANSFER \n"); + + MessageDef *message_p; + F1AP_DLRRCMessageTransfer_t *container; + F1AP_DLRRCMessageTransferIEs_t *ie; + + uint8_t *buffer; + uint32_t len; + + uint64_t cu_ue_f1ap_id; + uint64_t du_ue_f1ap_id; + uint64_t srb_id; + int executeDuplication; + sdu_size_t ccch_sdu_len; + uint64_t subscriberProfileIDforRFP; + uint64_t rAT_FrequencySelectionPriority; + + DevAssert(pdu != NULL); + + if (stream != 0) { + LOG_E(F1AP, "[SCTP %d] Received F1 on stream != 0 (%d)\n", + assoc_id, stream); + return -1; + } + + container = &pdu->choice.initiatingMessage->value.choice.DLRRCMessageTransfer; + + + /* GNB_CU_UE_F1AP_ID */ + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_DLRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID, true); + cu_ue_f1ap_id = ie->value.choice.GNB_CU_UE_F1AP_ID; + printf("cu_ue_f1ap_id %lu \n", cu_ue_f1ap_id); + + + /* GNB_DU_UE_F1AP_ID */ + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_DLRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID, true); + du_ue_f1ap_id = ie->value.choice.GNB_DU_UE_F1AP_ID; + printf("du_ue_f1ap_id %lu \n", du_ue_f1ap_id); + + + /* optional */ + /* oldgNB_DU_UE_F1AP_ID */ + if (0) { + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_DLRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_oldgNB_DU_UE_F1AP_ID, true); + } + + /* mandatory */ + /* SRBID */ + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_DLRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_SRBID, true); + srb_id = ie->value.choice.SRBID; + printf("srb_id %lu \n", srb_id); + + + /* optional */ + /* ExecuteDuplication */ + if (0) { + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_DLRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_ExecuteDuplication, true); + executeDuplication = ie->value.choice.ExecuteDuplication; + printf("ExecuteDuplication %d \n", executeDuplication); + } + + // issue in here + /* mandatory */ + /* RRC Container */ + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_DLRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_RRCContainer, true); + // BK: need check + // create an ITTI message and copy SDU + message_p = itti_alloc_new_message (TASK_CU_F1, RRC_MAC_CCCH_DATA_IND); + memset (RRC_MAC_CCCH_DATA_IND (message_p).sdu, 0, CCCH_SDU_SIZE); + ccch_sdu_len = ie->value.choice.RRCContainer.size; + memcpy(RRC_MAC_CCCH_DATA_IND (message_p).sdu, ie->value.choice.RRCContainer.buf, + ccch_sdu_len); + printf ("RRCContainer(CCCH) :"); + for (int i=0;ivalue.choice.RRCContainer.size;i++) printf("%2x ",RRC_MAC_CCCH_DATA_IND (message_p).sdu[i]); + + + /* optional */ + /* RAT_FrequencyPriorityInformation */ + if (0) { + F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_DLRRCMessageTransferIEs_t, ie, container, + F1AP_ProtocolIE_ID_id_RAT_FrequencyPriorityInformation, true); + + switch(ie->value.choice.RAT_FrequencyPriorityInformation.present) { + case F1AP_RAT_FrequencyPriorityInformation_PR_subscriberProfileIDforRFP: + subscriberProfileIDforRFP = ie->value.choice.RAT_FrequencyPriorityInformation.choice.subscriberProfileIDforRFP; + break; + case F1AP_RAT_FrequencyPriorityInformation_PR_rAT_FrequencySelectionPriority: + rAT_FrequencySelectionPriority = ie->value.choice.RAT_FrequencyPriorityInformation.choice.rAT_FrequencySelectionPriority; + break; + } + } + + return 0; + } //void DU_send_UL_RRC_MESSAGE_TRANSFER(F1AP_ULRRCMessageTransfer_t *ULRRCMessageTransfer) { @@ -207,20 +307,12 @@ int DU_send_INITIAL_UL_RRC_MESSAGE_TRANSFER( ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); } - /* encode */ if (f1ap_encode_pdu(&pdu, &buffer, &len) < 0) { printf("Failed to encode F1 setup request\n"); return -1; } - printf("\n"); - du_f1ap_itti_send_sctp_data_req(0, f1ap_du_data->assoc_id, buffer, len, 0); return 0; - /* decode */ - // if (f1ap_decode_pdu(&pdu, buffer, len) > 0) { - // printf("Failed to decode F1 setup request\n"); - // } - //AssertFatal(1==0,"Not implemented yet\n"); } diff --git a/openair2/F1AP/f1ap_handlers.c b/openair2/F1AP/f1ap_handlers.c index 3957a7e2c9..168f6deaa9 100644 --- a/openair2/F1AP/f1ap_handlers.c +++ b/openair2/F1AP/f1ap_handlers.c @@ -36,6 +36,7 @@ #include "f1ap_cu_interface_management.h" #include "f1ap_du_interface_management.h" #include "f1ap_cu_rrc_message_transfer.h" +#include "f1ap_du_rrc_message_transfer.h" extern f1ap_setup_req_t *f1ap_du_data_from_du; @@ -55,8 +56,8 @@ f1ap_message_decoded_callback f1ap_messages_callback[][3] = { { 0, 0, 0 }, /* UEMobilityCommand */ { 0, 0, 0 }, /* UEContextReleaseRequest */ { CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER, 0, 0 }, /* InitialULRRCMessageTransfer */ - { 0, 0, 0 }, /* DLRRCMessageTransfer */ - { 0, 0, 0 }, /* ULRRCMessageTransfer */ + { DU_handle_DL_RRC_MESSAGE_TRANSFER, 0, 0 }, /* DLRRCMessageTransfer */ + { CU_handle_UL_RRC_MESSAGE_TRANSFER, 0, 0 }, /* ULRRCMessageTransfer */ { 0, 0, 0 }, /* privateMessage */ { 0, 0, 0 }, /* UEInactivityNotification */ { 0, 0, 0 }, /* GNBDUResourceCoordination */ From 942d92cf7c82831a0036857fb56e039c8316ec81 Mon Sep 17 00:00:00 2001 From: Navid Nikaein Date: Sun, 16 Sep 2018 07:54:22 +0200 Subject: [PATCH 2/5] send msg 4 in F1 DL RRC message transfer --- openair2/COMMON/f1ap_messages_def.h | 2 +- openair2/F1AP/f1ap_cu_rrc_message_transfer.c | 73 ++++++++--- openair2/F1AP/f1ap_cu_rrc_message_transfer.h | 4 +- openair2/F1AP/f1ap_cu_task.c | 8 ++ openair2/F1AP/f1ap_du_interface_management.c | 2 +- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 14 +- .../L2_INTERFACE/openair_rrc_L2_interface.h | 3 +- openair2/RRC/LTE/L2_interface.c | 8 +- openair2/RRC/LTE/rrc_eNB.c | 121 +++++++++--------- openair2/RRC/LTE/rrc_proto.h | 3 +- 10 files changed, 141 insertions(+), 97 deletions(-) diff --git a/openair2/COMMON/f1ap_messages_def.h b/openair2/COMMON/f1ap_messages_def.h index 65b41872bd..f08a9534d4 100644 --- a/openair2/COMMON/f1ap_messages_def.h +++ b/openair2/COMMON/f1ap_messages_def.h @@ -37,7 +37,7 @@ MESSAGE_DEF(F1AP_UL_RRC_MESSAGE , MESSAGE_PRIORITY_MED, f1ap_ul_r /* RRC -> F1AP messages */ -MESSAGE_DEF(F1AP_DL_RRC_MESSAGE , MESSAGE_PRIORITY_MED, f1ap_dl_rrc_message_t , f1ap_downlink_rrc_message ) +MESSAGE_DEF(F1AP_DL_RRC_MESSAGE , MESSAGE_PRIORITY_MED, f1ap_dl_rrc_message_t , f1ap_dl_rrc_message ) //MESSAGE_DEF(F1AP_INITIAL_CONTEXT_SETUP_REQ , MESSAGE_PRIORITY_MED, f1ap_initial_context_setup_req_t , f1ap_initial_context_setup_req ) diff --git a/openair2/F1AP/f1ap_cu_rrc_message_transfer.c b/openair2/F1AP/f1ap_cu_rrc_message_transfer.c index f7d8ac929d..c9005b06a7 100644 --- a/openair2/F1AP/f1ap_cu_rrc_message_transfer.c +++ b/openair2/F1AP/f1ap_cu_rrc_message_transfer.c @@ -41,6 +41,10 @@ // a compile error #undef C_RNTI +// Bing Kai: create CU and DU context, and put all the information there. +uint64_t du_ue_f1ap_id = 0; +uint32_t f1ap_assoc_id = 0; +uint32_t f1ap_stream = 0; /* Initial UL RRC Message Transfer */ @@ -62,15 +66,18 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance, uint8_t *ccch_sdu; sdu_size_t ccch_sdu_len; int CC_id =0; - uint64_t du_ue_f1ap_id; + DevAssert(pdu != NULL); if (stream != 0) { - LOG_E(F1AP, "[SCTP %d] Received F1 on stream != 0 (%d)\n", + LOG_E(CU_F1AP, "[SCTP %d] Received F1 on stream != 0 (%d)\n", assoc_id, stream); return -1; } + // TODO: use context + f1ap_stream = stream; + f1ap_assoc_id = assoc_id; container = &pdu->choice.initiatingMessage->value.choice.InitialULRRCMessageTransfer; @@ -80,10 +87,13 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance, du_ue_f1ap_id = ie->value.choice.GNB_DU_UE_F1AP_ID; printf("du_ue_f1ap_id %lu \n", du_ue_f1ap_id); - /* NRCGI */ + /* NRCGI + * TODO: process NRCGI + */ F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, container, F1AP_ProtocolIE_ID_id_NRCGI, true); + /* RNTI */ F1AP_FIND_PROTOCOLIE_BY_ID(F1AP_InitialULRRCMessageTransferIEs_t, ie, container, F1AP_ProtocolIE_ID_id_C_RNTI, true); @@ -148,16 +158,28 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance, */ //void CU_send_DL_RRC_MESSAGE_TRANSFER(F1AP_DLRRCMessageTransfer_t *DLRRCMessageTransfer) { -int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance) { - F1AP_F1AP_PDU_t pdu; +int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance, + f1ap_dl_rrc_message_t *f1ap_dl_rrc) + { + + F1AP_F1AP_PDU_t pdu; F1AP_DLRRCMessageTransfer_t *out; F1AP_DLRRCMessageTransferIEs_t *ie; uint8_t *buffer; uint32_t len; + if (f1ap_stream == 0) { + LOG_E(CU_F1AP, "[CU %d] Received DL RRC message transfer on stream == %d\n", + f1ap_assoc_id, f1ap_stream); + return -1; + } + + out = &pdu.choice.initiatingMessage->value.choice.DLRRCMessageTransfer; + + /* Create */ - /* 0. Message Type */ + /* 0. Message Type */ memset(&pdu, 0, sizeof(pdu)); pdu.present = F1AP_F1AP_PDU_PR_initiatingMessage; pdu.choice.initiatingMessage = (F1AP_InitiatingMessage_t *)calloc(1, sizeof(F1AP_InitiatingMessage_t)); @@ -168,11 +190,12 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance) { /* mandatory */ /* c1. GNB_CU_UE_F1AP_ID */ + ie = (F1AP_DLRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_DLRRCMessageTransferIEs_t)); ie->id = F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID; ie->criticality = F1AP_Criticality_reject; ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_GNB_CU_UE_F1AP_ID; - ie->value.choice.GNB_CU_UE_F1AP_ID = 126L; + ie->value.choice.GNB_CU_UE_F1AP_ID = f1ap_dl_rrc->gNB_CU_ue_id; ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); /* mandatory */ @@ -181,19 +204,19 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance) { ie->id = F1AP_ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID; ie->criticality = F1AP_Criticality_reject; ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID; - ie->value.choice.GNB_DU_UE_F1AP_ID = 651L; + ie->value.choice.GNB_DU_UE_F1AP_ID = du_ue_f1ap_id; // TODO: f1ap_dl_rrc->gNB_DU_ue_id ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); /* optional */ /* c3. oldgNB_DU_UE_F1AP_ID */ - if (0) { + /* if (f1ap_dl_rrc->old_gNB_DU_ue_id != 0xFFFFFFFF) { ie = (F1AP_DLRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_DLRRCMessageTransferIEs_t)); - ie->id = F1AP_ProtocolIE_ID_id_oldgNB_DU_UE_F1AP_ID; - ie->criticality = F1AP_Criticality_reject; - //ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_NOTHING; - //ie->value.choice. = 1; + ie->id = F1AP_ProtocolIE_ID_id_oldgNB_DU_UE_F1AP_ID; + ie->criticality = F1AP_Criticality_reject; + ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_NOTHING; + ie->value.choice.oldgNB_DU_UE_F1AP_ID = f1ap_dl_rrc->old_gNB_DU_ue_id; ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); - } + }*/ /* mandatory */ /* c4. SRBID */ @@ -201,12 +224,12 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance) { ie->id = F1AP_ProtocolIE_ID_id_SRBID; ie->criticality = F1AP_Criticality_reject; ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_SRBID; - ie->value.choice.SRBID = 2L; + ie->value.choice.SRBID = f1ap_dl_rrc->srb_id; ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); /* optional */ /* c5. ExecuteDuplication */ - if (0) { + if (f1ap_dl_rrc->execute_duplication) { ie = (F1AP_DLRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_DLRRCMessageTransferIEs_t)); ie->id = F1AP_ProtocolIE_ID_id_ExecuteDuplication; ie->criticality = F1AP_Criticality_ignore; @@ -222,11 +245,12 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance) { ie->id = F1AP_ProtocolIE_ID_id_RRCContainer; ie->criticality = F1AP_Criticality_reject; ie->value.present = F1AP_DLRRCMessageTransferIEs__value_PR_RRCContainer; - OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer, "A", strlen("A")); + OCTET_STRING_fromBuf(&ie->value.choice.RRCContainer, f1ap_dl_rrc->rrc_container, f1ap_dl_rrc->rrc_container_length); ASN_SEQUENCE_ADD(&out->protocolIEs.list, ie); /* optional */ /* c7. RAT_FrequencyPriorityInformation */ + /* TODO */ if (0) { ie = (F1AP_DLRRCMessageTransferIEs_t *)calloc(1, sizeof(F1AP_DLRRCMessageTransferIEs_t)); ie->id = F1AP_ProtocolIE_ID_id_RAT_FrequencyPriorityInformation; @@ -246,7 +270,20 @@ int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance) { printf("Failed to encode F1 setup request\n"); return -1; } - + +#ifdef F1AP_TEST + printf("\n"); + /* decode */ + if (f1ap_decode_pdu(&pdu, buffer, len) > 0) { + printf("Failed to decode F1 setup request\n"); + return -1; + } +#endif + + cu_f1ap_itti_send_sctp_data_req(instance, f1ap_assoc_id, buffer, len, 0); + + + return 0; } /* diff --git a/openair2/F1AP/f1ap_cu_rrc_message_transfer.h b/openair2/F1AP/f1ap_cu_rrc_message_transfer.h index 952297b0dd..68ebbfe41e 100644 --- a/openair2/F1AP/f1ap_cu_rrc_message_transfer.h +++ b/openair2/F1AP/f1ap_cu_rrc_message_transfer.h @@ -38,11 +38,13 @@ int CU_handle_INITIAL_UL_RRC_MESSAGE_TRANSFER(instance_t instance, uint32_t stream, F1AP_F1AP_PDU_t *pdu); -int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance); +int CU_send_DL_RRC_MESSAGE_TRANSFER(instance_t instance, + f1ap_dl_rrc_message_t *f1ap_dl_rrc); int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t instance, uint32_t assoc_id, uint32_t stream, F1AP_F1AP_PDU_t *pdu); + #endif /* F1AP_CU_RRC_MESSAGE_TRANSFER_H_ */ diff --git a/openair2/F1AP/f1ap_cu_task.c b/openair2/F1AP/f1ap_cu_task.c index d6ab3adbdc..5da7dcba44 100644 --- a/openair2/F1AP/f1ap_cu_task.c +++ b/openair2/F1AP/f1ap_cu_task.c @@ -33,6 +33,7 @@ #include "f1ap_common.h" #include "f1ap_handlers.h" #include "f1ap_cu_interface_management.h" +#include "f1ap_cu_rrc_message_transfer.h" #include "f1ap_cu_task.h" extern RAN_CONTEXT_t RC; @@ -144,6 +145,13 @@ void *F1AP_CU_task(void *arg) { &F1AP_SETUP_RESP(received_msg)); break; + case F1AP_DL_RRC_MESSAGE: // from rrc + LOG_W(CU_F1AP, "F1AP_DL_RRC_MESSAGE\n"); + // CU_send_f1setup_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg), + // &F1AP_SETUP_RESP(received_msg)); + CU_send_DL_RRC_MESSAGE_TRANSFER(ITTI_MESSAGE_GET_INSTANCE(received_msg), + &F1AP_SETUP_RESP(received_msg)); + break; // case F1AP_SETUP_RESPONSE: // This is from RRC // CU_send_F1_SETUP_RESPONSE(instance, *f1ap_setup_ind, &(F1AP_SETUP_RESP) f1ap_setup_resp) diff --git a/openair2/F1AP/f1ap_du_interface_management.c b/openair2/F1AP/f1ap_du_interface_management.c index be36af0a1b..f2391a8149 100644 --- a/openair2/F1AP/f1ap_du_interface_management.c +++ b/openair2/F1AP/f1ap_du_interface_management.c @@ -425,7 +425,7 @@ int DU_handle_F1_SETUP_RESPONSE(instance_t instance, 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); + MessageDef *msg_p = itti_alloc_new_message (TASK_DU_F1, F1AP_SETUP_RESP); printf("F1AP: F1Setup-Resp: protocolIEs.list.count %d\n", in->protocolIEs.list.count); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index f55f22b8d4..79939b061d 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -366,8 +366,6 @@ rx_sdu(const module_id_t enb_mod_idP, for (ii = 0; ii < NB_RA_PROC_MAX; ii++) { ra = &mac->common_channels[CC_idP].ra[ii]; if ((ra->rnti == current_rnti) && (ra->state != IDLE)) { - //int RC.cudu.du_flag = 1; - //int du_flag = 1; mac_rrc_data_ind( enb_mod_idP, CC_idP, @@ -376,8 +374,7 @@ rx_sdu(const module_id_t enb_mod_idP, DCCH, (uint8_t *) payload_ptr, rx_lengths[i], - 0, - RC.rrc[enb_mod_idP]->node_type + 0 ); // prepare transmission of Msg4(RRCConnectionReconfiguration) ra->state = MSGCRNTI; @@ -618,19 +615,16 @@ rx_sdu(const module_id_t enb_mod_idP, // kill RA procedure } - //int RC.cudu.du_flag = 1; - //int du_flag = 1; mac_rrc_data_ind( - enb_mod_idP, + enb_mod_idP, CC_idP, frameP, subframeP, UE_id, current_rnti, CCCH, (uint8_t *) payload_ptr, rx_lengths[i], - 0, - RC.rrc[enb_mod_idP]->node_type - ); + 0 + ); if (num_ce > 0) { // handle msg3 which is not RRCConnectionRequest diff --git a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h index 6b7502d50d..22fa2755d4 100644 --- a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h +++ b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h @@ -56,8 +56,7 @@ mac_rrc_data_ind( const rb_id_t srb_idP, const uint8_t* sduP, const sdu_size_t sdu_lenP, - const uint8_t mbsfn_sync_areaP, - const int du_flag + const uint8_t mbsfn_sync_areaP ); int8_t diff --git a/openair2/RRC/LTE/L2_interface.c b/openair2/RRC/LTE/L2_interface.c index ed7e0c4d01..6b66349116 100644 --- a/openair2/RRC/LTE/L2_interface.c +++ b/openair2/RRC/LTE/L2_interface.c @@ -270,13 +270,13 @@ mac_rrc_data_ind( const rb_id_t srb_idP, const uint8_t* sduP, const sdu_size_t sdu_lenP, - const uint8_t mbsfn_sync_areaP, - const int node_type + const uint8_t mbsfn_sync_areaP ) //-------------------------------------------------------------------------- { - LOG_E(RRC, "node_type == %d \n" , node_type); - if (node_type == ngran_eNB_DU) { + + + if ( RC.rrc[module_idP]->node_type == ngran_eNB_DU) { LOG_W(RRC,"[DU %d][RAPROC] Received SDU for CCCH on SRB %d length %d for UE id %d RNTI %x \n", module_idP, srb_idP, sdu_lenP, UE_id, rntiP); diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 1f5cd605ba..83789041be 100644 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -5734,7 +5734,8 @@ rrc_eNB_generate_RRCConnectionSetup( SRB_ToAddModList_t **SRB_configList; SRB_ToAddMod_t *SRB1_config; int cnt; - + MessageDef *message_p; + T(T_ENB_RRC_CONNECTION_SETUP, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); @@ -5757,8 +5758,34 @@ rrc_eNB_generate_RRCConnectionSetup( "[MSG] RRC Connection Setup\n"); // configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE + switch (RC.rrc[ctxt_pP->module_id]->node_type){ + case ngran_eNB_CU : + case ngran_ng_eNB_CU : + case ngran_gNB_CU : + // nothing to do for CU + break; + case ngran_eNB_DU : + case ngran_gNB_DU : + // create an ITTI message + message_p = itti_alloc_new_message (TASK_CU_F1, F1AP_DL_RRC_MESSAGE); + memset (F1AP_DL_RRC_MESSAGE (message_p).rrc_container, 0, F1AP_DL_RRC_MESSAGE); + memcpy (F1AP_DL_RRC_MESSAGE (message_p).rrc_container, + (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload, + ue_p->Srb0.Tx_buffer.payload_size); + F1AP_DL_RRC_MESSAGE (message_p).rrc_container_length = ue_p->Srb0.Tx_buffer.payload_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).srb_id = CCCH; + 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_RRC_ENB, UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id), message_p); - if (*SRB_configList != NULL) { + case ngran_eNB: + case ngran_ng_eNB : + case ngran_gNB : + + if (*SRB_configList != NULL) { for (cnt = 0; cnt < (*SRB_configList)->list.count; cnt++) { if ((*SRB_configList)->list.array[cnt]->srb_Identity == 1) { SRB1_config = (*SRB_configList)->list.array[cnt]; @@ -5812,11 +5839,14 @@ rrc_eNB_generate_RRCConnectionSetup( (SystemInformationBlockType1_v1310_IEs_t *)NULL #endif ); - break; } } } - + break; + default : + LOG_W(RRC, "Unknown node type %d\n", RC.rrc[ctxt_pP->module_id]->node_type); + } + MSC_LOG_TX_MESSAGE( MSC_RRC_ENB, MSC_RRC_UE, @@ -6058,36 +6088,6 @@ rrc_eNB_decode_ccch( 0, 0); - /* -#if defined(ENABLE_ITTI) -# if defined(DISABLE_ITTI_XER_PRINT) - { - MessageDef *message_p; - - message_p = itti_alloc_new_message(TASK_RRC_ENB, RRC_UL_CCCH_MESSAGE); - memcpy(&message_p->ittiMsg, (void *)ul_ccch_msg, sizeof(RrcUlCcchMessage)); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, message_p); - } -# else - { - char message_string[10000]; - size_t message_string_size; - - if ((message_string_size = - xer_sprint(message_string, sizeof(message_string), &asn_DEF_UL_CCCH_Message, (void *)ul_ccch_msg)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized(TASK_RRC_ENB, RRC_UL_CCCH, message_string_size + sizeof(IttiMsgText)); - msg_p->ittiMsg.rrc_ul_ccch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_ul_ccch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } - } -# endif -#endif - */ for (i = 0; i < 8; i++) { LOG_T(RRC, "%x.", ((uint8_t *) & ul_ccch_msg)[i]); @@ -6317,18 +6317,19 @@ rrc_eNB_decode_ccch( #endif ,NULL); + rrc_rlc_config_asn1_req(ctxt_pP, - ue_context_p->ue_context.SRB_configList, - (DRB_ToAddModList_t*) NULL, - (DRB_ToReleaseList_t*) NULL + ue_context_p->ue_context.SRB_configList, + (DRB_ToAddModList_t*) NULL, + (DRB_ToReleaseList_t*) NULL #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - , (PMCH_InfoList_r9_t *) NULL, - 0,0 + , (PMCH_InfoList_r9_t *) NULL, + 0,0 # endif - ); + ); #endif //NO_RRM - } - break; + } + break; case UL_CCCH_MessageType__c1_PR_rrcConnectionRequest: T(T_ENB_RRC_CONNECTION_REQUEST, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), @@ -6362,12 +6363,12 @@ rrc_eNB_decode_ccch( rrcConnectionRequest = &ul_ccch_msg->message.choice.c1.choice.rrcConnectionRequest.criticalExtensions.choice.rrcConnectionRequest_r8; { if (InitialUE_Identity_PR_randomValue == rrcConnectionRequest->ue_Identity.present) { - if(rrcConnectionRequest->ue_Identity.choice.randomValue.size != 5) - { - LOG_I(RRC, "wrong InitialUE-Identity randomValue size, expected 5, provided %lu", - (long unsigned int)rrcConnectionRequest->ue_Identity.choice.randomValue.size); - return -1; - } + if(rrcConnectionRequest->ue_Identity.choice.randomValue.size != 5) + { + LOG_I(RRC, "wrong InitialUE-Identity randomValue size, expected 5, provided %lu", + (long unsigned int)rrcConnectionRequest->ue_Identity.choice.randomValue.size); + return -1; + } memcpy(((uint8_t*) & random_value) + 3, rrcConnectionRequest->ue_Identity.choice.randomValue.buf, rrcConnectionRequest->ue_Identity.choice.randomValue.size); @@ -6437,8 +6438,8 @@ rrc_eNB_decode_ccch( PROTOCOL_RRC_CTXT_UE_FMT" RRCConnectionRequest without random UE identity or S-TMSI not supported, let's reject the UE\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP)); rrc_eNB_generate_RRCConnectionReject(ctxt_pP, - rrc_eNB_get_ue_context(RC.rrc[ctxt_pP->module_id], ctxt_pP->rnti), - CC_id); + rrc_eNB_get_ue_context(RC.rrc[ctxt_pP->module_id], ctxt_pP->rnti), + CC_id); // navid: break; } @@ -6546,17 +6547,21 @@ rrc_eNB_decode_ccch( #endif ,NULL); - rrc_rlc_config_asn1_req(ctxt_pP, - ue_context_p->ue_context.SRB_configList, - (DRB_ToAddModList_t*) NULL, - (DRB_ToReleaseList_t*) NULL + if ( (RC.rrc[ctxt_pP->module_id]->node_type != ngran_eNB_CU) || + (RC.rrc[ctxt_pP->module_id]->node_type != ngran_ng_eNB_CU) || + (RC.rrc[ctxt_pP->module_id]->node_type != ngran_gNB_CU) ) { + + rrc_rlc_config_asn1_req(ctxt_pP, + ue_context_p->ue_context.SRB_configList, + (DRB_ToAddModList_t*) NULL, + (DRB_ToReleaseList_t*) NULL #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - , (PMCH_InfoList_r9_t *) NULL - , 0, 0 + , (PMCH_InfoList_r9_t *) NULL + , 0, 0 #endif - ); + ); #endif //NO_RRM - + } break; default: diff --git a/openair2/RRC/LTE/rrc_proto.h b/openair2/RRC/LTE/rrc_proto.h index 408270edbc..7afe8ab8b0 100644 --- a/openair2/RRC/LTE/rrc_proto.h +++ b/openair2/RRC/LTE/rrc_proto.h @@ -430,8 +430,7 @@ mac_rrc_data_ind( const rb_id_t srb_idP, const uint8_t* sduP, const sdu_size_t sdu_lenP, - const uint8_t mbsfn_sync_areaP, - const int node_type + const uint8_t mbsfn_sync_areaP ); int8_t From 7fcaf4f9840eb51af5183ae76a9c64f86065ee47 Mon Sep 17 00:00:00 2001 From: Navid Nikaein Date: Sun, 16 Sep 2018 15:27:38 +0200 Subject: [PATCH 3/5] Update the SIB buffer as per earlier commits --- openair2/RRC/LTE/rrc_eNB.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 83789041be..e8240bec23 100644 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -5767,13 +5767,14 @@ rrc_eNB_generate_RRCConnectionSetup( case ngran_eNB_DU : case ngran_gNB_DU : // create an ITTI message + /* TODO: F1 IDs ar missing in RRC */ message_p = itti_alloc_new_message (TASK_CU_F1, F1AP_DL_RRC_MESSAGE); memset (F1AP_DL_RRC_MESSAGE (message_p).rrc_container, 0, F1AP_DL_RRC_MESSAGE); memcpy (F1AP_DL_RRC_MESSAGE (message_p).rrc_container, - (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload, + (uint8_t*) ue_p->Srb0.Tx_buffer.Payload, ue_p->Srb0.Tx_buffer.payload_size); F1AP_DL_RRC_MESSAGE (message_p).rrc_container_length = ue_p->Srb0.Tx_buffer.payload_size; - F1AP_DL_RRC_MESSAGE (message_p).gNB_CU_ue_id = 0; + 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).srb_id = CCCH; From 693a82a58de8364c91a44c71d0c70d88bff9a0f0 Mon Sep 17 00:00:00 2001 From: Navid Nikaein Date: Sun, 16 Sep 2018 16:28:55 +0200 Subject: [PATCH 4/5] Add the instance id in the sctp_itti_send_new_message_ind --- openair3/SCTP/sctp_eNB_itti_messaging.c | 5 +++-- openair3/SCTP/sctp_eNB_itti_messaging.h | 3 ++- openair3/SCTP/sctp_eNB_task.c | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/openair3/SCTP/sctp_eNB_itti_messaging.c b/openair3/SCTP/sctp_eNB_itti_messaging.c index 3517c0597b..e25e022a0d 100644 --- a/openair3/SCTP/sctp_eNB_itti_messaging.c +++ b/openair3/SCTP/sctp_eNB_itti_messaging.c @@ -24,7 +24,8 @@ #include "sctp_common.h" #include "sctp_eNB_itti_messaging.h" -int sctp_itti_send_new_message_ind(task_id_t task_id, uint32_t assoc_id, uint8_t *buffer, +int sctp_itti_send_new_message_ind(task_id_t task_id, instance_t instance, + uint32_t assoc_id, uint8_t *buffer, uint32_t buffer_length, uint16_t stream) { MessageDef *message_p; @@ -43,7 +44,7 @@ int sctp_itti_send_new_message_ind(task_id_t task_id, uint32_t assoc_id, uint8_t sctp_data_ind_p->buffer_length = buffer_length; sctp_data_ind_p->assoc_id = assoc_id; - return itti_send_msg_to_task(task_id, INSTANCE_DEFAULT, message_p); + return itti_send_msg_to_task(task_id, instance, message_p); } int sctp_itti_send_association_resp(task_id_t task_id, instance_t instance, diff --git a/openair3/SCTP/sctp_eNB_itti_messaging.h b/openair3/SCTP/sctp_eNB_itti_messaging.h index 665c5f0e66..ab476aa5ed 100644 --- a/openair3/SCTP/sctp_eNB_itti_messaging.h +++ b/openair3/SCTP/sctp_eNB_itti_messaging.h @@ -22,7 +22,8 @@ #ifndef SCTP_ITTI_MESSAGING_H_ #define SCTP_ITTI_MESSAGING_H_ -int sctp_itti_send_new_message_ind(task_id_t task_id, uint32_t assoc_id, uint8_t *buffer, +int sctp_itti_send_new_message_ind(task_id_t task_id, instance_t instance, + uint32_t assoc_id, uint8_t *buffer, uint32_t buffer_length, uint16_t stream); int sctp_itti_send_association_resp(task_id_t task_id, instance_t instance, diff --git a/openair3/SCTP/sctp_eNB_task.c b/openair3/SCTP/sctp_eNB_task.c index 168eb58b37..630cdb1beb 100644 --- a/openair3/SCTP/sctp_eNB_task.c +++ b/openair3/SCTP/sctp_eNB_task.c @@ -749,6 +749,7 @@ sctp_eNB_read_from_socket( sinfo.sinfo_stream, ntohl(sinfo.sinfo_ppid)); sctp_itti_send_new_message_ind(sctp_cnx->task_id, + sctp_cnx->instance, sinfo.sinfo_assoc_id, buffer, n, sinfo.sinfo_stream); } From f7f7daf71569199713ea65078f1790b0744f4417 Mon Sep 17 00:00:00 2001 From: Bing-Kai Hong Date: Sun, 16 Sep 2018 22:02:33 +0800 Subject: [PATCH 5/5] Restore some template files for CMake --- .gitignore | 2 +- .../lte_noS1_build_oai/CMakeLists.template | 9 +++ .../oaisim_build_oai/CMakeLists.template | 60 ++++++++++++++++++ .../oaisim_mme_build_oai/CMakeLists.template | 62 ++++++++++++++++++ .../oaisim_noS1_build_oai/CMakeLists.template | 63 +++++++++++++++++++ 5 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 cmake_targets/lte_noS1_build_oai/CMakeLists.template create mode 100644 cmake_targets/oaisim_build_oai/CMakeLists.template create mode 100644 cmake_targets/oaisim_mme_build_oai/CMakeLists.template create mode 100644 cmake_targets/oaisim_noS1_build_oai/CMakeLists.template diff --git a/.gitignore b/.gitignore index 0051125185..35696f4cbf 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,5 @@ # log and exec file log/ -*build_oai/ +lte_build_oai/ targets/bin/ diff --git a/cmake_targets/lte_noS1_build_oai/CMakeLists.template b/cmake_targets/lte_noS1_build_oai/CMakeLists.template new file mode 100644 index 0000000000..c8fc68da52 --- /dev/null +++ b/cmake_targets/lte_noS1_build_oai/CMakeLists.template @@ -0,0 +1,9 @@ +set(ENABLE_ITTI True) +set(ENABLE_USE_MME False) +set(PDCP_USE_NETLINK True) +set(LINK_ENB_PDCP_TO_IP_DRIVER True) +set(LINK_ENB_PDCP_TO_GTPV1U False) +set(PDCP_USE_NETLINK_QUEUES False) +set(LINUX True) +set(SECU False) +set(NAS_UE False) diff --git a/cmake_targets/oaisim_build_oai/CMakeLists.template b/cmake_targets/oaisim_build_oai/CMakeLists.template new file mode 100644 index 0000000000..22faac75b5 --- /dev/null +++ b/cmake_targets/oaisim_build_oai/CMakeLists.template @@ -0,0 +1,60 @@ +cmake_minimum_required(VERSION 2.8) + +set ( CMAKE_BUILD_TYPE "RelWithDebInfo" ) +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 True ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING True ) +set ( ENABLE_NEW_MULTICAST True ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY True ) +set ( ENABLE_STANDALONE_EPC False) +set ( ENABLE_USE_CPU_EXECUTION_TIME True ) +set ( ENABLE_USE_MME True ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI True) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE True ) +set ( EXMIMO_IOT True ) +set ( JUMBO_FRAME True ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U True) +set ( LINUX_LIST False ) +set ( LINUX True ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD True ) +set ( DEADLINE_SCHEDULER False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MESSAGE_CHART_GENERATOR False) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX False ) +set ( NAS_BUILT_IN_UE True) +set ( NAS_MME False ) +set ( NAS_UE True ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NO_RRM True ) +set ( OAISIM True ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET False ) +set ( OAI_NW_DRIVER_USE_NETLINK True ) +set ( OPENAIR2 True ) +set ( OPENAIR_LTE True ) +set ( PACKAGE_NAME "oaisim" ) +set ( PDCP_USE_NETLINK True ) +set ( PDCP_MSG_PRINT False ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM True ) +set ( RF_BOARD "False" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RRC_DEFAULT_RAB_IS_AM True) +set ( RRC_MSG_PRINT False ) +set ( SECU False ) +set ( SMBV False ) +set ( TEST_OMG False ) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( XER_PRINT False ) diff --git a/cmake_targets/oaisim_mme_build_oai/CMakeLists.template b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template new file mode 100644 index 0000000000..b18b23ee9a --- /dev/null +++ b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template @@ -0,0 +1,62 @@ +cmake_minimum_required(VERSION 2.8) + +set ( CMAKE_BUILD_TYPE "RelWithDebInfo" ) +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 False ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING False ) +set ( ENABLE_NEW_MULTICAST False ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY False ) +set ( ENABLE_STANDALONE_EPC False ) +set ( ENABLE_USE_CPU_EXECUTION_TIME False ) +set ( ENABLE_USE_MME False ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI True) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE False ) +set ( EPC_BUILD True ) +set ( EXMIMO_IOT False ) +set ( JUMBO_FRAME False ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U True) +set ( LINUX_LIST False ) +set ( LINUX False ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD False ) +set ( DEADLINE_SCHEDULER False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX False ) +set ( NAS_BUILT_IN_EPC True ) +set ( NAS_MME True ) +set ( NAS_NETLINK False ) +set ( NAS_UE False ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NO_RRM False ) +set ( OAISIM False ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET False ) +set ( OAI_NW_DRIVER_USE_NETLINK False ) +set ( OPENAIR2 False ) +set ( OPENAIR_LTE False ) +set ( PACKAGE_NAME "EPC" ) +set ( PDCP_MSG_PRINT False ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM False ) +set ( RF_BOARD "False" ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_MSG_PRINT False ) +set ( SECU False ) +set ( SMBV False ) +set ( TEST_OMG False ) +set ( UPDATE_RELEASE_9 True) +set ( UPDATE_RELEASE_10 True) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( XER_PRINT False ) +set ( XFORMS False ) diff --git a/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template b/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template new file mode 100644 index 0000000000..bc416cff55 --- /dev/null +++ b/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template @@ -0,0 +1,63 @@ +cmake_minimum_required(VERSION 2.8) + +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 True ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING False ) +set ( ENABLE_NEW_MULTICAST True ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY False ) +set ( ENABLE_STANDALONE_EPC False) +set ( ENABLE_USE_CPU_EXECUTION_TIME True ) +set ( ENABLE_USE_MME False ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE True ) +set ( EXMIMO_IOT True ) +set ( JUMBO_FRAME True ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U False) +set ( LINUX_LIST False ) +set ( LINUX True ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD 1 ) +set ( DEADLINE_SCHEDULER False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MESSAGE_CHART_GENERATOR False ) +set ( MESSAGE_CHART_GENERATOR_RLC_MAC False ) +set ( MESSAGE_CHART_GENERATOR_PHY False ) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX False ) +set ( NAS_BUILT_IN_UE False) +set ( NAS_MME False ) +set ( NAS_UE False ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NO_RRM True ) +set ( OAISIM True ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET False ) +set ( OAI_NW_DRIVER_USE_NETLINK True ) +set ( OPENAIR2 True ) +set ( OPENAIR_LTE True ) +set ( PACKAGE_NAME "oaisim" ) +set ( PDCP_USE_NETLINK True ) +set ( PDCP_MSG_PRINT False ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM True ) +set ( RF_BOARD "False" ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_MSG_PRINT False ) +set ( SECU False ) +set ( SMBV False ) +set ( TEST_OMG False ) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( XER_PRINT False ) +set ( DEBUG_PHY False ) +set ( DEBUG_PHY_PROC False) +set ( DEBUG_DLSCH False)