X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=e2ap%2Flibe2ap_wrapper%2FE2AP_if.c;h=4b6dfd16aa163e4914cb50493d7767e1ed8fdf4d;hb=refs%2Fchanges%2F76%2F3476%2F2;hp=761d95341a94dd47d7286c8c16a3a93afd0e712a;hpb=aada64566a3a77cf9a20a98f9ddd7cd6f37529ae;p=ric-plt%2Fsubmgr.git diff --git a/e2ap/libe2ap_wrapper/E2AP_if.c b/e2ap/libe2ap_wrapper/E2AP_if.c index 761d953..4b6dfd1 100644 --- a/e2ap/libe2ap_wrapper/E2AP_if.c +++ b/e2ap/libe2ap_wrapper/E2AP_if.c @@ -48,7 +48,7 @@ #ifdef DEBUG static const bool debug = true; #else - static const bool debug = false; + static const bool debug = true; //false; #endif const int64_t cMaxNrOfErrors = 256; @@ -107,7 +107,7 @@ bool E2encode(E2AP_PDU_t* pE2AP_PDU, size_t* dataBufferSize, byte* dataBuffer, c asn_enc_rval_t rval; rval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2AP_PDU, pE2AP_PDU, dataBuffer, *dataBufferSize); if (rval.encoded == -1) { - sprintf(pLogBuffer,"Serialization of %s failed.", asn_DEF_E2AP_PDU.name); + sprintf(pLogBuffer,"Serialization of %s failed", asn_DEF_E2AP_PDU.name); ASN_STRUCT_FREE(asn_DEF_E2AP_PDU, pE2AP_PDU); return false; } @@ -173,6 +173,7 @@ uint64_t packRICSubscriptionRequest(size_t* pdataBufferSize, byte* pDataBuffer, uint64_t returnCode; if ((returnCode = packRICEventTriggerDefinition(pLogBuffer, &pRICSubscriptionRequest->ricSubscriptionDetails.ricEventTriggerDefinition) != e2err_OK)) return returnCode; + pRICsubscriptionRequest_IEs->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition.buf = calloc(1, pRICSubscriptionRequest->ricSubscriptionDetails.ricEventTriggerDefinition.octetString.contentLength); if (pRICsubscriptionRequest_IEs->value.choice.RICsubscriptionDetails.ricEventTriggerDefinition.buf) { @@ -188,11 +189,10 @@ uint64_t packRICSubscriptionRequest(size_t* pdataBufferSize, byte* pDataBuffer, // RICactions-ToBeSetup-List uint64_t index = 0; while (index < pRICSubscriptionRequest->ricSubscriptionDetails.ricActionToBeSetupItemIEs.contentLength && index < maxofRICactionID) { - RICaction_ToBeSetup_ItemIEs_t* pRICaction_ToBeSetup_ItemIEs = calloc(1, sizeof(RICaction_ToBeSetup_ItemIEs_t)); if (pRICaction_ToBeSetup_ItemIEs) { pRICaction_ToBeSetup_ItemIEs->id = ProtocolIE_ID_id_RICaction_ToBeSetup_Item; - pRICaction_ToBeSetup_ItemIEs->criticality = Criticality_reject; + pRICaction_ToBeSetup_ItemIEs->criticality = Criticality_ignore; pRICaction_ToBeSetup_ItemIEs->value.present = RICaction_ToBeSetup_ItemIEs__value_PR_RICaction_ToBeSetup_Item; // RICActionID @@ -204,11 +204,11 @@ uint64_t packRICSubscriptionRequest(size_t* pdataBufferSize, byte* pDataBuffer, pRICSubscriptionRequest->ricSubscriptionDetails.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionType; // RICactionDefinition, OPTIONAL - uint64_t returnCode; - if ((returnCode = packRICActionDefinition(pLogBuffer, &pRICSubscriptionRequest->ricSubscriptionDetails.ricActionToBeSetupItemIEs.ricActionToBeSetupItem->ricActionDefinitionChoice) != e2err_OK)) - return returnCode; - if (pRICSubscriptionRequest->ricSubscriptionDetails.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinitionPresent) { + uint64_t returnCode; + if ((returnCode = packRICActionDefinition(pLogBuffer, &pRICSubscriptionRequest->ricSubscriptionDetails.ricActionToBeSetupItemIEs.ricActionToBeSetupItem[index].ricActionDefinitionChoice) != e2err_OK)) { + return returnCode; + } pRICaction_ToBeSetup_ItemIEs->value.choice.RICaction_ToBeSetup_Item.ricActionDefinition = calloc(1, sizeof (RICactionDefinition_t)); if (pRICaction_ToBeSetup_ItemIEs->value.choice.RICaction_ToBeSetup_Item.ricActionDefinition) { pRICaction_ToBeSetup_ItemIEs->value.choice.RICaction_ToBeSetup_Item.ricActionDefinition->buf = @@ -251,7 +251,6 @@ uint64_t packRICSubscriptionRequest(size_t* pdataBufferSize, byte* pDataBuffer, } else return e2err_RICSubscriptionRequestAllocRICsubscriptionRequest_IEsFail; - if (E2encode(pE2AP_PDU, pdataBufferSize, pDataBuffer, pLogBuffer)) return e2err_OK; else @@ -421,7 +420,7 @@ uint64_t packRICEventTriggerDefinitionX2Format(char* pLogBuffer, RICEventTrigger pRICEventTriggerDefinition->octetString.data, bufferSize); if(rval.encoded == -1) { - sprintf(pLogBuffer,"Serialization of %s failed.", asn_DEF_E2_E2SM_gNB_X2_eventTriggerDefinition.name); + sprintf(pLogBuffer,"Serialization of %s failed", asn_DEF_E2_E2SM_gNB_X2_eventTriggerDefinition.name); return e2err_RICEventTriggerDefinitionPackFail_1; } else if(rval.encoded > bufferSize) { @@ -460,7 +459,7 @@ uint64_t packRICEventTriggerDefinitionNRTFormat(char* pLogBuffer, RICEventTrigge pRICEventTriggerDefinition->octetString.data, bufferSize); if(rval.encoded == -1) { - sprintf(pLogBuffer,"Serialization of %s failed.", asn_DEF_E2_E2SM_gNB_NRT_EventTriggerDefinition.name); + sprintf(pLogBuffer,"Serialization of %s failed", asn_DEF_E2_E2SM_gNB_NRT_EventTriggerDefinition.name); return e2err_RICENRTventTriggerDefinitionPackFail_1; } else if(rval.encoded > bufferSize) { @@ -509,269 +508,277 @@ uint64_t packActionDefinitionX2Format(char* pLogBuffer, RICActionDefinitionChoic // E2SM-gNB-X2-actionDefinition pE2_E2SM_gNB_X2_ActionDefinitionChoice->present = E2_E2SM_gNB_X2_ActionDefinitionChoice_PR_actionDefinition_Format1; pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.style_ID = pRICActionDefinitionChoice->actionDefinitionX2Format1->styleID; - struct E2_E2SM_gNB_X2_actionDefinition__actionParameter_List* pE2_E2SM_gNB_X2_actionDefinition__actionParameter_List = - calloc(1, sizeof (struct E2_E2SM_gNB_X2_actionDefinition__actionParameter_List)); - uint64_t index = 0; - while (index < pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterCount && index < E2_maxofRANParameters) { - E2_ActionParameter_Item_t* pE2_ActionParameter_Item = calloc(1, sizeof(E2_ActionParameter_Item_t)); - if (pE2_ActionParameter_Item) { - pE2_ActionParameter_Item->actionParameter_ID = pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->parameterID; - if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueIntPresent) { - pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueInt; - pE2_ActionParameter_Item->actionParameter_Value.choice.valueInt = - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueInt; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueEnumPresent) { - pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueEnum; - pE2_ActionParameter_Item->actionParameter_Value.choice.valueEnum = - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueIntPresent; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBoolPresent) { - pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueBool; - pE2_ActionParameter_Item->actionParameter_Value.choice.valueBool = - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBool; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBitSPresent) { - pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueBitS; - pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBitS.byteLength; - pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.bits_unused = - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBitS.unusedBits; - pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBitS.byteLength, 1); - if (pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.buf) { - memcpy(pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBitS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBitS.byteLength); + + if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterCount > 0) { + struct E2_E2SM_gNB_X2_actionDefinition__actionParameter_List* pE2_E2SM_gNB_X2_actionDefinition__actionParameter_List = + calloc(1, sizeof (struct E2_E2SM_gNB_X2_actionDefinition__actionParameter_List)); + uint64_t index = 0; + while (index < pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterCount && index < E2_maxofRANParameters) { + E2_ActionParameter_Item_t* pE2_ActionParameter_Item = calloc(1, sizeof(E2_ActionParameter_Item_t)); + if (pE2_ActionParameter_Item) { + pE2_ActionParameter_Item->actionParameter_ID = pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].parameterID; + if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueIntPresent) { + pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueInt; + pE2_ActionParameter_Item->actionParameter_Value.choice.valueInt = + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueInt; } - else - return e2err_RICSubscriptionRequestAllocactionParameterValueValueBitSFail; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueOctSPresent) { - pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueOctS; - pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueOctS.length; - pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueOctS.length, 1); - if (pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.buf) { - memcpy(pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueOctS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueOctS.length); + else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueEnumPresent) { + pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueEnum; + pE2_ActionParameter_Item->actionParameter_Value.choice.valueEnum = + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueIntPresent; } - else - return e2err_RICSubscriptionRequestAllocactionParameterValueValueOctSFail; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valuePrtSPresent) { - pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valuePrtS; - pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valuePrtS.length; - pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valuePrtS.length ,1); - if (pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.buf) { - memcpy(pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valuePrtS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valuePrtS.length); + else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBoolPresent) { + pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueBool; + pE2_ActionParameter_Item->actionParameter_Value.choice.valueBool = + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBool; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBitSPresent) { + pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueBitS; + pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBitS.byteLength; + pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.bits_unused = + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBitS.unusedBits; + pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBitS.byteLength, 1); + if (pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.buf) { + memcpy(pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBitS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBitS.byteLength); + } + else + return e2err_RICSubscriptionRequestAllocactionParameterValueValueBitSFail; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueOctSPresent) { + pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valueOctS; + pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueOctS.length; + pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueOctS.length, 1); + if (pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.buf) { + memcpy(pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueOctS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueOctS.length); + } + else + return e2err_RICSubscriptionRequestAllocactionParameterValueValueOctSFail; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valuePrtSPresent) { + pE2_ActionParameter_Item->actionParameter_Value.present = E2_ActionParameter_Value_PR_valuePrtS; + pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valuePrtS.length; + pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valuePrtS.length ,1); + if (pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.buf) { + memcpy(pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valuePrtS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valuePrtS.length); + } + else + return e2err_RICSubscriptionRequestAllocactionParameterValueValuePrtsSFail; } else - return e2err_RICSubscriptionRequestAllocactionParameterValueValuePrtsSFail; + return e2err_RICSubscriptionRequestActionParameterItemFail; + + if ((result = asn_set_add(pE2_E2SM_gNB_X2_actionDefinition__actionParameter_List, pE2_ActionParameter_Item)) != 0) + return e2err_RICSubscriptionRequestAsn_set_addE2_ActionParameter_ItemFail; } else - return e2err_RICSubscriptionRequestActionParameterItemFail; - - if ((result = asn_set_add(pE2_E2SM_gNB_X2_actionDefinition__actionParameter_List, pE2_ActionParameter_Item)) != 0) - return e2err_RICSubscriptionRequestAsn_set_addE2_ActionParameter_ItemFail; + return e2err_RICSubscriptionRequestAllocActionDefinitionFail; + index++; } - else - return e2err_RICSubscriptionRequestAllocActionDefinitionFail; - index++; + pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.actionParameter_List = pE2_E2SM_gNB_X2_actionDefinition__actionParameter_List; } - pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.actionParameter_List = pE2_E2SM_gNB_X2_actionDefinition__actionParameter_List; } else if (pRICActionDefinitionChoice->actionDefinitionX2Format2Present) { // E2SM-gNB-X2-ActionDefinition-Format2 pE2_E2SM_gNB_X2_ActionDefinitionChoice->present = E2_E2SM_gNB_X2_ActionDefinitionChoice_PR_actionDefinition_Format2; - struct E2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List* pE2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List = - calloc(1, sizeof(struct E2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List)); - uint64_t index = 0; - while (index < pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupCount && index < E2_maxofUEgroup) { - - E2_RANueGroup_Item_t* pE2_RANueGroup_Item = calloc(1, sizeof(E2_RANueGroup_Item_t)); - if (pE2_RANueGroup_Item) { - - struct E2_RANueGroupDefinition__ranUEgroupDef_List* pE2_RANueGroupDefinition__ranUEgroupDef_List = - calloc(1, sizeof (struct E2_RANueGroupDefinition__ranUEgroupDef_List)); - - pE2_RANueGroup_Item->ranUEgroupID = pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem->ranUEgroupID; - uint64_t index2 = 0; - while (index2 < pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem->ranUEgroupDefinition.ranUeGroupDefCount && index2 < E2_maxofRANParameters) { - E2_RANueGroupDef_Item_t* pE2_RANueGroupDef_Item = calloc(1, sizeof(E2_RANueGroupDef_Item_t)); - if(pE2_RANueGroupDef_Item) { - pE2_RANueGroupDef_Item->ranParameter_ID = pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterID; - pE2_RANueGroupDef_Item->ranParameter_Test = pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterTest; - if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueIntPresent) { - pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueInt; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueInt = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueInt; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueEnum) { - pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueEnum; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueEnum = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueEnum; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBoolPresent) { - pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueBool; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBool = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBool; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitSPresent) { - pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueBitS; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.byteLength; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.bits_unused = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.unusedBits; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.byteLength, 1); - if (pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.buf) { - memcpy(pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.byteLength); - } - else - return e2err_RICSubscriptionRequestAllocactionRanParameterValueValueBitSFail; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctSPresent) { - pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueOctS; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS.length; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS.length, 1); - if (pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.buf) { - memcpy(pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS.length); - } - else - return e2err_RICSubscriptionRequestAllocactionRanParameterValueValueOctSFail; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtSPresent) { - pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valuePrtS; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS.length; - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS.length, 1); - if (pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.buf) { - memcpy(pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS.length); - } - else - return e2err_RICSubscriptionRequestAllocactionRanParameterValueValuePrtsSFail; + if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupCount > 0) { + struct E2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List* pE2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List = + calloc(1, sizeof(struct E2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List)); + + uint64_t index = 0; + while (index < pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupCount && index < E2_maxofUEgroup) { + + E2_RANueGroup_Item_t* pE2_RANueGroup_Item = calloc(1, sizeof(E2_RANueGroup_Item_t)); + if (pE2_RANueGroup_Item) { + + struct E2_RANueGroupDefinition__ranUEgroupDef_List* pE2_RANueGroupDefinition__ranUEgroupDef_List = + calloc(1, sizeof (struct E2_RANueGroupDefinition__ranUEgroupDef_List)); + + pE2_RANueGroup_Item->ranUEgroupID = pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupID; + + uint64_t index2 = 0; + while (index2 < pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefCount && index2 < E2_maxofRANParameters) { + E2_RANueGroupDef_Item_t* pE2_RANueGroupDef_Item = calloc(1, sizeof(E2_RANueGroupDef_Item_t)); + if(pE2_RANueGroupDef_Item) { + pE2_RANueGroupDef_Item->ranParameter_ID = pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterID; + pE2_RANueGroupDef_Item->ranParameter_Test = pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterTest; + if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueIntPresent) { + pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueInt; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueInt = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueInt; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueEnum) { + pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueEnum; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueEnum = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueEnum; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBoolPresent) { + pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueBool; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBool = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBool; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitSPresent) { + pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueBitS; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.byteLength; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.bits_unused = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.unusedBits; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.byteLength, 1); + if (pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.buf) { + memcpy(pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS.byteLength); + } + else + return e2err_RICSubscriptionRequestAllocactionRanParameterValueValueBitSFail; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctSPresent) { + pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueOctS; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS.length; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS.length, 1); + if (pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.buf) { + memcpy(pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS.length); + } + else + return e2err_RICSubscriptionRequestAllocactionRanParameterValueValueOctSFail; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtSPresent) { + pE2_RANueGroupDef_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valuePrtS; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS.length; + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS.length, 1); + if (pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.buf) { + memcpy(pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS.length); + } + else + return e2err_RICSubscriptionRequestAllocactionRanParameterValueValuePrtsSFail; + } + else + return e2err_RICSubscriptionRequestRanranUeGroupDefItemParameterValueEmptyFail; + + if ((result = asn_set_add(pE2_RANueGroupDefinition__ranUEgroupDef_List, pE2_RANueGroupDef_Item)) != 0) + return e2err_RICSubscriptionRequestAsn_set_addRANueGroupDef_ItemFail; + pE2_RANueGroup_Item->ranUEgroupDefinition.ranUEgroupDef_List = pE2_RANueGroupDefinition__ranUEgroupDef_List; } else - return e2err_RICSubscriptionRequestRanranUeGroupDefItemParameterValueEmptyFail; - - if ((result = asn_set_add(pE2_RANueGroupDefinition__ranUEgroupDef_List, pE2_RANueGroupDef_Item)) != 0) - return e2err_RICSubscriptionRequestAsn_set_addRANueGroupDef_ItemFail; - pE2_RANueGroup_Item->ranUEgroupDefinition.ranUEgroupDef_List = pE2_RANueGroupDefinition__ranUEgroupDef_List; + return e2err_RICSubscriptionRequestAllocE2_RANueGroupDef_ItemFail; + index2++; } - else - return e2err_RICSubscriptionRequestAllocE2_RANueGroupDef_ItemFail; - index2++; - } - struct E2_RANimperativePolicy__ranImperativePolicy_List* pE2_RANimperativePolicy__ranImperativePolicy_List = - calloc(1, sizeof (struct E2_RANimperativePolicy__ranImperativePolicy_List)); - - uint64_t index3 = 0; - while (index3 < pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem->ranPolicy.ranParameterCount && index3 < E2_maxofRANParameters) { - E2_RANParameter_Item_t* pE2_RANParameter_Item = calloc(1, sizeof(E2_RANParameter_Item_t)); - if (pE2_RANParameter_Item) { - pE2_RANParameter_Item->ranParameter_ID = pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterID; - if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueIntPresent) { - pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueInt; - pE2_RANParameter_Item->ranParameter_Value.choice.valueInt = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueInt; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueEnum) { - pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueEnum; - pE2_RANParameter_Item->ranParameter_Value.choice.valueEnum = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueEnum; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBoolPresent) { - pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueBool; - pE2_RANParameter_Item->ranParameter_Value.choice.valueBool = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBool; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitSPresent) { - pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueBitS; - pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.byteLength; - pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.bits_unused = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.unusedBits; - pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.byteLength, 1); - if (pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.buf) { - memcpy(pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.byteLength); - } - else - return e2err_RICSubscriptionRequestAllocactionRanParameterValue2ValueBitSFail; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctSPresent) { - pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueOctS; - pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS.length; - pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS.length, 1); - if (pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.buf) { - memcpy(pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS.length); - } - else - return e2err_RICSubscriptionRequestAllocactionRanParameterValue2ValueOctSFail; - } - else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtSPresent) { - pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valuePrtS; - pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.size = - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS.length; - pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.buf = - calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS.length, 1); - if (pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.buf) { - memcpy(pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.buf, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS.data, - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS.length); - } - else - return e2err_RICSubscriptionRequestAllocactionRanParameterValue2ValuePrtsSFail; + struct E2_RANimperativePolicy__ranImperativePolicy_List* pE2_RANimperativePolicy__ranImperativePolicy_List = + calloc(1, sizeof (struct E2_RANimperativePolicy__ranImperativePolicy_List)); + + uint64_t index3 = 0; + while (index3 < pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterCount && index3 < E2_maxofRANParameters) { + E2_RANParameter_Item_t* pE2_RANParameter_Item = calloc(1, sizeof(E2_RANParameter_Item_t)); + if (pE2_RANParameter_Item) { + pE2_RANParameter_Item->ranParameter_ID = pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterID; + if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueIntPresent) { + pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueInt; + pE2_RANParameter_Item->ranParameter_Value.choice.valueInt = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueInt; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueEnum) { + pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueEnum; + pE2_RANParameter_Item->ranParameter_Value.choice.valueEnum = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueEnum; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBoolPresent) { + pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueBool; + pE2_RANParameter_Item->ranParameter_Value.choice.valueBool = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBool; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitSPresent) { + pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueBitS; + pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.byteLength; + pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.bits_unused = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.unusedBits; + pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.byteLength, 1); + if (pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.buf) { + memcpy(pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS.byteLength); + } + else + return e2err_RICSubscriptionRequestAllocactionRanParameterValue2ValueBitSFail; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctSPresent) { + pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valueOctS; + pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS.length; + pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS.length, 1); + if (pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.buf) { + memcpy(pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS.length); + } + else + return e2err_RICSubscriptionRequestAllocactionRanParameterValue2ValueOctSFail; + } + else if (pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtSPresent) { + pE2_RANParameter_Item->ranParameter_Value.present = E2_RANParameter_Value_PR_valuePrtS; + pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.size = + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS.length; + pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.buf = + calloc(pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS.length, 1); + if (pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.buf) { + memcpy(pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.buf, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS.data, + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS.length); + } + else + return e2err_RICSubscriptionRequestAllocactionRanParameterValue2ValuePrtsSFail; + } + else + return e2err_RICSubscriptionRequestRanParameterItemRanParameterValueEmptyFail; + + if ((result = asn_set_add(pE2_RANimperativePolicy__ranImperativePolicy_List, pE2_RANParameter_Item)) != 0) + return e2err_RICSubscriptionRequestAsn_set_addE2_RANParameter_ItemFail; + pE2_RANueGroup_Item->ranPolicy.ranImperativePolicy_List = pE2_RANimperativePolicy__ranImperativePolicy_List; } else - return e2err_RICSubscriptionRequestRanParameterItemRanParameterValueEmptyFail; - - if ((result = asn_set_add(pE2_RANimperativePolicy__ranImperativePolicy_List, pE2_RANParameter_Item)) != 0) - return e2err_RICSubscriptionRequestAsn_set_addE2_RANParameter_ItemFail; - pE2_RANueGroup_Item->ranPolicy.ranImperativePolicy_List = pE2_RANimperativePolicy__ranImperativePolicy_List; + return e2err_RICSubscriptionRequestAllocActionDefinitionFail; + index3++; } - else - return e2err_RICSubscriptionRequestAllocActionDefinitionFail; - index3++; - } - const int result = asn_set_add(pE2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List, pE2_RANueGroup_Item); - if (result != 0) - printf("asn_set_add() failed\n"); + const int result = asn_set_add(pE2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List, pE2_RANueGroup_Item); + if (result != 0) + sprintf(pLogBuffer,"asn_set_add() failed"); + } + else + return e2err_RICSubscriptionRequestAllocRANParameter_ItemFail; + index++; } - else - return e2err_RICSubscriptionRequestAllocRANParameter_ItemFail; - index++; + pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format2.ranUEgroup_List = pE2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List; } - pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format2.ranUEgroup_List = pE2_E2SM_gNB_X2_ActionDefinition_Format2__ranUEgroup_List; } - else + else { return e2err_RICSubscriptionRequestRICActionDefinitionEmptyE2_E2SM_gNB_X2_actionDefinition; + } // Debug print if (debug) @@ -783,7 +790,7 @@ uint64_t packActionDefinitionX2Format(char* pLogBuffer, RICActionDefinitionChoic rval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice, pRICActionDefinitionChoice->octetString.data, bufferSize); if(rval.encoded == -1) { - sprintf(pLogBuffer,"Serialization of %s failed.", asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice.name); + sprintf(pLogBuffer,"Serialization of %s failed", asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice.name); return e2err_RICActionDefinitionChoicePackFail_1; } else if(rval.encoded > bufferSize) { @@ -906,7 +913,7 @@ uint64_t packActionDefinitionNRTFormat(char* pLogBuffer, RICActionDefinitionChoi rval = asn_encode_to_buffer(0, ATS_ALIGNED_BASIC_PER, &asn_DEF_E2_E2SM_gNB_NRT_ActionDefinition, pE2_E2SM_gNB_NRT_ActionDefinition, pRICActionDefinitionChoice->octetString.data, bufferSize); if(rval.encoded == -1) { - sprintf(pLogBuffer,"Serialization of %s failed.", asn_DEF_E2_E2SM_gNB_NRT_ActionDefinition.name); + sprintf(pLogBuffer,"Serialization of %s failed", asn_DEF_E2_E2SM_gNB_NRT_ActionDefinition.name); return e2err_RICActionDefinitionChoicePackFail_1; } else if(rval.encoded > bufferSize) { @@ -1589,7 +1596,7 @@ uint64_t getRICEventTriggerDefinitionDataX2Format(RICEventTriggerDefinition_t* p case RC_OK: // Debug print if (debug) { - printf("Successfully decoded E2SM_gNB_X2_eventTriggerDefinition"); + printf("Successfully decoded E2SM_gNB_X2_eventTriggerDefinition\n"); asn_fprint(stdout, &asn_DEF_E2_E2SM_gNB_X2_eventTriggerDefinition, pE2SM_gNB_X2_eventTriggerDefinition); } @@ -1698,13 +1705,13 @@ uint64_t getRICEventTriggerDefinitionDataX2Format(RICEventTriggerDefinition_t* p return e2err_OK; case RC_WMORE: if (debug) - printf("Decode failed. More data needed. Buffer size %zu, %s, consumed %zu",pRICEventTriggerDefinition->octetString.contentLength, + printf("Decode failed. More data needed. Buffer size %zu, %s, consumed %zu\n",pRICEventTriggerDefinition->octetString.contentLength, asn_DEF_E2_E2SM_gNB_X2_eventTriggerDefinition.name, rval.consumed); return e2err_RICEventTriggerDefinitionDecodeWMOREFail; case RC_FAIL: if (debug) - printf("Decode failed. Buffer size %zu, %s, consumed %zu",pRICEventTriggerDefinition->octetString.contentLength, + printf("Decode failed. Buffer size %zu, %s, consumed %zu\n",pRICEventTriggerDefinition->octetString.contentLength, asn_DEF_E2_E2SM_gNB_X2_eventTriggerDefinition.name, rval.consumed); return e2err_RICEventTriggerDefinitionDecodeFAIL; default: @@ -1723,7 +1730,7 @@ uint64_t getRICEventTriggerDefinitionDataNRTFormat(RICEventTriggerDefinition_t* case RC_OK: // Debug print if (debug) { - printf("Successfully decoded E2SM_gNB_X2_eventTriggerDefinition"); + printf("Successfully decoded E2SM_gNB_X2_eventTriggerDefinition\n"); asn_fprint(stdout, &asn_DEF_E2_E2SM_gNB_NRT_EventTriggerDefinition, pE2_E2SM_gNB_NRT_EventTriggerDefinition); } @@ -1737,13 +1744,13 @@ uint64_t getRICEventTriggerDefinitionDataNRTFormat(RICEventTriggerDefinition_t* return e2err_OK; case RC_WMORE: if (debug) - printf("Decode failed. More data needed. Buffer size %zu, %s, consumed %zu",pRICEventTriggerDefinition->octetString.contentLength, + printf("Decode failed. More data needed. Buffer size %zu, %s, consumed %zu\n",pRICEventTriggerDefinition->octetString.contentLength, asn_DEF_E2_E2SM_gNB_NRT_EventTriggerDefinition.name, rval.consumed); return e2err_RICNRTEventTriggerDefinitionDecodeWMOREFail; case RC_FAIL: if (debug) - printf("Decode failed. Buffer size %zu, %s, consumed %zu",pRICEventTriggerDefinition->octetString.contentLength, + printf("Decode failed. Buffer size %zu, %s, consumed %zu\n",pRICEventTriggerDefinition->octetString.contentLength, asn_DEF_E2_E2SM_gNB_NRT_EventTriggerDefinition.name, rval.consumed); return e2err_RICNRTEventTriggerDefinitionDecodeFAIL; default: @@ -1774,10 +1781,9 @@ uint64_t getRICActionDefinitionDataX2Format(mem_track_hdr_t* pDynMemHead, RICAct case RC_OK: // Debug print if (debug) { - printf("Successfully decoded E2SM_gNB_X2_ActionDefinitionChoice"); + printf("Successfully decoded E2SM_gNB_X2_ActionDefinitionChoice\n"); asn_fprint(stdout, &asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); } - // ActionDefinitionChoice if (pE2_E2SM_gNB_X2_ActionDefinitionChoice->present == E2_E2SM_gNB_X2_ActionDefinitionChoice_PR_actionDefinition_Format1) { @@ -1785,57 +1791,59 @@ uint64_t getRICActionDefinitionDataX2Format(mem_track_hdr_t* pDynMemHead, RICAct uint64_t status; if ((status = allocActionDefinitionX2Format1(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format1)) != e2err_OK) return status; - pRICActionDefinitionChoice->actionDefinitionX2Format1Present = true; pRICActionDefinitionChoice->actionDefinitionX2Format2Present = false; pRICActionDefinitionChoice->actionDefinitionNRTFormat1Present = false; pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterCount = 0; pRICActionDefinitionChoice->actionDefinitionX2Format1->styleID = pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.style_ID; + uint64_t index = 0; - while (index < pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.actionParameter_List->list.count) { - E2_ActionParameter_Item_t* pE2_ActionParameter_Item = pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.actionParameter_List->list.array[index]; - if (pE2_ActionParameter_Item) { - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->parameterID = pE2_ActionParameter_Item->actionParameter_ID; - if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueInt) { - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueIntPresent = true; - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueInt = - pE2_ActionParameter_Item->actionParameter_Value.choice.valueInt; - } - else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueEnum) { - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueEnumPresent = true; - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueIntPresent = - pE2_ActionParameter_Item->actionParameter_Value.choice.valueEnum; - } - else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueBool) { - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBoolPresent = true; - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBool = - pE2_ActionParameter_Item->actionParameter_Value.choice.valueBool; - } - else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueBitS) { - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBitSPresent = true; - addBitString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueBitS, - pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.size, - pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.buf, - pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.bits_unused); - } - else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueOctS) { - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueOctSPresent = true; - addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valueOctS, - pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.size, - pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.buf); - } - else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valuePrtS) { - pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valuePrtSPresent = true; - addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem->actionParameterValue.valuePrtS, - pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.size, - pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.buf); - } - else { - ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); - return e2err_RICSubscriptionRequestActionParameterItemFail; + if (pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.actionParameter_List) { + while (index < pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.actionParameter_List->list.count) { + E2_ActionParameter_Item_t* pE2_ActionParameter_Item = pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format1.actionParameter_List->list.array[index]; + if (pE2_ActionParameter_Item) { + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].parameterID = pE2_ActionParameter_Item->actionParameter_ID; + if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueInt) { + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueIntPresent = true; + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueInt = + pE2_ActionParameter_Item->actionParameter_Value.choice.valueInt; + } + else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueEnum) { + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueEnumPresent = true; + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueIntPresent = + pE2_ActionParameter_Item->actionParameter_Value.choice.valueEnum; + } + else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueBool) { + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBoolPresent = true; + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBool = + pE2_ActionParameter_Item->actionParameter_Value.choice.valueBool; + } + else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueBitS) { + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBitSPresent = true; + addBitString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueBitS, + pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.size, + pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.buf, + pE2_ActionParameter_Item->actionParameter_Value.choice.valueBitS.bits_unused); + } + else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valueOctS) { + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueOctSPresent = true; + addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valueOctS, + pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.size, + pE2_ActionParameter_Item->actionParameter_Value.choice.valueOctS.buf); + } + else if (pE2_ActionParameter_Item->actionParameter_Value.present == E2_ActionParameter_Value_PR_valuePrtS) { + pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valuePrtSPresent = true; + addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterItem[index].actionParameterValue.valuePrtS, + pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.size, + pE2_ActionParameter_Item->actionParameter_Value.choice.valuePrtS.buf); + } + else { + ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); + return e2err_RICSubscriptionRequestActionParameterItemFail; + } } + index++; } - index++; } pRICActionDefinitionChoice->actionDefinitionX2Format1->actionParameterCount = index; } @@ -1852,138 +1860,141 @@ uint64_t getRICActionDefinitionDataX2Format(mem_track_hdr_t* pDynMemHead, RICAct pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupCount = 0; pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem->ranUEgroupDefinition.ranUeGroupDefCount = 0; pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem->ranPolicy.ranParameterCount = 0; + E2_E2SM_gNB_X2_ActionDefinition_Format2_t* pE2SM_gNB_X2_actionDefinition = &pE2_E2SM_gNB_X2_ActionDefinitionChoice->choice.actionDefinition_Format2; if(pE2SM_gNB_X2_actionDefinition) { uint64_t index = 0; - while (index < pE2SM_gNB_X2_actionDefinition->ranUEgroup_List->list.count) { - E2_RANueGroup_Item_t* pE2_RANueGroup_Item = pE2SM_gNB_X2_actionDefinition->ranUEgroup_List->list.array[index]; - if (pE2_RANueGroup_Item) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem->ranUEgroupID = pE2_RANueGroup_Item->ranUEgroupID; - uint64_t index2 = 0; - while (index2 < pE2_RANueGroup_Item->ranUEgroupDefinition.ranUEgroupDef_List->list.count) { - E2_RANueGroupDef_Item_t* pE2_RANueGroupDef_Item = pE2_RANueGroup_Item->ranUEgroupDefinition.ranUEgroupDef_List->list.array[index2]; - if(pE2_RANueGroupDef_Item) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterID = pE2_RANueGroupDef_Item->ranParameter_ID; - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterTest = pE2_RANueGroupDef_Item->ranParameter_Test; - if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueInt) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueIntPresent = true; - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueInt = - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueInt; - } - else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueEnum) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueEnum = true; - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueEnum = - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueEnum; - } - else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueBool) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBoolPresent = true; - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBool = - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBool; - } - else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueBitS) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitSPresent = true; - addBitString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS, - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.size, - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.buf, - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.bits_unused); - } - else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueOctS) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctSPresent = true; - addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS, - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.size, - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.buf); - } - else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valuePrtS) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtSPresent = true; - addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS, - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.size, - pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.buf); + if (pE2SM_gNB_X2_actionDefinition->ranUEgroup_List) { + while (index < pE2SM_gNB_X2_actionDefinition->ranUEgroup_List->list.count) { + E2_RANueGroup_Item_t* pE2_RANueGroup_Item = pE2SM_gNB_X2_actionDefinition->ranUEgroup_List->list.array[index]; + if (pE2_RANueGroup_Item) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupID = pE2_RANueGroup_Item->ranUEgroupID; + uint64_t index2 = 0; + while (index2 < pE2_RANueGroup_Item->ranUEgroupDefinition.ranUEgroupDef_List->list.count) { + E2_RANueGroupDef_Item_t* pE2_RANueGroupDef_Item = pE2_RANueGroup_Item->ranUEgroupDefinition.ranUEgroupDef_List->list.array[index2]; + if(pE2_RANueGroupDef_Item) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterID = pE2_RANueGroupDef_Item->ranParameter_ID; + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterTest = pE2_RANueGroupDef_Item->ranParameter_Test; + if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueInt) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueIntPresent = true; + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueInt = + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueInt; + } + else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueEnum) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueEnum = true; + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueEnum = + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueEnum; + } + else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueBool) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBoolPresent = true; + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBool = + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBool; + } + else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueBitS) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitSPresent = true; + addBitString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueBitS, + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.size, + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.buf, + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueBitS.bits_unused); + } + else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueOctS) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctSPresent = true; + addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valueOctS, + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.size, + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valueOctS.buf); + } + else if (pE2_RANueGroupDef_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valuePrtS) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtSPresent = true; + addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefItem[index2].ranParameterValue.valuePrtS, + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.size, + pE2_RANueGroupDef_Item->ranParameter_Value.choice.valuePrtS.buf); + } + else { + ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); + return e2err_RICSubscriptionRequestRanranUeGroupDefItemParameterValueEmptyFail; + } } else { ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); - return e2err_RICSubscriptionRequestRanranUeGroupDefItemParameterValueEmptyFail; + return e2err_RICSubscriptionRequestAllocE2_RANueGroupDef_ItemFail; } + index2++; } - else { - ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); - return e2err_RICSubscriptionRequestAllocE2_RANueGroupDef_ItemFail; - } - index2++; - } - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem->ranUEgroupDefinition.ranUeGroupDefCount = index2; - - uint64_t index3 = 0; - while (index3 < pE2_RANueGroup_Item->ranPolicy.ranImperativePolicy_List->list.count) { - E2_RANParameter_Item_t* pE2_RANParameter_Item = pE2_RANueGroup_Item->ranPolicy.ranImperativePolicy_List->list.array[index3]; - if (pE2_RANParameter_Item) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterID = pE2_RANParameter_Item->ranParameter_ID; - if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueInt) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueIntPresent = true; - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueInt = - pE2_RANParameter_Item->ranParameter_Value.choice.valueInt; - } - else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueEnum) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueEnum = true; - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueEnum = - pE2_RANParameter_Item->ranParameter_Value.choice.valueEnum; - } - else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueBool) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBoolPresent = true; - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBool = - pE2_RANParameter_Item->ranParameter_Value.choice.valueBool; - } - else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueBitS) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitSPresent = true; - addBitString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS, - pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.size, - pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.buf, - pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.bits_unused); - } - else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueOctS) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctSPresent = true; - addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS, - pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.size, - pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.buf); - } - else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valuePrtS) { - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtSPresent = true; - addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS, - pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.size, - pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.buf); + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranUEgroupDefinition.ranUeGroupDefCount = index2; + + uint64_t index3 = 0; + while (index3 < pE2_RANueGroup_Item->ranPolicy.ranImperativePolicy_List->list.count) { + E2_RANParameter_Item_t* pE2_RANParameter_Item = pE2_RANueGroup_Item->ranPolicy.ranImperativePolicy_List->list.array[index3]; + if (pE2_RANParameter_Item) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterID = pE2_RANParameter_Item->ranParameter_ID; + if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueInt) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueIntPresent = true; + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueInt = + pE2_RANParameter_Item->ranParameter_Value.choice.valueInt; + } + else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueEnum) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueEnum = true; + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueEnum = + pE2_RANParameter_Item->ranParameter_Value.choice.valueEnum; + } + else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueBool) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBoolPresent = true; + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBool = + pE2_RANParameter_Item->ranParameter_Value.choice.valueBool; + } + else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueBitS) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitSPresent = true; + addBitString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueBitS, + pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.size, + pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.buf, + pE2_RANParameter_Item->ranParameter_Value.choice.valueBitS.bits_unused); + } + else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valueOctS) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctSPresent = true; + addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valueOctS, + pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.size, + pE2_RANParameter_Item->ranParameter_Value.choice.valueOctS.buf); + } + else if (pE2_RANParameter_Item->ranParameter_Value.present == E2_RANParameter_Value_PR_valuePrtS) { + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtSPresent = true; + addOctetString(pDynMemHead, &pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterItem[index3].ranParameterValue.valuePrtS, + pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.size, + pE2_RANParameter_Item->ranParameter_Value.choice.valuePrtS.buf); + } + else { + ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); + return e2err_RICSubscriptionRequestRanParameterItemRanParameterValueEmptyFail; + } } else { ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); - return e2err_RICSubscriptionRequestRanParameterItemRanParameterValueEmptyFail; + return e2err_RICSubscriptionRequestAllocActionDefinitionFail; } + index3++; } - else { - ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); - return e2err_RICSubscriptionRequestAllocActionDefinitionFail; - } - index3++; + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem[index].ranPolicy.ranParameterCount = index3; } - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupItem->ranPolicy.ranParameterCount = index3; - } - else { - ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); - return e2err_RICSubscriptionRequestAllocRANParameter_ItemFail; + else { + ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); + return e2err_RICSubscriptionRequestAllocRANParameter_ItemFail; + } + index++; } - index++; - } - pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupCount = index; + } + pRICActionDefinitionChoice->actionDefinitionX2Format2->ranUeGroupCount = index; } } ASN_STRUCT_FREE(asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice, pE2_E2SM_gNB_X2_ActionDefinitionChoice); return e2err_OK; case RC_WMORE: if (debug) - printf("Decode failed. More data needed. Buffer size %zu, %s, consumed %zu",pRICActionDefinitionChoice->octetString.contentLength, + printf("Decode failed. More data needed. Buffer size %zu, %s, consumed %zu\n",pRICActionDefinitionChoice->octetString.contentLength, asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice.name, rval.consumed); return e2err_RICActionDefinitionChoiceWMOREFail; case RC_FAIL: if (debug) - printf("Decode failed. Buffer size %zu, %s, consumed %zu",pRICActionDefinitionChoice->octetString.contentLength, + printf("Decode failed. Buffer size %zu, %s, consumed %zu\n",pRICActionDefinitionChoice->octetString.contentLength, asn_DEF_E2_E2SM_gNB_X2_ActionDefinitionChoice.name, rval.consumed); return e2err_RICActionDefinitionChoiceDecodeFAIL; @@ -2003,7 +2014,7 @@ uint64_t getRICActionDefinitionDataNRTFormat(mem_track_hdr_t* pDynMemHead, RICAc case RC_OK: // Debug print if (debug) { - printf("Successfully decoded E2SM_gNB_NRT_ActionDefinition"); + printf("Successfully decoded E2SM_gNB_NRT_ActionDefinition\n"); asn_fprint(stdout, &asn_DEF_E2_E2SM_gNB_NRT_ActionDefinition, pE2_E2SM_gNB_NRT_ActionDefinition); } @@ -2076,13 +2087,13 @@ uint64_t getRICActionDefinitionDataNRTFormat(mem_track_hdr_t* pDynMemHead, RICAc return e2err_OK; case RC_WMORE: if (debug) - printf("Decode failed. More data needed. Buffer size %zu, %s, consumed %zu",pRICActionDefinitionChoice->octetString.contentLength, + printf("Decode failed. More data needed. Buffer size %zu, %s, consumed %zu\n",pRICActionDefinitionChoice->octetString.contentLength, asn_DEF_E2_E2SM_gNB_NRT_ActionDefinition.name, rval.consumed); return e2err_RICNRTActionDefinitionChoiceWMOREFail; case RC_FAIL: if (debug) - printf("Decode failed. Buffer size %zu, %s, consumed %zu",pRICActionDefinitionChoice->octetString.contentLength, + printf("Decode failed. Buffer size %zu, %s, consumed %zu\n",pRICActionDefinitionChoice->octetString.contentLength, asn_DEF_E2_E2SM_gNB_NRT_ActionDefinition.name, rval.consumed); return e2err_RICNRTActionDefinitionChoiceDecodeFAIL;