X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=RIC-E2-TERMINATION%2FTEST%2FT1%2FE2Builder.h;h=790d7a68c43a26a30559e814052c10f14f54484f;hb=HEAD;hp=3ee63054cea4efba452c9bf1c97894cb38b31177;hpb=d030b24692135e8bcb67749bbcbb6be353e71705;p=ric-plt%2Fe2.git diff --git a/RIC-E2-TERMINATION/TEST/T1/E2Builder.h b/RIC-E2-TERMINATION/TEST/T1/E2Builder.h index 3ee6305..790d7a6 100644 --- a/RIC-E2-TERMINATION/TEST/T1/E2Builder.h +++ b/RIC-E2-TERMINATION/TEST/T1/E2Builder.h @@ -32,6 +32,8 @@ #include <3rdparty/oranE2SM/E2SM-gNB-NRT-RANfunction-Definition.h> #include <3rdparty/oranE2SM/RIC-InsertStyle-List.h> #include <3rdparty/oranE2SM/RANparameterDef-Item.h> +#include <3rdparty/oranE2/GlobalE2node-en-gNB-ID.h> +#include <3rdparty/oranE2/RICsubsequentAction.h> //#include @@ -453,6 +455,7 @@ void buildSetupRequest(E2AP_PDU_t *pdu, int mcc, int mnc) { auto *e2SetupRequestIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, e2SetupRequestIEs); + e2SetupRequestIEs->value.choice.GlobalE2node_ID.present = GlobalE2node_ID_PR_gNB; e2SetupRequestIEs->value.choice.GlobalE2node_ID.choice.gNB = (GlobalE2node_gNB_ID_t *)calloc(1, sizeof(GlobalE2node_gNB_ID_t)); auto *globalE2NodeGNbId = e2SetupRequestIEs->value.choice.GlobalE2node_ID.choice.gNB; ASN_STRUCT_RESET(asn_DEF_GlobalE2node_gNB_ID, globalE2NodeGNbId); @@ -471,7 +474,6 @@ void buildSetupRequest(E2AP_PDU_t *pdu, int mcc, int mnc) { e2SetupRequestIEs->criticality = Criticality_reject; e2SetupRequestIEs->id = ProtocolIE_ID_id_GlobalE2node_ID; e2SetupRequestIEs->value.present = E2setupRequestIEs__value_PR_GlobalE2node_ID; - e2SetupRequestIEs->value.choice.GlobalE2node_ID.present = GlobalE2node_ID_PR_gNB; auto *e2SetupRequest = &initiatingMessage->value.choice.E2setupRequest; @@ -482,6 +484,49 @@ void buildSetupRequest(E2AP_PDU_t *pdu, int mcc, int mnc) { pdu->present = E2AP_PDU_PR_initiatingMessage; } +void buildSetupRequesteenGNB(E2AP_PDU_t *pdu, int mcc, int mnc) { + ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); + + pdu->choice.initiatingMessage = (InitiatingMessage_t *)calloc(1, sizeof(InitiatingMessage_t)); + auto *initiatingMessage = pdu->choice.initiatingMessage; + ASN_STRUCT_RESET(asn_DEF_InitiatingMessage, initiatingMessage); + initiatingMessage->procedureCode = ProcedureCode_id_E2setup; + initiatingMessage->criticality = Criticality_reject; + initiatingMessage->value.present = InitiatingMessage__value_PR_E2setupRequest; + + auto *e2SetupRequestIEs = (E2setupRequestIEs_t *)calloc(1, sizeof(E2setupRequestIEs_t)); + ASN_STRUCT_RESET(asn_DEF_E2setupRequestIEs, e2SetupRequestIEs); + + e2SetupRequestIEs->value.choice.GlobalE2node_ID.present = GlobalE2node_ID_PR_en_gNB; + e2SetupRequestIEs->value.choice.GlobalE2node_ID.choice.en_gNB = (GlobalE2node_en_gNB_ID_t *)calloc(1, sizeof(GlobalE2node_en_gNB_ID_t)); + auto *globalE2NodeEN_GNb = e2SetupRequestIEs->value.choice.GlobalE2node_ID.choice.en_gNB; + ASN_STRUCT_RESET(asn_DEF_GlobalE2node_en_gNB_ID, globalE2NodeEN_GNb); + + globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.present = ENGNB_ID_PR_gNB_ID; + createPLMN_IDByMCCandMNC(&globalE2NodeEN_GNb->global_en_gNB_ID.pLMN_Identity, mcc, mnc); + globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.choice.gNB_ID.size = 4; + globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.choice.gNB_ID.buf = + (uint8_t *) calloc(1, globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.choice.gNB_ID.size); //22..32 bits + globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.choice.gNB_ID.buf[0] = 0xC5; + globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.choice.gNB_ID.buf[1] = 0xC6; + globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.choice.gNB_ID.buf[2] = 0xC7; + globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.choice.gNB_ID.buf[3] = 0xF8; + globalE2NodeEN_GNb->global_en_gNB_ID.gNB_ID.choice.gNB_ID.bits_unused = 0; + e2SetupRequestIEs->criticality = Criticality_reject; + e2SetupRequestIEs->id = ProtocolIE_ID_id_GlobalE2node_ID; + e2SetupRequestIEs->value.present = E2setupRequestIEs__value_PR_GlobalE2node_ID; + + + auto *e2SetupRequest = &initiatingMessage->value.choice.E2setupRequest; + + ASN_STRUCT_RESET(asn_DEF_E2setupRequest, e2SetupRequest); + ASN_SEQUENCE_ADD(&e2SetupRequest->protocolIEs.list, e2SetupRequestIEs); + + pdu->present = E2AP_PDU_PR_initiatingMessage; +} + + + void buildSetupRequestWithFunc(E2AP_PDU_t *pdu, int mcc, int mnc) { ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); @@ -527,8 +572,6 @@ void buildSetupRequestWithFunc(E2AP_PDU_t *pdu, int mcc, int mnc) { ranFlistIEs->id = ProtocolIE_ID_id_RANfunctionsAdded; ranFlistIEs->value.present = E2setupRequestIEs__value_PR_RANfunctions_List; - auto *itemIes = (RANfunction_ItemIEs_t *)calloc(1, sizeof(RANfunction_ItemIEs_t)); - ASN_STRUCT_RESET(asn_DEF_RANfunction_ItemIEs, itemIes); E2SM_gNB_NRT_RANfunction_Definition_t ranFunDef; @@ -577,6 +620,9 @@ void buildSetupRequestWithFunc(E2AP_PDU_t *pdu, int mcc, int mnc) { ASN_SEQUENCE_ADD(&ranFunDef.ric_InsertStyle_List->list, &insertStyleList); //ranFunDef.ric_InsertStyle_List. + auto *itemIes = (RANfunction_ItemIEs_t *)calloc(1, sizeof(RANfunction_ItemIEs_t)); + ASN_STRUCT_RESET(asn_DEF_RANfunction_ItemIEs, itemIes); + uint8_t buffer[8192]; size_t buffer_size = 8192; auto *ranDef = &itemIes->value.choice.RANfunction_Item.ranFunctionDefinition; @@ -594,8 +640,6 @@ void buildSetupRequestWithFunc(E2AP_PDU_t *pdu, int mcc, int mnc) { memcpy(ranDef->buf, buffer, ranDef->size); } - - itemIes->id = ProtocolIE_ID_id_RANfunction_Item; itemIes->criticality = Criticality_reject; itemIes->value.present = RANfunction_ItemIEs__value_PR_RANfunction_Item; @@ -628,7 +672,109 @@ void buildSetupRequestWithFunc(E2AP_PDU_t *pdu, int mcc, int mnc) { } +void buildSubsReq(E2AP_PDU_t *pdu) { + ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); + pdu->choice.initiatingMessage = (InitiatingMessage_t *)calloc(1, sizeof(InitiatingMessage_t)); + pdu->present = E2AP_PDU_PR_initiatingMessage; + + auto *initMsg = pdu->choice.initiatingMessage; + ASN_STRUCT_RESET(asn_DEF_InitiatingMessage, initMsg); + initMsg->procedureCode = ProcedureCode_id_RICsubscription; + initMsg->criticality = Criticality_reject; + initMsg->value.present = InitiatingMessage__value_PR_RICsubscriptionRequest; + + auto *subReq = &(initMsg->value.choice.RICsubscriptionRequest); + ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest, subReq); + + { // RICrequestID + auto *e = (RICsubscriptionRequest_IEs_t *)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); + ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, e); + e->id = ProtocolIE_ID_id_RICrequestID; + e->value.present = RICsubscriptionRequest_IEs__value_PR_RICrequestID; + e->value.choice.RICrequestID.ricRequestorID = 88; + e->value.choice.RICrequestID.ricInstanceID = 5; + ASN_SEQUENCE_ADD(&subReq->protocolIEs.list, e); + } + { // RANfunctionID + auto *e = (RICsubscriptionRequest_IEs_t *)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); + ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, e); + e->id = ProtocolIE_ID_id_RANfunctionID; + e->criticality = Criticality_reject; + e->value.present = RICsubscriptionRequest_IEs__value_PR_RANfunctionID; + e->value.choice.RANfunctionID = 8; + ASN_SEQUENCE_ADD(&subReq->protocolIEs.list, e); + } + { // RICrequestID + auto *e = (RICsubscriptionRequest_IEs_t *)calloc(1, sizeof(RICsubscriptionRequest_IEs_t)); + ASN_STRUCT_RESET(asn_DEF_RICsubscriptionRequest_IEs, e); + e->id = ProtocolIE_ID_id_RICsubscriptionDetails; + e->criticality = Criticality_reject; + e->value.present = RICsubscriptionRequest_IEs__value_PR_RICsubscriptionDetails; + + uint8_t buf[10] = {1,2,3,4,5,6,7,8,9,0} ; + e->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition.size = 10; + e->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition.buf = (uint8_t *)calloc(1, 10); + memcpy(e->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition.buf, + buf, + e->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition.size); + { // item 1 + auto ie = (RICaction_ToBeSetup_ItemIEs_t *)calloc(1, sizeof(RICaction_ToBeSetup_ItemIEs_t)); + ASN_STRUCT_RESET(asn_DEF_RICaction_ToBeSetup_ItemIEs, ie); + ie->id = ProtocolIE_ID_id_RICaction_ToBeSetup_Item; + ie->criticality = Criticality_ignore; + ie->value.present = RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item; + ie->value.choice.RICaction_ToBeSetup_Item.ricActionID = 22; + ie->value.choice.RICaction_ToBeSetup_Item.ricActionType = RICactionType_report; + + auto *ad = (RICactionDefinition_t *)calloc(1, sizeof(RICactionDefinition_t)); + ASN_STRUCT_RESET(asn_DEF_RICactionDefinition, ad); + ad->size = 10; + uint8_t buf[10] = {1,2,3,4,5,6,7,8,9,0} ; + ad->buf = (uint8_t *)calloc(1, ad->size); + memcpy(ad->buf, buf, ad->size); + ie->value.choice.RICaction_ToBeSetup_Item.ricActionDefinition = ad; + + auto *sa = (RICsubsequentAction_t *) calloc(1, sizeof(RICsubsequentAction_t)); + ASN_STRUCT_RESET(asn_DEF_RICsubsequentAction, sa); + + sa->ricTimeToWait = RICtimeToWait_w500ms; + sa->ricSubsequentActionType = RICsubsequentActionType_continue; + + ie->value.choice.RICaction_ToBeSetup_Item.ricSubsequentAction = sa; + ASN_SEQUENCE_ADD(&e->value.choice.RICsubscriptionDetails.ricAction_ToBeSetup_List.list, ie); + } + + { // item 2 + auto ie = (RICaction_ToBeSetup_ItemIEs_t *)calloc(1, sizeof(RICaction_ToBeSetup_ItemIEs_t)); + ASN_STRUCT_RESET(asn_DEF_RICaction_ToBeSetup_ItemIEs, ie); + ie->id = ProtocolIE_ID_id_RICaction_ToBeSetup_Item; + ie->criticality = Criticality_ignore; + ie->value.present = RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item; + ie->value.choice.RICaction_ToBeSetup_Item.ricActionID = 47; + ie->value.choice.RICaction_ToBeSetup_Item.ricActionType = RICactionType_policy; + + auto *ad = (RICactionDefinition_t *)calloc(1, sizeof(RICactionDefinition_t)); + ASN_STRUCT_RESET(asn_DEF_RICactionDefinition, ad); + ad->size = 10; + uint8_t buf[10] = {1,2,3,4,5,6,7,8,9,0} ; + ad->buf = (uint8_t *)calloc(1, ad->size); + memcpy(ad->buf, buf, ad->size); + ie->value.choice.RICaction_ToBeSetup_Item.ricActionDefinition = ad; + + auto *sa = (RICsubsequentAction_t *) calloc(1, sizeof(RICsubsequentAction_t)); + ASN_STRUCT_RESET(asn_DEF_RICsubsequentAction, sa); + + sa->ricTimeToWait = RICtimeToWait_w5s; + sa->ricSubsequentActionType = RICsubsequentActionType_wait; + + ie->value.choice.RICaction_ToBeSetup_Item.ricSubsequentAction = sa; + ASN_SEQUENCE_ADD(&e->value.choice.RICsubscriptionDetails.ricAction_ToBeSetup_List.list, ie); + } + + ASN_SEQUENCE_ADD(&subReq->protocolIEs.list, e); + } +} void buildSetupSuccsessfulResponse(E2AP_PDU_t *pdu, int mcc, int mnc, uint8_t *data) { @@ -740,4 +886,254 @@ void buildSetupUnSuccsessfulResponse(E2AP_PDU_t *pdu) { pdu->present = E2AP_PDU_PR_unsuccessfulOutcome; } +void buildResetReq(E2AP_PDU_t *pdu) { + ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); + + pdu->choice.initiatingMessage = (InitiatingMessage_t *)calloc(1, sizeof(InitiatingMessage_t)); + pdu->present = E2AP_PDU_PR_initiatingMessage; + + auto *initMsg = pdu->choice.initiatingMessage; + ASN_STRUCT_RESET(asn_DEF_InitiatingMessage, initMsg); + initMsg->procedureCode = ProcedureCode_id_Reset; + initMsg->criticality = Criticality_reject; + initMsg->value.present = InitiatingMessage__value_PR_ResetRequest; + + + auto *resetReq = &(initMsg->value.choice.ResetRequest); + ASN_STRUCT_RESET(asn_DEF_ResetRequest, resetReq); + + { // + auto *e = (ResetRequestIEs_t *)calloc(1, sizeof(ResetRequestIEs_t)); + ASN_STRUCT_RESET(asn_DEF_ResetRequestIEs, e); + e->id = ProtocolIE_ID_id_Cause; + e->criticality = Criticality_ignore; + e->value.present = ResetRequestIEs__value_PR_Cause; + e->value.choice.Cause.present = Cause_PR_ricRequest; + e->value.choice.Cause.choice.ricRequest = 1; + ASN_SEQUENCE_ADD(&resetReq->protocolIEs.list, e); + } + +} + +void buildResetResponse(E2AP_PDU_t *pdu) { + ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); + + pdu->choice.successfulOutcome = (SuccessfulOutcome_t *)calloc(1, sizeof(SuccessfulOutcome_t)); + pdu->present = E2AP_PDU_PR_successfulOutcome; + + auto *succ = pdu->choice.successfulOutcome; + ASN_STRUCT_RESET(asn_DEF_InitiatingMessage, succ); + succ->procedureCode = ProcedureCode_id_Reset; + succ->criticality = Criticality_reject; + succ->value.present = SuccessfulOutcome__value_PR_ResetResponse; + + + auto *resetRespo = &(succ->value.choice.ResetResponse); + ASN_STRUCT_RESET(asn_DEF_ResetResponse, resetRespo); + + { // + auto *e = (ResetResponseIEs_t *)calloc(1, sizeof(ResetResponseIEs_t)); + ASN_STRUCT_RESET(asn_DEF_ResetResponseIEs, e); + e->id = ProtocolIE_ID_id_CriticalityDiagnostics; + e->criticality = Criticality_ignore; + e->value.present = ResetResponseIEs__value_PR_CriticalityDiagnostics; + + e->value.choice.CriticalityDiagnostics.procedureCode = (ProcedureCode_t *)calloc(1,sizeof(ProcedureCode_t)); + *e->value.choice.CriticalityDiagnostics.procedureCode = ProcedureCode_id_Reset; + e->value.choice.CriticalityDiagnostics.triggeringMessage = (TriggeringMessage_t *)calloc(1,sizeof(TriggeringMessage_t)); + *e->value.choice.CriticalityDiagnostics.triggeringMessage = TriggeringMessage_initiating_message; + e->value.choice.CriticalityDiagnostics.procedureCriticality = (Criticality_t *)calloc(1, sizeof(Criticality_t)); + *e->value.choice.CriticalityDiagnostics.procedureCriticality = Criticality_reject; + ASN_SEQUENCE_ADD(&resetRespo->protocolIEs.list, e); + } + +} + +void buildServiceQuery(E2AP_PDU_t *pdu) { + ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); + + pdu->choice.initiatingMessage = (InitiatingMessage_t *)calloc(1, sizeof(InitiatingMessage_t)); + pdu->present = E2AP_PDU_PR_initiatingMessage; + + auto *initMsg = pdu->choice.initiatingMessage; + ASN_STRUCT_RESET(asn_DEF_InitiatingMessage, initMsg); + initMsg->procedureCode = ProcedureCode_id_RICserviceQuery; + initMsg->criticality = Criticality_ignore; + initMsg->value.present = InitiatingMessage__value_PR_RICserviceQuery; + + + auto *serviceQuery = &(initMsg->value.choice.RICserviceQuery); + ASN_STRUCT_RESET(asn_DEF_ResetRequest, serviceQuery); + + { // + auto *e = (RICserviceQuery_IEs_t *)calloc(1, sizeof(RICserviceQuery_IEs_t)); + ASN_STRUCT_RESET(asn_DEF_RICserviceQuery_IEs, e); + e->id = ProtocolIE_ID_id_RANfunctionsAccepted; + e->criticality = Criticality_reject; + e->value.present = RICserviceQuery_IEs__value_PR_RANfunctionsID_List; + { + auto *ranFuncIdItemIEs = (RANfunctionID_ItemIEs_t *)calloc(1, sizeof(RANfunctionID_ItemIEs_t)); + + ranFuncIdItemIEs->criticality = Criticality_ignore; + ranFuncIdItemIEs->id = ProtocolIE_ID_id_RANfunctionID_Item; + ranFuncIdItemIEs->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionID = 10; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionRevision = 1; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsID_List.list, ranFuncIdItemIEs); + } + { + auto *ranFuncIdItemIEs = (RANfunctionID_ItemIEs_t *)calloc(1, sizeof(RANfunctionID_ItemIEs_t)); + + ranFuncIdItemIEs->criticality = Criticality_ignore; + ranFuncIdItemIEs->id = ProtocolIE_ID_id_RANfunctionID_Item; + ranFuncIdItemIEs->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionID = 11; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionRevision = 2; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsID_List.list, ranFuncIdItemIEs); + } + { + auto *ranFuncIdItemIEs = (RANfunctionID_ItemIEs_t *)calloc(1, sizeof(RANfunctionID_ItemIEs_t)); + + ranFuncIdItemIEs->criticality = Criticality_ignore; + ranFuncIdItemIEs->id = ProtocolIE_ID_id_RANfunctionID_Item; + ranFuncIdItemIEs->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionID = 28; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionRevision = 13; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsID_List.list, ranFuncIdItemIEs); + } + { + auto *ranFuncIdItemIEs = (RANfunctionID_ItemIEs_t *)calloc(1, sizeof(RANfunctionID_ItemIEs_t)); + + ranFuncIdItemIEs->criticality = Criticality_ignore; + ranFuncIdItemIEs->id = ProtocolIE_ID_id_RANfunctionID_Item; + ranFuncIdItemIEs->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionID = 1; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionRevision = 4; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsID_List.list, ranFuncIdItemIEs); + } + ASN_SEQUENCE_ADD(&serviceQuery->protocolIEs.list, e); + } + +} +void buildServiceUpdateResponce(E2AP_PDU_t *pdu) { + ASN_STRUCT_RESET(asn_DEF_E2AP_PDU, pdu); + + pdu->choice.successfulOutcome = (SuccessfulOutcome_t *)calloc(1, sizeof(SuccessfulOutcome_t)); + pdu->present = E2AP_PDU_PR_successfulOutcome; + + auto *succ = pdu->choice.successfulOutcome; + ASN_STRUCT_RESET(asn_DEF_SuccessfulOutcome, succ); + succ->procedureCode = ProcedureCode_id_RICserviceQuery; + succ->criticality = Criticality_reject; + succ->value.present = SuccessfulOutcome__value_PR_RICserviceUpdateAcknowledge; + + + auto *serviceUpdAck = &(succ->value.choice.RICserviceUpdateAcknowledge); + ASN_STRUCT_RESET(asn_DEF_RICserviceUpdateAcknowledge, serviceUpdAck); + + { // + auto *e = (RICserviceUpdateAcknowledge_IEs_t *)calloc(1, sizeof(RICserviceUpdateAcknowledge_IEs_t)); + ASN_STRUCT_RESET(asn_DEF_RICserviceUpdateAcknowledge_IEs, e); + e->id = ProtocolIE_ID_id_RANfunctionsAccepted; + e->criticality = Criticality_reject; + e->value.present = RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List; + { + auto *ranFuncIdItemIEs = (RANfunctionID_ItemIEs_t *)calloc(1, sizeof(RANfunctionID_ItemIEs_t)); + + ranFuncIdItemIEs->criticality = Criticality_reject; + ranFuncIdItemIEs->id = ProtocolIE_ID_id_RANfunctionID_Item; + ranFuncIdItemIEs->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionID = 10; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionRevision = 1; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsID_List.list, ranFuncIdItemIEs); + } + { + auto *ranFuncIdItemIEs = (RANfunctionID_ItemIEs_t *)calloc(1, sizeof(RANfunctionID_ItemIEs_t)); + + ranFuncIdItemIEs->criticality = Criticality_reject; + ranFuncIdItemIEs->id = ProtocolIE_ID_id_RANfunctionID_Item; + ranFuncIdItemIEs->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionID = 11; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionRevision = 2; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsID_List.list, ranFuncIdItemIEs); + } + { + auto *ranFuncIdItemIEs = (RANfunctionID_ItemIEs_t *)calloc(1, sizeof(RANfunctionID_ItemIEs_t)); + + ranFuncIdItemIEs->criticality = Criticality_reject; + ranFuncIdItemIEs->id = ProtocolIE_ID_id_RANfunctionID_Item; + ranFuncIdItemIEs->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionID = 28; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionRevision = 13; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsID_List.list, ranFuncIdItemIEs); + } + { + auto *ranFuncIdItemIEs = (RANfunctionID_ItemIEs_t *)calloc(1, sizeof(RANfunctionID_ItemIEs_t)); + + ranFuncIdItemIEs->criticality = Criticality_reject; + ranFuncIdItemIEs->id = ProtocolIE_ID_id_RANfunctionID_Item; + ranFuncIdItemIEs->value.present = RANfunctionID_ItemIEs__value_PR_RANfunctionID_Item; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionID = 1; + ranFuncIdItemIEs->value.choice.RANfunctionID_Item.ranFunctionRevision = 4; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsID_List.list, ranFuncIdItemIEs); + } + ASN_SEQUENCE_ADD(&serviceUpdAck->protocolIEs.list, e); + } + + + { + auto *e = (RICserviceUpdateAcknowledge_IEs_t *)calloc(1, sizeof(RICserviceUpdateAcknowledge_IEs_t)); + ASN_STRUCT_RESET(asn_DEF_RICserviceUpdateAcknowledge_IEs, e); + e->id = ProtocolIE_ID_id_RANfunctionsRejected; + e->criticality = Criticality_reject; + e->value.present = RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List; + { + + auto *ranFuncIdcause = (RANfunctionIDcause_ItemIEs_t *) calloc(1, sizeof(RANfunctionIDcause_ItemIEs_t)); + ASN_STRUCT_RESET(asn_DEF_RANfunctionIDcause_Item, ranFuncIdcause); + + ranFuncIdcause->criticality = Criticality_ignore; + ranFuncIdcause->id = ProtocolIE_ID_id_RANfunctionIEcause_Item; + ranFuncIdcause->value.present = RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item; + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.ranFunctionID = 1; + + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.cause.present = Cause_PR_ricService; + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.cause.choice.ricService = 1; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsIDcause_List.list, ranFuncIdcause); + + } + { + + auto *ranFuncIdcause = (RANfunctionIDcause_ItemIEs_t *) calloc(1, sizeof(RANfunctionIDcause_ItemIEs_t)); + ASN_STRUCT_RESET(asn_DEF_RANfunctionIDcause_Item, ranFuncIdcause); + + ranFuncIdcause->criticality = Criticality_ignore; + ranFuncIdcause->id = ProtocolIE_ID_id_RANfunctionIEcause_Item; + ranFuncIdcause->value.present = RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item; + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.ranFunctionID = 2; + + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.cause.present = Cause_PR_ricService; + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.cause.choice.ricService = 2; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsIDcause_List.list, ranFuncIdcause); + + } + { + auto *ranFuncIdcause = (RANfunctionIDcause_ItemIEs_t *) calloc(1, sizeof(RANfunctionIDcause_ItemIEs_t)); + ASN_STRUCT_RESET(asn_DEF_RANfunctionIDcause_Item, ranFuncIdcause); + + ranFuncIdcause->criticality = Criticality_ignore; + ranFuncIdcause->id = ProtocolIE_ID_id_RANfunctionIEcause_Item; + ranFuncIdcause->value.present = RANfunctionIDcause_ItemIEs__value_PR_RANfunctionIDcause_Item; + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.ranFunctionID = 3; + + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.cause.present = Cause_PR_ricService; + ranFuncIdcause->value.choice.RANfunctionIDcause_Item.cause.choice.ricService = 2; + ASN_SEQUENCE_ADD(&e->value.choice.RANfunctionsIDcause_List.list, ranFuncIdcause); + + } + ASN_SEQUENCE_ADD(&serviceUpdAck->protocolIEs.list, e); + } + +} + #endif //E2_E2BUILDER_H