/*******************************************************************************
 * This file had been created by asn1tostruct.py script v0.5osmo1
 * Please do not modify this file but regenerate it via script.
 * Created on: 2026-02-14 22:26:20
 * from ['../asn1/ranap/RANAP-PDU-Contents.asn']
 ******************************************************************************/
#include <osmocom/ranap/ranap_common.h>
#include <osmocom/ranap/ranap_ies_defs.h>

int ranap_decode_iu_releasecommandies(
    RANAP_Iu_ReleaseCommandIEs_t *iu_ReleaseCommandIEs,
    ANY_t *any_p) {

    RANAP_Iu_ReleaseCommand_t *iu_ReleaseCommand_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(iu_ReleaseCommandIEs != NULL);

    memset(iu_ReleaseCommandIEs, 0, sizeof(RANAP_Iu_ReleaseCommandIEs_t));
    RANAP_DEBUG("Decoding message RANAP_Iu_ReleaseCommandIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_Iu_ReleaseCommand, (void**)&iu_ReleaseCommand_p);

    if (tempDecoded < 0 || iu_ReleaseCommand_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_Iu_ReleaseCommandIEs failed\n");
        return -1;
    }

    for (i = 0; i < iu_ReleaseCommand_p->iu_ReleaseCommand_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = iu_ReleaseCommand_p->iu_ReleaseCommand_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&iu_ReleaseCommandIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message iu_releasecommandies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_Iu_ReleaseCommand, iu_ReleaseCommand_p);
    return rc;
}

int ranap_decode_iu_releasecompleteies(
    RANAP_Iu_ReleaseCompleteIEs_t *iu_ReleaseCompleteIEs,
    ANY_t *any_p) {

    RANAP_Iu_ReleaseComplete_t *iu_ReleaseComplete_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(iu_ReleaseCompleteIEs != NULL);

    memset(iu_ReleaseCompleteIEs, 0, sizeof(RANAP_Iu_ReleaseCompleteIEs_t));
    RANAP_DEBUG("Decoding message RANAP_Iu_ReleaseCompleteIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_Iu_ReleaseComplete, (void**)&iu_ReleaseComplete_p);

    if (tempDecoded < 0 || iu_ReleaseComplete_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_Iu_ReleaseCompleteIEs failed\n");
        return -1;
    }

    for (i = 0; i < iu_ReleaseComplete_p->iu_ReleaseComplete_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = iu_ReleaseComplete_p->iu_ReleaseComplete_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportList:
            {
                RANAP_RAB_DataVolumeReportList_t *ranaP_RABDataVolumeReportList_p = NULL;
                iu_ReleaseCompleteIEs->presenceMask |= IU_RELEASECOMPLETEIES_RANAP_RAB_DATAVOLUMEREPORTLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataVolumeReportList, (void**)&ranaP_RABDataVolumeReportList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataVolumeReportList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataVolumeReportList, ranaP_RABDataVolumeReportList_p);
                memcpy(&iu_ReleaseCompleteIEs->raB_DataVolumeReportList, ranaP_RABDataVolumeReportList_p, sizeof(RANAP_RAB_DataVolumeReportList_t));
                FREEMEM(ranaP_RABDataVolumeReportList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_ReleasedList_IuRelComp:
            {
                RANAP_RAB_ReleasedList_IuRelComp_t *ranaP_RABReleasedListIuRelComp_p = NULL;
                iu_ReleaseCompleteIEs->presenceMask |= IU_RELEASECOMPLETEIES_RANAP_RAB_RELEASEDLIST_IURELCOMP_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ReleasedList_IuRelComp, (void**)&ranaP_RABReleasedListIuRelComp_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ReleasedList_IuRelComp failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleasedList_IuRelComp, ranaP_RABReleasedListIuRelComp_p);
                memcpy(&iu_ReleaseCompleteIEs->raB_ReleasedList_IuRelComp, ranaP_RABReleasedListIuRelComp_p, sizeof(RANAP_RAB_ReleasedList_IuRelComp_t));
                FREEMEM(ranaP_RABReleasedListIuRelComp_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                iu_ReleaseCompleteIEs->presenceMask |= IU_RELEASECOMPLETEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&iu_ReleaseCompleteIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message iu_releasecompleteies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_Iu_ReleaseComplete, iu_ReleaseComplete_p);
    return rc;
}

int ranap_decode_rab_datavolumereportitemies(
    RANAP_RAB_DataVolumeReportItemIEs_t *raB_DataVolumeReportItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_DataVolumeReportList_t *rAB_DataVolumeReportItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_DataVolumeReportItemIEs != NULL);

    memset(raB_DataVolumeReportItemIEs, 0, sizeof(RANAP_RAB_DataVolumeReportItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_DataVolumeReportItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_DataVolumeReportList, (void**)&rAB_DataVolumeReportItem_p);

    if (tempDecoded < 0 || rAB_DataVolumeReportItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_DataVolumeReportItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_DataVolumeReportItem_p->raB_DataVolumeReportList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_DataVolumeReportItem_p->raB_DataVolumeReportList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportItem:
            {
                RANAP_RAB_DataVolumeReportItem_t *ranaP_RABDataVolumeReportItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataVolumeReportItem, (void**)&ranaP_RABDataVolumeReportItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataVolumeReportItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataVolumeReportItem, ranaP_RABDataVolumeReportItem_p);
                memcpy(&raB_DataVolumeReportItemIEs->raB_DataVolumeReportItem, ranaP_RABDataVolumeReportItem_p, sizeof(RANAP_RAB_DataVolumeReportItem_t));
                FREEMEM(ranaP_RABDataVolumeReportItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_datavolumereportitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_DataVolumeReportList, rAB_DataVolumeReportItem_p);
    return rc;
}

int ranap_decode_rab_releaseditem_iurelcomp_ies(
    RANAP_RAB_ReleasedItem_IuRelComp_IEs_t *raB_ReleasedItem_IuRelComp_IEs,
    ANY_t *any_p) {

    RANAP_RAB_ReleasedList_IuRelComp_t *rAB_ReleasedItem_IuRelComp_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ReleasedItem_IuRelComp_IEs != NULL);

    memset(raB_ReleasedItem_IuRelComp_IEs, 0, sizeof(RANAP_RAB_ReleasedItem_IuRelComp_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ReleasedItem_IuRelComp_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ReleasedList_IuRelComp, (void**)&rAB_ReleasedItem_IuRelComp_p);

    if (tempDecoded < 0 || rAB_ReleasedItem_IuRelComp_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ReleasedItem_IuRelComp_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ReleasedItem_IuRelComp_p->raB_ReleasedList_IuRelComp_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ReleasedItem_IuRelComp_p->raB_ReleasedList_IuRelComp_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ReleasedItem_IuRelComp:
            {
                RANAP_RAB_ReleasedItem_IuRelComp_t *ranaP_RABReleasedItemIuRelComp_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ReleasedItem_IuRelComp, (void**)&ranaP_RABReleasedItemIuRelComp_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ReleasedItem_IuRelComp failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleasedItem_IuRelComp, ranaP_RABReleasedItemIuRelComp_p);
                memcpy(&raB_ReleasedItem_IuRelComp_IEs->raB_ReleasedItem_IuRelComp, ranaP_RABReleasedItemIuRelComp_p, sizeof(RANAP_RAB_ReleasedItem_IuRelComp_t));
                FREEMEM(ranaP_RABReleasedItemIuRelComp_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_releaseditem_iurelcomp_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ReleasedList_IuRelComp, rAB_ReleasedItem_IuRelComp_p);
    return rc;
}

int ranap_decode_relocationrequiredies(
    RANAP_RelocationRequiredIEs_t *relocationRequiredIEs,
    ANY_t *any_p) {

    RANAP_RelocationRequired_t *relocationRequired_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(relocationRequiredIEs != NULL);

    memset(relocationRequiredIEs, 0, sizeof(RANAP_RelocationRequiredIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RelocationRequiredIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RelocationRequired, (void**)&relocationRequired_p);

    if (tempDecoded < 0 || relocationRequired_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RelocationRequiredIEs failed\n");
        return -1;
    }

    for (i = 0; i < relocationRequired_p->relocationRequired_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = relocationRequired_p->relocationRequired_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RelocationType:
            {
                RANAP_RelocationType_t *ranaP_RelocationType_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RelocationType, (void**)&ranaP_RelocationType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE relocationType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RelocationType, ranaP_RelocationType_p);
                memcpy(&relocationRequiredIEs->relocationType, ranaP_RelocationType_p, sizeof(RANAP_RelocationType_t));
                FREEMEM(ranaP_RelocationType_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&relocationRequiredIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            case RANAP_ProtocolIE_ID_id_SourceID:
            {
                RANAP_SourceID_t *ranaP_SourceID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SourceID, (void**)&ranaP_SourceID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE sourceID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SourceID, ranaP_SourceID_p);
                memcpy(&relocationRequiredIEs->sourceID, ranaP_SourceID_p, sizeof(RANAP_SourceID_t));
                FREEMEM(ranaP_SourceID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_TargetID:
            {
                RANAP_TargetID_t *ranaP_TargetID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TargetID, (void**)&ranaP_TargetID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE targetID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TargetID, ranaP_TargetID_p);
                memcpy(&relocationRequiredIEs->targetID, ranaP_TargetID_p, sizeof(RANAP_TargetID_t));
                FREEMEM(ranaP_TargetID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_OldBSS_ToNewBSS_Information:
            {
                RANAP_OldBSS_ToNewBSS_Information_t *ranaP_OldBSSToNewBSSInformation_p = NULL;
                relocationRequiredIEs->presenceMask |= RELOCATIONREQUIREDIES_RANAP_OLDBSS_TONEWBSS_INFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_OldBSS_ToNewBSS_Information, (void**)&ranaP_OldBSSToNewBSSInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE oldBSS_ToNewBSS_Information failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_OldBSS_ToNewBSS_Information, ranaP_OldBSSToNewBSSInformation_p);
                memcpy(&relocationRequiredIEs->oldBSS_ToNewBSS_Information, ranaP_OldBSSToNewBSSInformation_p, sizeof(RANAP_OldBSS_ToNewBSS_Information_t));
                FREEMEM(ranaP_OldBSSToNewBSSInformation_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message relocationrequiredies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RelocationRequired, relocationRequired_p);
    return rc;
}

int ranap_decode_relocationcommandies(
    RANAP_RelocationCommandIEs_t *relocationCommandIEs,
    ANY_t *any_p) {

    RANAP_RelocationCommand_t *relocationCommand_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(relocationCommandIEs != NULL);

    memset(relocationCommandIEs, 0, sizeof(RANAP_RelocationCommandIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RelocationCommandIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RelocationCommand, (void**)&relocationCommand_p);

    if (tempDecoded < 0 || relocationCommand_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RelocationCommandIEs failed\n");
        return -1;
    }

    for (i = 0; i < relocationCommand_p->relocationCommand_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = relocationCommand_p->relocationCommand_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_L3_Information:
            {
                RANAP_L3_Information_t *ranaP_L3Information_p = NULL;
                relocationCommandIEs->presenceMask |= RELOCATIONCOMMANDIES_RANAP_L3_INFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_L3_Information, (void**)&ranaP_L3Information_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE l3_Information failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_L3_Information, ranaP_L3Information_p);
                memcpy(&relocationCommandIEs->l3_Information, ranaP_L3Information_p, sizeof(RANAP_L3_Information_t));
                FREEMEM(ranaP_L3Information_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_RelocationReleaseList:
            {
                RANAP_RAB_RelocationReleaseList_t *ranaP_RABRelocationReleaseList_p = NULL;
                relocationCommandIEs->presenceMask |= RELOCATIONCOMMANDIES_RANAP_RAB_RELOCATIONRELEASELIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_RelocationReleaseList, (void**)&ranaP_RABRelocationReleaseList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_RelocationReleaseList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_RelocationReleaseList, ranaP_RABRelocationReleaseList_p);
                memcpy(&relocationCommandIEs->raB_RelocationReleaseList, ranaP_RABRelocationReleaseList_p, sizeof(RANAP_RAB_RelocationReleaseList_t));
                FREEMEM(ranaP_RABRelocationReleaseList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_DataForwardingList:
            {
                RANAP_RAB_DataForwardingList_t *ranaP_RABDataForwardingList_p = NULL;
                relocationCommandIEs->presenceMask |= RELOCATIONCOMMANDIES_RANAP_RAB_DATAFORWARDINGLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataForwardingList, (void**)&ranaP_RABDataForwardingList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataForwardingList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataForwardingList, ranaP_RABDataForwardingList_p);
                memcpy(&relocationCommandIEs->raB_DataForwardingList, ranaP_RABDataForwardingList_p, sizeof(RANAP_RAB_DataForwardingList_t));
                FREEMEM(ranaP_RABDataForwardingList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                relocationCommandIEs->presenceMask |= RELOCATIONCOMMANDIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&relocationCommandIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message relocationcommandies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RelocationCommand, relocationCommand_p);
    return rc;
}

int ranap_decode_rab_relocationreleaseitemies(
    RANAP_RAB_RelocationReleaseItemIEs_t *raB_RelocationReleaseItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_RelocationReleaseList_t *rAB_RelocationReleaseItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_RelocationReleaseItemIEs != NULL);

    memset(raB_RelocationReleaseItemIEs, 0, sizeof(RANAP_RAB_RelocationReleaseItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_RelocationReleaseItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_RelocationReleaseList, (void**)&rAB_RelocationReleaseItem_p);

    if (tempDecoded < 0 || rAB_RelocationReleaseItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_RelocationReleaseItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_RelocationReleaseItem_p->raB_RelocationReleaseList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_RelocationReleaseItem_p->raB_RelocationReleaseList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_RelocationReleaseItem:
            {
                RANAP_RAB_RelocationReleaseItem_t *ranaP_RABRelocationReleaseItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_RelocationReleaseItem, (void**)&ranaP_RABRelocationReleaseItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_RelocationReleaseItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_RelocationReleaseItem, ranaP_RABRelocationReleaseItem_p);
                memcpy(&raB_RelocationReleaseItemIEs->raB_RelocationReleaseItem, ranaP_RABRelocationReleaseItem_p, sizeof(RANAP_RAB_RelocationReleaseItem_t));
                FREEMEM(ranaP_RABRelocationReleaseItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_relocationreleaseitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_RelocationReleaseList, rAB_RelocationReleaseItem_p);
    return rc;
}

int ranap_decode_rab_dataforwardingitemies(
    RANAP_RAB_DataForwardingItemIEs_t *raB_DataForwardingItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_DataForwardingList_t *rAB_DataForwardingItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_DataForwardingItemIEs != NULL);

    memset(raB_DataForwardingItemIEs, 0, sizeof(RANAP_RAB_DataForwardingItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_DataForwardingItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_DataForwardingList, (void**)&rAB_DataForwardingItem_p);

    if (tempDecoded < 0 || rAB_DataForwardingItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_DataForwardingItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_DataForwardingItem_p->raB_DataForwardingList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_DataForwardingItem_p->raB_DataForwardingList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_DataForwardingItem:
            {
                RANAP_RAB_DataForwardingItem_t *ranaP_RABDataForwardingItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataForwardingItem, (void**)&ranaP_RABDataForwardingItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataForwardingItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataForwardingItem, ranaP_RABDataForwardingItem_p);
                memcpy(&raB_DataForwardingItemIEs->raB_DataForwardingItem, ranaP_RABDataForwardingItem_p, sizeof(RANAP_RAB_DataForwardingItem_t));
                FREEMEM(ranaP_RABDataForwardingItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_dataforwardingitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_DataForwardingList, rAB_DataForwardingItem_p);
    return rc;
}

int ranap_decode_relocationpreparationfailureies(
    RANAP_RelocationPreparationFailureIEs_t *relocationPreparationFailureIEs,
    ANY_t *any_p) {

    RANAP_RelocationPreparationFailure_t *relocationPreparationFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(relocationPreparationFailureIEs != NULL);

    memset(relocationPreparationFailureIEs, 0, sizeof(RANAP_RelocationPreparationFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RelocationPreparationFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RelocationPreparationFailure, (void**)&relocationPreparationFailure_p);

    if (tempDecoded < 0 || relocationPreparationFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RelocationPreparationFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < relocationPreparationFailure_p->relocationPreparationFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = relocationPreparationFailure_p->relocationPreparationFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&relocationPreparationFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                relocationPreparationFailureIEs->presenceMask |= RELOCATIONPREPARATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&relocationPreparationFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message relocationpreparationfailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RelocationPreparationFailure, relocationPreparationFailure_p);
    return rc;
}

int ranap_decode_relocationrequesties(
    RANAP_RelocationRequestIEs_t *relocationRequestIEs,
    ANY_t *any_p) {

    RANAP_RelocationRequest_t *relocationRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(relocationRequestIEs != NULL);

    memset(relocationRequestIEs, 0, sizeof(RANAP_RelocationRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RelocationRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RelocationRequest, (void**)&relocationRequest_p);

    if (tempDecoded < 0 || relocationRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RelocationRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < relocationRequest_p->relocationRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = relocationRequest_p->relocationRequest_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_PermanentNAS_UE_ID:
            {
                RANAP_PermanentNAS_UE_ID_t *ranaP_PermanentNASUEID_p = NULL;
                relocationRequestIEs->presenceMask |= RELOCATIONREQUESTIES_RANAP_PERMANENTNAS_UE_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_PermanentNAS_UE_ID, (void**)&ranaP_PermanentNASUEID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE permanentNAS_UE_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_PermanentNAS_UE_ID, ranaP_PermanentNASUEID_p);
                memcpy(&relocationRequestIEs->permanentNAS_UE_ID, ranaP_PermanentNASUEID_p, sizeof(RANAP_PermanentNAS_UE_ID_t));
                FREEMEM(ranaP_PermanentNASUEID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&relocationRequestIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&relocationRequestIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Source_ToTarget_TransparentContainer:
            {
                RANAP_SourceRNC_ToTargetRNC_TransparentContainer_t *ranaP_SourceRNCToTargetRNCTransparentContainer_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer, (void**)&ranaP_SourceRNCToTargetRNCTransparentContainer_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE source_ToTarget_TransparentContainer failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer, ranaP_SourceRNCToTargetRNCTransparentContainer_p);
                memcpy(&relocationRequestIEs->source_ToTarget_TransparentContainer, ranaP_SourceRNCToTargetRNCTransparentContainer_p, sizeof(RANAP_SourceRNC_ToTargetRNC_TransparentContainer_t));
                FREEMEM(ranaP_SourceRNCToTargetRNCTransparentContainer_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_SetupList_RelocReq:
            {
                RANAP_RAB_SetupList_RelocReq_t *ranaP_RABSetupListRelocReq_p = NULL;
                relocationRequestIEs->presenceMask |= RELOCATIONREQUESTIES_RANAP_RAB_SETUPLIST_RELOCREQ_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupList_RelocReq, (void**)&ranaP_RABSetupListRelocReq_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupList_RelocReq failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupList_RelocReq, ranaP_RABSetupListRelocReq_p);
                memcpy(&relocationRequestIEs->raB_SetupList_RelocReq, ranaP_RABSetupListRelocReq_p, sizeof(RANAP_RAB_SetupList_RelocReq_t));
                FREEMEM(ranaP_RABSetupListRelocReq_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_IntegrityProtectionInformation:
            {
                RANAP_IntegrityProtectionInformation_t *ranaP_IntegrityProtectionInformation_p = NULL;
                relocationRequestIEs->presenceMask |= RELOCATIONREQUESTIES_RANAP_INTEGRITYPROTECTIONINFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IntegrityProtectionInformation, (void**)&ranaP_IntegrityProtectionInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE integrityProtectionInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IntegrityProtectionInformation, ranaP_IntegrityProtectionInformation_p);
                memcpy(&relocationRequestIEs->integrityProtectionInformation, ranaP_IntegrityProtectionInformation_p, sizeof(RANAP_IntegrityProtectionInformation_t));
                FREEMEM(ranaP_IntegrityProtectionInformation_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_EncryptionInformation:
            {
                RANAP_EncryptionInformation_t *ranaP_EncryptionInformation_p = NULL;
                relocationRequestIEs->presenceMask |= RELOCATIONREQUESTIES_RANAP_ENCRYPTIONINFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_EncryptionInformation, (void**)&ranaP_EncryptionInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE encryptionInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_EncryptionInformation, ranaP_EncryptionInformation_p);
                memcpy(&relocationRequestIEs->encryptionInformation, ranaP_EncryptionInformation_p, sizeof(RANAP_EncryptionInformation_t));
                FREEMEM(ranaP_EncryptionInformation_p);
            } break;
            case RANAP_ProtocolIE_ID_id_IuSigConId:
            {
                RANAP_IuSignallingConnectionIdentifier_t *ranaP_IuSignallingConnectionIdentifier_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, (void**)&ranaP_IuSignallingConnectionIdentifier_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE iuSigConId failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, ranaP_IuSignallingConnectionIdentifier_p);
                memcpy(&relocationRequestIEs->iuSigConId, ranaP_IuSignallingConnectionIdentifier_p, sizeof(RANAP_IuSignallingConnectionIdentifier_t));
                FREEMEM(ranaP_IuSignallingConnectionIdentifier_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message relocationrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RelocationRequest, relocationRequest_p);
    return rc;
}

int ranap_decode_rab_setupitem_relocreq_ies(
    RANAP_RAB_SetupItem_RelocReq_IEs_t *raB_SetupItem_RelocReq_IEs,
    ANY_t *any_p) {

    RANAP_RAB_SetupList_RelocReq_t *rAB_SetupItem_RelocReq_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_SetupItem_RelocReq_IEs != NULL);

    memset(raB_SetupItem_RelocReq_IEs, 0, sizeof(RANAP_RAB_SetupItem_RelocReq_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_SetupItem_RelocReq_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_SetupList_RelocReq, (void**)&rAB_SetupItem_RelocReq_p);

    if (tempDecoded < 0 || rAB_SetupItem_RelocReq_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_SetupItem_RelocReq_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_SetupItem_RelocReq_p->raB_SetupList_RelocReq_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_SetupItem_RelocReq_p->raB_SetupList_RelocReq_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_SetupItem_RelocReq:
            {
                RANAP_RAB_SetupItem_RelocReq_t *ranaP_RABSetupItemRelocReq_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupItem_RelocReq, (void**)&ranaP_RABSetupItemRelocReq_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupItem_RelocReq failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupItem_RelocReq, ranaP_RABSetupItemRelocReq_p);
                memcpy(&raB_SetupItem_RelocReq_IEs->raB_SetupItem_RelocReq, ranaP_RABSetupItemRelocReq_p, sizeof(RANAP_RAB_SetupItem_RelocReq_t));
                FREEMEM(ranaP_RABSetupItemRelocReq_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_setupitem_relocreq_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_SetupList_RelocReq, rAB_SetupItem_RelocReq_p);
    return rc;
}

int ranap_decode_relocationrequestacknowledgeies(
    RANAP_RelocationRequestAcknowledgeIEs_t *relocationRequestAcknowledgeIEs,
    ANY_t *any_p) {

    RANAP_RelocationRequestAcknowledge_t *relocationRequestAcknowledge_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(relocationRequestAcknowledgeIEs != NULL);

    memset(relocationRequestAcknowledgeIEs, 0, sizeof(RANAP_RelocationRequestAcknowledgeIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RelocationRequestAcknowledgeIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RelocationRequestAcknowledge, (void**)&relocationRequestAcknowledge_p);

    if (tempDecoded < 0 || relocationRequestAcknowledge_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RelocationRequestAcknowledgeIEs failed\n");
        return -1;
    }

    for (i = 0; i < relocationRequestAcknowledge_p->relocationRequestAcknowledge_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = relocationRequestAcknowledge_p->relocationRequestAcknowledge_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Target_ToSource_TransparentContainer:
            {
                RANAP_TargetRNC_ToSourceRNC_TransparentContainer_t *ranaP_TargetRNCToSourceRNCTransparentContainer_p = NULL;
                relocationRequestAcknowledgeIEs->presenceMask |= RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer, (void**)&ranaP_TargetRNCToSourceRNCTransparentContainer_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE target_ToSource_TransparentContainer failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer, ranaP_TargetRNCToSourceRNCTransparentContainer_p);
                memcpy(&relocationRequestAcknowledgeIEs->target_ToSource_TransparentContainer, ranaP_TargetRNCToSourceRNCTransparentContainer_p, sizeof(RANAP_TargetRNC_ToSourceRNC_TransparentContainer_t));
                FREEMEM(ranaP_TargetRNCToSourceRNCTransparentContainer_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_SetupList_RelocReqAck:
            {
                RANAP_RAB_SetupList_RelocReqAck_t *ranaP_RABSetupListRelocReqAck_p = NULL;
                relocationRequestAcknowledgeIEs->presenceMask |= RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_RAB_SETUPLIST_RELOCREQACK_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupList_RelocReqAck, (void**)&ranaP_RABSetupListRelocReqAck_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupList_RelocReqAck failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupList_RelocReqAck, ranaP_RABSetupListRelocReqAck_p);
                memcpy(&relocationRequestAcknowledgeIEs->raB_SetupList_RelocReqAck, ranaP_RABSetupListRelocReqAck_p, sizeof(RANAP_RAB_SetupList_RelocReqAck_t));
                FREEMEM(ranaP_RABSetupListRelocReqAck_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_FailedList:
            {
                RANAP_RAB_FailedList_t *ranaP_RABFailedList_p = NULL;
                relocationRequestAcknowledgeIEs->presenceMask |= RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_RAB_FAILEDLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_FailedList, (void**)&ranaP_RABFailedList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_FailedList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_FailedList, ranaP_RABFailedList_p);
                memcpy(&relocationRequestAcknowledgeIEs->raB_FailedList, ranaP_RABFailedList_p, sizeof(RANAP_RAB_FailedList_t));
                FREEMEM(ranaP_RABFailedList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_ChosenIntegrityProtectionAlgorithm:
            {
                RANAP_ChosenIntegrityProtectionAlgorithm_t *ranaP_ChosenIntegrityProtectionAlgorithm_p = NULL;
                relocationRequestAcknowledgeIEs->presenceMask |= RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CHOSENINTEGRITYPROTECTIONALGORITHM_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm, (void**)&ranaP_ChosenIntegrityProtectionAlgorithm_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE chosenIntegrityProtectionAlgorithm failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm, ranaP_ChosenIntegrityProtectionAlgorithm_p);
                memcpy(&relocationRequestAcknowledgeIEs->chosenIntegrityProtectionAlgorithm, ranaP_ChosenIntegrityProtectionAlgorithm_p, sizeof(RANAP_ChosenIntegrityProtectionAlgorithm_t));
                FREEMEM(ranaP_ChosenIntegrityProtectionAlgorithm_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_ChosenEncryptionAlgorithm:
            {
                RANAP_ChosenEncryptionAlgorithm_t *ranaP_ChosenEncryptionAlgorithm_p = NULL;
                relocationRequestAcknowledgeIEs->presenceMask |= RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CHOSENENCRYPTIONALGORITHM_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ChosenEncryptionAlgorithm, (void**)&ranaP_ChosenEncryptionAlgorithm_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE chosenEncryptionAlgorithm failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ChosenEncryptionAlgorithm, ranaP_ChosenEncryptionAlgorithm_p);
                memcpy(&relocationRequestAcknowledgeIEs->chosenEncryptionAlgorithm, ranaP_ChosenEncryptionAlgorithm_p, sizeof(RANAP_ChosenEncryptionAlgorithm_t));
                FREEMEM(ranaP_ChosenEncryptionAlgorithm_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                relocationRequestAcknowledgeIEs->presenceMask |= RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&relocationRequestAcknowledgeIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message relocationrequestacknowledgeies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RelocationRequestAcknowledge, relocationRequestAcknowledge_p);
    return rc;
}

int ranap_decode_rab_setupitem_relocreqack_ies(
    RANAP_RAB_SetupItem_RelocReqAck_IEs_t *raB_SetupItem_RelocReqAck_IEs,
    ANY_t *any_p) {

    RANAP_RAB_SetupList_RelocReqAck_t *rAB_SetupItem_RelocReqAck_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_SetupItem_RelocReqAck_IEs != NULL);

    memset(raB_SetupItem_RelocReqAck_IEs, 0, sizeof(RANAP_RAB_SetupItem_RelocReqAck_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_SetupItem_RelocReqAck_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_SetupList_RelocReqAck, (void**)&rAB_SetupItem_RelocReqAck_p);

    if (tempDecoded < 0 || rAB_SetupItem_RelocReqAck_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_SetupItem_RelocReqAck_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_SetupItem_RelocReqAck_p->raB_SetupList_RelocReqAck_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_SetupItem_RelocReqAck_p->raB_SetupList_RelocReqAck_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_SetupItem_RelocReqAck:
            {
                RANAP_RAB_SetupItem_RelocReqAck_t *ranaP_RABSetupItemRelocReqAck_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupItem_RelocReqAck, (void**)&ranaP_RABSetupItemRelocReqAck_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupItem_RelocReqAck failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupItem_RelocReqAck, ranaP_RABSetupItemRelocReqAck_p);
                memcpy(&raB_SetupItem_RelocReqAck_IEs->raB_SetupItem_RelocReqAck, ranaP_RABSetupItemRelocReqAck_p, sizeof(RANAP_RAB_SetupItem_RelocReqAck_t));
                FREEMEM(ranaP_RABSetupItemRelocReqAck_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_setupitem_relocreqack_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_SetupList_RelocReqAck, rAB_SetupItem_RelocReqAck_p);
    return rc;
}

int ranap_decode_rab_faileditemies(
    RANAP_RAB_FailedItemIEs_t *raB_FailedItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_FailedList_t *rAB_FailedItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_FailedItemIEs != NULL);

    memset(raB_FailedItemIEs, 0, sizeof(RANAP_RAB_FailedItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_FailedItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_FailedList, (void**)&rAB_FailedItem_p);

    if (tempDecoded < 0 || rAB_FailedItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_FailedItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_FailedItem_p->raB_FailedList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_FailedItem_p->raB_FailedList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_FailedItem:
            {
                RANAP_RAB_FailedItem_t *ranaP_RABFailedItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_FailedItem, (void**)&ranaP_RABFailedItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_FailedItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_FailedItem, ranaP_RABFailedItem_p);
                memcpy(&raB_FailedItemIEs->raB_FailedItem, ranaP_RABFailedItem_p, sizeof(RANAP_RAB_FailedItem_t));
                FREEMEM(ranaP_RABFailedItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_faileditemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_FailedList, rAB_FailedItem_p);
    return rc;
}

int ranap_decode_relocationfailureies(
    RANAP_RelocationFailureIEs_t *relocationFailureIEs,
    ANY_t *any_p) {

    RANAP_RelocationFailure_t *relocationFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(relocationFailureIEs != NULL);

    memset(relocationFailureIEs, 0, sizeof(RANAP_RelocationFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RelocationFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RelocationFailure, (void**)&relocationFailure_p);

    if (tempDecoded < 0 || relocationFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RelocationFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < relocationFailure_p->relocationFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = relocationFailure_p->relocationFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&relocationFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                relocationFailureIEs->presenceMask |= RELOCATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&relocationFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message relocationfailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RelocationFailure, relocationFailure_p);
    return rc;
}

int ranap_decode_relocationcancelies(
    RANAP_RelocationCancelIEs_t *relocationCancelIEs,
    ANY_t *any_p) {

    RANAP_RelocationCancel_t *relocationCancel_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(relocationCancelIEs != NULL);

    memset(relocationCancelIEs, 0, sizeof(RANAP_RelocationCancelIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RelocationCancelIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RelocationCancel, (void**)&relocationCancel_p);

    if (tempDecoded < 0 || relocationCancel_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RelocationCancelIEs failed\n");
        return -1;
    }

    for (i = 0; i < relocationCancel_p->relocationCancel_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = relocationCancel_p->relocationCancel_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&relocationCancelIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message relocationcancelies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RelocationCancel, relocationCancel_p);
    return rc;
}

int ranap_decode_relocationcancelacknowledgeies(
    RANAP_RelocationCancelAcknowledgeIEs_t *relocationCancelAcknowledgeIEs,
    ANY_t *any_p) {

    RANAP_RelocationCancelAcknowledge_t *relocationCancelAcknowledge_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(relocationCancelAcknowledgeIEs != NULL);

    memset(relocationCancelAcknowledgeIEs, 0, sizeof(RANAP_RelocationCancelAcknowledgeIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RelocationCancelAcknowledgeIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RelocationCancelAcknowledge, (void**)&relocationCancelAcknowledge_p);

    if (tempDecoded < 0 || relocationCancelAcknowledge_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RelocationCancelAcknowledgeIEs failed\n");
        return -1;
    }

    for (i = 0; i < relocationCancelAcknowledge_p->relocationCancelAcknowledge_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = relocationCancelAcknowledge_p->relocationCancelAcknowledge_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                relocationCancelAcknowledgeIEs->presenceMask |= RELOCATIONCANCELACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&relocationCancelAcknowledgeIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message relocationcancelacknowledgeies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RelocationCancelAcknowledge, relocationCancelAcknowledge_p);
    return rc;
}

int ranap_decode_srns_contextrequesties(
    RANAP_SRNS_ContextRequestIEs_t *srnS_ContextRequestIEs,
    ANY_t *any_p) {

    RANAP_SRNS_ContextRequest_t *sRNS_ContextRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(srnS_ContextRequestIEs != NULL);

    memset(srnS_ContextRequestIEs, 0, sizeof(RANAP_SRNS_ContextRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_SRNS_ContextRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_SRNS_ContextRequest, (void**)&sRNS_ContextRequest_p);

    if (tempDecoded < 0 || sRNS_ContextRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_SRNS_ContextRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < sRNS_ContextRequest_p->srnS_ContextRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = sRNS_ContextRequest_p->srnS_ContextRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_DataForwardingList_SRNS_CtxReq:
            {
                RANAP_RAB_DataForwardingList_SRNS_CtxReq_t *ranaP_RABDataForwardingListSRNSCtxReq_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataForwardingList_SRNS_CtxReq, (void**)&ranaP_RABDataForwardingListSRNSCtxReq_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataForwardingList_SRNS_CtxReq failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataForwardingList_SRNS_CtxReq, ranaP_RABDataForwardingListSRNSCtxReq_p);
                memcpy(&srnS_ContextRequestIEs->raB_DataForwardingList_SRNS_CtxReq, ranaP_RABDataForwardingListSRNSCtxReq_p, sizeof(RANAP_RAB_DataForwardingList_SRNS_CtxReq_t));
                FREEMEM(ranaP_RABDataForwardingListSRNSCtxReq_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message srns_contextrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_SRNS_ContextRequest, sRNS_ContextRequest_p);
    return rc;
}

int ranap_decode_rab_dataforwardingitem_srns_ctxreq_ies(
    RANAP_RAB_DataForwardingItem_SRNS_CtxReq_IEs_t *raB_DataForwardingItem_SRNS_CtxReq_IEs,
    ANY_t *any_p) {

    RANAP_RAB_DataForwardingList_SRNS_CtxReq_t *rAB_DataForwardingItem_SRNS_CtxReq_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_DataForwardingItem_SRNS_CtxReq_IEs != NULL);

    memset(raB_DataForwardingItem_SRNS_CtxReq_IEs, 0, sizeof(RANAP_RAB_DataForwardingItem_SRNS_CtxReq_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_DataForwardingItem_SRNS_CtxReq_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_DataForwardingList_SRNS_CtxReq, (void**)&rAB_DataForwardingItem_SRNS_CtxReq_p);

    if (tempDecoded < 0 || rAB_DataForwardingItem_SRNS_CtxReq_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_DataForwardingItem_SRNS_CtxReq_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_DataForwardingItem_SRNS_CtxReq_p->raB_DataForwardingList_SRNS_CtxReq_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_DataForwardingItem_SRNS_CtxReq_p->raB_DataForwardingList_SRNS_CtxReq_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_DataForwardingItem_SRNS_CtxReq:
            {
                RANAP_RAB_DataForwardingItem_SRNS_CtxReq_t *ranaP_RABDataForwardingItemSRNSCtxReq_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataForwardingItem_SRNS_CtxReq, (void**)&ranaP_RABDataForwardingItemSRNSCtxReq_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataForwardingItem_SRNS_CtxReq failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataForwardingItem_SRNS_CtxReq, ranaP_RABDataForwardingItemSRNSCtxReq_p);
                memcpy(&raB_DataForwardingItem_SRNS_CtxReq_IEs->raB_DataForwardingItem_SRNS_CtxReq, ranaP_RABDataForwardingItemSRNSCtxReq_p, sizeof(RANAP_RAB_DataForwardingItem_SRNS_CtxReq_t));
                FREEMEM(ranaP_RABDataForwardingItemSRNSCtxReq_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_dataforwardingitem_srns_ctxreq_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_DataForwardingList_SRNS_CtxReq, rAB_DataForwardingItem_SRNS_CtxReq_p);
    return rc;
}

int ranap_decode_srns_contextresponseies(
    RANAP_SRNS_ContextResponseIEs_t *srnS_ContextResponseIEs,
    ANY_t *any_p) {

    RANAP_SRNS_ContextResponse_t *sRNS_ContextResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(srnS_ContextResponseIEs != NULL);

    memset(srnS_ContextResponseIEs, 0, sizeof(RANAP_SRNS_ContextResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_SRNS_ContextResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_SRNS_ContextResponse, (void**)&sRNS_ContextResponse_p);

    if (tempDecoded < 0 || sRNS_ContextResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_SRNS_ContextResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < sRNS_ContextResponse_p->srnS_ContextResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = sRNS_ContextResponse_p->srnS_ContextResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_ContextList:
            {
                RANAP_RAB_ContextList_t *ranaP_RABContextList_p = NULL;
                srnS_ContextResponseIEs->presenceMask |= SRNS_CONTEXTRESPONSEIES_RANAP_RAB_CONTEXTLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ContextList, (void**)&ranaP_RABContextList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ContextList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ContextList, ranaP_RABContextList_p);
                memcpy(&srnS_ContextResponseIEs->raB_ContextList, ranaP_RABContextList_p, sizeof(RANAP_RAB_ContextList_t));
                FREEMEM(ranaP_RABContextList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_ContextFailedtoTransferList:
            {
                RANAP_RABs_ContextFailedtoTransferList_t *ranaP_RABsContextFailedtoTransferList_p = NULL;
                srnS_ContextResponseIEs->presenceMask |= SRNS_CONTEXTRESPONSEIES_RANAP_RABS_CONTEXTFAILEDTOTRANSFERLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RABs_ContextFailedtoTransferList, (void**)&ranaP_RABsContextFailedtoTransferList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ContextFailedtoTransferList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RABs_ContextFailedtoTransferList, ranaP_RABsContextFailedtoTransferList_p);
                memcpy(&srnS_ContextResponseIEs->raB_ContextFailedtoTransferList, ranaP_RABsContextFailedtoTransferList_p, sizeof(RANAP_RABs_ContextFailedtoTransferList_t));
                FREEMEM(ranaP_RABsContextFailedtoTransferList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                srnS_ContextResponseIEs->presenceMask |= SRNS_CONTEXTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&srnS_ContextResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message srns_contextresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_SRNS_ContextResponse, sRNS_ContextResponse_p);
    return rc;
}

int ranap_decode_rab_contextitemies(
    RANAP_RAB_ContextItemIEs_t *raB_ContextItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_ContextList_t *rAB_ContextItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ContextItemIEs != NULL);

    memset(raB_ContextItemIEs, 0, sizeof(RANAP_RAB_ContextItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ContextItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ContextList, (void**)&rAB_ContextItem_p);

    if (tempDecoded < 0 || rAB_ContextItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ContextItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ContextItem_p->raB_ContextList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ContextItem_p->raB_ContextList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ContextItem:
            {
                RANAP_RAB_ContextItem_t *ranaP_RABContextItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ContextItem, (void**)&ranaP_RABContextItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ContextItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ContextItem, ranaP_RABContextItem_p);
                memcpy(&raB_ContextItemIEs->raB_ContextItem, ranaP_RABContextItem_p, sizeof(RANAP_RAB_ContextItem_t));
                FREEMEM(ranaP_RABContextItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_contextitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ContextList, rAB_ContextItem_p);
    return rc;
}

int ranap_decode_rabs_contextfailedtotransferitemies(
    RANAP_RABs_ContextFailedtoTransferItemIEs_t *raBs_ContextFailedtoTransferItemIEs,
    ANY_t *any_p) {

    RANAP_RABs_ContextFailedtoTransferList_t *rABs_ContextFailedtoTransferItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raBs_ContextFailedtoTransferItemIEs != NULL);

    memset(raBs_ContextFailedtoTransferItemIEs, 0, sizeof(RANAP_RABs_ContextFailedtoTransferItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RABs_ContextFailedtoTransferItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RABs_ContextFailedtoTransferList, (void**)&rABs_ContextFailedtoTransferItem_p);

    if (tempDecoded < 0 || rABs_ContextFailedtoTransferItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RABs_ContextFailedtoTransferItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rABs_ContextFailedtoTransferItem_p->raBs_ContextFailedtoTransferList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rABs_ContextFailedtoTransferItem_p->raBs_ContextFailedtoTransferList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ContextFailedtoTransferItem:
            {
                RANAP_RABs_ContextFailedtoTransferItem_t *ranaP_RABsContextFailedtoTransferItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RABs_ContextFailedtoTransferItem, (void**)&ranaP_RABsContextFailedtoTransferItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ContextFailedtoTransferItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RABs_ContextFailedtoTransferItem, ranaP_RABsContextFailedtoTransferItem_p);
                memcpy(&raBs_ContextFailedtoTransferItemIEs->raB_ContextFailedtoTransferItem, ranaP_RABsContextFailedtoTransferItem_p, sizeof(RANAP_RABs_ContextFailedtoTransferItem_t));
                FREEMEM(ranaP_RABsContextFailedtoTransferItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rabs_contextfailedtotransferitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RABs_ContextFailedtoTransferList, rABs_ContextFailedtoTransferItem_p);
    return rc;
}

int ranap_decode_securitymodecommandies(
    RANAP_SecurityModeCommandIEs_t *securityModeCommandIEs,
    ANY_t *any_p) {

    RANAP_SecurityModeCommand_t *securityModeCommand_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(securityModeCommandIEs != NULL);

    memset(securityModeCommandIEs, 0, sizeof(RANAP_SecurityModeCommandIEs_t));
    RANAP_DEBUG("Decoding message RANAP_SecurityModeCommandIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_SecurityModeCommand, (void**)&securityModeCommand_p);

    if (tempDecoded < 0 || securityModeCommand_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_SecurityModeCommandIEs failed\n");
        return -1;
    }

    for (i = 0; i < securityModeCommand_p->securityModeCommand_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = securityModeCommand_p->securityModeCommand_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_IntegrityProtectionInformation:
            {
                RANAP_IntegrityProtectionInformation_t *ranaP_IntegrityProtectionInformation_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IntegrityProtectionInformation, (void**)&ranaP_IntegrityProtectionInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE integrityProtectionInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IntegrityProtectionInformation, ranaP_IntegrityProtectionInformation_p);
                memcpy(&securityModeCommandIEs->integrityProtectionInformation, ranaP_IntegrityProtectionInformation_p, sizeof(RANAP_IntegrityProtectionInformation_t));
                FREEMEM(ranaP_IntegrityProtectionInformation_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_EncryptionInformation:
            {
                RANAP_EncryptionInformation_t *ranaP_EncryptionInformation_p = NULL;
                securityModeCommandIEs->presenceMask |= SECURITYMODECOMMANDIES_RANAP_ENCRYPTIONINFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_EncryptionInformation, (void**)&ranaP_EncryptionInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE encryptionInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_EncryptionInformation, ranaP_EncryptionInformation_p);
                memcpy(&securityModeCommandIEs->encryptionInformation, ranaP_EncryptionInformation_p, sizeof(RANAP_EncryptionInformation_t));
                FREEMEM(ranaP_EncryptionInformation_p);
            } break;
            case RANAP_ProtocolIE_ID_id_KeyStatus:
            {
                RANAP_KeyStatus_t *ranaP_KeyStatus_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_KeyStatus, (void**)&ranaP_KeyStatus_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE keyStatus failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_KeyStatus, ranaP_KeyStatus_p);
                memcpy(&securityModeCommandIEs->keyStatus, ranaP_KeyStatus_p, sizeof(RANAP_KeyStatus_t));
                FREEMEM(ranaP_KeyStatus_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message securitymodecommandies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_SecurityModeCommand, securityModeCommand_p);
    return rc;
}

int ranap_decode_securitymodecompleteies(
    RANAP_SecurityModeCompleteIEs_t *securityModeCompleteIEs,
    ANY_t *any_p) {

    RANAP_SecurityModeComplete_t *securityModeComplete_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(securityModeCompleteIEs != NULL);

    memset(securityModeCompleteIEs, 0, sizeof(RANAP_SecurityModeCompleteIEs_t));
    RANAP_DEBUG("Decoding message RANAP_SecurityModeCompleteIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_SecurityModeComplete, (void**)&securityModeComplete_p);

    if (tempDecoded < 0 || securityModeComplete_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_SecurityModeCompleteIEs failed\n");
        return -1;
    }

    for (i = 0; i < securityModeComplete_p->securityModeComplete_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = securityModeComplete_p->securityModeComplete_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_ChosenIntegrityProtectionAlgorithm:
            {
                RANAP_ChosenIntegrityProtectionAlgorithm_t *ranaP_ChosenIntegrityProtectionAlgorithm_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm, (void**)&ranaP_ChosenIntegrityProtectionAlgorithm_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE chosenIntegrityProtectionAlgorithm failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm, ranaP_ChosenIntegrityProtectionAlgorithm_p);
                memcpy(&securityModeCompleteIEs->chosenIntegrityProtectionAlgorithm, ranaP_ChosenIntegrityProtectionAlgorithm_p, sizeof(RANAP_ChosenIntegrityProtectionAlgorithm_t));
                FREEMEM(ranaP_ChosenIntegrityProtectionAlgorithm_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_ChosenEncryptionAlgorithm:
            {
                RANAP_ChosenEncryptionAlgorithm_t *ranaP_ChosenEncryptionAlgorithm_p = NULL;
                securityModeCompleteIEs->presenceMask |= SECURITYMODECOMPLETEIES_RANAP_CHOSENENCRYPTIONALGORITHM_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ChosenEncryptionAlgorithm, (void**)&ranaP_ChosenEncryptionAlgorithm_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE chosenEncryptionAlgorithm failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ChosenEncryptionAlgorithm, ranaP_ChosenEncryptionAlgorithm_p);
                memcpy(&securityModeCompleteIEs->chosenEncryptionAlgorithm, ranaP_ChosenEncryptionAlgorithm_p, sizeof(RANAP_ChosenEncryptionAlgorithm_t));
                FREEMEM(ranaP_ChosenEncryptionAlgorithm_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                securityModeCompleteIEs->presenceMask |= SECURITYMODECOMPLETEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&securityModeCompleteIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message securitymodecompleteies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_SecurityModeComplete, securityModeComplete_p);
    return rc;
}

int ranap_decode_securitymoderejecties(
    RANAP_SecurityModeRejectIEs_t *securityModeRejectIEs,
    ANY_t *any_p) {

    RANAP_SecurityModeReject_t *securityModeReject_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(securityModeRejectIEs != NULL);

    memset(securityModeRejectIEs, 0, sizeof(RANAP_SecurityModeRejectIEs_t));
    RANAP_DEBUG("Decoding message RANAP_SecurityModeRejectIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_SecurityModeReject, (void**)&securityModeReject_p);

    if (tempDecoded < 0 || securityModeReject_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_SecurityModeRejectIEs failed\n");
        return -1;
    }

    for (i = 0; i < securityModeReject_p->securityModeReject_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = securityModeReject_p->securityModeReject_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&securityModeRejectIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                securityModeRejectIEs->presenceMask |= SECURITYMODEREJECTIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&securityModeRejectIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message securitymoderejecties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_SecurityModeReject, securityModeReject_p);
    return rc;
}

int ranap_decode_datavolumereportrequesties(
    RANAP_DataVolumeReportRequestIEs_t *dataVolumeReportRequestIEs,
    ANY_t *any_p) {

    RANAP_DataVolumeReportRequest_t *dataVolumeReportRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(dataVolumeReportRequestIEs != NULL);

    memset(dataVolumeReportRequestIEs, 0, sizeof(RANAP_DataVolumeReportRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_DataVolumeReportRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_DataVolumeReportRequest, (void**)&dataVolumeReportRequest_p);

    if (tempDecoded < 0 || dataVolumeReportRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_DataVolumeReportRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < dataVolumeReportRequest_p->dataVolumeReportRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = dataVolumeReportRequest_p->dataVolumeReportRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportRequestList:
            {
                RANAP_RAB_DataVolumeReportRequestList_t *ranaP_RABDataVolumeReportRequestList_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataVolumeReportRequestList, (void**)&ranaP_RABDataVolumeReportRequestList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataVolumeReportRequestList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataVolumeReportRequestList, ranaP_RABDataVolumeReportRequestList_p);
                memcpy(&dataVolumeReportRequestIEs->raB_DataVolumeReportRequestList, ranaP_RABDataVolumeReportRequestList_p, sizeof(RANAP_RAB_DataVolumeReportRequestList_t));
                FREEMEM(ranaP_RABDataVolumeReportRequestList_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message datavolumereportrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_DataVolumeReportRequest, dataVolumeReportRequest_p);
    return rc;
}

int ranap_decode_rab_datavolumereportrequestitemies(
    RANAP_RAB_DataVolumeReportRequestItemIEs_t *raB_DataVolumeReportRequestItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_DataVolumeReportRequestList_t *rAB_DataVolumeReportRequestItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_DataVolumeReportRequestItemIEs != NULL);

    memset(raB_DataVolumeReportRequestItemIEs, 0, sizeof(RANAP_RAB_DataVolumeReportRequestItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_DataVolumeReportRequestItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_DataVolumeReportRequestList, (void**)&rAB_DataVolumeReportRequestItem_p);

    if (tempDecoded < 0 || rAB_DataVolumeReportRequestItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_DataVolumeReportRequestItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_DataVolumeReportRequestItem_p->raB_DataVolumeReportRequestList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_DataVolumeReportRequestItem_p->raB_DataVolumeReportRequestList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportRequestItem:
            {
                RANAP_RAB_DataVolumeReportRequestItem_t *ranaP_RABDataVolumeReportRequestItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataVolumeReportRequestItem, (void**)&ranaP_RABDataVolumeReportRequestItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataVolumeReportRequestItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataVolumeReportRequestItem, ranaP_RABDataVolumeReportRequestItem_p);
                memcpy(&raB_DataVolumeReportRequestItemIEs->raB_DataVolumeReportRequestItem, ranaP_RABDataVolumeReportRequestItem_p, sizeof(RANAP_RAB_DataVolumeReportRequestItem_t));
                FREEMEM(ranaP_RABDataVolumeReportRequestItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_datavolumereportrequestitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_DataVolumeReportRequestList, rAB_DataVolumeReportRequestItem_p);
    return rc;
}

int ranap_decode_datavolumereporties(
    RANAP_DataVolumeReportIEs_t *dataVolumeReportIEs,
    ANY_t *any_p) {

    RANAP_DataVolumeReport_t *dataVolumeReport_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(dataVolumeReportIEs != NULL);

    memset(dataVolumeReportIEs, 0, sizeof(RANAP_DataVolumeReportIEs_t));
    RANAP_DEBUG("Decoding message RANAP_DataVolumeReportIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_DataVolumeReport, (void**)&dataVolumeReport_p);

    if (tempDecoded < 0 || dataVolumeReport_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_DataVolumeReportIEs failed\n");
        return -1;
    }

    for (i = 0; i < dataVolumeReport_p->dataVolumeReport_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = dataVolumeReport_p->dataVolumeReport_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_DataVolumeReportList:
            {
                RANAP_RAB_DataVolumeReportList_t *ranaP_RABDataVolumeReportList_p = NULL;
                dataVolumeReportIEs->presenceMask |= DATAVOLUMEREPORTIES_RANAP_RAB_DATAVOLUMEREPORTLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataVolumeReportList, (void**)&ranaP_RABDataVolumeReportList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataVolumeReportList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataVolumeReportList, ranaP_RABDataVolumeReportList_p);
                memcpy(&dataVolumeReportIEs->raB_DataVolumeReportList, ranaP_RABDataVolumeReportList_p, sizeof(RANAP_RAB_DataVolumeReportList_t));
                FREEMEM(ranaP_RABDataVolumeReportList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_FailedtoReportList:
            {
                RANAP_RABs_failed_to_reportList_t *ranaP_RABsfailedtoreportList_p = NULL;
                dataVolumeReportIEs->presenceMask |= DATAVOLUMEREPORTIES_RANAP_RABS_FAILED_TO_REPORTLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RABs_failed_to_reportList, (void**)&ranaP_RABsfailedtoreportList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_FailedtoReportList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RABs_failed_to_reportList, ranaP_RABsfailedtoreportList_p);
                memcpy(&dataVolumeReportIEs->raB_FailedtoReportList, ranaP_RABsfailedtoreportList_p, sizeof(RANAP_RABs_failed_to_reportList_t));
                FREEMEM(ranaP_RABsfailedtoreportList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                dataVolumeReportIEs->presenceMask |= DATAVOLUMEREPORTIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&dataVolumeReportIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message datavolumereporties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_DataVolumeReport, dataVolumeReport_p);
    return rc;
}

int ranap_decode_rabs_failed_to_reportitemies(
    RANAP_RABs_failed_to_reportItemIEs_t *raBs_failed_to_reportItemIEs,
    ANY_t *any_p) {

    RANAP_RABs_failed_to_reportList_t *rABs_failed_to_reportItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raBs_failed_to_reportItemIEs != NULL);

    memset(raBs_failed_to_reportItemIEs, 0, sizeof(RANAP_RABs_failed_to_reportItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RABs_failed_to_reportItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RABs_failed_to_reportList, (void**)&rABs_failed_to_reportItem_p);

    if (tempDecoded < 0 || rABs_failed_to_reportItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RABs_failed_to_reportItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rABs_failed_to_reportItem_p->raBs_failed_to_reportList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rABs_failed_to_reportItem_p->raBs_failed_to_reportList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_FailedtoReportItem:
            {
                RANAP_RABs_failed_to_reportItem_t *ranaP_RABsfailedtoreportItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RABs_failed_to_reportItem, (void**)&ranaP_RABsfailedtoreportItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_FailedtoReportItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RABs_failed_to_reportItem, ranaP_RABsfailedtoreportItem_p);
                memcpy(&raBs_failed_to_reportItemIEs->raB_FailedtoReportItem, ranaP_RABsfailedtoreportItem_p, sizeof(RANAP_RABs_failed_to_reportItem_t));
                FREEMEM(ranaP_RABsfailedtoreportItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rabs_failed_to_reportitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RABs_failed_to_reportList, rABs_failed_to_reportItem_p);
    return rc;
}

int ranap_decode_reseties(
    RANAP_ResetIEs_t *resetIEs,
    ANY_t *any_p) {

    RANAP_Reset_t *reset_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(resetIEs != NULL);

    memset(resetIEs, 0, sizeof(RANAP_ResetIEs_t));
    RANAP_DEBUG("Decoding message RANAP_ResetIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_Reset, (void**)&reset_p);

    if (tempDecoded < 0 || reset_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_ResetIEs failed\n");
        return -1;
    }

    for (i = 0; i < reset_p->reset_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = reset_p->reset_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&resetIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&resetIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                resetIEs->presenceMask |= RESETIES_RANAP_GLOBALRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&resetIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message reseties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_Reset, reset_p);
    return rc;
}

int ranap_decode_resetacknowledgeies(
    RANAP_ResetAcknowledgeIEs_t *resetAcknowledgeIEs,
    ANY_t *any_p) {

    RANAP_ResetAcknowledge_t *resetAcknowledge_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(resetAcknowledgeIEs != NULL);

    memset(resetAcknowledgeIEs, 0, sizeof(RANAP_ResetAcknowledgeIEs_t));
    RANAP_DEBUG("Decoding message RANAP_ResetAcknowledgeIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_ResetAcknowledge, (void**)&resetAcknowledge_p);

    if (tempDecoded < 0 || resetAcknowledge_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_ResetAcknowledgeIEs failed\n");
        return -1;
    }

    for (i = 0; i < resetAcknowledge_p->resetAcknowledge_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = resetAcknowledge_p->resetAcknowledge_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&resetAcknowledgeIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                resetAcknowledgeIEs->presenceMask |= RESETACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&resetAcknowledgeIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                resetAcknowledgeIEs->presenceMask |= RESETACKNOWLEDGEIES_RANAP_GLOBALRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&resetAcknowledgeIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message resetacknowledgeies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_ResetAcknowledge, resetAcknowledge_p);
    return rc;
}

int ranap_decode_resetresourceies(
    RANAP_ResetResourceIEs_t *resetResourceIEs,
    ANY_t *any_p) {

    RANAP_ResetResource_t *resetResource_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(resetResourceIEs != NULL);

    memset(resetResourceIEs, 0, sizeof(RANAP_ResetResourceIEs_t));
    RANAP_DEBUG("Decoding message RANAP_ResetResourceIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_ResetResource, (void**)&resetResource_p);

    if (tempDecoded < 0 || resetResource_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_ResetResourceIEs failed\n");
        return -1;
    }

    for (i = 0; i < resetResource_p->resetResource_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = resetResource_p->resetResource_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&resetResourceIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&resetResourceIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            case RANAP_ProtocolIE_ID_id_IuSigConIdList:
            {
                RANAP_ResetResourceList_t *ranaP_ResetResourceList_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ResetResourceList, (void**)&ranaP_ResetResourceList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE iuSigConIdList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ResetResourceList, ranaP_ResetResourceList_p);
                memcpy(&resetResourceIEs->iuSigConIdList, ranaP_ResetResourceList_p, sizeof(RANAP_ResetResourceList_t));
                FREEMEM(ranaP_ResetResourceList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                resetResourceIEs->presenceMask |= RESETRESOURCEIES_RANAP_GLOBALRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&resetResourceIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message resetresourceies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_ResetResource, resetResource_p);
    return rc;
}

int ranap_decode_resetresourceitemies(
    RANAP_ResetResourceItemIEs_t *resetResourceItemIEs,
    ANY_t *any_p) {

    RANAP_ResetResourceList_t *resetResourceItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(resetResourceItemIEs != NULL);

    memset(resetResourceItemIEs, 0, sizeof(RANAP_ResetResourceItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_ResetResourceItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_ResetResourceList, (void**)&resetResourceItem_p);

    if (tempDecoded < 0 || resetResourceItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_ResetResourceItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < resetResourceItem_p->resetResourceList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = resetResourceItem_p->resetResourceList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_IuSigConIdItem:
            {
                RANAP_ResetResourceItem_t *ranaP_ResetResourceItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ResetResourceItem, (void**)&ranaP_ResetResourceItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE iuSigConIdItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ResetResourceItem, ranaP_ResetResourceItem_p);
                memcpy(&resetResourceItemIEs->iuSigConIdItem, ranaP_ResetResourceItem_p, sizeof(RANAP_ResetResourceItem_t));
                FREEMEM(ranaP_ResetResourceItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message resetresourceitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_ResetResourceList, resetResourceItem_p);
    return rc;
}

int ranap_decode_resetresourceacknowledgeies(
    RANAP_ResetResourceAcknowledgeIEs_t *resetResourceAcknowledgeIEs,
    ANY_t *any_p) {

    RANAP_ResetResourceAcknowledge_t *resetResourceAcknowledge_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(resetResourceAcknowledgeIEs != NULL);

    memset(resetResourceAcknowledgeIEs, 0, sizeof(RANAP_ResetResourceAcknowledgeIEs_t));
    RANAP_DEBUG("Decoding message RANAP_ResetResourceAcknowledgeIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_ResetResourceAcknowledge, (void**)&resetResourceAcknowledge_p);

    if (tempDecoded < 0 || resetResourceAcknowledge_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_ResetResourceAcknowledgeIEs failed\n");
        return -1;
    }

    for (i = 0; i < resetResourceAcknowledge_p->resetResourceAcknowledge_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = resetResourceAcknowledge_p->resetResourceAcknowledge_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&resetResourceAcknowledgeIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            case RANAP_ProtocolIE_ID_id_IuSigConIdList:
            {
                RANAP_ResetResourceAckList_t *ranaP_ResetResourceAckList_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ResetResourceAckList, (void**)&ranaP_ResetResourceAckList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE iuSigConIdList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ResetResourceAckList, ranaP_ResetResourceAckList_p);
                memcpy(&resetResourceAcknowledgeIEs->iuSigConIdList, ranaP_ResetResourceAckList_p, sizeof(RANAP_ResetResourceAckList_t));
                FREEMEM(ranaP_ResetResourceAckList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                resetResourceAcknowledgeIEs->presenceMask |= RESETRESOURCEACKNOWLEDGEIES_RANAP_GLOBALRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&resetResourceAcknowledgeIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                resetResourceAcknowledgeIEs->presenceMask |= RESETRESOURCEACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&resetResourceAcknowledgeIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message resetresourceacknowledgeies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_ResetResourceAcknowledge, resetResourceAcknowledge_p);
    return rc;
}

int ranap_decode_resetresourceackitemies(
    RANAP_ResetResourceAckItemIEs_t *resetResourceAckItemIEs,
    ANY_t *any_p) {

    RANAP_ResetResourceAckList_t *resetResourceAckItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(resetResourceAckItemIEs != NULL);

    memset(resetResourceAckItemIEs, 0, sizeof(RANAP_ResetResourceAckItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_ResetResourceAckItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_ResetResourceAckList, (void**)&resetResourceAckItem_p);

    if (tempDecoded < 0 || resetResourceAckItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_ResetResourceAckItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < resetResourceAckItem_p->resetResourceAckList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = resetResourceAckItem_p->resetResourceAckList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_IuSigConIdItem:
            {
                RANAP_ResetResourceAckItem_t *ranaP_ResetResourceAckItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ResetResourceAckItem, (void**)&ranaP_ResetResourceAckItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE iuSigConIdItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ResetResourceAckItem, ranaP_ResetResourceAckItem_p);
                memcpy(&resetResourceAckItemIEs->iuSigConIdItem, ranaP_ResetResourceAckItem_p, sizeof(RANAP_ResetResourceAckItem_t));
                FREEMEM(ranaP_ResetResourceAckItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message resetresourceackitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_ResetResourceAckList, resetResourceAckItem_p);
    return rc;
}

int ranap_decode_rab_releaserequesties(
    RANAP_RAB_ReleaseRequestIEs_t *raB_ReleaseRequestIEs,
    ANY_t *any_p) {

    RANAP_RAB_ReleaseRequest_t *rAB_ReleaseRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ReleaseRequestIEs != NULL);

    memset(raB_ReleaseRequestIEs, 0, sizeof(RANAP_RAB_ReleaseRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ReleaseRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ReleaseRequest, (void**)&rAB_ReleaseRequest_p);

    if (tempDecoded < 0 || rAB_ReleaseRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ReleaseRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ReleaseRequest_p->raB_ReleaseRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ReleaseRequest_p->raB_ReleaseRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ReleaseList:
            {
                RANAP_RAB_ReleaseList_t *ranaP_RABReleaseList_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ReleaseList, (void**)&ranaP_RABReleaseList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ReleaseList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleaseList, ranaP_RABReleaseList_p);
                memcpy(&raB_ReleaseRequestIEs->raB_ReleaseList, ranaP_RABReleaseList_p, sizeof(RANAP_RAB_ReleaseList_t));
                FREEMEM(ranaP_RABReleaseList_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_releaserequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ReleaseRequest, rAB_ReleaseRequest_p);
    return rc;
}

int ranap_decode_rab_releaseitemies(
    RANAP_RAB_ReleaseItemIEs_t *raB_ReleaseItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_ReleaseList_t *rAB_ReleaseItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ReleaseItemIEs != NULL);

    memset(raB_ReleaseItemIEs, 0, sizeof(RANAP_RAB_ReleaseItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ReleaseItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ReleaseList, (void**)&rAB_ReleaseItem_p);

    if (tempDecoded < 0 || rAB_ReleaseItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ReleaseItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ReleaseItem_p->raB_ReleaseList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ReleaseItem_p->raB_ReleaseList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ReleaseItem:
            {
                RANAP_RAB_ReleaseItem_t *ranaP_RABReleaseItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ReleaseItem, (void**)&ranaP_RABReleaseItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ReleaseItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleaseItem, ranaP_RABReleaseItem_p);
                memcpy(&raB_ReleaseItemIEs->raB_ReleaseItem, ranaP_RABReleaseItem_p, sizeof(RANAP_RAB_ReleaseItem_t));
                FREEMEM(ranaP_RABReleaseItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_releaseitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ReleaseList, rAB_ReleaseItem_p);
    return rc;
}

int ranap_decode_iu_releaserequesties(
    RANAP_Iu_ReleaseRequestIEs_t *iu_ReleaseRequestIEs,
    ANY_t *any_p) {

    RANAP_Iu_ReleaseRequest_t *iu_ReleaseRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(iu_ReleaseRequestIEs != NULL);

    memset(iu_ReleaseRequestIEs, 0, sizeof(RANAP_Iu_ReleaseRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_Iu_ReleaseRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_Iu_ReleaseRequest, (void**)&iu_ReleaseRequest_p);

    if (tempDecoded < 0 || iu_ReleaseRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_Iu_ReleaseRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < iu_ReleaseRequest_p->iu_ReleaseRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = iu_ReleaseRequest_p->iu_ReleaseRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&iu_ReleaseRequestIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message iu_releaserequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_Iu_ReleaseRequest, iu_ReleaseRequest_p);
    return rc;
}

int ranap_decode_enhancedrelocationcompleterequesties(
    RANAP_EnhancedRelocationCompleteRequestIEs_t *enhancedRelocationCompleteRequestIEs,
    ANY_t *any_p) {

    RANAP_EnhancedRelocationCompleteRequest_t *enhancedRelocationCompleteRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(enhancedRelocationCompleteRequestIEs != NULL);

    memset(enhancedRelocationCompleteRequestIEs, 0, sizeof(RANAP_EnhancedRelocationCompleteRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_EnhancedRelocationCompleteRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_EnhancedRelocationCompleteRequest, (void**)&enhancedRelocationCompleteRequest_p);

    if (tempDecoded < 0 || enhancedRelocationCompleteRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_EnhancedRelocationCompleteRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < enhancedRelocationCompleteRequest_p->enhancedRelocationCompleteRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = enhancedRelocationCompleteRequest_p->enhancedRelocationCompleteRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_OldIuSigConId:
            {
                RANAP_IuSignallingConnectionIdentifier_t *ranaP_IuSignallingConnectionIdentifier_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, (void**)&ranaP_IuSignallingConnectionIdentifier_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE oldIuSigConId failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, ranaP_IuSignallingConnectionIdentifier_p);
                memcpy(&enhancedRelocationCompleteRequestIEs->oldIuSigConId, ranaP_IuSignallingConnectionIdentifier_p, sizeof(RANAP_IuSignallingConnectionIdentifier_t));
                FREEMEM(ranaP_IuSignallingConnectionIdentifier_p);
            } break;
            case RANAP_ProtocolIE_ID_id_IuSigConId:
            {
                RANAP_IuSignallingConnectionIdentifier_t *ranaP_IuSignallingConnectionIdentifier_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, (void**)&ranaP_IuSignallingConnectionIdentifier_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE iuSigConId failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, ranaP_IuSignallingConnectionIdentifier_p);
                memcpy(&enhancedRelocationCompleteRequestIEs->iuSigConId, ranaP_IuSignallingConnectionIdentifier_p, sizeof(RANAP_IuSignallingConnectionIdentifier_t));
                FREEMEM(ranaP_IuSignallingConnectionIdentifier_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Relocation_SourceRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE relocation_SourceRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&enhancedRelocationCompleteRequestIEs->relocation_SourceRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Relocation_SourceExtendedRNC_ID:
            {
                RANAP_ExtendedRNC_ID_t *ranaP_ExtendedRNCID_p = NULL;
                enhancedRelocationCompleteRequestIEs->presenceMask |= ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_ID_RELOCATION_SOURCEEXTENDEDRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ExtendedRNC_ID, (void**)&ranaP_ExtendedRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE relocation_SourceExtendedRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ExtendedRNC_ID, ranaP_ExtendedRNCID_p);
                memcpy(&enhancedRelocationCompleteRequestIEs->relocation_SourceExtendedRNC_ID, ranaP_ExtendedRNCID_p, sizeof(RANAP_ExtendedRNC_ID_t));
                FREEMEM(ranaP_ExtendedRNCID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Relocation_TargetRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE relocation_TargetRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&enhancedRelocationCompleteRequestIEs->relocation_TargetRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Relocation_TargetExtendedRNC_ID:
            {
                RANAP_ExtendedRNC_ID_t *ranaP_ExtendedRNCID_p = NULL;
                enhancedRelocationCompleteRequestIEs->presenceMask |= ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_ID_RELOCATION_TARGETEXTENDEDRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ExtendedRNC_ID, (void**)&ranaP_ExtendedRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE relocation_TargetExtendedRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ExtendedRNC_ID, ranaP_ExtendedRNCID_p);
                memcpy(&enhancedRelocationCompleteRequestIEs->relocation_TargetExtendedRNC_ID, ranaP_ExtendedRNCID_p, sizeof(RANAP_ExtendedRNC_ID_t));
                FREEMEM(ranaP_ExtendedRNCID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhancedRelocCompleteReq:
            {
                RANAP_RAB_SetupList_EnhancedRelocCompleteReq_t *ranaP_RABSetupListEnhancedRelocCompleteReq_p = NULL;
                enhancedRelocationCompleteRequestIEs->presenceMask |= ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_RAB_SETUPLIST_ENHANCEDRELOCCOMPLETEREQ_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteReq, (void**)&ranaP_RABSetupListEnhancedRelocCompleteReq_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupList_EnhancedRelocCompleteReq failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteReq, ranaP_RABSetupListEnhancedRelocCompleteReq_p);
                memcpy(&enhancedRelocationCompleteRequestIEs->raB_SetupList_EnhancedRelocCompleteReq, ranaP_RABSetupListEnhancedRelocCompleteReq_p, sizeof(RANAP_RAB_SetupList_EnhancedRelocCompleteReq_t));
                FREEMEM(ranaP_RABSetupListEnhancedRelocCompleteReq_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message enhancedrelocationcompleterequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_EnhancedRelocationCompleteRequest, enhancedRelocationCompleteRequest_p);
    return rc;
}

int ranap_decode_rab_setupitem_enhancedreloccompletereq_ies(
    RANAP_RAB_SetupItem_EnhancedRelocCompleteReq_IEs_t *raB_SetupItem_EnhancedRelocCompleteReq_IEs,
    ANY_t *any_p) {

    RANAP_RAB_SetupList_EnhancedRelocCompleteReq_t *rAB_SetupItem_EnhancedRelocCompleteReq_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_SetupItem_EnhancedRelocCompleteReq_IEs != NULL);

    memset(raB_SetupItem_EnhancedRelocCompleteReq_IEs, 0, sizeof(RANAP_RAB_SetupItem_EnhancedRelocCompleteReq_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_SetupItem_EnhancedRelocCompleteReq_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteReq, (void**)&rAB_SetupItem_EnhancedRelocCompleteReq_p);

    if (tempDecoded < 0 || rAB_SetupItem_EnhancedRelocCompleteReq_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_SetupItem_EnhancedRelocCompleteReq_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_SetupItem_EnhancedRelocCompleteReq_p->raB_SetupList_EnhancedRelocCompleteReq_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_SetupItem_EnhancedRelocCompleteReq_p->raB_SetupList_EnhancedRelocCompleteReq_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhancedRelocCompleteReq:
            {
                RANAP_RAB_SetupItem_EnhancedRelocCompleteReq_t *ranaP_RABSetupItemEnhancedRelocCompleteReq_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupItem_EnhancedRelocCompleteReq, (void**)&ranaP_RABSetupItemEnhancedRelocCompleteReq_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupItem_EnhancedRelocCompleteReq failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupItem_EnhancedRelocCompleteReq, ranaP_RABSetupItemEnhancedRelocCompleteReq_p);
                memcpy(&raB_SetupItem_EnhancedRelocCompleteReq_IEs->raB_SetupItem_EnhancedRelocCompleteReq, ranaP_RABSetupItemEnhancedRelocCompleteReq_p, sizeof(RANAP_RAB_SetupItem_EnhancedRelocCompleteReq_t));
                FREEMEM(ranaP_RABSetupItemEnhancedRelocCompleteReq_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_setupitem_enhancedreloccompletereq_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteReq, rAB_SetupItem_EnhancedRelocCompleteReq_p);
    return rc;
}

int ranap_decode_enhancedrelocationcompleteresponseies(
    RANAP_EnhancedRelocationCompleteResponseIEs_t *enhancedRelocationCompleteResponseIEs,
    ANY_t *any_p) {

    RANAP_EnhancedRelocationCompleteResponse_t *enhancedRelocationCompleteResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(enhancedRelocationCompleteResponseIEs != NULL);

    memset(enhancedRelocationCompleteResponseIEs, 0, sizeof(RANAP_EnhancedRelocationCompleteResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_EnhancedRelocationCompleteResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_EnhancedRelocationCompleteResponse, (void**)&enhancedRelocationCompleteResponse_p);

    if (tempDecoded < 0 || enhancedRelocationCompleteResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_EnhancedRelocationCompleteResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < enhancedRelocationCompleteResponse_p->enhancedRelocationCompleteResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = enhancedRelocationCompleteResponse_p->enhancedRelocationCompleteResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhancedRelocCompleteRes:
            {
                RANAP_RAB_SetupList_EnhancedRelocCompleteRes_t *ranaP_RABSetupListEnhancedRelocCompleteRes_p = NULL;
                enhancedRelocationCompleteResponseIEs->presenceMask |= ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_RAB_SETUPLIST_ENHANCEDRELOCCOMPLETERES_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteRes, (void**)&ranaP_RABSetupListEnhancedRelocCompleteRes_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupList_EnhancedRelocCompleteRes failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteRes, ranaP_RABSetupListEnhancedRelocCompleteRes_p);
                memcpy(&enhancedRelocationCompleteResponseIEs->raB_SetupList_EnhancedRelocCompleteRes, ranaP_RABSetupListEnhancedRelocCompleteRes_p, sizeof(RANAP_RAB_SetupList_EnhancedRelocCompleteRes_t));
                FREEMEM(ranaP_RABSetupListEnhancedRelocCompleteRes_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_ToBeReleasedList_EnhancedRelocCompleteRes:
            {
                RANAP_RAB_ToBeReleasedList_EnhancedRelocCompleteRes_t *ranaP_RABToBeReleasedListEnhancedRelocCompleteRes_p = NULL;
                enhancedRelocationCompleteResponseIEs->presenceMask |= ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_RAB_TOBERELEASEDLIST_ENHANCEDRELOCCOMPLETERES_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ToBeReleasedList_EnhancedRelocCompleteRes, (void**)&ranaP_RABToBeReleasedListEnhancedRelocCompleteRes_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ToBeReleasedList_EnhancedRelocCompleteRes failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ToBeReleasedList_EnhancedRelocCompleteRes, ranaP_RABToBeReleasedListEnhancedRelocCompleteRes_p);
                memcpy(&enhancedRelocationCompleteResponseIEs->raB_ToBeReleasedList_EnhancedRelocCompleteRes, ranaP_RABToBeReleasedListEnhancedRelocCompleteRes_p, sizeof(RANAP_RAB_ToBeReleasedList_EnhancedRelocCompleteRes_t));
                FREEMEM(ranaP_RABToBeReleasedListEnhancedRelocCompleteRes_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                enhancedRelocationCompleteResponseIEs->presenceMask |= ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&enhancedRelocationCompleteResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message enhancedrelocationcompleteresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_EnhancedRelocationCompleteResponse, enhancedRelocationCompleteResponse_p);
    return rc;
}

int ranap_decode_rab_setupitem_enhancedreloccompleteres_ies(
    RANAP_RAB_SetupItem_EnhancedRelocCompleteRes_IEs_t *raB_SetupItem_EnhancedRelocCompleteRes_IEs,
    ANY_t *any_p) {

    RANAP_RAB_SetupList_EnhancedRelocCompleteRes_t *rAB_SetupItem_EnhancedRelocCompleteRes_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_SetupItem_EnhancedRelocCompleteRes_IEs != NULL);

    memset(raB_SetupItem_EnhancedRelocCompleteRes_IEs, 0, sizeof(RANAP_RAB_SetupItem_EnhancedRelocCompleteRes_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_SetupItem_EnhancedRelocCompleteRes_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteRes, (void**)&rAB_SetupItem_EnhancedRelocCompleteRes_p);

    if (tempDecoded < 0 || rAB_SetupItem_EnhancedRelocCompleteRes_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_SetupItem_EnhancedRelocCompleteRes_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_SetupItem_EnhancedRelocCompleteRes_p->raB_SetupList_EnhancedRelocCompleteRes_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_SetupItem_EnhancedRelocCompleteRes_p->raB_SetupList_EnhancedRelocCompleteRes_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhancedRelocCompleteRes:
            {
                RANAP_RAB_SetupItem_EnhancedRelocCompleteRes_t *ranaP_RABSetupItemEnhancedRelocCompleteRes_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupItem_EnhancedRelocCompleteRes, (void**)&ranaP_RABSetupItemEnhancedRelocCompleteRes_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupItem_EnhancedRelocCompleteRes failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupItem_EnhancedRelocCompleteRes, ranaP_RABSetupItemEnhancedRelocCompleteRes_p);
                memcpy(&raB_SetupItem_EnhancedRelocCompleteRes_IEs->raB_SetupItem_EnhancedRelocCompleteRes, ranaP_RABSetupItemEnhancedRelocCompleteRes_p, sizeof(RANAP_RAB_SetupItem_EnhancedRelocCompleteRes_t));
                FREEMEM(ranaP_RABSetupItemEnhancedRelocCompleteRes_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_setupitem_enhancedreloccompleteres_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteRes, rAB_SetupItem_EnhancedRelocCompleteRes_p);
    return rc;
}

int ranap_decode_rab_tobereleaseditem_enhancedreloccompleteres_ies(
    RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs_t *raB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs,
    ANY_t *any_p) {

    RANAP_RAB_ToBeReleasedList_EnhancedRelocCompleteRes_t *rAB_ToBeReleasedItem_EnhancedRelocCompleteRes_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs != NULL);

    memset(raB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs, 0, sizeof(RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ToBeReleasedList_EnhancedRelocCompleteRes, (void**)&rAB_ToBeReleasedItem_EnhancedRelocCompleteRes_p);

    if (tempDecoded < 0 || rAB_ToBeReleasedItem_EnhancedRelocCompleteRes_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ToBeReleasedItem_EnhancedRelocCompleteRes_p->raB_ToBeReleasedList_EnhancedRelocCompleteRes_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ToBeReleasedItem_EnhancedRelocCompleteRes_p->raB_ToBeReleasedList_EnhancedRelocCompleteRes_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes:
            {
                RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes_t *ranaP_RABToBeReleasedItemEnhancedRelocCompleteRes_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes, (void**)&ranaP_RABToBeReleasedItemEnhancedRelocCompleteRes_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ToBeReleasedItem_EnhancedRelocCompleteRes failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes, ranaP_RABToBeReleasedItemEnhancedRelocCompleteRes_p);
                memcpy(&raB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs->raB_ToBeReleasedItem_EnhancedRelocCompleteRes, ranaP_RABToBeReleasedItemEnhancedRelocCompleteRes_p, sizeof(RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes_t));
                FREEMEM(ranaP_RABToBeReleasedItemEnhancedRelocCompleteRes_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_tobereleaseditem_enhancedreloccompleteres_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ToBeReleasedList_EnhancedRelocCompleteRes, rAB_ToBeReleasedItem_EnhancedRelocCompleteRes_p);
    return rc;
}

int ranap_decode_enhancedrelocationcompletefailureies(
    RANAP_EnhancedRelocationCompleteFailureIEs_t *enhancedRelocationCompleteFailureIEs,
    ANY_t *any_p) {

    RANAP_EnhancedRelocationCompleteFailure_t *enhancedRelocationCompleteFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(enhancedRelocationCompleteFailureIEs != NULL);

    memset(enhancedRelocationCompleteFailureIEs, 0, sizeof(RANAP_EnhancedRelocationCompleteFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_EnhancedRelocationCompleteFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_EnhancedRelocationCompleteFailure, (void**)&enhancedRelocationCompleteFailure_p);

    if (tempDecoded < 0 || enhancedRelocationCompleteFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_EnhancedRelocationCompleteFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < enhancedRelocationCompleteFailure_p->enhancedRelocationCompleteFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = enhancedRelocationCompleteFailure_p->enhancedRelocationCompleteFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&enhancedRelocationCompleteFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                enhancedRelocationCompleteFailureIEs->presenceMask |= ENHANCEDRELOCATIONCOMPLETEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&enhancedRelocationCompleteFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message enhancedrelocationcompletefailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_EnhancedRelocationCompleteFailure, enhancedRelocationCompleteFailure_p);
    return rc;
}

int ranap_decode_enhancedrelocationcompleteconfirmies(
    RANAP_EnhancedRelocationCompleteConfirmIEs_t *enhancedRelocationCompleteConfirmIEs,
    ANY_t *any_p) {

    RANAP_EnhancedRelocationCompleteConfirm_t *enhancedRelocationCompleteConfirm_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(enhancedRelocationCompleteConfirmIEs != NULL);

    memset(enhancedRelocationCompleteConfirmIEs, 0, sizeof(RANAP_EnhancedRelocationCompleteConfirmIEs_t));
    RANAP_DEBUG("Decoding message RANAP_EnhancedRelocationCompleteConfirmIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_EnhancedRelocationCompleteConfirm, (void**)&enhancedRelocationCompleteConfirm_p);

    if (tempDecoded < 0 || enhancedRelocationCompleteConfirm_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_EnhancedRelocationCompleteConfirmIEs failed\n");
        return -1;
    }

    for (i = 0; i < enhancedRelocationCompleteConfirm_p->enhancedRelocationCompleteConfirm_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = enhancedRelocationCompleteConfirm_p->enhancedRelocationCompleteConfirm_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_FailedList:
            {
                RANAP_RAB_FailedList_t *ranaP_RABFailedList_p = NULL;
                enhancedRelocationCompleteConfirmIEs->presenceMask |= ENHANCEDRELOCATIONCOMPLETECONFIRMIES_RANAP_RAB_FAILEDLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_FailedList, (void**)&ranaP_RABFailedList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_FailedList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_FailedList, ranaP_RABFailedList_p);
                memcpy(&enhancedRelocationCompleteConfirmIEs->raB_FailedList, ranaP_RABFailedList_p, sizeof(RANAP_RAB_FailedList_t));
                FREEMEM(ranaP_RABFailedList_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message enhancedrelocationcompleteconfirmies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_EnhancedRelocationCompleteConfirm, enhancedRelocationCompleteConfirm_p);
    return rc;
}

int ranap_decode_pagingies(
    RANAP_PagingIEs_t *pagingIEs,
    ANY_t *any_p) {

    RANAP_Paging_t *paging_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(pagingIEs != NULL);

    memset(pagingIEs, 0, sizeof(RANAP_PagingIEs_t));
    RANAP_DEBUG("Decoding message RANAP_PagingIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_Paging, (void**)&paging_p);

    if (tempDecoded < 0 || paging_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_PagingIEs failed\n");
        return -1;
    }

    for (i = 0; i < paging_p->paging_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = paging_p->paging_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&pagingIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            case RANAP_ProtocolIE_ID_id_PermanentNAS_UE_ID:
            {
                RANAP_PermanentNAS_UE_ID_t *ranaP_PermanentNASUEID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_PermanentNAS_UE_ID, (void**)&ranaP_PermanentNASUEID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE permanentNAS_UE_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_PermanentNAS_UE_ID, ranaP_PermanentNASUEID_p);
                memcpy(&pagingIEs->permanentNAS_UE_ID, ranaP_PermanentNASUEID_p, sizeof(RANAP_PermanentNAS_UE_ID_t));
                FREEMEM(ranaP_PermanentNASUEID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_TemporaryUE_ID:
            {
                RANAP_TemporaryUE_ID_t *ranaP_TemporaryUEID_p = NULL;
                pagingIEs->presenceMask |= PAGINGIES_RANAP_TEMPORARYUE_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TemporaryUE_ID, (void**)&ranaP_TemporaryUEID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE temporaryUE_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TemporaryUE_ID, ranaP_TemporaryUEID_p);
                memcpy(&pagingIEs->temporaryUE_ID, ranaP_TemporaryUEID_p, sizeof(RANAP_TemporaryUE_ID_t));
                FREEMEM(ranaP_TemporaryUEID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_PagingAreaID:
            {
                RANAP_PagingAreaID_t *ranaP_PagingAreaID_p = NULL;
                pagingIEs->presenceMask |= PAGINGIES_RANAP_PAGINGAREAID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_PagingAreaID, (void**)&ranaP_PagingAreaID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE pagingAreaID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_PagingAreaID, ranaP_PagingAreaID_p);
                memcpy(&pagingIEs->pagingAreaID, ranaP_PagingAreaID_p, sizeof(RANAP_PagingAreaID_t));
                FREEMEM(ranaP_PagingAreaID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_PagingCause:
            {
                RANAP_PagingCause_t *ranaP_PagingCause_p = NULL;
                pagingIEs->presenceMask |= PAGINGIES_RANAP_PAGINGCAUSE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_PagingCause, (void**)&ranaP_PagingCause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE pagingCause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_PagingCause, ranaP_PagingCause_p);
                memcpy(&pagingIEs->pagingCause, ranaP_PagingCause_p, sizeof(RANAP_PagingCause_t));
                FREEMEM(ranaP_PagingCause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_NonSearchingIndication:
            {
                RANAP_NonSearchingIndication_t *ranaP_NonSearchingIndication_p = NULL;
                pagingIEs->presenceMask |= PAGINGIES_RANAP_NONSEARCHINGINDICATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_NonSearchingIndication, (void**)&ranaP_NonSearchingIndication_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE nonSearchingIndication failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_NonSearchingIndication, ranaP_NonSearchingIndication_p);
                memcpy(&pagingIEs->nonSearchingIndication, ranaP_NonSearchingIndication_p, sizeof(RANAP_NonSearchingIndication_t));
                FREEMEM(ranaP_NonSearchingIndication_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_DRX_CycleLengthCoefficient:
            {
                RANAP_DRX_CycleLengthCoefficient_t *ranaP_DRXCycleLengthCoefficient_p = NULL;
                pagingIEs->presenceMask |= PAGINGIES_RANAP_DRX_CYCLELENGTHCOEFFICIENT_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_DRX_CycleLengthCoefficient, (void**)&ranaP_DRXCycleLengthCoefficient_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE drX_CycleLengthCoefficient failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_DRX_CycleLengthCoefficient, ranaP_DRXCycleLengthCoefficient_p);
                memcpy(&pagingIEs->drX_CycleLengthCoefficient, ranaP_DRXCycleLengthCoefficient_p, sizeof(RANAP_DRX_CycleLengthCoefficient_t));
                FREEMEM(ranaP_DRXCycleLengthCoefficient_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message pagingies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_Paging, paging_p);
    return rc;
}

int ranap_decode_commonid_ies(
    RANAP_CommonID_IEs_t *commonID_IEs,
    ANY_t *any_p) {

    RANAP_CommonID_t *commonID_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(commonID_IEs != NULL);

    memset(commonID_IEs, 0, sizeof(RANAP_CommonID_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_CommonID_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_CommonID, (void**)&commonID_p);

    if (tempDecoded < 0 || commonID_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_CommonID_IEs failed\n");
        return -1;
    }

    for (i = 0; i < commonID_p->commonID_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = commonID_p->commonID_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_PermanentNAS_UE_ID:
            {
                RANAP_PermanentNAS_UE_ID_t *ranaP_PermanentNASUEID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_PermanentNAS_UE_ID, (void**)&ranaP_PermanentNASUEID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE permanentNAS_UE_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_PermanentNAS_UE_ID, ranaP_PermanentNASUEID_p);
                memcpy(&commonID_IEs->permanentNAS_UE_ID, ranaP_PermanentNASUEID_p, sizeof(RANAP_PermanentNAS_UE_ID_t));
                FREEMEM(ranaP_PermanentNASUEID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message commonid_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_CommonID, commonID_p);
    return rc;
}

int ranap_decode_cn_invoketraceies(
    RANAP_CN_InvokeTraceIEs_t *cN_InvokeTraceIEs,
    ANY_t *any_p) {

    RANAP_CN_InvokeTrace_t *cN_InvokeTrace_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(cN_InvokeTraceIEs != NULL);

    memset(cN_InvokeTraceIEs, 0, sizeof(RANAP_CN_InvokeTraceIEs_t));
    RANAP_DEBUG("Decoding message RANAP_CN_InvokeTraceIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_CN_InvokeTrace, (void**)&cN_InvokeTrace_p);

    if (tempDecoded < 0 || cN_InvokeTrace_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_CN_InvokeTraceIEs failed\n");
        return -1;
    }

    for (i = 0; i < cN_InvokeTrace_p->cN_InvokeTrace_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = cN_InvokeTrace_p->cN_InvokeTrace_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_TraceType:
            {
                RANAP_TraceType_t *ranaP_TraceType_p = NULL;
                cN_InvokeTraceIEs->presenceMask |= CN_INVOKETRACEIES_RANAP_TRACETYPE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TraceType, (void**)&ranaP_TraceType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE traceType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TraceType, ranaP_TraceType_p);
                memcpy(&cN_InvokeTraceIEs->traceType, ranaP_TraceType_p, sizeof(RANAP_TraceType_t));
                FREEMEM(ranaP_TraceType_p);
            } break;
            case RANAP_ProtocolIE_ID_id_TraceReference:
            {
                RANAP_TraceReference_t *ranaP_TraceReference_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TraceReference, (void**)&ranaP_TraceReference_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE traceReference failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TraceReference, ranaP_TraceReference_p);
                memcpy(&cN_InvokeTraceIEs->traceReference, ranaP_TraceReference_p, sizeof(RANAP_TraceReference_t));
                FREEMEM(ranaP_TraceReference_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_TriggerID:
            {
                RANAP_TriggerID_t *ranaP_TriggerID_p = NULL;
                cN_InvokeTraceIEs->presenceMask |= CN_INVOKETRACEIES_RANAP_TRIGGERID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TriggerID, (void**)&ranaP_TriggerID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE triggerID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TriggerID, ranaP_TriggerID_p);
                memcpy(&cN_InvokeTraceIEs->triggerID, ranaP_TriggerID_p, sizeof(RANAP_TriggerID_t));
                FREEMEM(ranaP_TriggerID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_UE_ID:
            {
                RANAP_UE_ID_t *ranap_ueid_p = NULL;
                cN_InvokeTraceIEs->presenceMask |= CN_INVOKETRACEIES_RANAP_UE_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_UE_ID, (void**)&ranap_ueid_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE ue_id failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_UE_ID, ranap_ueid_p);
                memcpy(&cN_InvokeTraceIEs->ue_id, ranap_ueid_p, sizeof(RANAP_UE_ID_t));
                FREEMEM(ranap_ueid_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_OMC_ID:
            {
                RANAP_OMC_ID_t *ranap_omcid_p = NULL;
                cN_InvokeTraceIEs->presenceMask |= CN_INVOKETRACEIES_RANAP_OMC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_OMC_ID, (void**)&ranap_omcid_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE omc_id failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_OMC_ID, ranap_omcid_p);
                memcpy(&cN_InvokeTraceIEs->omc_id, ranap_omcid_p, sizeof(RANAP_OMC_ID_t));
                FREEMEM(ranap_omcid_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message cn_invoketraceies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_CN_InvokeTrace, cN_InvokeTrace_p);
    return rc;
}

int ranap_decode_cn_deactivatetraceies(
    RANAP_CN_DeactivateTraceIEs_t *cN_DeactivateTraceIEs,
    ANY_t *any_p) {

    RANAP_CN_DeactivateTrace_t *cN_DeactivateTrace_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(cN_DeactivateTraceIEs != NULL);

    memset(cN_DeactivateTraceIEs, 0, sizeof(RANAP_CN_DeactivateTraceIEs_t));
    RANAP_DEBUG("Decoding message RANAP_CN_DeactivateTraceIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_CN_DeactivateTrace, (void**)&cN_DeactivateTrace_p);

    if (tempDecoded < 0 || cN_DeactivateTrace_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_CN_DeactivateTraceIEs failed\n");
        return -1;
    }

    for (i = 0; i < cN_DeactivateTrace_p->cN_DeactivateTrace_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = cN_DeactivateTrace_p->cN_DeactivateTrace_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_TraceReference:
            {
                RANAP_TraceReference_t *ranaP_TraceReference_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TraceReference, (void**)&ranaP_TraceReference_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE traceReference failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TraceReference, ranaP_TraceReference_p);
                memcpy(&cN_DeactivateTraceIEs->traceReference, ranaP_TraceReference_p, sizeof(RANAP_TraceReference_t));
                FREEMEM(ranaP_TraceReference_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_TriggerID:
            {
                RANAP_TriggerID_t *ranaP_TriggerID_p = NULL;
                cN_DeactivateTraceIEs->presenceMask |= CN_DEACTIVATETRACEIES_RANAP_TRIGGERID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TriggerID, (void**)&ranaP_TriggerID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE triggerID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TriggerID, ranaP_TriggerID_p);
                memcpy(&cN_DeactivateTraceIEs->triggerID, ranaP_TriggerID_p, sizeof(RANAP_TriggerID_t));
                FREEMEM(ranaP_TriggerID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message cn_deactivatetraceies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_CN_DeactivateTrace, cN_DeactivateTrace_p);
    return rc;
}

int ranap_decode_locationreportingcontrolies(
    RANAP_LocationReportingControlIEs_t *locationReportingControlIEs,
    ANY_t *any_p) {

    RANAP_LocationReportingControl_t *locationReportingControl_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(locationReportingControlIEs != NULL);

    memset(locationReportingControlIEs, 0, sizeof(RANAP_LocationReportingControlIEs_t));
    RANAP_DEBUG("Decoding message RANAP_LocationReportingControlIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_LocationReportingControl, (void**)&locationReportingControl_p);

    if (tempDecoded < 0 || locationReportingControl_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_LocationReportingControlIEs failed\n");
        return -1;
    }

    for (i = 0; i < locationReportingControl_p->locationReportingControl_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = locationReportingControl_p->locationReportingControl_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RequestType:
            {
                RANAP_RequestType_t *ranaP_RequestType_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RequestType, (void**)&ranaP_RequestType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE requestType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RequestType, ranaP_RequestType_p);
                memcpy(&locationReportingControlIEs->requestType, ranaP_RequestType_p, sizeof(RANAP_RequestType_t));
                FREEMEM(ranaP_RequestType_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message locationreportingcontrolies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_LocationReportingControl, locationReportingControl_p);
    return rc;
}

int ranap_decode_locationreporties(
    RANAP_LocationReportIEs_t *locationReportIEs,
    ANY_t *any_p) {

    RANAP_LocationReport_t *locationReport_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(locationReportIEs != NULL);

    memset(locationReportIEs, 0, sizeof(RANAP_LocationReportIEs_t));
    RANAP_DEBUG("Decoding message RANAP_LocationReportIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_LocationReport, (void**)&locationReport_p);

    if (tempDecoded < 0 || locationReport_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_LocationReportIEs failed\n");
        return -1;
    }

    for (i = 0; i < locationReport_p->locationReport_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = locationReport_p->locationReport_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_AreaIdentity:
            {
                RANAP_AreaIdentity_t *ranaP_AreaIdentity_p = NULL;
                locationReportIEs->presenceMask |= LOCATIONREPORTIES_RANAP_AREAIDENTITY_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_AreaIdentity, (void**)&ranaP_AreaIdentity_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE areaIdentity failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_AreaIdentity, ranaP_AreaIdentity_p);
                memcpy(&locationReportIEs->areaIdentity, ranaP_AreaIdentity_p, sizeof(RANAP_AreaIdentity_t));
                FREEMEM(ranaP_AreaIdentity_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                locationReportIEs->presenceMask |= LOCATIONREPORTIES_RANAP_CAUSE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&locationReportIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RequestType:
            {
                RANAP_RequestType_t *ranaP_RequestType_p = NULL;
                locationReportIEs->presenceMask |= LOCATIONREPORTIES_RANAP_REQUESTTYPE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RequestType, (void**)&ranaP_RequestType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE requestType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RequestType, ranaP_RequestType_p);
                memcpy(&locationReportIEs->requestType, ranaP_RequestType_p, sizeof(RANAP_RequestType_t));
                FREEMEM(ranaP_RequestType_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message locationreporties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_LocationReport, locationReport_p);
    return rc;
}

int ranap_decode_initialue_messageies(
    RANAP_InitialUE_MessageIEs_t *initialUE_MessageIEs,
    ANY_t *any_p) {

    RANAP_InitialUE_Message_t *initialUE_Message_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(initialUE_MessageIEs != NULL);

    memset(initialUE_MessageIEs, 0, sizeof(RANAP_InitialUE_MessageIEs_t));
    RANAP_DEBUG("Decoding message RANAP_InitialUE_MessageIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_InitialUE_Message, (void**)&initialUE_Message_p);

    if (tempDecoded < 0 || initialUE_Message_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_InitialUE_MessageIEs failed\n");
        return -1;
    }

    for (i = 0; i < initialUE_Message_p->initialUE_Message_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = initialUE_Message_p->initialUE_Message_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&initialUE_MessageIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            case RANAP_ProtocolIE_ID_id_LAI:
            {
                RANAP_LAI_t *ranap_lai_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_LAI, (void**)&ranap_lai_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE lai failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_LAI, ranap_lai_p);
                memcpy(&initialUE_MessageIEs->lai, ranap_lai_p, sizeof(RANAP_LAI_t));
                FREEMEM(ranap_lai_p);
            } break;
            /* Conditional field */
            case RANAP_ProtocolIE_ID_id_RAC:
            {
                RANAP_RAC_t *ranap_rac_p = NULL;
                initialUE_MessageIEs->presenceMask |= INITIALUE_MESSAGEIES_RANAP_RAC_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAC, (void**)&ranap_rac_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE rac failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAC, ranap_rac_p);
                memcpy(&initialUE_MessageIEs->rac, ranap_rac_p, sizeof(RANAP_RAC_t));
                FREEMEM(ranap_rac_p);
            } break;
            case RANAP_ProtocolIE_ID_id_SAI:
            {
                RANAP_SAI_t *ranap_sai_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SAI, (void**)&ranap_sai_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE sai failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SAI, ranap_sai_p);
                memcpy(&initialUE_MessageIEs->sai, ranap_sai_p, sizeof(RANAP_SAI_t));
                FREEMEM(ranap_sai_p);
            } break;
            case RANAP_ProtocolIE_ID_id_NAS_PDU:
            {
                RANAP_NAS_PDU_t *ranap_naspdu_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_NAS_PDU, (void**)&ranap_naspdu_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE nas_pdu failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_NAS_PDU, ranap_naspdu_p);
                memcpy(&initialUE_MessageIEs->nas_pdu, ranap_naspdu_p, sizeof(RANAP_NAS_PDU_t));
                FREEMEM(ranap_naspdu_p);
            } break;
            case RANAP_ProtocolIE_ID_id_IuSigConId:
            {
                RANAP_IuSignallingConnectionIdentifier_t *ranaP_IuSignallingConnectionIdentifier_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, (void**)&ranaP_IuSignallingConnectionIdentifier_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE iuSigConId failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, ranaP_IuSignallingConnectionIdentifier_p);
                memcpy(&initialUE_MessageIEs->iuSigConId, ranaP_IuSignallingConnectionIdentifier_p, sizeof(RANAP_IuSignallingConnectionIdentifier_t));
                FREEMEM(ranaP_IuSignallingConnectionIdentifier_p);
            } break;
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&initialUE_MessageIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message initialue_messageies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_InitialUE_Message, initialUE_Message_p);
    return rc;
}

int ranap_decode_directtransferies(
    RANAP_DirectTransferIEs_t *directTransferIEs,
    ANY_t *any_p) {

    RANAP_DirectTransfer_t *directTransfer_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(directTransferIEs != NULL);

    memset(directTransferIEs, 0, sizeof(RANAP_DirectTransferIEs_t));
    RANAP_DEBUG("Decoding message RANAP_DirectTransferIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_DirectTransfer, (void**)&directTransfer_p);

    if (tempDecoded < 0 || directTransfer_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_DirectTransferIEs failed\n");
        return -1;
    }

    for (i = 0; i < directTransfer_p->directTransfer_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = directTransfer_p->directTransfer_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_NAS_PDU:
            {
                RANAP_NAS_PDU_t *ranap_naspdu_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_NAS_PDU, (void**)&ranap_naspdu_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE nas_pdu failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_NAS_PDU, ranap_naspdu_p);
                memcpy(&directTransferIEs->nas_pdu, ranap_naspdu_p, sizeof(RANAP_NAS_PDU_t));
                FREEMEM(ranap_naspdu_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_LAI:
            {
                RANAP_LAI_t *ranap_lai_p = NULL;
                directTransferIEs->presenceMask |= DIRECTTRANSFERIES_RANAP_LAI_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_LAI, (void**)&ranap_lai_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE lai failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_LAI, ranap_lai_p);
                memcpy(&directTransferIEs->lai, ranap_lai_p, sizeof(RANAP_LAI_t));
                FREEMEM(ranap_lai_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAC:
            {
                RANAP_RAC_t *ranap_rac_p = NULL;
                directTransferIEs->presenceMask |= DIRECTTRANSFERIES_RANAP_RAC_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAC, (void**)&ranap_rac_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE rac failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAC, ranap_rac_p);
                memcpy(&directTransferIEs->rac, ranap_rac_p, sizeof(RANAP_RAC_t));
                FREEMEM(ranap_rac_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_SAI:
            {
                RANAP_SAI_t *ranap_sai_p = NULL;
                directTransferIEs->presenceMask |= DIRECTTRANSFERIES_RANAP_SAI_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SAI, (void**)&ranap_sai_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE sai failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SAI, ranap_sai_p);
                memcpy(&directTransferIEs->sai, ranap_sai_p, sizeof(RANAP_SAI_t));
                FREEMEM(ranap_sai_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_SAPI:
            {
                RANAP_SAPI_t *ranap_sapi_p = NULL;
                directTransferIEs->presenceMask |= DIRECTTRANSFERIES_RANAP_SAPI_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SAPI, (void**)&ranap_sapi_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE sapi failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SAPI, ranap_sapi_p);
                memcpy(&directTransferIEs->sapi, ranap_sapi_p, sizeof(RANAP_SAPI_t));
                FREEMEM(ranap_sapi_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message directtransferies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_DirectTransfer, directTransfer_p);
    return rc;
}

int ranap_decode_redirectionindication_ies(
    RANAP_RedirectionIndication_IEs_t *redirectionIndication_IEs,
    ANY_t *any_p) {

    RANAP_RedirectionIndication_t *redirectionIndication_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(redirectionIndication_IEs != NULL);

    memset(redirectionIndication_IEs, 0, sizeof(RANAP_RedirectionIndication_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RedirectionIndication_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RedirectionIndication, (void**)&redirectionIndication_p);

    if (tempDecoded < 0 || redirectionIndication_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RedirectionIndication_IEs failed\n");
        return -1;
    }

    for (i = 0; i < redirectionIndication_p->redirectionIndication_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = redirectionIndication_p->redirectionIndication_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_NAS_PDU:
            {
                RANAP_NAS_PDU_t *ranap_naspdu_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_NAS_PDU, (void**)&ranap_naspdu_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE nas_pdu failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_NAS_PDU, ranap_naspdu_p);
                memcpy(&redirectionIndication_IEs->nas_pdu, ranap_naspdu_p, sizeof(RANAP_NAS_PDU_t));
                FREEMEM(ranap_naspdu_p);
            } break;
            case RANAP_ProtocolIE_ID_id_RejectCauseValue:
            {
                RANAP_RejectCauseValue_t *ranaP_RejectCauseValue_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RejectCauseValue, (void**)&ranaP_RejectCauseValue_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE rejectCauseValue failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RejectCauseValue, ranaP_RejectCauseValue_p);
                memcpy(&redirectionIndication_IEs->rejectCauseValue, ranaP_RejectCauseValue_p, sizeof(RANAP_RejectCauseValue_t));
                FREEMEM(ranaP_RejectCauseValue_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_NAS_SequenceNumber:
            {
                RANAP_NAS_SequenceNumber_t *ranaP_NASSequenceNumber_p = NULL;
                redirectionIndication_IEs->presenceMask |= REDIRECTIONINDICATION_IES_RANAP_NAS_SEQUENCENUMBER_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_NAS_SequenceNumber, (void**)&ranaP_NASSequenceNumber_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE naS_SequenceNumber failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_NAS_SequenceNumber, ranaP_NASSequenceNumber_p);
                memcpy(&redirectionIndication_IEs->naS_SequenceNumber, ranaP_NASSequenceNumber_p, sizeof(RANAP_NAS_SequenceNumber_t));
                FREEMEM(ranaP_NASSequenceNumber_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_PermanentNAS_UE_ID:
            {
                RANAP_PermanentNAS_UE_ID_t *ranaP_PermanentNASUEID_p = NULL;
                redirectionIndication_IEs->presenceMask |= REDIRECTIONINDICATION_IES_RANAP_PERMANENTNAS_UE_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_PermanentNAS_UE_ID, (void**)&ranaP_PermanentNASUEID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE permanentNAS_UE_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_PermanentNAS_UE_ID, ranaP_PermanentNASUEID_p);
                memcpy(&redirectionIndication_IEs->permanentNAS_UE_ID, ranaP_PermanentNASUEID_p, sizeof(RANAP_PermanentNAS_UE_ID_t));
                FREEMEM(ranaP_PermanentNASUEID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message redirectionindication_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RedirectionIndication, redirectionIndication_p);
    return rc;
}

int ranap_decode_overloadies(
    RANAP_OverloadIEs_t *overloadIEs,
    ANY_t *any_p) {

    RANAP_Overload_t *overload_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(overloadIEs != NULL);

    memset(overloadIEs, 0, sizeof(RANAP_OverloadIEs_t));
    RANAP_DEBUG("Decoding message RANAP_OverloadIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_Overload, (void**)&overload_p);

    if (tempDecoded < 0 || overload_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_OverloadIEs failed\n");
        return -1;
    }

    for (i = 0; i < overload_p->overload_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = overload_p->overload_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_NumberOfSteps:
            {
                RANAP_NumberOfSteps_t *ranaP_NumberOfSteps_p = NULL;
                overloadIEs->presenceMask |= OVERLOADIES_RANAP_NUMBEROFSTEPS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_NumberOfSteps, (void**)&ranaP_NumberOfSteps_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE numberOfSteps failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_NumberOfSteps, ranaP_NumberOfSteps_p);
                memcpy(&overloadIEs->numberOfSteps, ranaP_NumberOfSteps_p, sizeof(RANAP_NumberOfSteps_t));
                FREEMEM(ranaP_NumberOfSteps_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                overloadIEs->presenceMask |= OVERLOADIES_RANAP_GLOBALRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&overloadIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message overloadies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_Overload, overload_p);
    return rc;
}

int ranap_decode_errorindicationies(
    RANAP_ErrorIndicationIEs_t *errorIndicationIEs,
    ANY_t *any_p) {

    RANAP_ErrorIndication_t *errorIndication_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(errorIndicationIEs != NULL);

    memset(errorIndicationIEs, 0, sizeof(RANAP_ErrorIndicationIEs_t));
    RANAP_DEBUG("Decoding message RANAP_ErrorIndicationIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_ErrorIndication, (void**)&errorIndication_p);

    if (tempDecoded < 0 || errorIndication_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_ErrorIndicationIEs failed\n");
        return -1;
    }

    for (i = 0; i < errorIndication_p->errorIndication_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = errorIndication_p->errorIndication_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                errorIndicationIEs->presenceMask |= ERRORINDICATIONIES_RANAP_CAUSE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&errorIndicationIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                errorIndicationIEs->presenceMask |= ERRORINDICATIONIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&errorIndicationIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                errorIndicationIEs->presenceMask |= ERRORINDICATIONIES_RANAP_CN_DOMAININDICATOR_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&errorIndicationIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                errorIndicationIEs->presenceMask |= ERRORINDICATIONIES_RANAP_GLOBALRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&errorIndicationIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message errorindicationies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_ErrorIndication, errorIndication_p);
    return rc;
}

int ranap_decode_srns_dataforwardcommandies(
    RANAP_SRNS_DataForwardCommandIEs_t *srnS_DataForwardCommandIEs,
    ANY_t *any_p) {

    RANAP_SRNS_DataForwardCommand_t *sRNS_DataForwardCommand_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(srnS_DataForwardCommandIEs != NULL);

    memset(srnS_DataForwardCommandIEs, 0, sizeof(RANAP_SRNS_DataForwardCommandIEs_t));
    RANAP_DEBUG("Decoding message RANAP_SRNS_DataForwardCommandIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_SRNS_DataForwardCommand, (void**)&sRNS_DataForwardCommand_p);

    if (tempDecoded < 0 || sRNS_DataForwardCommand_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_SRNS_DataForwardCommandIEs failed\n");
        return -1;
    }

    for (i = 0; i < sRNS_DataForwardCommand_p->srnS_DataForwardCommand_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = sRNS_DataForwardCommand_p->srnS_DataForwardCommand_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_DataForwardingList:
            {
                RANAP_RAB_DataForwardingList_t *ranaP_RABDataForwardingList_p = NULL;
                srnS_DataForwardCommandIEs->presenceMask |= SRNS_DATAFORWARDCOMMANDIES_RANAP_RAB_DATAFORWARDINGLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_DataForwardingList, (void**)&ranaP_RABDataForwardingList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_DataForwardingList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_DataForwardingList, ranaP_RABDataForwardingList_p);
                memcpy(&srnS_DataForwardCommandIEs->raB_DataForwardingList, ranaP_RABDataForwardingList_p, sizeof(RANAP_RAB_DataForwardingList_t));
                FREEMEM(ranaP_RABDataForwardingList_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message srns_dataforwardcommandies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_SRNS_DataForwardCommand, sRNS_DataForwardCommand_p);
    return rc;
}

int ranap_decode_forwardsrns_contexties(
    RANAP_ForwardSRNS_ContextIEs_t *forwardSRNS_ContextIEs,
    ANY_t *any_p) {

    RANAP_ForwardSRNS_Context_t *forwardSRNS_Context_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(forwardSRNS_ContextIEs != NULL);

    memset(forwardSRNS_ContextIEs, 0, sizeof(RANAP_ForwardSRNS_ContextIEs_t));
    RANAP_DEBUG("Decoding message RANAP_ForwardSRNS_ContextIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_ForwardSRNS_Context, (void**)&forwardSRNS_Context_p);

    if (tempDecoded < 0 || forwardSRNS_Context_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_ForwardSRNS_ContextIEs failed\n");
        return -1;
    }

    for (i = 0; i < forwardSRNS_Context_p->forwardSRNS_Context_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = forwardSRNS_Context_p->forwardSRNS_Context_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ContextList:
            {
                RANAP_RAB_ContextList_t *ranaP_RABContextList_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ContextList, (void**)&ranaP_RABContextList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ContextList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ContextList, ranaP_RABContextList_p);
                memcpy(&forwardSRNS_ContextIEs->raB_ContextList, ranaP_RABContextList_p, sizeof(RANAP_RAB_ContextList_t));
                FREEMEM(ranaP_RABContextList_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message forwardsrns_contexties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_ForwardSRNS_Context, forwardSRNS_Context_p);
    return rc;
}

int ranap_decode_rab_assignmentrequesties(
    RANAP_RAB_AssignmentRequestIEs_t *raB_AssignmentRequestIEs,
    ANY_t *any_p) {

    RANAP_RAB_AssignmentRequest_t *rAB_AssignmentRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_AssignmentRequestIEs != NULL);

    memset(raB_AssignmentRequestIEs, 0, sizeof(RANAP_RAB_AssignmentRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_AssignmentRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_AssignmentRequest, (void**)&rAB_AssignmentRequest_p);

    if (tempDecoded < 0 || rAB_AssignmentRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_AssignmentRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_AssignmentRequest_p->raB_AssignmentRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_AssignmentRequest_p->raB_AssignmentRequest_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_SetupOrModifyList:
            {
                RANAP_RAB_SetupOrModifyList_t *ranaP_RABSetupOrModifyList_p = NULL;
                raB_AssignmentRequestIEs->presenceMask |= RAB_ASSIGNMENTREQUESTIES_RANAP_RAB_SETUPORMODIFYLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupOrModifyList, (void**)&ranaP_RABSetupOrModifyList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupOrModifyList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupOrModifyList, ranaP_RABSetupOrModifyList_p);
                memcpy(&raB_AssignmentRequestIEs->raB_SetupOrModifyList, ranaP_RABSetupOrModifyList_p, sizeof(RANAP_RAB_SetupOrModifyList_t));
                FREEMEM(ranaP_RABSetupOrModifyList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_ReleaseList:
            {
                RANAP_RAB_ReleaseList_t *ranaP_RABReleaseList_p = NULL;
                raB_AssignmentRequestIEs->presenceMask |= RAB_ASSIGNMENTREQUESTIES_RANAP_RAB_RELEASELIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ReleaseList, (void**)&ranaP_RABReleaseList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ReleaseList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleaseList, ranaP_RABReleaseList_p);
                memcpy(&raB_AssignmentRequestIEs->raB_ReleaseList, ranaP_RABReleaseList_p, sizeof(RANAP_RAB_ReleaseList_t));
                FREEMEM(ranaP_RABReleaseList_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_assignmentrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_AssignmentRequest, rAB_AssignmentRequest_p);
    return rc;
}

int ranap_decode_rab_assignmentresponseies(
    RANAP_RAB_AssignmentResponseIEs_t *raB_AssignmentResponseIEs,
    ANY_t *any_p) {

    RANAP_RAB_AssignmentResponse_t *rAB_AssignmentResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_AssignmentResponseIEs != NULL);

    memset(raB_AssignmentResponseIEs, 0, sizeof(RANAP_RAB_AssignmentResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_AssignmentResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_AssignmentResponse, (void**)&rAB_AssignmentResponse_p);

    if (tempDecoded < 0 || rAB_AssignmentResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_AssignmentResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_AssignmentResponse_p->raB_AssignmentResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_AssignmentResponse_p->raB_AssignmentResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_SetupOrModifiedList:
            {
                RANAP_RAB_SetupOrModifiedList_t *ranaP_RABSetupOrModifiedList_p = NULL;
                raB_AssignmentResponseIEs->presenceMask |= RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_SETUPORMODIFIEDLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupOrModifiedList, (void**)&ranaP_RABSetupOrModifiedList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupOrModifiedList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupOrModifiedList, ranaP_RABSetupOrModifiedList_p);
                memcpy(&raB_AssignmentResponseIEs->raB_SetupOrModifiedList, ranaP_RABSetupOrModifiedList_p, sizeof(RANAP_RAB_SetupOrModifiedList_t));
                FREEMEM(ranaP_RABSetupOrModifiedList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_ReleasedList:
            {
                RANAP_RAB_ReleasedList_t *ranaP_RABReleasedList_p = NULL;
                raB_AssignmentResponseIEs->presenceMask |= RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_RELEASEDLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ReleasedList, (void**)&ranaP_RABReleasedList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ReleasedList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleasedList, ranaP_RABReleasedList_p);
                memcpy(&raB_AssignmentResponseIEs->raB_ReleasedList, ranaP_RABReleasedList_p, sizeof(RANAP_RAB_ReleasedList_t));
                FREEMEM(ranaP_RABReleasedList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_QueuedList:
            {
                RANAP_RAB_QueuedList_t *ranaP_RABQueuedList_p = NULL;
                raB_AssignmentResponseIEs->presenceMask |= RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_QUEUEDLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_QueuedList, (void**)&ranaP_RABQueuedList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_QueuedList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_QueuedList, ranaP_RABQueuedList_p);
                memcpy(&raB_AssignmentResponseIEs->raB_QueuedList, ranaP_RABQueuedList_p, sizeof(RANAP_RAB_QueuedList_t));
                FREEMEM(ranaP_RABQueuedList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_FailedList:
            {
                RANAP_RAB_FailedList_t *ranaP_RABFailedList_p = NULL;
                raB_AssignmentResponseIEs->presenceMask |= RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_FAILEDLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_FailedList, (void**)&ranaP_RABFailedList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_FailedList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_FailedList, ranaP_RABFailedList_p);
                memcpy(&raB_AssignmentResponseIEs->raB_FailedList, ranaP_RABFailedList_p, sizeof(RANAP_RAB_FailedList_t));
                FREEMEM(ranaP_RABFailedList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_ReleaseFailedList:
            {
                RANAP_RAB_ReleaseFailedList_t *ranaP_RABReleaseFailedList_p = NULL;
                raB_AssignmentResponseIEs->presenceMask |= RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_RELEASEFAILEDLIST_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ReleaseFailedList, (void**)&ranaP_RABReleaseFailedList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ReleaseFailedList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleaseFailedList, ranaP_RABReleaseFailedList_p);
                memcpy(&raB_AssignmentResponseIEs->raB_ReleaseFailedList, ranaP_RABReleaseFailedList_p, sizeof(RANAP_RAB_ReleaseFailedList_t));
                FREEMEM(ranaP_RABReleaseFailedList_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                raB_AssignmentResponseIEs->presenceMask |= RAB_ASSIGNMENTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&raB_AssignmentResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_assignmentresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_AssignmentResponse, rAB_AssignmentResponse_p);
    return rc;
}

int ranap_decode_rab_setupormodifieditemies(
    RANAP_RAB_SetupOrModifiedItemIEs_t *raB_SetupOrModifiedItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_SetupOrModifiedList_t *rAB_SetupOrModifiedItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_SetupOrModifiedItemIEs != NULL);

    memset(raB_SetupOrModifiedItemIEs, 0, sizeof(RANAP_RAB_SetupOrModifiedItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_SetupOrModifiedItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_SetupOrModifiedList, (void**)&rAB_SetupOrModifiedItem_p);

    if (tempDecoded < 0 || rAB_SetupOrModifiedItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_SetupOrModifiedItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_SetupOrModifiedItem_p->raB_SetupOrModifiedList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_SetupOrModifiedItem_p->raB_SetupOrModifiedList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_SetupOrModifiedItem:
            {
                RANAP_RAB_SetupOrModifiedItem_t *ranaP_RABSetupOrModifiedItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupOrModifiedItem, (void**)&ranaP_RABSetupOrModifiedItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupOrModifiedItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupOrModifiedItem, ranaP_RABSetupOrModifiedItem_p);
                memcpy(&raB_SetupOrModifiedItemIEs->raB_SetupOrModifiedItem, ranaP_RABSetupOrModifiedItem_p, sizeof(RANAP_RAB_SetupOrModifiedItem_t));
                FREEMEM(ranaP_RABSetupOrModifiedItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_setupormodifieditemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_SetupOrModifiedList, rAB_SetupOrModifiedItem_p);
    return rc;
}

int ranap_decode_rab_releaseditemies(
    RANAP_RAB_ReleasedItemIEs_t *raB_ReleasedItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_ReleasedList_t *rAB_ReleasedItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ReleasedItemIEs != NULL);

    memset(raB_ReleasedItemIEs, 0, sizeof(RANAP_RAB_ReleasedItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ReleasedItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ReleasedList, (void**)&rAB_ReleasedItem_p);

    if (tempDecoded < 0 || rAB_ReleasedItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ReleasedItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ReleasedItem_p->raB_ReleasedList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ReleasedItem_p->raB_ReleasedList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ReleasedItem:
            {
                RANAP_RAB_ReleasedItem_t *ranaP_RABReleasedItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ReleasedItem, (void**)&ranaP_RABReleasedItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ReleasedItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ReleasedItem, ranaP_RABReleasedItem_p);
                memcpy(&raB_ReleasedItemIEs->raB_ReleasedItem, ranaP_RABReleasedItem_p, sizeof(RANAP_RAB_ReleasedItem_t));
                FREEMEM(ranaP_RABReleasedItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_releaseditemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ReleasedList, rAB_ReleasedItem_p);
    return rc;
}

int ranap_decode_rab_queueditemies(
    RANAP_RAB_QueuedItemIEs_t *raB_QueuedItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_QueuedList_t *rAB_QueuedItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_QueuedItemIEs != NULL);

    memset(raB_QueuedItemIEs, 0, sizeof(RANAP_RAB_QueuedItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_QueuedItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_QueuedList, (void**)&rAB_QueuedItem_p);

    if (tempDecoded < 0 || rAB_QueuedItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_QueuedItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_QueuedItem_p->raB_QueuedList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_QueuedItem_p->raB_QueuedList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_QueuedItem:
            {
                RANAP_RAB_QueuedItem_t *ranaP_RABQueuedItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_QueuedItem, (void**)&ranaP_RABQueuedItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_QueuedItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_QueuedItem, ranaP_RABQueuedItem_p);
                memcpy(&raB_QueuedItemIEs->raB_QueuedItem, ranaP_RABQueuedItem_p, sizeof(RANAP_RAB_QueuedItem_t));
                FREEMEM(ranaP_RABQueuedItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_queueditemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_QueuedList, rAB_QueuedItem_p);
    return rc;
}

int ranap_decode_geran_iumode_rab_failed_rabassgntresponse_itemies(
    RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs_t *geraN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs,
    ANY_t *any_p) {

    RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_List_t *gERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(geraN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs != NULL);

    memset(geraN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs, 0, sizeof(RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_List, (void**)&gERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_p);

    if (tempDecoded < 0 || gERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < gERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_p->geraN_Iumode_RAB_Failed_RABAssgntResponse_List_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = gERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_p->geraN_Iumode_RAB_Failed_RABAssgntResponse_List_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item:
            {
                RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_t *ranaP_GERANIumodeRABFailedRABAssgntResponseItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item, (void**)&ranaP_GERANIumodeRABFailedRABAssgntResponseItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE geraN_Iumode_RAB_Failed_RABAssgntResponse_Item failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item, ranaP_GERANIumodeRABFailedRABAssgntResponseItem_p);
                memcpy(&geraN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs->geraN_Iumode_RAB_Failed_RABAssgntResponse_Item, ranaP_GERANIumodeRABFailedRABAssgntResponseItem_p, sizeof(RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_t));
                FREEMEM(ranaP_GERANIumodeRABFailedRABAssgntResponseItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message geran_iumode_rab_failed_rabassgntresponse_itemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_List, gERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_p);
    return rc;
}

int ranap_decode_ranap_relocationinformationies(
    RANAP_RANAP_RelocationInformationIEs_t *ranaP_RelocationInformationIEs,
    ANY_t *any_p) {

    RANAP_RANAP_RelocationInformation_t *rANAP_RelocationInformation_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(ranaP_RelocationInformationIEs != NULL);

    memset(ranaP_RelocationInformationIEs, 0, sizeof(RANAP_RANAP_RelocationInformationIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RANAP_RelocationInformationIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RANAP_RelocationInformation, (void**)&rANAP_RelocationInformation_p);

    if (tempDecoded < 0 || rANAP_RelocationInformation_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RANAP_RelocationInformationIEs failed\n");
        return -1;
    }

    for (i = 0; i < rANAP_RelocationInformation_p->ranaP_RelocationInformation_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rANAP_RelocationInformation_p->ranaP_RelocationInformation_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_ContextList_RANAP_RelocInf:
            {
                RANAP_RAB_ContextList_RANAP_RelocInf_t *ranaP_RABContextListRANAPRelocInf_p = NULL;
                ranaP_RelocationInformationIEs->presenceMask |= RANAP_RELOCATIONINFORMATIONIES_RANAP_RAB_CONTEXTLIST_RANAP_RELOCINF_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ContextList_RANAP_RelocInf, (void**)&ranaP_RABContextListRANAPRelocInf_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ContextList_RANAP_RelocInf failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ContextList_RANAP_RelocInf, ranaP_RABContextListRANAPRelocInf_p);
                memcpy(&ranaP_RelocationInformationIEs->raB_ContextList_RANAP_RelocInf, ranaP_RABContextListRANAPRelocInf_p, sizeof(RANAP_RAB_ContextList_RANAP_RelocInf_t));
                FREEMEM(ranaP_RABContextListRANAPRelocInf_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message ranap_relocationinformationies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RANAP_RelocationInformation, rANAP_RelocationInformation_p);
    return rc;
}

int ranap_decode_rab_contextitemies_ranap_relocinf(
    RANAP_RAB_ContextItemIEs_RANAP_RelocInf_t *raB_ContextItemIEs_RANAP_RelocInf,
    ANY_t *any_p) {

    RANAP_RAB_ContextList_RANAP_RelocInf_t *rAB_ContextItem_RANAP_RelocInf_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ContextItemIEs_RANAP_RelocInf != NULL);

    memset(raB_ContextItemIEs_RANAP_RelocInf, 0, sizeof(RANAP_RAB_ContextItemIEs_RANAP_RelocInf_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ContextItemIEs_RANAP_RelocInf (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ContextList_RANAP_RelocInf, (void**)&rAB_ContextItem_RANAP_RelocInf_p);

    if (tempDecoded < 0 || rAB_ContextItem_RANAP_RelocInf_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ContextItemIEs_RANAP_RelocInf failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ContextItem_RANAP_RelocInf_p->raB_ContextList_RANAP_RelocInf_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ContextItem_RANAP_RelocInf_p->raB_ContextList_RANAP_RelocInf_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ContextItem_RANAP_RelocInf:
            {
                RANAP_RAB_ContextItem_RANAP_RelocInf_t *ranaP_RABContextItemRANAPRelocInf_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ContextItem_RANAP_RelocInf, (void**)&ranaP_RABContextItemRANAPRelocInf_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ContextItem_RANAP_RelocInf failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ContextItem_RANAP_RelocInf, ranaP_RABContextItemRANAPRelocInf_p);
                memcpy(&raB_ContextItemIEs_RANAP_RelocInf->raB_ContextItem_RANAP_RelocInf, ranaP_RABContextItemRANAPRelocInf_p, sizeof(RANAP_RAB_ContextItem_RANAP_RelocInf_t));
                FREEMEM(ranaP_RABContextItemRANAPRelocInf_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_contextitemies_ranap_relocinf\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ContextList_RANAP_RelocInf, rAB_ContextItem_RANAP_RelocInf_p);
    return rc;
}

int ranap_decode_ranap_enhancedrelocationinformationrequesties(
    RANAP_RANAP_EnhancedRelocationInformationRequestIEs_t *ranaP_EnhancedRelocationInformationRequestIEs,
    ANY_t *any_p) {

    RANAP_RANAP_EnhancedRelocationInformationRequest_t *rANAP_EnhancedRelocationInformationRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(ranaP_EnhancedRelocationInformationRequestIEs != NULL);

    memset(ranaP_EnhancedRelocationInformationRequestIEs, 0, sizeof(RANAP_RANAP_EnhancedRelocationInformationRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RANAP_EnhancedRelocationInformationRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest, (void**)&rANAP_EnhancedRelocationInformationRequest_p);

    if (tempDecoded < 0 || rANAP_EnhancedRelocationInformationRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RANAP_EnhancedRelocationInformationRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < rANAP_EnhancedRelocationInformationRequest_p->ranaP_EnhancedRelocationInformationRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rANAP_EnhancedRelocationInformationRequest_p->ranaP_EnhancedRelocationInformationRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Source_ToTarget_TransparentContainer:
            {
                RANAP_SourceRNC_ToTargetRNC_TransparentContainer_t *ranaP_SourceRNCToTargetRNCTransparentContainer_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer, (void**)&ranaP_SourceRNCToTargetRNCTransparentContainer_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE source_ToTarget_TransparentContainer failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer, ranaP_SourceRNCToTargetRNCTransparentContainer_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->source_ToTarget_TransparentContainer, ranaP_SourceRNCToTargetRNCTransparentContainer_p, sizeof(RANAP_SourceRNC_ToTargetRNC_TransparentContainer_t));
                FREEMEM(ranaP_SourceRNCToTargetRNCTransparentContainer_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_OldIuSigConIdCS:
            {
                RANAP_IuSignallingConnectionIdentifier_t *ranaP_IuSignallingConnectionIdentifier_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_OLDIUSIGCONIDCS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, (void**)&ranaP_IuSignallingConnectionIdentifier_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE oldIuSigConIdCS failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, ranaP_IuSignallingConnectionIdentifier_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->oldIuSigConIdCS, ranaP_IuSignallingConnectionIdentifier_p, sizeof(RANAP_IuSignallingConnectionIdentifier_t));
                FREEMEM(ranaP_IuSignallingConnectionIdentifier_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_IDCS:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_GLOBALCN_IDCS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_IDCS failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->globalCN_IDCS, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_OldIuSigConIdPS:
            {
                RANAP_IuSignallingConnectionIdentifier_t *ranaP_IuSignallingConnectionIdentifier_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_OLDIUSIGCONIDPS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, (void**)&ranaP_IuSignallingConnectionIdentifier_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE oldIuSigConIdPS failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, ranaP_IuSignallingConnectionIdentifier_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->oldIuSigConIdPS, ranaP_IuSignallingConnectionIdentifier_p, sizeof(RANAP_IuSignallingConnectionIdentifier_t));
                FREEMEM(ranaP_IuSignallingConnectionIdentifier_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_IDPS:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_GLOBALCN_IDPS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_IDPS failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->globalCN_IDPS, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhRelocInfoReq:
            {
                RANAP_RAB_SetupList_EnhRelocInfoReq_t *ranaP_RABSetupListEnhRelocInfoReq_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_RAB_SETUPLIST_ENHRELOCINFOREQ_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoReq, (void**)&ranaP_RABSetupListEnhRelocInfoReq_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupList_EnhRelocInfoReq failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoReq, ranaP_RABSetupListEnhRelocInfoReq_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->raB_SetupList_EnhRelocInfoReq, ranaP_RABSetupListEnhRelocInfoReq_p, sizeof(RANAP_RAB_SetupList_EnhRelocInfoReq_t));
                FREEMEM(ranaP_RABSetupListEnhRelocInfoReq_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_SNA_Access_Information:
            {
                RANAP_SNA_Access_Information_t *ranaP_SNAAccessInformation_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_SNA_ACCESS_INFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SNA_Access_Information, (void**)&ranaP_SNAAccessInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE snA_Access_Information failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SNA_Access_Information, ranaP_SNAAccessInformation_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->snA_Access_Information, ranaP_SNAAccessInformation_p, sizeof(RANAP_SNA_Access_Information_t));
                FREEMEM(ranaP_SNAAccessInformation_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_UESBI_Iu:
            {
                RANAP_UESBI_Iu_t *ranaP_UESBIIu_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_UESBI_IU_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_UESBI_Iu, (void**)&ranaP_UESBIIu_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE uesbI_Iu failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_UESBI_Iu, ranaP_UESBIIu_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->uesbI_Iu, ranaP_UESBIIu_p, sizeof(RANAP_UESBI_Iu_t));
                FREEMEM(ranaP_UESBIIu_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_SelectedPLMN_ID:
            {
                RANAP_PLMNidentity_t *ranaP_PLMNidentity_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_PLMNIDENTITY_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_PLMNidentity, (void**)&ranaP_PLMNidentity_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE selectedPLMN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_PLMNidentity, ranaP_PLMNidentity_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->selectedPLMN_ID, ranaP_PLMNidentity_p, sizeof(RANAP_PLMNidentity_t));
                FREEMEM(ranaP_PLMNidentity_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CNMBMSLinkingInformation:
            {
                RANAP_CNMBMSLinkingInformation_t *ranaP_CNMBMSLinkingInformation_p = NULL;
                ranaP_EnhancedRelocationInformationRequestIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_CNMBMSLINKINGINFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CNMBMSLinkingInformation, (void**)&ranaP_CNMBMSLinkingInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cnmbmsLinkingInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CNMBMSLinkingInformation, ranaP_CNMBMSLinkingInformation_p);
                memcpy(&ranaP_EnhancedRelocationInformationRequestIEs->cnmbmsLinkingInformation, ranaP_CNMBMSLinkingInformation_p, sizeof(RANAP_CNMBMSLinkingInformation_t));
                FREEMEM(ranaP_CNMBMSLinkingInformation_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message ranap_enhancedrelocationinformationrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationRequest, rANAP_EnhancedRelocationInformationRequest_p);
    return rc;
}

int ranap_decode_rab_setupitem_enhrelocinforeq_ies(
    RANAP_RAB_SetupItem_EnhRelocInfoReq_IEs_t *raB_SetupItem_EnhRelocInfoReq_IEs,
    ANY_t *any_p) {

    RANAP_RAB_SetupList_EnhRelocInfoReq_t *rAB_SetupItem_EnhRelocInfoReq_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_SetupItem_EnhRelocInfoReq_IEs != NULL);

    memset(raB_SetupItem_EnhRelocInfoReq_IEs, 0, sizeof(RANAP_RAB_SetupItem_EnhRelocInfoReq_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_SetupItem_EnhRelocInfoReq_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoReq, (void**)&rAB_SetupItem_EnhRelocInfoReq_p);

    if (tempDecoded < 0 || rAB_SetupItem_EnhRelocInfoReq_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_SetupItem_EnhRelocInfoReq_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_SetupItem_EnhRelocInfoReq_p->raB_SetupList_EnhRelocInfoReq_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_SetupItem_EnhRelocInfoReq_p->raB_SetupList_EnhRelocInfoReq_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhRelocInfoReq:
            {
                RANAP_RAB_SetupItem_EnhRelocInfoReq_t *ranaP_RABSetupItemEnhRelocInfoReq_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupItem_EnhRelocInfoReq, (void**)&ranaP_RABSetupItemEnhRelocInfoReq_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupItem_EnhRelocInfoReq failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupItem_EnhRelocInfoReq, ranaP_RABSetupItemEnhRelocInfoReq_p);
                memcpy(&raB_SetupItem_EnhRelocInfoReq_IEs->raB_SetupItem_EnhRelocInfoReq, ranaP_RABSetupItemEnhRelocInfoReq_p, sizeof(RANAP_RAB_SetupItem_EnhRelocInfoReq_t));
                FREEMEM(ranaP_RABSetupItemEnhRelocInfoReq_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_setupitem_enhrelocinforeq_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoReq, rAB_SetupItem_EnhRelocInfoReq_p);
    return rc;
}

int ranap_decode_ranap_enhancedrelocationinformationresponseies(
    RANAP_RANAP_EnhancedRelocationInformationResponseIEs_t *ranaP_EnhancedRelocationInformationResponseIEs,
    ANY_t *any_p) {

    RANAP_RANAP_EnhancedRelocationInformationResponse_t *rANAP_EnhancedRelocationInformationResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(ranaP_EnhancedRelocationInformationResponseIEs != NULL);

    memset(ranaP_EnhancedRelocationInformationResponseIEs, 0, sizeof(RANAP_RANAP_EnhancedRelocationInformationResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RANAP_EnhancedRelocationInformationResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse, (void**)&rANAP_EnhancedRelocationInformationResponse_p);

    if (tempDecoded < 0 || rANAP_EnhancedRelocationInformationResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RANAP_EnhancedRelocationInformationResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < rANAP_EnhancedRelocationInformationResponse_p->ranaP_EnhancedRelocationInformationResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rANAP_EnhancedRelocationInformationResponse_p->ranaP_EnhancedRelocationInformationResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Target_ToSource_TransparentContainer:
            {
                RANAP_TargetRNC_ToSourceRNC_TransparentContainer_t *ranaP_TargetRNCToSourceRNCTransparentContainer_p = NULL;
                ranaP_EnhancedRelocationInformationResponseIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer, (void**)&ranaP_TargetRNCToSourceRNCTransparentContainer_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE target_ToSource_TransparentContainer failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer, ranaP_TargetRNCToSourceRNCTransparentContainer_p);
                memcpy(&ranaP_EnhancedRelocationInformationResponseIEs->target_ToSource_TransparentContainer, ranaP_TargetRNCToSourceRNCTransparentContainer_p, sizeof(RANAP_TargetRNC_ToSourceRNC_TransparentContainer_t));
                FREEMEM(ranaP_TargetRNCToSourceRNCTransparentContainer_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_SetupList_EnhRelocInfoRes:
            {
                RANAP_RAB_SetupList_EnhRelocInfoRes_t *ranaP_RABSetupListEnhRelocInfoRes_p = NULL;
                ranaP_EnhancedRelocationInformationResponseIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_RAB_SETUPLIST_ENHRELOCINFORES_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoRes, (void**)&ranaP_RABSetupListEnhRelocInfoRes_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupList_EnhRelocInfoRes failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoRes, ranaP_RABSetupListEnhRelocInfoRes_p);
                memcpy(&ranaP_EnhancedRelocationInformationResponseIEs->raB_SetupList_EnhRelocInfoRes, ranaP_RABSetupListEnhRelocInfoRes_p, sizeof(RANAP_RAB_SetupList_EnhRelocInfoRes_t));
                FREEMEM(ranaP_RABSetupListEnhRelocInfoRes_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAB_FailedList_EnhRelocInfoRes:
            {
                RANAP_RAB_FailedList_EnhRelocInfoRes_t *ranaP_RABFailedListEnhRelocInfoRes_p = NULL;
                ranaP_EnhancedRelocationInformationResponseIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_RAB_FAILEDLIST_ENHRELOCINFORES_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_FailedList_EnhRelocInfoRes, (void**)&ranaP_RABFailedListEnhRelocInfoRes_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_FailedList_EnhRelocInfoRes failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_FailedList_EnhRelocInfoRes, ranaP_RABFailedListEnhRelocInfoRes_p);
                memcpy(&ranaP_EnhancedRelocationInformationResponseIEs->raB_FailedList_EnhRelocInfoRes, ranaP_RABFailedListEnhRelocInfoRes_p, sizeof(RANAP_RAB_FailedList_EnhRelocInfoRes_t));
                FREEMEM(ranaP_RABFailedListEnhRelocInfoRes_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                ranaP_EnhancedRelocationInformationResponseIEs->presenceMask |= RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&ranaP_EnhancedRelocationInformationResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message ranap_enhancedrelocationinformationresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RANAP_EnhancedRelocationInformationResponse, rANAP_EnhancedRelocationInformationResponse_p);
    return rc;
}

int ranap_decode_rab_setupitem_enhrelocinfores_ies(
    RANAP_RAB_SetupItem_EnhRelocInfoRes_IEs_t *raB_SetupItem_EnhRelocInfoRes_IEs,
    ANY_t *any_p) {

    RANAP_RAB_SetupList_EnhRelocInfoRes_t *rAB_SetupItem_EnhRelocInfoRes_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_SetupItem_EnhRelocInfoRes_IEs != NULL);

    memset(raB_SetupItem_EnhRelocInfoRes_IEs, 0, sizeof(RANAP_RAB_SetupItem_EnhRelocInfoRes_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_SetupItem_EnhRelocInfoRes_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoRes, (void**)&rAB_SetupItem_EnhRelocInfoRes_p);

    if (tempDecoded < 0 || rAB_SetupItem_EnhRelocInfoRes_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_SetupItem_EnhRelocInfoRes_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_SetupItem_EnhRelocInfoRes_p->raB_SetupList_EnhRelocInfoRes_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_SetupItem_EnhRelocInfoRes_p->raB_SetupList_EnhRelocInfoRes_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_SetupItem_EnhRelocInfoRes:
            {
                RANAP_RAB_SetupItem_EnhRelocInfoRes_t *ranaP_RABSetupItemEnhRelocInfoRes_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_SetupItem_EnhRelocInfoRes, (void**)&ranaP_RABSetupItemEnhRelocInfoRes_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_SetupItem_EnhRelocInfoRes failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_SetupItem_EnhRelocInfoRes, ranaP_RABSetupItemEnhRelocInfoRes_p);
                memcpy(&raB_SetupItem_EnhRelocInfoRes_IEs->raB_SetupItem_EnhRelocInfoRes, ranaP_RABSetupItemEnhRelocInfoRes_p, sizeof(RANAP_RAB_SetupItem_EnhRelocInfoRes_t));
                FREEMEM(ranaP_RABSetupItemEnhRelocInfoRes_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_setupitem_enhrelocinfores_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoRes, rAB_SetupItem_EnhRelocInfoRes_p);
    return rc;
}

int ranap_decode_rab_faileditem_enhrelocinfores_ies(
    RANAP_RAB_FailedItem_EnhRelocInfoRes_IEs_t *raB_FailedItem_EnhRelocInfoRes_IEs,
    ANY_t *any_p) {

    RANAP_RAB_FailedList_EnhRelocInfoRes_t *rAB_FailedItem_EnhRelocInfoRes_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_FailedItem_EnhRelocInfoRes_IEs != NULL);

    memset(raB_FailedItem_EnhRelocInfoRes_IEs, 0, sizeof(RANAP_RAB_FailedItem_EnhRelocInfoRes_IEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_FailedItem_EnhRelocInfoRes_IEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_FailedList_EnhRelocInfoRes, (void**)&rAB_FailedItem_EnhRelocInfoRes_p);

    if (tempDecoded < 0 || rAB_FailedItem_EnhRelocInfoRes_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_FailedItem_EnhRelocInfoRes_IEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_FailedItem_EnhRelocInfoRes_p->raB_FailedList_EnhRelocInfoRes_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_FailedItem_EnhRelocInfoRes_p->raB_FailedList_EnhRelocInfoRes_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_FailedItem_EnhRelocInfoRes:
            {
                RANAP_RAB_FailedItem_EnhRelocInfoRes_t *ranaP_RABFailedItemEnhRelocInfoRes_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_FailedItem_EnhRelocInfoRes, (void**)&ranaP_RABFailedItemEnhRelocInfoRes_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_FailedItem_EnhRelocInfoRes failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_FailedItem_EnhRelocInfoRes, ranaP_RABFailedItemEnhRelocInfoRes_p);
                memcpy(&raB_FailedItem_EnhRelocInfoRes_IEs->raB_FailedItem_EnhRelocInfoRes, ranaP_RABFailedItemEnhRelocInfoRes_p, sizeof(RANAP_RAB_FailedItem_EnhRelocInfoRes_t));
                FREEMEM(ranaP_RABFailedItemEnhRelocInfoRes_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_faileditem_enhrelocinfores_ies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_FailedList_EnhRelocInfoRes, rAB_FailedItem_EnhRelocInfoRes_p);
    return rc;
}

int ranap_decode_rab_modifyrequesties(
    RANAP_RAB_ModifyRequestIEs_t *raB_ModifyRequestIEs,
    ANY_t *any_p) {

    RANAP_RAB_ModifyRequest_t *rAB_ModifyRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ModifyRequestIEs != NULL);

    memset(raB_ModifyRequestIEs, 0, sizeof(RANAP_RAB_ModifyRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ModifyRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ModifyRequest, (void**)&rAB_ModifyRequest_p);

    if (tempDecoded < 0 || rAB_ModifyRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ModifyRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ModifyRequest_p->raB_ModifyRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ModifyRequest_p->raB_ModifyRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ModifyList:
            {
                RANAP_RAB_ModifyList_t *ranaP_RABModifyList_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ModifyList, (void**)&ranaP_RABModifyList_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ModifyList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ModifyList, ranaP_RABModifyList_p);
                memcpy(&raB_ModifyRequestIEs->raB_ModifyList, ranaP_RABModifyList_p, sizeof(RANAP_RAB_ModifyList_t));
                FREEMEM(ranaP_RABModifyList_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_modifyrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ModifyRequest, rAB_ModifyRequest_p);
    return rc;
}

int ranap_decode_rab_modifyitemies(
    RANAP_RAB_ModifyItemIEs_t *raB_ModifyItemIEs,
    ANY_t *any_p) {

    RANAP_RAB_ModifyList_t *rAB_ModifyItem_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(raB_ModifyItemIEs != NULL);

    memset(raB_ModifyItemIEs, 0, sizeof(RANAP_RAB_ModifyItemIEs_t));
    RANAP_DEBUG("Decoding message RANAP_RAB_ModifyItemIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_RAB_ModifyList, (void**)&rAB_ModifyItem_p);

    if (tempDecoded < 0 || rAB_ModifyItem_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_RAB_ModifyItemIEs failed\n");
        return -1;
    }

    for (i = 0; i < rAB_ModifyItem_p->raB_ModifyList_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = rAB_ModifyItem_p->raB_ModifyList_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_RAB_ModifyItem:
            {
                RANAP_RAB_ModifyItem_t *ranaP_RABModifyItem_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_ModifyItem, (void**)&ranaP_RABModifyItem_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_ModifyItem failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_ModifyItem, ranaP_RABModifyItem_p);
                memcpy(&raB_ModifyItemIEs->raB_ModifyItem, ranaP_RABModifyItem_p, sizeof(RANAP_RAB_ModifyItem_t));
                FREEMEM(ranaP_RABModifyItem_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message rab_modifyitemies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_RAB_ModifyList, rAB_ModifyItem_p);
    return rc;
}

int ranap_decode_locationrelateddatarequesties(
    RANAP_LocationRelatedDataRequestIEs_t *locationRelatedDataRequestIEs,
    ANY_t *any_p) {

    RANAP_LocationRelatedDataRequest_t *locationRelatedDataRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(locationRelatedDataRequestIEs != NULL);

    memset(locationRelatedDataRequestIEs, 0, sizeof(RANAP_LocationRelatedDataRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_LocationRelatedDataRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_LocationRelatedDataRequest, (void**)&locationRelatedDataRequest_p);

    if (tempDecoded < 0 || locationRelatedDataRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_LocationRelatedDataRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < locationRelatedDataRequest_p->locationRelatedDataRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = locationRelatedDataRequest_p->locationRelatedDataRequest_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_LocationRelatedDataRequestType:
            {
                RANAP_LocationRelatedDataRequestType_t *ranaP_LocationRelatedDataRequestType_p = NULL;
                locationRelatedDataRequestIEs->presenceMask |= LOCATIONRELATEDDATAREQUESTIES_RANAP_LOCATIONRELATEDDATAREQUESTTYPE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_LocationRelatedDataRequestType, (void**)&ranaP_LocationRelatedDataRequestType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE locationRelatedDataRequestType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_LocationRelatedDataRequestType, ranaP_LocationRelatedDataRequestType_p);
                memcpy(&locationRelatedDataRequestIEs->locationRelatedDataRequestType, ranaP_LocationRelatedDataRequestType_p, sizeof(RANAP_LocationRelatedDataRequestType_t));
                FREEMEM(ranaP_LocationRelatedDataRequestType_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message locationrelateddatarequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_LocationRelatedDataRequest, locationRelatedDataRequest_p);
    return rc;
}

int ranap_decode_locationrelateddataresponseies(
    RANAP_LocationRelatedDataResponseIEs_t *locationRelatedDataResponseIEs,
    ANY_t *any_p) {

    RANAP_LocationRelatedDataResponse_t *locationRelatedDataResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(locationRelatedDataResponseIEs != NULL);

    memset(locationRelatedDataResponseIEs, 0, sizeof(RANAP_LocationRelatedDataResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_LocationRelatedDataResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_LocationRelatedDataResponse, (void**)&locationRelatedDataResponse_p);

    if (tempDecoded < 0 || locationRelatedDataResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_LocationRelatedDataResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < locationRelatedDataResponse_p->locationRelatedDataResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = locationRelatedDataResponse_p->locationRelatedDataResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_BroadcastAssistanceDataDecipheringKeys:
            {
                RANAP_BroadcastAssistanceDataDecipheringKeys_t *ranaP_BroadcastAssistanceDataDecipheringKeys_p = NULL;
                locationRelatedDataResponseIEs->presenceMask |= LOCATIONRELATEDDATARESPONSEIES_RANAP_BROADCASTASSISTANCEDATADECIPHERINGKEYS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys, (void**)&ranaP_BroadcastAssistanceDataDecipheringKeys_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE broadcastAssistanceDataDecipheringKeys failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys, ranaP_BroadcastAssistanceDataDecipheringKeys_p);
                memcpy(&locationRelatedDataResponseIEs->broadcastAssistanceDataDecipheringKeys, ranaP_BroadcastAssistanceDataDecipheringKeys_p, sizeof(RANAP_BroadcastAssistanceDataDecipheringKeys_t));
                FREEMEM(ranaP_BroadcastAssistanceDataDecipheringKeys_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message locationrelateddataresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_LocationRelatedDataResponse, locationRelatedDataResponse_p);
    return rc;
}

int ranap_decode_locationrelateddatafailureies(
    RANAP_LocationRelatedDataFailureIEs_t *locationRelatedDataFailureIEs,
    ANY_t *any_p) {

    RANAP_LocationRelatedDataFailure_t *locationRelatedDataFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(locationRelatedDataFailureIEs != NULL);

    memset(locationRelatedDataFailureIEs, 0, sizeof(RANAP_LocationRelatedDataFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_LocationRelatedDataFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_LocationRelatedDataFailure, (void**)&locationRelatedDataFailure_p);

    if (tempDecoded < 0 || locationRelatedDataFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_LocationRelatedDataFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < locationRelatedDataFailure_p->locationRelatedDataFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = locationRelatedDataFailure_p->locationRelatedDataFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&locationRelatedDataFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message locationrelateddatafailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_LocationRelatedDataFailure, locationRelatedDataFailure_p);
    return rc;
}

int ranap_decode_informationtransferindicationies(
    RANAP_InformationTransferIndicationIEs_t *informationTransferIndicationIEs,
    ANY_t *any_p) {

    RANAP_InformationTransferIndication_t *informationTransferIndication_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(informationTransferIndicationIEs != NULL);

    memset(informationTransferIndicationIEs, 0, sizeof(RANAP_InformationTransferIndicationIEs_t));
    RANAP_DEBUG("Decoding message RANAP_InformationTransferIndicationIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_InformationTransferIndication, (void**)&informationTransferIndication_p);

    if (tempDecoded < 0 || informationTransferIndication_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_InformationTransferIndicationIEs failed\n");
        return -1;
    }

    for (i = 0; i < informationTransferIndication_p->informationTransferIndication_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = informationTransferIndication_p->informationTransferIndication_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_InformationTransferID:
            {
                RANAP_InformationTransferID_t *ranaP_InformationTransferID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InformationTransferID, (void**)&ranaP_InformationTransferID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE informationTransferID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InformationTransferID, ranaP_InformationTransferID_p);
                memcpy(&informationTransferIndicationIEs->informationTransferID, ranaP_InformationTransferID_p, sizeof(RANAP_InformationTransferID_t));
                FREEMEM(ranaP_InformationTransferID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_ProvidedData:
            {
                RANAP_ProvidedData_t *ranaP_ProvidedData_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_ProvidedData, (void**)&ranaP_ProvidedData_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE providedData failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_ProvidedData, ranaP_ProvidedData_p);
                memcpy(&informationTransferIndicationIEs->providedData, ranaP_ProvidedData_p, sizeof(RANAP_ProvidedData_t));
                FREEMEM(ranaP_ProvidedData_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&informationTransferIndicationIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_ID:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                informationTransferIndicationIEs->presenceMask |= INFORMATIONTRANSFERINDICATIONIES_RANAP_GLOBALCN_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&informationTransferIndicationIEs->globalCN_ID, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message informationtransferindicationies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_InformationTransferIndication, informationTransferIndication_p);
    return rc;
}

int ranap_decode_informationtransferconfirmationies(
    RANAP_InformationTransferConfirmationIEs_t *informationTransferConfirmationIEs,
    ANY_t *any_p) {

    RANAP_InformationTransferConfirmation_t *informationTransferConfirmation_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(informationTransferConfirmationIEs != NULL);

    memset(informationTransferConfirmationIEs, 0, sizeof(RANAP_InformationTransferConfirmationIEs_t));
    RANAP_DEBUG("Decoding message RANAP_InformationTransferConfirmationIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_InformationTransferConfirmation, (void**)&informationTransferConfirmation_p);

    if (tempDecoded < 0 || informationTransferConfirmation_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_InformationTransferConfirmationIEs failed\n");
        return -1;
    }

    for (i = 0; i < informationTransferConfirmation_p->informationTransferConfirmation_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = informationTransferConfirmation_p->informationTransferConfirmation_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_InformationTransferID:
            {
                RANAP_InformationTransferID_t *ranaP_InformationTransferID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InformationTransferID, (void**)&ranaP_InformationTransferID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE informationTransferID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InformationTransferID, ranaP_InformationTransferID_p);
                memcpy(&informationTransferConfirmationIEs->informationTransferID, ranaP_InformationTransferID_p, sizeof(RANAP_InformationTransferID_t));
                FREEMEM(ranaP_InformationTransferID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&informationTransferConfirmationIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                informationTransferConfirmationIEs->presenceMask |= INFORMATIONTRANSFERCONFIRMATIONIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&informationTransferConfirmationIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&informationTransferConfirmationIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message informationtransferconfirmationies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_InformationTransferConfirmation, informationTransferConfirmation_p);
    return rc;
}

int ranap_decode_informationtransferfailureies(
    RANAP_InformationTransferFailureIEs_t *informationTransferFailureIEs,
    ANY_t *any_p) {

    RANAP_InformationTransferFailure_t *informationTransferFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(informationTransferFailureIEs != NULL);

    memset(informationTransferFailureIEs, 0, sizeof(RANAP_InformationTransferFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_InformationTransferFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_InformationTransferFailure, (void**)&informationTransferFailure_p);

    if (tempDecoded < 0 || informationTransferFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_InformationTransferFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < informationTransferFailure_p->informationTransferFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = informationTransferFailure_p->informationTransferFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_InformationTransferID:
            {
                RANAP_InformationTransferID_t *ranaP_InformationTransferID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InformationTransferID, (void**)&ranaP_InformationTransferID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE informationTransferID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InformationTransferID, ranaP_InformationTransferID_p);
                memcpy(&informationTransferFailureIEs->informationTransferID, ranaP_InformationTransferID_p, sizeof(RANAP_InformationTransferID_t));
                FREEMEM(ranaP_InformationTransferID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&informationTransferFailureIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&informationTransferFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                informationTransferFailureIEs->presenceMask |= INFORMATIONTRANSFERFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&informationTransferFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&informationTransferFailureIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message informationtransferfailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_InformationTransferFailure, informationTransferFailure_p);
    return rc;
}

int ranap_decode_uespecificinformationindicationies(
    RANAP_UESpecificInformationIndicationIEs_t *ueSpecificInformationIndicationIEs,
    ANY_t *any_p) {

    RANAP_UESpecificInformationIndication_t *uESpecificInformationIndication_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(ueSpecificInformationIndicationIEs != NULL);

    memset(ueSpecificInformationIndicationIEs, 0, sizeof(RANAP_UESpecificInformationIndicationIEs_t));
    RANAP_DEBUG("Decoding message RANAP_UESpecificInformationIndicationIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_UESpecificInformationIndication, (void**)&uESpecificInformationIndication_p);

    if (tempDecoded < 0 || uESpecificInformationIndication_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_UESpecificInformationIndicationIEs failed\n");
        return -1;
    }

    for (i = 0; i < uESpecificInformationIndication_p->ueSpecificInformationIndication_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = uESpecificInformationIndication_p->ueSpecificInformationIndication_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_UESBI_Iu:
            {
                RANAP_UESBI_Iu_t *ranaP_UESBIIu_p = NULL;
                ueSpecificInformationIndicationIEs->presenceMask |= UESPECIFICINFORMATIONINDICATIONIES_RANAP_UESBI_IU_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_UESBI_Iu, (void**)&ranaP_UESBIIu_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE uesbI_Iu failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_UESBI_Iu, ranaP_UESBIIu_p);
                memcpy(&ueSpecificInformationIndicationIEs->uesbI_Iu, ranaP_UESBIIu_p, sizeof(RANAP_UESBI_Iu_t));
                FREEMEM(ranaP_UESBIIu_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message uespecificinformationindicationies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_UESpecificInformationIndication, uESpecificInformationIndication_p);
    return rc;
}

int ranap_decode_directinformationtransferies(
    RANAP_DirectInformationTransferIEs_t *directInformationTransferIEs,
    ANY_t *any_p) {

    RANAP_DirectInformationTransfer_t *directInformationTransfer_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(directInformationTransferIEs != NULL);

    memset(directInformationTransferIEs, 0, sizeof(RANAP_DirectInformationTransferIEs_t));
    RANAP_DEBUG("Decoding message RANAP_DirectInformationTransferIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_DirectInformationTransfer, (void**)&directInformationTransfer_p);

    if (tempDecoded < 0 || directInformationTransfer_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_DirectInformationTransferIEs failed\n");
        return -1;
    }

    for (i = 0; i < directInformationTransfer_p->directInformationTransfer_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = directInformationTransfer_p->directInformationTransfer_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_InterSystemInformationTransferType:
            {
                RANAP_InterSystemInformationTransferType_t *ranaP_InterSystemInformationTransferType_p = NULL;
                directInformationTransferIEs->presenceMask |= DIRECTINFORMATIONTRANSFERIES_RANAP_INTERSYSTEMINFORMATIONTRANSFERTYPE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InterSystemInformationTransferType, (void**)&ranaP_InterSystemInformationTransferType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE interSystemInformationTransferType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InterSystemInformationTransferType, ranaP_InterSystemInformationTransferType_p);
                memcpy(&directInformationTransferIEs->interSystemInformationTransferType, ranaP_InterSystemInformationTransferType_p, sizeof(RANAP_InterSystemInformationTransferType_t));
                FREEMEM(ranaP_InterSystemInformationTransferType_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&directInformationTransferIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                directInformationTransferIEs->presenceMask |= DIRECTINFORMATIONTRANSFERIES_RANAP_GLOBALRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&directInformationTransferIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_ID:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                directInformationTransferIEs->presenceMask |= DIRECTINFORMATIONTRANSFERIES_RANAP_GLOBALCN_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&directInformationTransferIEs->globalCN_ID, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message directinformationtransferies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_DirectInformationTransfer, directInformationTransfer_p);
    return rc;
}

int ranap_decode_uplinkinformationexchangerequesties(
    RANAP_UplinkInformationExchangeRequestIEs_t *uplinkInformationExchangeRequestIEs,
    ANY_t *any_p) {

    RANAP_UplinkInformationExchangeRequest_t *uplinkInformationExchangeRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(uplinkInformationExchangeRequestIEs != NULL);

    memset(uplinkInformationExchangeRequestIEs, 0, sizeof(RANAP_UplinkInformationExchangeRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_UplinkInformationExchangeRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_UplinkInformationExchangeRequest, (void**)&uplinkInformationExchangeRequest_p);

    if (tempDecoded < 0 || uplinkInformationExchangeRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_UplinkInformationExchangeRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < uplinkInformationExchangeRequest_p->uplinkInformationExchangeRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = uplinkInformationExchangeRequest_p->uplinkInformationExchangeRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_InformationExchangeID:
            {
                RANAP_InformationExchangeID_t *ranaP_InformationExchangeID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InformationExchangeID, (void**)&ranaP_InformationExchangeID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE informationExchangeID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InformationExchangeID, ranaP_InformationExchangeID_p);
                memcpy(&uplinkInformationExchangeRequestIEs->informationExchangeID, ranaP_InformationExchangeID_p, sizeof(RANAP_InformationExchangeID_t));
                FREEMEM(ranaP_InformationExchangeID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_InformationExchangeType:
            {
                RANAP_InformationExchangeType_t *ranaP_InformationExchangeType_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InformationExchangeType, (void**)&ranaP_InformationExchangeType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE informationExchangeType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InformationExchangeType, ranaP_InformationExchangeType_p);
                memcpy(&uplinkInformationExchangeRequestIEs->informationExchangeType, ranaP_InformationExchangeType_p, sizeof(RANAP_InformationExchangeType_t));
                FREEMEM(ranaP_InformationExchangeType_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&uplinkInformationExchangeRequestIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&uplinkInformationExchangeRequestIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message uplinkinformationexchangerequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_UplinkInformationExchangeRequest, uplinkInformationExchangeRequest_p);
    return rc;
}

int ranap_decode_uplinkinformationexchangeresponseies(
    RANAP_UplinkInformationExchangeResponseIEs_t *uplinkInformationExchangeResponseIEs,
    ANY_t *any_p) {

    RANAP_UplinkInformationExchangeResponse_t *uplinkInformationExchangeResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(uplinkInformationExchangeResponseIEs != NULL);

    memset(uplinkInformationExchangeResponseIEs, 0, sizeof(RANAP_UplinkInformationExchangeResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_UplinkInformationExchangeResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_UplinkInformationExchangeResponse, (void**)&uplinkInformationExchangeResponse_p);

    if (tempDecoded < 0 || uplinkInformationExchangeResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_UplinkInformationExchangeResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < uplinkInformationExchangeResponse_p->uplinkInformationExchangeResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = uplinkInformationExchangeResponse_p->uplinkInformationExchangeResponse_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_InformationExchangeID:
            {
                RANAP_InformationExchangeID_t *ranaP_InformationExchangeID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InformationExchangeID, (void**)&ranaP_InformationExchangeID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE informationExchangeID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InformationExchangeID, ranaP_InformationExchangeID_p);
                memcpy(&uplinkInformationExchangeResponseIEs->informationExchangeID, ranaP_InformationExchangeID_p, sizeof(RANAP_InformationExchangeID_t));
                FREEMEM(ranaP_InformationExchangeID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_InformationRequested:
            {
                RANAP_InformationRequested_t *ranaP_InformationRequested_p = NULL;
                uplinkInformationExchangeResponseIEs->presenceMask |= UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_INFORMATIONREQUESTED_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InformationRequested, (void**)&ranaP_InformationRequested_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE informationRequested failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InformationRequested, ranaP_InformationRequested_p);
                memcpy(&uplinkInformationExchangeResponseIEs->informationRequested, ranaP_InformationRequested_p, sizeof(RANAP_InformationRequested_t));
                FREEMEM(ranaP_InformationRequested_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&uplinkInformationExchangeResponseIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_ID:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                uplinkInformationExchangeResponseIEs->presenceMask |= UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_GLOBALCN_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&uplinkInformationExchangeResponseIEs->globalCN_ID, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                uplinkInformationExchangeResponseIEs->presenceMask |= UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&uplinkInformationExchangeResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message uplinkinformationexchangeresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_UplinkInformationExchangeResponse, uplinkInformationExchangeResponse_p);
    return rc;
}

int ranap_decode_uplinkinformationexchangefailureies(
    RANAP_UplinkInformationExchangeFailureIEs_t *uplinkInformationExchangeFailureIEs,
    ANY_t *any_p) {

    RANAP_UplinkInformationExchangeFailure_t *uplinkInformationExchangeFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(uplinkInformationExchangeFailureIEs != NULL);

    memset(uplinkInformationExchangeFailureIEs, 0, sizeof(RANAP_UplinkInformationExchangeFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_UplinkInformationExchangeFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_UplinkInformationExchangeFailure, (void**)&uplinkInformationExchangeFailure_p);

    if (tempDecoded < 0 || uplinkInformationExchangeFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_UplinkInformationExchangeFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < uplinkInformationExchangeFailure_p->uplinkInformationExchangeFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = uplinkInformationExchangeFailure_p->uplinkInformationExchangeFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_InformationExchangeID:
            {
                RANAP_InformationExchangeID_t *ranaP_InformationExchangeID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_InformationExchangeID, (void**)&ranaP_InformationExchangeID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE informationExchangeID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_InformationExchangeID, ranaP_InformationExchangeID_p);
                memcpy(&uplinkInformationExchangeFailureIEs->informationExchangeID, ranaP_InformationExchangeID_p, sizeof(RANAP_InformationExchangeID_t));
                FREEMEM(ranaP_InformationExchangeID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_CN_DomainIndicator:
            {
                RANAP_CN_DomainIndicator_t *ranaP_CNDomainIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CN_DomainIndicator, (void**)&ranaP_CNDomainIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cN_DomainIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CN_DomainIndicator, ranaP_CNDomainIndicator_p);
                memcpy(&uplinkInformationExchangeFailureIEs->cN_DomainIndicator, ranaP_CNDomainIndicator_p, sizeof(RANAP_CN_DomainIndicator_t));
                FREEMEM(ranaP_CNDomainIndicator_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_ID:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                uplinkInformationExchangeFailureIEs->presenceMask |= UPLINKINFORMATIONEXCHANGEFAILUREIES_RANAP_GLOBALCN_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&uplinkInformationExchangeFailureIEs->globalCN_ID, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&uplinkInformationExchangeFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                uplinkInformationExchangeFailureIEs->presenceMask |= UPLINKINFORMATIONEXCHANGEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&uplinkInformationExchangeFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message uplinkinformationexchangefailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_UplinkInformationExchangeFailure, uplinkInformationExchangeFailure_p);
    return rc;
}

int ranap_decode_mbmssessionstarties(
    RANAP_MBMSSessionStartIEs_t *mbmsSessionStartIEs,
    ANY_t *any_p) {

    RANAP_MBMSSessionStart_t *mBMSSessionStart_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsSessionStartIEs != NULL);

    memset(mbmsSessionStartIEs, 0, sizeof(RANAP_MBMSSessionStartIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSSessionStartIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSSessionStart, (void**)&mBMSSessionStart_p);

    if (tempDecoded < 0 || mBMSSessionStart_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSSessionStartIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSSessionStart_p->mbmsSessionStart_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSSessionStart_p->mbmsSessionStart_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_TMGI:
            {
                RANAP_TMGI_t *ranap_tmgi_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TMGI, (void**)&ranap_tmgi_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE tmgi failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TMGI, ranap_tmgi_p);
                memcpy(&mbmsSessionStartIEs->tmgi, ranap_tmgi_p, sizeof(RANAP_TMGI_t));
                FREEMEM(ranap_tmgi_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_MBMSSessionIdentity:
            {
                RANAP_MBMSSessionIdentity_t *ranaP_MBMSSessionIdentity_p = NULL;
                mbmsSessionStartIEs->presenceMask |= MBMSSESSIONSTARTIES_RANAP_MBMSSESSIONIDENTITY_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_MBMSSessionIdentity, (void**)&ranaP_MBMSSessionIdentity_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE mbmsSessionIdentity failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_MBMSSessionIdentity, ranaP_MBMSSessionIdentity_p);
                memcpy(&mbmsSessionStartIEs->mbmsSessionIdentity, ranaP_MBMSSessionIdentity_p, sizeof(RANAP_MBMSSessionIdentity_t));
                FREEMEM(ranaP_MBMSSessionIdentity_p);
            } break;
            case RANAP_ProtocolIE_ID_id_MBMSBearerServiceType:
            {
                RANAP_MBMSBearerServiceType_t *ranaP_MBMSBearerServiceType_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_MBMSBearerServiceType, (void**)&ranaP_MBMSBearerServiceType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE mbmsBearerServiceType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_MBMSBearerServiceType, ranaP_MBMSBearerServiceType_p);
                memcpy(&mbmsSessionStartIEs->mbmsBearerServiceType, ranaP_MBMSBearerServiceType_p, sizeof(RANAP_MBMSBearerServiceType_t));
                FREEMEM(ranaP_MBMSBearerServiceType_p);
            } break;
            case RANAP_ProtocolIE_ID_id_IuSigConId:
            {
                RANAP_IuSignallingConnectionIdentifier_t *ranaP_IuSignallingConnectionIdentifier_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, (void**)&ranaP_IuSignallingConnectionIdentifier_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE iuSigConId failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IuSignallingConnectionIdentifier, ranaP_IuSignallingConnectionIdentifier_p);
                memcpy(&mbmsSessionStartIEs->iuSigConId, ranaP_IuSignallingConnectionIdentifier_p, sizeof(RANAP_IuSignallingConnectionIdentifier_t));
                FREEMEM(ranaP_IuSignallingConnectionIdentifier_p);
            } break;
            case RANAP_ProtocolIE_ID_id_RAB_Parameters:
            {
                RANAP_RAB_Parameters_t *ranaP_RABParameters_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAB_Parameters, (void**)&ranaP_RABParameters_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raB_Parameters failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAB_Parameters, ranaP_RABParameters_p);
                memcpy(&mbmsSessionStartIEs->raB_Parameters, ranaP_RABParameters_p, sizeof(RANAP_RAB_Parameters_t));
                FREEMEM(ranaP_RABParameters_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_PDP_TypeInformation:
            {
                RANAP_PDP_TypeInformation_t *ranaP_PDPTypeInformation_p = NULL;
                mbmsSessionStartIEs->presenceMask |= MBMSSESSIONSTARTIES_RANAP_PDP_TYPEINFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_PDP_TypeInformation, (void**)&ranaP_PDPTypeInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE pdP_TypeInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_PDP_TypeInformation, ranaP_PDPTypeInformation_p);
                memcpy(&mbmsSessionStartIEs->pdP_TypeInformation, ranaP_PDPTypeInformation_p, sizeof(RANAP_PDP_TypeInformation_t));
                FREEMEM(ranaP_PDPTypeInformation_p);
            } break;
            case RANAP_ProtocolIE_ID_id_MBMSSessionDuration:
            {
                RANAP_MBMSSessionDuration_t *ranaP_MBMSSessionDuration_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_MBMSSessionDuration, (void**)&ranaP_MBMSSessionDuration_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE mbmsSessionDuration failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_MBMSSessionDuration, ranaP_MBMSSessionDuration_p);
                memcpy(&mbmsSessionStartIEs->mbmsSessionDuration, ranaP_MBMSSessionDuration_p, sizeof(RANAP_MBMSSessionDuration_t));
                FREEMEM(ranaP_MBMSSessionDuration_p);
            } break;
            case RANAP_ProtocolIE_ID_id_MBMSServiceArea:
            {
                RANAP_MBMSServiceArea_t *ranaP_MBMSServiceArea_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_MBMSServiceArea, (void**)&ranaP_MBMSServiceArea_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE mbmsServiceArea failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_MBMSServiceArea, ranaP_MBMSServiceArea_p);
                memcpy(&mbmsSessionStartIEs->mbmsServiceArea, ranaP_MBMSServiceArea_p, sizeof(RANAP_MBMSServiceArea_t));
                FREEMEM(ranaP_MBMSServiceArea_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_FrequenceLayerConvergenceFlag:
            {
                RANAP_FrequenceLayerConvergenceFlag_t *ranaP_FrequenceLayerConvergenceFlag_p = NULL;
                mbmsSessionStartIEs->presenceMask |= MBMSSESSIONSTARTIES_RANAP_FREQUENCELAYERCONVERGENCEFLAG_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_FrequenceLayerConvergenceFlag, (void**)&ranaP_FrequenceLayerConvergenceFlag_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE frequenceLayerConvergenceFlag failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_FrequenceLayerConvergenceFlag, ranaP_FrequenceLayerConvergenceFlag_p);
                memcpy(&mbmsSessionStartIEs->frequenceLayerConvergenceFlag, ranaP_FrequenceLayerConvergenceFlag_p, sizeof(RANAP_FrequenceLayerConvergenceFlag_t));
                FREEMEM(ranaP_FrequenceLayerConvergenceFlag_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_RAListofIdleModeUEs:
            {
                RANAP_RAListofIdleModeUEs_t *ranaP_RAListofIdleModeUEs_p = NULL;
                mbmsSessionStartIEs->presenceMask |= MBMSSESSIONSTARTIES_RANAP_RALISTOFIDLEMODEUES_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_RAListofIdleModeUEs, (void**)&ranaP_RAListofIdleModeUEs_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE raListofIdleModeUEs failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_RAListofIdleModeUEs, ranaP_RAListofIdleModeUEs_p);
                memcpy(&mbmsSessionStartIEs->raListofIdleModeUEs, ranaP_RAListofIdleModeUEs_p, sizeof(RANAP_RAListofIdleModeUEs_t));
                FREEMEM(ranaP_RAListofIdleModeUEs_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_ID:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                mbmsSessionStartIEs->presenceMask |= MBMSSESSIONSTARTIES_RANAP_GLOBALCN_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&mbmsSessionStartIEs->globalCN_ID, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_MBMSSessionRepetitionNumber:
            {
                RANAP_MBMSSessionRepetitionNumber_t *ranaP_MBMSSessionRepetitionNumber_p = NULL;
                mbmsSessionStartIEs->presenceMask |= MBMSSESSIONSTARTIES_RANAP_MBMSSESSIONREPETITIONNUMBER_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_MBMSSessionRepetitionNumber, (void**)&ranaP_MBMSSessionRepetitionNumber_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE mbmsSessionRepetitionNumber failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_MBMSSessionRepetitionNumber, ranaP_MBMSSessionRepetitionNumber_p);
                memcpy(&mbmsSessionStartIEs->mbmsSessionRepetitionNumber, ranaP_MBMSSessionRepetitionNumber_p, sizeof(RANAP_MBMSSessionRepetitionNumber_t));
                FREEMEM(ranaP_MBMSSessionRepetitionNumber_p);
            } break;
            case RANAP_ProtocolIE_ID_id_TimeToMBMSDataTransfer:
            {
                RANAP_TimeToMBMSDataTransfer_t *ranaP_TimeToMBMSDataTransfer_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TimeToMBMSDataTransfer, (void**)&ranaP_TimeToMBMSDataTransfer_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE timeToMBMSDataTransfer failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TimeToMBMSDataTransfer, ranaP_TimeToMBMSDataTransfer_p);
                memcpy(&mbmsSessionStartIEs->timeToMBMSDataTransfer, ranaP_TimeToMBMSDataTransfer_p, sizeof(RANAP_TimeToMBMSDataTransfer_t));
                FREEMEM(ranaP_TimeToMBMSDataTransfer_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmssessionstarties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSSessionStart, mBMSSessionStart_p);
    return rc;
}

int ranap_decode_mbmssessionstartresponseies(
    RANAP_MBMSSessionStartResponseIEs_t *mbmsSessionStartResponseIEs,
    ANY_t *any_p) {

    RANAP_MBMSSessionStartResponse_t *mBMSSessionStartResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsSessionStartResponseIEs != NULL);

    memset(mbmsSessionStartResponseIEs, 0, sizeof(RANAP_MBMSSessionStartResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSSessionStartResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSSessionStartResponse, (void**)&mBMSSessionStartResponse_p);

    if (tempDecoded < 0 || mBMSSessionStartResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSSessionStartResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSSessionStartResponse_p->mbmsSessionStartResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSSessionStartResponse_p->mbmsSessionStartResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_TransportLayerInformation:
            {
                RANAP_TransportLayerInformation_t *ranaP_TransportLayerInformation_p = NULL;
                mbmsSessionStartResponseIEs->presenceMask |= MBMSSESSIONSTARTRESPONSEIES_RANAP_TRANSPORTLAYERINFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TransportLayerInformation, (void**)&ranaP_TransportLayerInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE transportLayerInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TransportLayerInformation, ranaP_TransportLayerInformation_p);
                memcpy(&mbmsSessionStartResponseIEs->transportLayerInformation, ranaP_TransportLayerInformation_p, sizeof(RANAP_TransportLayerInformation_t));
                FREEMEM(ranaP_TransportLayerInformation_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                mbmsSessionStartResponseIEs->presenceMask |= MBMSSESSIONSTARTRESPONSEIES_RANAP_CAUSE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsSessionStartResponseIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsSessionStartResponseIEs->presenceMask |= MBMSSESSIONSTARTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsSessionStartResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmssessionstartresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSSessionStartResponse, mBMSSessionStartResponse_p);
    return rc;
}

int ranap_decode_mbmssessionstartfailureies(
    RANAP_MBMSSessionStartFailureIEs_t *mbmsSessionStartFailureIEs,
    ANY_t *any_p) {

    RANAP_MBMSSessionStartFailure_t *mBMSSessionStartFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsSessionStartFailureIEs != NULL);

    memset(mbmsSessionStartFailureIEs, 0, sizeof(RANAP_MBMSSessionStartFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSSessionStartFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSSessionStartFailure, (void**)&mBMSSessionStartFailure_p);

    if (tempDecoded < 0 || mBMSSessionStartFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSSessionStartFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSSessionStartFailure_p->mbmsSessionStartFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSSessionStartFailure_p->mbmsSessionStartFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsSessionStartFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsSessionStartFailureIEs->presenceMask |= MBMSSESSIONSTARTFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsSessionStartFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmssessionstartfailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSSessionStartFailure, mBMSSessionStartFailure_p);
    return rc;
}

int ranap_decode_mbmssessionupdateies(
    RANAP_MBMSSessionUpdateIEs_t *mbmsSessionUpdateIEs,
    ANY_t *any_p) {

    RANAP_MBMSSessionUpdate_t *mBMSSessionUpdate_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsSessionUpdateIEs != NULL);

    memset(mbmsSessionUpdateIEs, 0, sizeof(RANAP_MBMSSessionUpdateIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSSessionUpdateIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSSessionUpdate, (void**)&mBMSSessionUpdate_p);

    if (tempDecoded < 0 || mBMSSessionUpdate_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSSessionUpdateIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSSessionUpdate_p->mbmsSessionUpdate_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSSessionUpdate_p->mbmsSessionUpdate_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_SessionUpdateID:
            {
                RANAP_SessionUpdateID_t *ranaP_SessionUpdateID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SessionUpdateID, (void**)&ranaP_SessionUpdateID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE sessionUpdateID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SessionUpdateID, ranaP_SessionUpdateID_p);
                memcpy(&mbmsSessionUpdateIEs->sessionUpdateID, ranaP_SessionUpdateID_p, sizeof(RANAP_SessionUpdateID_t));
                FREEMEM(ranaP_SessionUpdateID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_DeltaRAListofIdleModeUEs:
            {
                RANAP_DeltaRAListofIdleModeUEs_t *ranaP_DeltaRAListofIdleModeUEs_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_DeltaRAListofIdleModeUEs, (void**)&ranaP_DeltaRAListofIdleModeUEs_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE deltaRAListofIdleModeUEs failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_DeltaRAListofIdleModeUEs, ranaP_DeltaRAListofIdleModeUEs_p);
                memcpy(&mbmsSessionUpdateIEs->deltaRAListofIdleModeUEs, ranaP_DeltaRAListofIdleModeUEs_p, sizeof(RANAP_DeltaRAListofIdleModeUEs_t));
                FREEMEM(ranaP_DeltaRAListofIdleModeUEs_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmssessionupdateies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSSessionUpdate, mBMSSessionUpdate_p);
    return rc;
}

int ranap_decode_mbmssessionupdateresponseies(
    RANAP_MBMSSessionUpdateResponseIEs_t *mbmsSessionUpdateResponseIEs,
    ANY_t *any_p) {

    RANAP_MBMSSessionUpdateResponse_t *mBMSSessionUpdateResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsSessionUpdateResponseIEs != NULL);

    memset(mbmsSessionUpdateResponseIEs, 0, sizeof(RANAP_MBMSSessionUpdateResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSSessionUpdateResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSSessionUpdateResponse, (void**)&mBMSSessionUpdateResponse_p);

    if (tempDecoded < 0 || mBMSSessionUpdateResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSSessionUpdateResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSSessionUpdateResponse_p->mbmsSessionUpdateResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSSessionUpdateResponse_p->mbmsSessionUpdateResponse_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_SessionUpdateID:
            {
                RANAP_SessionUpdateID_t *ranaP_SessionUpdateID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SessionUpdateID, (void**)&ranaP_SessionUpdateID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE sessionUpdateID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SessionUpdateID, ranaP_SessionUpdateID_p);
                memcpy(&mbmsSessionUpdateResponseIEs->sessionUpdateID, ranaP_SessionUpdateID_p, sizeof(RANAP_SessionUpdateID_t));
                FREEMEM(ranaP_SessionUpdateID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_TransportLayerInformation:
            {
                RANAP_TransportLayerInformation_t *ranaP_TransportLayerInformation_p = NULL;
                mbmsSessionUpdateResponseIEs->presenceMask |= MBMSSESSIONUPDATERESPONSEIES_RANAP_TRANSPORTLAYERINFORMATION_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TransportLayerInformation, (void**)&ranaP_TransportLayerInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE transportLayerInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TransportLayerInformation, ranaP_TransportLayerInformation_p);
                memcpy(&mbmsSessionUpdateResponseIEs->transportLayerInformation, ranaP_TransportLayerInformation_p, sizeof(RANAP_TransportLayerInformation_t));
                FREEMEM(ranaP_TransportLayerInformation_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                mbmsSessionUpdateResponseIEs->presenceMask |= MBMSSESSIONUPDATERESPONSEIES_RANAP_CAUSE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsSessionUpdateResponseIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsSessionUpdateResponseIEs->presenceMask |= MBMSSESSIONUPDATERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsSessionUpdateResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmssessionupdateresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSSessionUpdateResponse, mBMSSessionUpdateResponse_p);
    return rc;
}

int ranap_decode_mbmssessionupdatefailureies(
    RANAP_MBMSSessionUpdateFailureIEs_t *mbmsSessionUpdateFailureIEs,
    ANY_t *any_p) {

    RANAP_MBMSSessionUpdateFailure_t *mBMSSessionUpdateFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsSessionUpdateFailureIEs != NULL);

    memset(mbmsSessionUpdateFailureIEs, 0, sizeof(RANAP_MBMSSessionUpdateFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSSessionUpdateFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSSessionUpdateFailure, (void**)&mBMSSessionUpdateFailure_p);

    if (tempDecoded < 0 || mBMSSessionUpdateFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSSessionUpdateFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSSessionUpdateFailure_p->mbmsSessionUpdateFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSSessionUpdateFailure_p->mbmsSessionUpdateFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_SessionUpdateID:
            {
                RANAP_SessionUpdateID_t *ranaP_SessionUpdateID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SessionUpdateID, (void**)&ranaP_SessionUpdateID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE sessionUpdateID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SessionUpdateID, ranaP_SessionUpdateID_p);
                memcpy(&mbmsSessionUpdateFailureIEs->sessionUpdateID, ranaP_SessionUpdateID_p, sizeof(RANAP_SessionUpdateID_t));
                FREEMEM(ranaP_SessionUpdateID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsSessionUpdateFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsSessionUpdateFailureIEs->presenceMask |= MBMSSESSIONUPDATEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsSessionUpdateFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmssessionupdatefailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSSessionUpdateFailure, mBMSSessionUpdateFailure_p);
    return rc;
}

int ranap_decode_mbmssessionstopies(
    RANAP_MBMSSessionStopIEs_t *mbmsSessionStopIEs,
    ANY_t *any_p) {

    RANAP_MBMSSessionStop_t *mBMSSessionStop_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsSessionStopIEs != NULL);

    memset(mbmsSessionStopIEs, 0, sizeof(RANAP_MBMSSessionStopIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSSessionStopIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSSessionStop, (void**)&mBMSSessionStop_p);

    if (tempDecoded < 0 || mBMSSessionStop_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSSessionStopIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSSessionStop_p->mbmsSessionStop_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSSessionStop_p->mbmsSessionStop_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_MBMSCNDe_Registration:
            {
                RANAP_MBMSCNDe_Registration_t *ranaP_MBMSCNDeRegistration_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_MBMSCNDe_Registration, (void**)&ranaP_MBMSCNDeRegistration_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE mbmscnDe_Registration failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_MBMSCNDe_Registration, ranaP_MBMSCNDeRegistration_p);
                memcpy(&mbmsSessionStopIEs->mbmscnDe_Registration, ranaP_MBMSCNDeRegistration_p, sizeof(RANAP_MBMSCNDe_Registration_t));
                FREEMEM(ranaP_MBMSCNDeRegistration_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmssessionstopies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSSessionStop, mBMSSessionStop_p);
    return rc;
}

int ranap_decode_mbmssessionstopresponseies(
    RANAP_MBMSSessionStopResponseIEs_t *mbmsSessionStopResponseIEs,
    ANY_t *any_p) {

    RANAP_MBMSSessionStopResponse_t *mBMSSessionStopResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsSessionStopResponseIEs != NULL);

    memset(mbmsSessionStopResponseIEs, 0, sizeof(RANAP_MBMSSessionStopResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSSessionStopResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSSessionStopResponse, (void**)&mBMSSessionStopResponse_p);

    if (tempDecoded < 0 || mBMSSessionStopResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSSessionStopResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSSessionStopResponse_p->mbmsSessionStopResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSSessionStopResponse_p->mbmsSessionStopResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                mbmsSessionStopResponseIEs->presenceMask |= MBMSSESSIONSTOPRESPONSEIES_RANAP_CAUSE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsSessionStopResponseIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsSessionStopResponseIEs->presenceMask |= MBMSSESSIONSTOPRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsSessionStopResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmssessionstopresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSSessionStopResponse, mBMSSessionStopResponse_p);
    return rc;
}

int ranap_decode_mbmsuelinkingrequesties(
    RANAP_MBMSUELinkingRequestIEs_t *mbmsueLinkingRequestIEs,
    ANY_t *any_p) {

    RANAP_MBMSUELinkingRequest_t *mBMSUELinkingRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsueLinkingRequestIEs != NULL);

    memset(mbmsueLinkingRequestIEs, 0, sizeof(RANAP_MBMSUELinkingRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSUELinkingRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSUELinkingRequest, (void**)&mBMSUELinkingRequest_p);

    if (tempDecoded < 0 || mBMSUELinkingRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSUELinkingRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSUELinkingRequest_p->mbmsueLinkingRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSUELinkingRequest_p->mbmsueLinkingRequest_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_JoinedMBMSBearerServicesList:
            {
                RANAP_JoinedMBMSBearerService_IEs_t *ranaP_JoinedMBMSBearerServiceIEs_p = NULL;
                mbmsueLinkingRequestIEs->presenceMask |= MBMSUELINKINGREQUESTIES_RANAP_JOINEDMBMSBEARERSERVICE_IES_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_JoinedMBMSBearerService_IEs, (void**)&ranaP_JoinedMBMSBearerServiceIEs_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE joinedMBMSBearerServicesList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_JoinedMBMSBearerService_IEs, ranaP_JoinedMBMSBearerServiceIEs_p);
                memcpy(&mbmsueLinkingRequestIEs->joinedMBMSBearerServicesList, ranaP_JoinedMBMSBearerServiceIEs_p, sizeof(RANAP_JoinedMBMSBearerService_IEs_t));
                FREEMEM(ranaP_JoinedMBMSBearerServiceIEs_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_LeftMBMSBearerServicesList:
            {
                RANAP_LeftMBMSBearerService_IEs_t *ranaP_LeftMBMSBearerServiceIEs_p = NULL;
                mbmsueLinkingRequestIEs->presenceMask |= MBMSUELINKINGREQUESTIES_RANAP_LEFTMBMSBEARERSERVICE_IES_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_LeftMBMSBearerService_IEs, (void**)&ranaP_LeftMBMSBearerServiceIEs_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE leftMBMSBearerServicesList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_LeftMBMSBearerService_IEs, ranaP_LeftMBMSBearerServiceIEs_p);
                memcpy(&mbmsueLinkingRequestIEs->leftMBMSBearerServicesList, ranaP_LeftMBMSBearerServiceIEs_p, sizeof(RANAP_LeftMBMSBearerService_IEs_t));
                FREEMEM(ranaP_LeftMBMSBearerServiceIEs_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsuelinkingrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSUELinkingRequest, mBMSUELinkingRequest_p);
    return rc;
}

int ranap_decode_mbmsuelinkingresponseies(
    RANAP_MBMSUELinkingResponseIEs_t *mbmsueLinkingResponseIEs,
    ANY_t *any_p) {

    RANAP_MBMSUELinkingResponse_t *mBMSUELinkingResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsueLinkingResponseIEs != NULL);

    memset(mbmsueLinkingResponseIEs, 0, sizeof(RANAP_MBMSUELinkingResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSUELinkingResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSUELinkingResponse, (void**)&mBMSUELinkingResponse_p);

    if (tempDecoded < 0 || mBMSUELinkingResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSUELinkingResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSUELinkingResponse_p->mbmsueLinkingResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSUELinkingResponse_p->mbmsueLinkingResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_UnsuccessfulLinkingList:
            {
                RANAP_UnsuccessfulLinking_IEs_t *ranaP_UnsuccessfulLinkingIEs_p = NULL;
                mbmsueLinkingResponseIEs->presenceMask |= MBMSUELINKINGRESPONSEIES_RANAP_UNSUCCESSFULLINKING_IES_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_UnsuccessfulLinking_IEs, (void**)&ranaP_UnsuccessfulLinkingIEs_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE unsuccessfulLinkingList failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_UnsuccessfulLinking_IEs, ranaP_UnsuccessfulLinkingIEs_p);
                memcpy(&mbmsueLinkingResponseIEs->unsuccessfulLinkingList, ranaP_UnsuccessfulLinkingIEs_p, sizeof(RANAP_UnsuccessfulLinking_IEs_t));
                FREEMEM(ranaP_UnsuccessfulLinkingIEs_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsueLinkingResponseIEs->presenceMask |= MBMSUELINKINGRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsueLinkingResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsuelinkingresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSUELinkingResponse, mBMSUELinkingResponse_p);
    return rc;
}

int ranap_decode_mbmsregistrationrequesties(
    RANAP_MBMSRegistrationRequestIEs_t *mbmsRegistrationRequestIEs,
    ANY_t *any_p) {

    RANAP_MBMSRegistrationRequest_t *mBMSRegistrationRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsRegistrationRequestIEs != NULL);

    memset(mbmsRegistrationRequestIEs, 0, sizeof(RANAP_MBMSRegistrationRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSRegistrationRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSRegistrationRequest, (void**)&mBMSRegistrationRequest_p);

    if (tempDecoded < 0 || mBMSRegistrationRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSRegistrationRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSRegistrationRequest_p->mbmsRegistrationRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSRegistrationRequest_p->mbmsRegistrationRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_MBMSRegistrationRequestType:
            {
                RANAP_MBMSRegistrationRequestType_t *ranaP_MBMSRegistrationRequestType_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_MBMSRegistrationRequestType, (void**)&ranaP_MBMSRegistrationRequestType_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE mbmsRegistrationRequestType failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_MBMSRegistrationRequestType, ranaP_MBMSRegistrationRequestType_p);
                memcpy(&mbmsRegistrationRequestIEs->mbmsRegistrationRequestType, ranaP_MBMSRegistrationRequestType_p, sizeof(RANAP_MBMSRegistrationRequestType_t));
                FREEMEM(ranaP_MBMSRegistrationRequestType_p);
            } break;
            case RANAP_ProtocolIE_ID_id_TMGI:
            {
                RANAP_TMGI_t *ranap_tmgi_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TMGI, (void**)&ranap_tmgi_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE tmgi failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TMGI, ranap_tmgi_p);
                memcpy(&mbmsRegistrationRequestIEs->tmgi, ranap_tmgi_p, sizeof(RANAP_TMGI_t));
                FREEMEM(ranap_tmgi_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                mbmsRegistrationRequestIEs->presenceMask |= MBMSREGISTRATIONREQUESTIES_RANAP_GLOBALRNC_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&mbmsRegistrationRequestIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsregistrationrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSRegistrationRequest, mBMSRegistrationRequest_p);
    return rc;
}

int ranap_decode_mbmsregistrationresponseies(
    RANAP_MBMSRegistrationResponseIEs_t *mbmsRegistrationResponseIEs,
    ANY_t *any_p) {

    RANAP_MBMSRegistrationResponse_t *mBMSRegistrationResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsRegistrationResponseIEs != NULL);

    memset(mbmsRegistrationResponseIEs, 0, sizeof(RANAP_MBMSRegistrationResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSRegistrationResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSRegistrationResponse, (void**)&mBMSRegistrationResponse_p);

    if (tempDecoded < 0 || mBMSRegistrationResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSRegistrationResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSRegistrationResponse_p->mbmsRegistrationResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSRegistrationResponse_p->mbmsRegistrationResponse_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_TMGI:
            {
                RANAP_TMGI_t *ranap_tmgi_p = NULL;
                mbmsRegistrationResponseIEs->presenceMask |= MBMSREGISTRATIONRESPONSEIES_RANAP_TMGI_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TMGI, (void**)&ranap_tmgi_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE tmgi failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TMGI, ranap_tmgi_p);
                memcpy(&mbmsRegistrationResponseIEs->tmgi, ranap_tmgi_p, sizeof(RANAP_TMGI_t));
                FREEMEM(ranap_tmgi_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_ID:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                mbmsRegistrationResponseIEs->presenceMask |= MBMSREGISTRATIONRESPONSEIES_RANAP_GLOBALCN_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&mbmsRegistrationResponseIEs->globalCN_ID, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsRegistrationResponseIEs->presenceMask |= MBMSREGISTRATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsRegistrationResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsregistrationresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSRegistrationResponse, mBMSRegistrationResponse_p);
    return rc;
}

int ranap_decode_mbmsregistrationfailureies(
    RANAP_MBMSRegistrationFailureIEs_t *mbmsRegistrationFailureIEs,
    ANY_t *any_p) {

    RANAP_MBMSRegistrationFailure_t *mBMSRegistrationFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsRegistrationFailureIEs != NULL);

    memset(mbmsRegistrationFailureIEs, 0, sizeof(RANAP_MBMSRegistrationFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSRegistrationFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSRegistrationFailure, (void**)&mBMSRegistrationFailure_p);

    if (tempDecoded < 0 || mBMSRegistrationFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSRegistrationFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSRegistrationFailure_p->mbmsRegistrationFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSRegistrationFailure_p->mbmsRegistrationFailure_ies.list.array[i];
        switch(ie_p->id) {
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_TMGI:
            {
                RANAP_TMGI_t *ranap_tmgi_p = NULL;
                mbmsRegistrationFailureIEs->presenceMask |= MBMSREGISTRATIONFAILUREIES_RANAP_TMGI_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TMGI, (void**)&ranap_tmgi_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE tmgi failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TMGI, ranap_tmgi_p);
                memcpy(&mbmsRegistrationFailureIEs->tmgi, ranap_tmgi_p, sizeof(RANAP_TMGI_t));
                FREEMEM(ranap_tmgi_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_ID:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                mbmsRegistrationFailureIEs->presenceMask |= MBMSREGISTRATIONFAILUREIES_RANAP_GLOBALCN_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&mbmsRegistrationFailureIEs->globalCN_ID, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsRegistrationFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsRegistrationFailureIEs->presenceMask |= MBMSREGISTRATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsRegistrationFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsregistrationfailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSRegistrationFailure, mBMSRegistrationFailure_p);
    return rc;
}

int ranap_decode_mbmscnde_registrationrequesties(
    RANAP_MBMSCNDe_RegistrationRequestIEs_t *mbmscnDe_RegistrationRequestIEs,
    ANY_t *any_p) {

    RANAP_MBMSCNDe_RegistrationRequest_t *mBMSCNDe_RegistrationRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmscnDe_RegistrationRequestIEs != NULL);

    memset(mbmscnDe_RegistrationRequestIEs, 0, sizeof(RANAP_MBMSCNDe_RegistrationRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSCNDe_RegistrationRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSCNDe_RegistrationRequest, (void**)&mBMSCNDe_RegistrationRequest_p);

    if (tempDecoded < 0 || mBMSCNDe_RegistrationRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSCNDe_RegistrationRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSCNDe_RegistrationRequest_p->mbmscnDe_RegistrationRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSCNDe_RegistrationRequest_p->mbmscnDe_RegistrationRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_TMGI:
            {
                RANAP_TMGI_t *ranap_tmgi_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TMGI, (void**)&ranap_tmgi_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE tmgi failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TMGI, ranap_tmgi_p);
                memcpy(&mbmscnDe_RegistrationRequestIEs->tmgi, ranap_tmgi_p, sizeof(RANAP_TMGI_t));
                FREEMEM(ranap_tmgi_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_GlobalCN_ID:
            {
                RANAP_GlobalCN_ID_t *ranaP_GlobalCNID_p = NULL;
                mbmscnDe_RegistrationRequestIEs->presenceMask |= MBMSCNDE_REGISTRATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalCN_ID, (void**)&ranaP_GlobalCNID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalCN_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalCN_ID, ranaP_GlobalCNID_p);
                memcpy(&mbmscnDe_RegistrationRequestIEs->globalCN_ID, ranaP_GlobalCNID_p, sizeof(RANAP_GlobalCN_ID_t));
                FREEMEM(ranaP_GlobalCNID_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmscnde_registrationrequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSCNDe_RegistrationRequest, mBMSCNDe_RegistrationRequest_p);
    return rc;
}

int ranap_decode_mbmscnde_registrationresponseies(
    RANAP_MBMSCNDe_RegistrationResponseIEs_t *mbmscnDe_RegistrationResponseIEs,
    ANY_t *any_p) {

    RANAP_MBMSCNDe_RegistrationResponse_t *mBMSCNDe_RegistrationResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmscnDe_RegistrationResponseIEs != NULL);

    memset(mbmscnDe_RegistrationResponseIEs, 0, sizeof(RANAP_MBMSCNDe_RegistrationResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSCNDe_RegistrationResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSCNDe_RegistrationResponse, (void**)&mBMSCNDe_RegistrationResponse_p);

    if (tempDecoded < 0 || mBMSCNDe_RegistrationResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSCNDe_RegistrationResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSCNDe_RegistrationResponse_p->mbmscnDe_RegistrationResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSCNDe_RegistrationResponse_p->mbmscnDe_RegistrationResponse_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_TMGI:
            {
                RANAP_TMGI_t *ranap_tmgi_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TMGI, (void**)&ranap_tmgi_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE tmgi failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TMGI, ranap_tmgi_p);
                memcpy(&mbmscnDe_RegistrationResponseIEs->tmgi, ranap_tmgi_p, sizeof(RANAP_TMGI_t));
                FREEMEM(ranap_tmgi_p);
            } break;
            case RANAP_ProtocolIE_ID_id_GlobalRNC_ID:
            {
                RANAP_GlobalRNC_ID_t *ranaP_GlobalRNCID_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_GlobalRNC_ID, (void**)&ranaP_GlobalRNCID_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE globalRNC_ID failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_GlobalRNC_ID, ranaP_GlobalRNCID_p);
                memcpy(&mbmscnDe_RegistrationResponseIEs->globalRNC_ID, ranaP_GlobalRNCID_p, sizeof(RANAP_GlobalRNC_ID_t));
                FREEMEM(ranaP_GlobalRNCID_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                mbmscnDe_RegistrationResponseIEs->presenceMask |= MBMSCNDE_REGISTRATIONRESPONSEIES_RANAP_CAUSE_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmscnDe_RegistrationResponseIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmscnDe_RegistrationResponseIEs->presenceMask |= MBMSCNDE_REGISTRATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmscnDe_RegistrationResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmscnde_registrationresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSCNDe_RegistrationResponse, mBMSCNDe_RegistrationResponse_p);
    return rc;
}

int ranap_decode_mbmsrabestablishmentindicationies(
    RANAP_MBMSRABEstablishmentIndicationIEs_t *mbmsrabEstablishmentIndicationIEs,
    ANY_t *any_p) {

    RANAP_MBMSRABEstablishmentIndication_t *mBMSRABEstablishmentIndication_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsrabEstablishmentIndicationIEs != NULL);

    memset(mbmsrabEstablishmentIndicationIEs, 0, sizeof(RANAP_MBMSRABEstablishmentIndicationIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSRABEstablishmentIndicationIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSRABEstablishmentIndication, (void**)&mBMSRABEstablishmentIndication_p);

    if (tempDecoded < 0 || mBMSRABEstablishmentIndication_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSRABEstablishmentIndicationIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSRABEstablishmentIndication_p->mbmsrabEstablishmentIndication_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSRABEstablishmentIndication_p->mbmsrabEstablishmentIndication_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_TransportLayerInformation:
            {
                RANAP_TransportLayerInformation_t *ranaP_TransportLayerInformation_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_TransportLayerInformation, (void**)&ranaP_TransportLayerInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE transportLayerInformation failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_TransportLayerInformation, ranaP_TransportLayerInformation_p);
                memcpy(&mbmsrabEstablishmentIndicationIEs->transportLayerInformation, ranaP_TransportLayerInformation_p, sizeof(RANAP_TransportLayerInformation_t));
                FREEMEM(ranaP_TransportLayerInformation_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsrabestablishmentindicationies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSRABEstablishmentIndication, mBMSRABEstablishmentIndication_p);
    return rc;
}

int ranap_decode_mbmsrabreleaserequesties(
    RANAP_MBMSRABReleaseRequestIEs_t *mbmsrabReleaseRequestIEs,
    ANY_t *any_p) {

    RANAP_MBMSRABReleaseRequest_t *mBMSRABReleaseRequest_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsrabReleaseRequestIEs != NULL);

    memset(mbmsrabReleaseRequestIEs, 0, sizeof(RANAP_MBMSRABReleaseRequestIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSRABReleaseRequestIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSRABReleaseRequest, (void**)&mBMSRABReleaseRequest_p);

    if (tempDecoded < 0 || mBMSRABReleaseRequest_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSRABReleaseRequestIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSRABReleaseRequest_p->mbmsrabReleaseRequest_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSRABReleaseRequest_p->mbmsrabReleaseRequest_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsrabReleaseRequestIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsrabreleaserequesties\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSRABReleaseRequest, mBMSRABReleaseRequest_p);
    return rc;
}

int ranap_decode_mbmsrabreleaseies(
    RANAP_MBMSRABReleaseIEs_t *mbmsrabReleaseIEs,
    ANY_t *any_p) {

    RANAP_MBMSRABRelease_t *mBMSRABRelease_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsrabReleaseIEs != NULL);

    memset(mbmsrabReleaseIEs, 0, sizeof(RANAP_MBMSRABReleaseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSRABReleaseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSRABRelease, (void**)&mBMSRABRelease_p);

    if (tempDecoded < 0 || mBMSRABRelease_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSRABReleaseIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSRABRelease_p->mbmsrabRelease_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSRABRelease_p->mbmsrabRelease_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsrabReleaseIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsrabReleaseIEs->presenceMask |= MBMSRABRELEASEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsrabReleaseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsrabreleaseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSRABRelease, mBMSRABRelease_p);
    return rc;
}

int ranap_decode_mbmsrabreleasefailureies(
    RANAP_MBMSRABReleaseFailureIEs_t *mbmsrabReleaseFailureIEs,
    ANY_t *any_p) {

    RANAP_MBMSRABReleaseFailure_t *mBMSRABReleaseFailure_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(mbmsrabReleaseFailureIEs != NULL);

    memset(mbmsrabReleaseFailureIEs, 0, sizeof(RANAP_MBMSRABReleaseFailureIEs_t));
    RANAP_DEBUG("Decoding message RANAP_MBMSRABReleaseFailureIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_MBMSRABReleaseFailure, (void**)&mBMSRABReleaseFailure_p);

    if (tempDecoded < 0 || mBMSRABReleaseFailure_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_MBMSRABReleaseFailureIEs failed\n");
        return -1;
    }

    for (i = 0; i < mBMSRABReleaseFailure_p->mbmsrabReleaseFailure_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = mBMSRABReleaseFailure_p->mbmsrabReleaseFailure_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_Cause:
            {
                RANAP_Cause_t *ranaP_Cause_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_Cause, (void**)&ranaP_Cause_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE cause failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_Cause, ranaP_Cause_p);
                memcpy(&mbmsrabReleaseFailureIEs->cause, ranaP_Cause_p, sizeof(RANAP_Cause_t));
                FREEMEM(ranaP_Cause_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                mbmsrabReleaseFailureIEs->presenceMask |= MBMSRABRELEASEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&mbmsrabReleaseFailureIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message mbmsrabreleasefailureies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_MBMSRABReleaseFailure, mBMSRABReleaseFailure_p);
    return rc;
}

int ranap_decode_srvcc_cskeysresponseies(
    RANAP_SRVCC_CSKeysResponseIEs_t *srvcC_CSKeysResponseIEs,
    ANY_t *any_p) {

    RANAP_SRVCC_CSKeysResponse_t *sRVCC_CSKeysResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(srvcC_CSKeysResponseIEs != NULL);

    memset(srvcC_CSKeysResponseIEs, 0, sizeof(RANAP_SRVCC_CSKeysResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_SRVCC_CSKeysResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_SRVCC_CSKeysResponse, (void**)&sRVCC_CSKeysResponse_p);

    if (tempDecoded < 0 || sRVCC_CSKeysResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_SRVCC_CSKeysResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < sRVCC_CSKeysResponse_p->srvcC_CSKeysResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = sRVCC_CSKeysResponse_p->srvcC_CSKeysResponse_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_IntegrityProtectionKey:
            {
                RANAP_IntegrityProtectionKey_t *ranaP_IntegrityProtectionKey_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_IntegrityProtectionKey, (void**)&ranaP_IntegrityProtectionKey_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE integrityProtectionKey failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_IntegrityProtectionKey, ranaP_IntegrityProtectionKey_p);
                memcpy(&srvcC_CSKeysResponseIEs->integrityProtectionKey, ranaP_IntegrityProtectionKey_p, sizeof(RANAP_IntegrityProtectionKey_t));
                FREEMEM(ranaP_IntegrityProtectionKey_p);
            } break;
            case RANAP_ProtocolIE_ID_id_EncryptionKey:
            {
                RANAP_EncryptionKey_t *ranaP_EncryptionKey_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_EncryptionKey, (void**)&ranaP_EncryptionKey_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE encryptionKey failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_EncryptionKey, ranaP_EncryptionKey_p);
                memcpy(&srvcC_CSKeysResponseIEs->encryptionKey, ranaP_EncryptionKey_p, sizeof(RANAP_EncryptionKey_t));
                FREEMEM(ranaP_EncryptionKey_p);
            } break;
            case RANAP_ProtocolIE_ID_id_SRVCC_Information:
            {
                RANAP_SRVCC_Information_t *ranaP_SRVCCInformation_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_SRVCC_Information, (void**)&ranaP_SRVCCInformation_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE srvcC_Information failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_SRVCC_Information, ranaP_SRVCCInformation_p);
                memcpy(&srvcC_CSKeysResponseIEs->srvcC_Information, ranaP_SRVCCInformation_p, sizeof(RANAP_SRVCC_Information_t));
                FREEMEM(ranaP_SRVCCInformation_p);
            } break;
            /* Optional field */
            case RANAP_ProtocolIE_ID_id_CriticalityDiagnostics:
            {
                RANAP_CriticalityDiagnostics_t *ranaP_CriticalityDiagnostics_p = NULL;
                srvcC_CSKeysResponseIEs->presenceMask |= SRVCC_CSKEYSRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_CriticalityDiagnostics, (void**)&ranaP_CriticalityDiagnostics_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE criticalityDiagnostics failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_CriticalityDiagnostics, ranaP_CriticalityDiagnostics_p);
                memcpy(&srvcC_CSKeysResponseIEs->criticalityDiagnostics, ranaP_CriticalityDiagnostics_p, sizeof(RANAP_CriticalityDiagnostics_t));
                FREEMEM(ranaP_CriticalityDiagnostics_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message srvcc_cskeysresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_SRVCC_CSKeysResponse, sRVCC_CSKeysResponse_p);
    return rc;
}

int ranap_decode_ueradiocapabilitymatchresponseies(
    RANAP_UeRadioCapabilityMatchResponseIEs_t *ueRadioCapabilityMatchResponseIEs,
    ANY_t *any_p) {

    RANAP_UeRadioCapabilityMatchResponse_t *ueRadioCapabilityMatchResponse_p = NULL;
    int i, decoded = 0;
    int tempDecoded = 0;
    int rc = -1;
    assert(any_p != NULL);
    assert(ueRadioCapabilityMatchResponseIEs != NULL);

    memset(ueRadioCapabilityMatchResponseIEs, 0, sizeof(RANAP_UeRadioCapabilityMatchResponseIEs_t));
    RANAP_DEBUG("Decoding message RANAP_UeRadioCapabilityMatchResponseIEs (%s:%d)\n", __FILE__, __LINE__);

    tempDecoded = ANY_to_type_aper(any_p, &asn_DEF_RANAP_UeRadioCapabilityMatchResponse, (void**)&ueRadioCapabilityMatchResponse_p);

    if (tempDecoded < 0 || ueRadioCapabilityMatchResponse_p == NULL) {
        RANAP_DEBUG("Decoding of message RANAP_UeRadioCapabilityMatchResponseIEs failed\n");
        return -1;
    }

    for (i = 0; i < ueRadioCapabilityMatchResponse_p->ueRadioCapabilityMatchResponse_ies.list.count; i++) {
        RANAP_IE_t *ie_p;
        ie_p = ueRadioCapabilityMatchResponse_p->ueRadioCapabilityMatchResponse_ies.list.array[i];
        switch(ie_p->id) {
            case RANAP_ProtocolIE_ID_id_VoiceSupportMatchIndicator:
            {
                RANAP_VoiceSupportMatchIndicator_t *ranaP_VoiceSupportMatchIndicator_p = NULL;
                tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_RANAP_VoiceSupportMatchIndicator, (void**)&ranaP_VoiceSupportMatchIndicator_p);
                if (tempDecoded < 0) {
                    RANAP_DEBUG("Decoding of IE voiceSupportMatchIndicator failed\n");
                    goto free_and_return_rc;
                }
                decoded += tempDecoded;
                if (asn1_xer_print)
                    xer_fprint(stdout, &asn_DEF_RANAP_VoiceSupportMatchIndicator, ranaP_VoiceSupportMatchIndicator_p);
                memcpy(&ueRadioCapabilityMatchResponseIEs->voiceSupportMatchIndicator, ranaP_VoiceSupportMatchIndicator_p, sizeof(RANAP_VoiceSupportMatchIndicator_t));
                FREEMEM(ranaP_VoiceSupportMatchIndicator_p);
            } break;
            default:
                RANAP_DEBUG("Unknown protocol IE id (%d) for message ueradiocapabilitymatchresponseies\n", (int)ie_p->id);
                goto free_and_return_rc;
        }
    }
    rc = decoded;

free_and_return_rc:
    ASN_STRUCT_FREE(asn_DEF_RANAP_UeRadioCapabilityMatchResponse, ueRadioCapabilityMatchResponse_p);
    return rc;
}

int ranap_free_iu_releasecommandies(
    RANAP_Iu_ReleaseCommandIEs_t *iu_ReleaseCommandIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &iu_ReleaseCommandIEs->cause);
    return 0;
}

int ranap_free_iu_releasecompleteies(
    RANAP_Iu_ReleaseCompleteIEs_t *iu_ReleaseCompleteIEs) {

    /* Optional field */
    if ((iu_ReleaseCompleteIEs->presenceMask & IU_RELEASECOMPLETEIES_RANAP_RAB_DATAVOLUMEREPORTLIST_PRESENT)
        == IU_RELEASECOMPLETEIES_RANAP_RAB_DATAVOLUMEREPORTLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataVolumeReportList, &iu_ReleaseCompleteIEs->raB_DataVolumeReportList);
    /* Optional field */
    if ((iu_ReleaseCompleteIEs->presenceMask & IU_RELEASECOMPLETEIES_RANAP_RAB_RELEASEDLIST_IURELCOMP_PRESENT)
        == IU_RELEASECOMPLETEIES_RANAP_RAB_RELEASEDLIST_IURELCOMP_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ReleasedList_IuRelComp, &iu_ReleaseCompleteIEs->raB_ReleasedList_IuRelComp);
    /* Optional field */
    if ((iu_ReleaseCompleteIEs->presenceMask & IU_RELEASECOMPLETEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == IU_RELEASECOMPLETEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &iu_ReleaseCompleteIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_rab_datavolumereportitemies(
    RANAP_RAB_DataVolumeReportItemIEs_t *raB_DataVolumeReportItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataVolumeReportItem, &raB_DataVolumeReportItemIEs->raB_DataVolumeReportItem);
    return 0;
}

int ranap_free_rab_releaseditem_iurelcomp_ies(
    RANAP_RAB_ReleasedItem_IuRelComp_IEs_t *raB_ReleasedItem_IuRelComp_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ReleasedItem_IuRelComp, &raB_ReleasedItem_IuRelComp_IEs->raB_ReleasedItem_IuRelComp);
    return 0;
}

int ranap_free_relocationrequiredies(
    RANAP_RelocationRequiredIEs_t *relocationRequiredIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RelocationType, &relocationRequiredIEs->relocationType);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &relocationRequiredIEs->cause);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SourceID, &relocationRequiredIEs->sourceID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TargetID, &relocationRequiredIEs->targetID);
    /* Optional field */
    if ((relocationRequiredIEs->presenceMask & RELOCATIONREQUIREDIES_RANAP_OLDBSS_TONEWBSS_INFORMATION_PRESENT)
        == RELOCATIONREQUIREDIES_RANAP_OLDBSS_TONEWBSS_INFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_OldBSS_ToNewBSS_Information, &relocationRequiredIEs->oldBSS_ToNewBSS_Information);
    return 0;
}

int ranap_free_relocationcommandies(
    RANAP_RelocationCommandIEs_t *relocationCommandIEs) {

    /* Optional field */
    if ((relocationCommandIEs->presenceMask & RELOCATIONCOMMANDIES_RANAP_L3_INFORMATION_PRESENT)
        == RELOCATIONCOMMANDIES_RANAP_L3_INFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_L3_Information, &relocationCommandIEs->l3_Information);
    /* Optional field */
    if ((relocationCommandIEs->presenceMask & RELOCATIONCOMMANDIES_RANAP_RAB_RELOCATIONRELEASELIST_PRESENT)
        == RELOCATIONCOMMANDIES_RANAP_RAB_RELOCATIONRELEASELIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_RelocationReleaseList, &relocationCommandIEs->raB_RelocationReleaseList);
    /* Optional field */
    if ((relocationCommandIEs->presenceMask & RELOCATIONCOMMANDIES_RANAP_RAB_DATAFORWARDINGLIST_PRESENT)
        == RELOCATIONCOMMANDIES_RANAP_RAB_DATAFORWARDINGLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataForwardingList, &relocationCommandIEs->raB_DataForwardingList);
    /* Optional field */
    if ((relocationCommandIEs->presenceMask & RELOCATIONCOMMANDIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RELOCATIONCOMMANDIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &relocationCommandIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_rab_relocationreleaseitemies(
    RANAP_RAB_RelocationReleaseItemIEs_t *raB_RelocationReleaseItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_RelocationReleaseItem, &raB_RelocationReleaseItemIEs->raB_RelocationReleaseItem);
    return 0;
}

int ranap_free_rab_dataforwardingitemies(
    RANAP_RAB_DataForwardingItemIEs_t *raB_DataForwardingItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataForwardingItem, &raB_DataForwardingItemIEs->raB_DataForwardingItem);
    return 0;
}

int ranap_free_relocationpreparationfailureies(
    RANAP_RelocationPreparationFailureIEs_t *relocationPreparationFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &relocationPreparationFailureIEs->cause);
    /* Optional field */
    if ((relocationPreparationFailureIEs->presenceMask & RELOCATIONPREPARATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RELOCATIONPREPARATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &relocationPreparationFailureIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_relocationrequesties(
    RANAP_RelocationRequestIEs_t *relocationRequestIEs) {

    /* Optional field */
    if ((relocationRequestIEs->presenceMask & RELOCATIONREQUESTIES_RANAP_PERMANENTNAS_UE_ID_PRESENT)
        == RELOCATIONREQUESTIES_RANAP_PERMANENTNAS_UE_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_PermanentNAS_UE_ID, &relocationRequestIEs->permanentNAS_UE_ID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &relocationRequestIEs->cause);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &relocationRequestIEs->cN_DomainIndicator);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer, &relocationRequestIEs->source_ToTarget_TransparentContainer);
    /* Optional field */
    if ((relocationRequestIEs->presenceMask & RELOCATIONREQUESTIES_RANAP_RAB_SETUPLIST_RELOCREQ_PRESENT)
        == RELOCATIONREQUESTIES_RANAP_RAB_SETUPLIST_RELOCREQ_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupList_RelocReq, &relocationRequestIEs->raB_SetupList_RelocReq);
    /* Optional field */
    if ((relocationRequestIEs->presenceMask & RELOCATIONREQUESTIES_RANAP_INTEGRITYPROTECTIONINFORMATION_PRESENT)
        == RELOCATIONREQUESTIES_RANAP_INTEGRITYPROTECTIONINFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IntegrityProtectionInformation, &relocationRequestIEs->integrityProtectionInformation);
    /* Optional field */
    if ((relocationRequestIEs->presenceMask & RELOCATIONREQUESTIES_RANAP_ENCRYPTIONINFORMATION_PRESENT)
        == RELOCATIONREQUESTIES_RANAP_ENCRYPTIONINFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_EncryptionInformation, &relocationRequestIEs->encryptionInformation);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IuSignallingConnectionIdentifier, &relocationRequestIEs->iuSigConId);
    return 0;
}

int ranap_free_rab_setupitem_relocreq_ies(
    RANAP_RAB_SetupItem_RelocReq_IEs_t *raB_SetupItem_RelocReq_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupItem_RelocReq, &raB_SetupItem_RelocReq_IEs->raB_SetupItem_RelocReq);
    return 0;
}

int ranap_free_relocationrequestacknowledgeies(
    RANAP_RelocationRequestAcknowledgeIEs_t *relocationRequestAcknowledgeIEs) {

    /* Optional field */
    if ((relocationRequestAcknowledgeIEs->presenceMask & RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_PRESENT)
        == RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer, &relocationRequestAcknowledgeIEs->target_ToSource_TransparentContainer);
    /* Optional field */
    if ((relocationRequestAcknowledgeIEs->presenceMask & RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_RAB_SETUPLIST_RELOCREQACK_PRESENT)
        == RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_RAB_SETUPLIST_RELOCREQACK_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupList_RelocReqAck, &relocationRequestAcknowledgeIEs->raB_SetupList_RelocReqAck);
    /* Optional field */
    if ((relocationRequestAcknowledgeIEs->presenceMask & RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_RAB_FAILEDLIST_PRESENT)
        == RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_RAB_FAILEDLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_FailedList, &relocationRequestAcknowledgeIEs->raB_FailedList);
    /* Optional field */
    if ((relocationRequestAcknowledgeIEs->presenceMask & RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CHOSENINTEGRITYPROTECTIONALGORITHM_PRESENT)
        == RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CHOSENINTEGRITYPROTECTIONALGORITHM_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm, &relocationRequestAcknowledgeIEs->chosenIntegrityProtectionAlgorithm);
    /* Optional field */
    if ((relocationRequestAcknowledgeIEs->presenceMask & RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CHOSENENCRYPTIONALGORITHM_PRESENT)
        == RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CHOSENENCRYPTIONALGORITHM_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ChosenEncryptionAlgorithm, &relocationRequestAcknowledgeIEs->chosenEncryptionAlgorithm);
    /* Optional field */
    if ((relocationRequestAcknowledgeIEs->presenceMask & RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RELOCATIONREQUESTACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &relocationRequestAcknowledgeIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_rab_setupitem_relocreqack_ies(
    RANAP_RAB_SetupItem_RelocReqAck_IEs_t *raB_SetupItem_RelocReqAck_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupItem_RelocReqAck, &raB_SetupItem_RelocReqAck_IEs->raB_SetupItem_RelocReqAck);
    return 0;
}

int ranap_free_rab_faileditemies(
    RANAP_RAB_FailedItemIEs_t *raB_FailedItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_FailedItem, &raB_FailedItemIEs->raB_FailedItem);
    return 0;
}

int ranap_free_relocationfailureies(
    RANAP_RelocationFailureIEs_t *relocationFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &relocationFailureIEs->cause);
    /* Optional field */
    if ((relocationFailureIEs->presenceMask & RELOCATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RELOCATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &relocationFailureIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_relocationcancelies(
    RANAP_RelocationCancelIEs_t *relocationCancelIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &relocationCancelIEs->cause);
    return 0;
}

int ranap_free_relocationcancelacknowledgeies(
    RANAP_RelocationCancelAcknowledgeIEs_t *relocationCancelAcknowledgeIEs) {

    /* Optional field */
    if ((relocationCancelAcknowledgeIEs->presenceMask & RELOCATIONCANCELACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RELOCATIONCANCELACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &relocationCancelAcknowledgeIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_srns_contextrequesties(
    RANAP_SRNS_ContextRequestIEs_t *srnS_ContextRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataForwardingList_SRNS_CtxReq, &srnS_ContextRequestIEs->raB_DataForwardingList_SRNS_CtxReq);
    return 0;
}

int ranap_free_rab_dataforwardingitem_srns_ctxreq_ies(
    RANAP_RAB_DataForwardingItem_SRNS_CtxReq_IEs_t *raB_DataForwardingItem_SRNS_CtxReq_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataForwardingItem_SRNS_CtxReq, &raB_DataForwardingItem_SRNS_CtxReq_IEs->raB_DataForwardingItem_SRNS_CtxReq);
    return 0;
}

int ranap_free_srns_contextresponseies(
    RANAP_SRNS_ContextResponseIEs_t *srnS_ContextResponseIEs) {

    /* Optional field */
    if ((srnS_ContextResponseIEs->presenceMask & SRNS_CONTEXTRESPONSEIES_RANAP_RAB_CONTEXTLIST_PRESENT)
        == SRNS_CONTEXTRESPONSEIES_RANAP_RAB_CONTEXTLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ContextList, &srnS_ContextResponseIEs->raB_ContextList);
    /* Optional field */
    if ((srnS_ContextResponseIEs->presenceMask & SRNS_CONTEXTRESPONSEIES_RANAP_RABS_CONTEXTFAILEDTOTRANSFERLIST_PRESENT)
        == SRNS_CONTEXTRESPONSEIES_RANAP_RABS_CONTEXTFAILEDTOTRANSFERLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RABs_ContextFailedtoTransferList, &srnS_ContextResponseIEs->raB_ContextFailedtoTransferList);
    /* Optional field */
    if ((srnS_ContextResponseIEs->presenceMask & SRNS_CONTEXTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == SRNS_CONTEXTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &srnS_ContextResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_rab_contextitemies(
    RANAP_RAB_ContextItemIEs_t *raB_ContextItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ContextItem, &raB_ContextItemIEs->raB_ContextItem);
    return 0;
}

int ranap_free_rabs_contextfailedtotransferitemies(
    RANAP_RABs_ContextFailedtoTransferItemIEs_t *raBs_ContextFailedtoTransferItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RABs_ContextFailedtoTransferItem, &raBs_ContextFailedtoTransferItemIEs->raB_ContextFailedtoTransferItem);
    return 0;
}

int ranap_free_securitymodecommandies(
    RANAP_SecurityModeCommandIEs_t *securityModeCommandIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IntegrityProtectionInformation, &securityModeCommandIEs->integrityProtectionInformation);
    /* Optional field */
    if ((securityModeCommandIEs->presenceMask & SECURITYMODECOMMANDIES_RANAP_ENCRYPTIONINFORMATION_PRESENT)
        == SECURITYMODECOMMANDIES_RANAP_ENCRYPTIONINFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_EncryptionInformation, &securityModeCommandIEs->encryptionInformation);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_KeyStatus, &securityModeCommandIEs->keyStatus);
    return 0;
}

int ranap_free_securitymodecompleteies(
    RANAP_SecurityModeCompleteIEs_t *securityModeCompleteIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ChosenIntegrityProtectionAlgorithm, &securityModeCompleteIEs->chosenIntegrityProtectionAlgorithm);
    /* Optional field */
    if ((securityModeCompleteIEs->presenceMask & SECURITYMODECOMPLETEIES_RANAP_CHOSENENCRYPTIONALGORITHM_PRESENT)
        == SECURITYMODECOMPLETEIES_RANAP_CHOSENENCRYPTIONALGORITHM_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ChosenEncryptionAlgorithm, &securityModeCompleteIEs->chosenEncryptionAlgorithm);
    /* Optional field */
    if ((securityModeCompleteIEs->presenceMask & SECURITYMODECOMPLETEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == SECURITYMODECOMPLETEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &securityModeCompleteIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_securitymoderejecties(
    RANAP_SecurityModeRejectIEs_t *securityModeRejectIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &securityModeRejectIEs->cause);
    /* Optional field */
    if ((securityModeRejectIEs->presenceMask & SECURITYMODEREJECTIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == SECURITYMODEREJECTIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &securityModeRejectIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_datavolumereportrequesties(
    RANAP_DataVolumeReportRequestIEs_t *dataVolumeReportRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataVolumeReportRequestList, &dataVolumeReportRequestIEs->raB_DataVolumeReportRequestList);
    return 0;
}

int ranap_free_rab_datavolumereportrequestitemies(
    RANAP_RAB_DataVolumeReportRequestItemIEs_t *raB_DataVolumeReportRequestItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataVolumeReportRequestItem, &raB_DataVolumeReportRequestItemIEs->raB_DataVolumeReportRequestItem);
    return 0;
}

int ranap_free_datavolumereporties(
    RANAP_DataVolumeReportIEs_t *dataVolumeReportIEs) {

    /* Optional field */
    if ((dataVolumeReportIEs->presenceMask & DATAVOLUMEREPORTIES_RANAP_RAB_DATAVOLUMEREPORTLIST_PRESENT)
        == DATAVOLUMEREPORTIES_RANAP_RAB_DATAVOLUMEREPORTLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataVolumeReportList, &dataVolumeReportIEs->raB_DataVolumeReportList);
    /* Optional field */
    if ((dataVolumeReportIEs->presenceMask & DATAVOLUMEREPORTIES_RANAP_RABS_FAILED_TO_REPORTLIST_PRESENT)
        == DATAVOLUMEREPORTIES_RANAP_RABS_FAILED_TO_REPORTLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RABs_failed_to_reportList, &dataVolumeReportIEs->raB_FailedtoReportList);
    /* Optional field */
    if ((dataVolumeReportIEs->presenceMask & DATAVOLUMEREPORTIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == DATAVOLUMEREPORTIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &dataVolumeReportIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_rabs_failed_to_reportitemies(
    RANAP_RABs_failed_to_reportItemIEs_t *raBs_failed_to_reportItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RABs_failed_to_reportItem, &raBs_failed_to_reportItemIEs->raB_FailedtoReportItem);
    return 0;
}

int ranap_free_reseties(
    RANAP_ResetIEs_t *resetIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &resetIEs->cause);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &resetIEs->cN_DomainIndicator);
    /* Optional field */
    if ((resetIEs->presenceMask & RESETIES_RANAP_GLOBALRNC_ID_PRESENT)
        == RESETIES_RANAP_GLOBALRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &resetIEs->globalRNC_ID);
    return 0;
}

int ranap_free_resetacknowledgeies(
    RANAP_ResetAcknowledgeIEs_t *resetAcknowledgeIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &resetAcknowledgeIEs->cN_DomainIndicator);
    /* Optional field */
    if ((resetAcknowledgeIEs->presenceMask & RESETACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RESETACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &resetAcknowledgeIEs->criticalityDiagnostics);
    /* Optional field */
    if ((resetAcknowledgeIEs->presenceMask & RESETACKNOWLEDGEIES_RANAP_GLOBALRNC_ID_PRESENT)
        == RESETACKNOWLEDGEIES_RANAP_GLOBALRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &resetAcknowledgeIEs->globalRNC_ID);
    return 0;
}

int ranap_free_resetresourceies(
    RANAP_ResetResourceIEs_t *resetResourceIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &resetResourceIEs->cN_DomainIndicator);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &resetResourceIEs->cause);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ResetResourceList, &resetResourceIEs->iuSigConIdList);
    /* Optional field */
    if ((resetResourceIEs->presenceMask & RESETRESOURCEIES_RANAP_GLOBALRNC_ID_PRESENT)
        == RESETRESOURCEIES_RANAP_GLOBALRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &resetResourceIEs->globalRNC_ID);
    return 0;
}

int ranap_free_resetresourceitemies(
    RANAP_ResetResourceItemIEs_t *resetResourceItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ResetResourceItem, &resetResourceItemIEs->iuSigConIdItem);
    return 0;
}

int ranap_free_resetresourceacknowledgeies(
    RANAP_ResetResourceAcknowledgeIEs_t *resetResourceAcknowledgeIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &resetResourceAcknowledgeIEs->cN_DomainIndicator);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ResetResourceAckList, &resetResourceAcknowledgeIEs->iuSigConIdList);
    /* Optional field */
    if ((resetResourceAcknowledgeIEs->presenceMask & RESETRESOURCEACKNOWLEDGEIES_RANAP_GLOBALRNC_ID_PRESENT)
        == RESETRESOURCEACKNOWLEDGEIES_RANAP_GLOBALRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &resetResourceAcknowledgeIEs->globalRNC_ID);
    /* Optional field */
    if ((resetResourceAcknowledgeIEs->presenceMask & RESETRESOURCEACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RESETRESOURCEACKNOWLEDGEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &resetResourceAcknowledgeIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_resetresourceackitemies(
    RANAP_ResetResourceAckItemIEs_t *resetResourceAckItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ResetResourceAckItem, &resetResourceAckItemIEs->iuSigConIdItem);
    return 0;
}

int ranap_free_rab_releaserequesties(
    RANAP_RAB_ReleaseRequestIEs_t *raB_ReleaseRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ReleaseList, &raB_ReleaseRequestIEs->raB_ReleaseList);
    return 0;
}

int ranap_free_rab_releaseitemies(
    RANAP_RAB_ReleaseItemIEs_t *raB_ReleaseItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ReleaseItem, &raB_ReleaseItemIEs->raB_ReleaseItem);
    return 0;
}

int ranap_free_iu_releaserequesties(
    RANAP_Iu_ReleaseRequestIEs_t *iu_ReleaseRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &iu_ReleaseRequestIEs->cause);
    return 0;
}

int ranap_free_enhancedrelocationcompleterequesties(
    RANAP_EnhancedRelocationCompleteRequestIEs_t *enhancedRelocationCompleteRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IuSignallingConnectionIdentifier, &enhancedRelocationCompleteRequestIEs->oldIuSigConId);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IuSignallingConnectionIdentifier, &enhancedRelocationCompleteRequestIEs->iuSigConId);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &enhancedRelocationCompleteRequestIEs->relocation_SourceRNC_ID);
    /* Optional field */
    if ((enhancedRelocationCompleteRequestIEs->presenceMask & ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_ID_RELOCATION_SOURCEEXTENDEDRNC_ID_PRESENT)
        == ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_ID_RELOCATION_SOURCEEXTENDEDRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ExtendedRNC_ID, &enhancedRelocationCompleteRequestIEs->relocation_SourceExtendedRNC_ID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &enhancedRelocationCompleteRequestIEs->relocation_TargetRNC_ID);
    /* Optional field */
    if ((enhancedRelocationCompleteRequestIEs->presenceMask & ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_ID_RELOCATION_TARGETEXTENDEDRNC_ID_PRESENT)
        == ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_ID_RELOCATION_TARGETEXTENDEDRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ExtendedRNC_ID, &enhancedRelocationCompleteRequestIEs->relocation_TargetExtendedRNC_ID);
    /* Optional field */
    if ((enhancedRelocationCompleteRequestIEs->presenceMask & ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_RAB_SETUPLIST_ENHANCEDRELOCCOMPLETEREQ_PRESENT)
        == ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_RAB_SETUPLIST_ENHANCEDRELOCCOMPLETEREQ_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteReq, &enhancedRelocationCompleteRequestIEs->raB_SetupList_EnhancedRelocCompleteReq);
    return 0;
}

int ranap_free_rab_setupitem_enhancedreloccompletereq_ies(
    RANAP_RAB_SetupItem_EnhancedRelocCompleteReq_IEs_t *raB_SetupItem_EnhancedRelocCompleteReq_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupItem_EnhancedRelocCompleteReq, &raB_SetupItem_EnhancedRelocCompleteReq_IEs->raB_SetupItem_EnhancedRelocCompleteReq);
    return 0;
}

int ranap_free_enhancedrelocationcompleteresponseies(
    RANAP_EnhancedRelocationCompleteResponseIEs_t *enhancedRelocationCompleteResponseIEs) {

    /* Optional field */
    if ((enhancedRelocationCompleteResponseIEs->presenceMask & ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_RAB_SETUPLIST_ENHANCEDRELOCCOMPLETERES_PRESENT)
        == ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_RAB_SETUPLIST_ENHANCEDRELOCCOMPLETERES_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupList_EnhancedRelocCompleteRes, &enhancedRelocationCompleteResponseIEs->raB_SetupList_EnhancedRelocCompleteRes);
    /* Optional field */
    if ((enhancedRelocationCompleteResponseIEs->presenceMask & ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_RAB_TOBERELEASEDLIST_ENHANCEDRELOCCOMPLETERES_PRESENT)
        == ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_RAB_TOBERELEASEDLIST_ENHANCEDRELOCCOMPLETERES_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ToBeReleasedList_EnhancedRelocCompleteRes, &enhancedRelocationCompleteResponseIEs->raB_ToBeReleasedList_EnhancedRelocCompleteRes);
    /* Optional field */
    if ((enhancedRelocationCompleteResponseIEs->presenceMask & ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == ENHANCEDRELOCATIONCOMPLETERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &enhancedRelocationCompleteResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_rab_setupitem_enhancedreloccompleteres_ies(
    RANAP_RAB_SetupItem_EnhancedRelocCompleteRes_IEs_t *raB_SetupItem_EnhancedRelocCompleteRes_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupItem_EnhancedRelocCompleteRes, &raB_SetupItem_EnhancedRelocCompleteRes_IEs->raB_SetupItem_EnhancedRelocCompleteRes);
    return 0;
}

int ranap_free_rab_tobereleaseditem_enhancedreloccompleteres_ies(
    RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs_t *raB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ToBeReleasedItem_EnhancedRelocCompleteRes, &raB_ToBeReleasedItem_EnhancedRelocCompleteRes_IEs->raB_ToBeReleasedItem_EnhancedRelocCompleteRes);
    return 0;
}

int ranap_free_enhancedrelocationcompletefailureies(
    RANAP_EnhancedRelocationCompleteFailureIEs_t *enhancedRelocationCompleteFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &enhancedRelocationCompleteFailureIEs->cause);
    /* Optional field */
    if ((enhancedRelocationCompleteFailureIEs->presenceMask & ENHANCEDRELOCATIONCOMPLETEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == ENHANCEDRELOCATIONCOMPLETEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &enhancedRelocationCompleteFailureIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_enhancedrelocationcompleteconfirmies(
    RANAP_EnhancedRelocationCompleteConfirmIEs_t *enhancedRelocationCompleteConfirmIEs) {

    /* Optional field */
    if ((enhancedRelocationCompleteConfirmIEs->presenceMask & ENHANCEDRELOCATIONCOMPLETECONFIRMIES_RANAP_RAB_FAILEDLIST_PRESENT)
        == ENHANCEDRELOCATIONCOMPLETECONFIRMIES_RANAP_RAB_FAILEDLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_FailedList, &enhancedRelocationCompleteConfirmIEs->raB_FailedList);
    return 0;
}

int ranap_free_pagingies(
    RANAP_PagingIEs_t *pagingIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &pagingIEs->cN_DomainIndicator);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_PermanentNAS_UE_ID, &pagingIEs->permanentNAS_UE_ID);
    /* Optional field */
    if ((pagingIEs->presenceMask & PAGINGIES_RANAP_TEMPORARYUE_ID_PRESENT)
        == PAGINGIES_RANAP_TEMPORARYUE_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TemporaryUE_ID, &pagingIEs->temporaryUE_ID);
    /* Optional field */
    if ((pagingIEs->presenceMask & PAGINGIES_RANAP_PAGINGAREAID_PRESENT)
        == PAGINGIES_RANAP_PAGINGAREAID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_PagingAreaID, &pagingIEs->pagingAreaID);
    /* Optional field */
    if ((pagingIEs->presenceMask & PAGINGIES_RANAP_PAGINGCAUSE_PRESENT)
        == PAGINGIES_RANAP_PAGINGCAUSE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_PagingCause, &pagingIEs->pagingCause);
    /* Optional field */
    if ((pagingIEs->presenceMask & PAGINGIES_RANAP_NONSEARCHINGINDICATION_PRESENT)
        == PAGINGIES_RANAP_NONSEARCHINGINDICATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_NonSearchingIndication, &pagingIEs->nonSearchingIndication);
    /* Optional field */
    if ((pagingIEs->presenceMask & PAGINGIES_RANAP_DRX_CYCLELENGTHCOEFFICIENT_PRESENT)
        == PAGINGIES_RANAP_DRX_CYCLELENGTHCOEFFICIENT_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_DRX_CycleLengthCoefficient, &pagingIEs->drX_CycleLengthCoefficient);
    return 0;
}

int ranap_free_commonid_ies(
    RANAP_CommonID_IEs_t *commonID_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_PermanentNAS_UE_ID, &commonID_IEs->permanentNAS_UE_ID);
    return 0;
}

int ranap_free_cn_invoketraceies(
    RANAP_CN_InvokeTraceIEs_t *cN_InvokeTraceIEs) {

    /* Optional field */
    if ((cN_InvokeTraceIEs->presenceMask & CN_INVOKETRACEIES_RANAP_TRACETYPE_PRESENT)
        == CN_INVOKETRACEIES_RANAP_TRACETYPE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TraceType, &cN_InvokeTraceIEs->traceType);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TraceReference, &cN_InvokeTraceIEs->traceReference);
    /* Optional field */
    if ((cN_InvokeTraceIEs->presenceMask & CN_INVOKETRACEIES_RANAP_TRIGGERID_PRESENT)
        == CN_INVOKETRACEIES_RANAP_TRIGGERID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TriggerID, &cN_InvokeTraceIEs->triggerID);
    /* Optional field */
    if ((cN_InvokeTraceIEs->presenceMask & CN_INVOKETRACEIES_RANAP_UE_ID_PRESENT)
        == CN_INVOKETRACEIES_RANAP_UE_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_UE_ID, &cN_InvokeTraceIEs->ue_id);
    /* Optional field */
    if ((cN_InvokeTraceIEs->presenceMask & CN_INVOKETRACEIES_RANAP_OMC_ID_PRESENT)
        == CN_INVOKETRACEIES_RANAP_OMC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_OMC_ID, &cN_InvokeTraceIEs->omc_id);
    return 0;
}

int ranap_free_cn_deactivatetraceies(
    RANAP_CN_DeactivateTraceIEs_t *cN_DeactivateTraceIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TraceReference, &cN_DeactivateTraceIEs->traceReference);
    /* Optional field */
    if ((cN_DeactivateTraceIEs->presenceMask & CN_DEACTIVATETRACEIES_RANAP_TRIGGERID_PRESENT)
        == CN_DEACTIVATETRACEIES_RANAP_TRIGGERID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TriggerID, &cN_DeactivateTraceIEs->triggerID);
    return 0;
}

int ranap_free_locationreportingcontrolies(
    RANAP_LocationReportingControlIEs_t *locationReportingControlIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RequestType, &locationReportingControlIEs->requestType);
    return 0;
}

int ranap_free_locationreporties(
    RANAP_LocationReportIEs_t *locationReportIEs) {

    /* Optional field */
    if ((locationReportIEs->presenceMask & LOCATIONREPORTIES_RANAP_AREAIDENTITY_PRESENT)
        == LOCATIONREPORTIES_RANAP_AREAIDENTITY_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_AreaIdentity, &locationReportIEs->areaIdentity);
    /* Optional field */
    if ((locationReportIEs->presenceMask & LOCATIONREPORTIES_RANAP_CAUSE_PRESENT)
        == LOCATIONREPORTIES_RANAP_CAUSE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &locationReportIEs->cause);
    /* Optional field */
    if ((locationReportIEs->presenceMask & LOCATIONREPORTIES_RANAP_REQUESTTYPE_PRESENT)
        == LOCATIONREPORTIES_RANAP_REQUESTTYPE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RequestType, &locationReportIEs->requestType);
    return 0;
}

int ranap_free_initialue_messageies(
    RANAP_InitialUE_MessageIEs_t *initialUE_MessageIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &initialUE_MessageIEs->cN_DomainIndicator);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_LAI, &initialUE_MessageIEs->lai);
    /* Conditional field */
    if ((initialUE_MessageIEs->presenceMask & INITIALUE_MESSAGEIES_RANAP_RAC_PRESENT)
        == INITIALUE_MESSAGEIES_RANAP_RAC_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAC, &initialUE_MessageIEs->rac);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SAI, &initialUE_MessageIEs->sai);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_NAS_PDU, &initialUE_MessageIEs->nas_pdu);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IuSignallingConnectionIdentifier, &initialUE_MessageIEs->iuSigConId);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &initialUE_MessageIEs->globalRNC_ID);
    return 0;
}

int ranap_free_directtransferies(
    RANAP_DirectTransferIEs_t *directTransferIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_NAS_PDU, &directTransferIEs->nas_pdu);
    /* Optional field */
    if ((directTransferIEs->presenceMask & DIRECTTRANSFERIES_RANAP_LAI_PRESENT)
        == DIRECTTRANSFERIES_RANAP_LAI_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_LAI, &directTransferIEs->lai);
    /* Optional field */
    if ((directTransferIEs->presenceMask & DIRECTTRANSFERIES_RANAP_RAC_PRESENT)
        == DIRECTTRANSFERIES_RANAP_RAC_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAC, &directTransferIEs->rac);
    /* Optional field */
    if ((directTransferIEs->presenceMask & DIRECTTRANSFERIES_RANAP_SAI_PRESENT)
        == DIRECTTRANSFERIES_RANAP_SAI_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SAI, &directTransferIEs->sai);
    /* Optional field */
    if ((directTransferIEs->presenceMask & DIRECTTRANSFERIES_RANAP_SAPI_PRESENT)
        == DIRECTTRANSFERIES_RANAP_SAPI_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SAPI, &directTransferIEs->sapi);
    return 0;
}

int ranap_free_redirectionindication_ies(
    RANAP_RedirectionIndication_IEs_t *redirectionIndication_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_NAS_PDU, &redirectionIndication_IEs->nas_pdu);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RejectCauseValue, &redirectionIndication_IEs->rejectCauseValue);
    /* Optional field */
    if ((redirectionIndication_IEs->presenceMask & REDIRECTIONINDICATION_IES_RANAP_NAS_SEQUENCENUMBER_PRESENT)
        == REDIRECTIONINDICATION_IES_RANAP_NAS_SEQUENCENUMBER_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_NAS_SequenceNumber, &redirectionIndication_IEs->naS_SequenceNumber);
    /* Optional field */
    if ((redirectionIndication_IEs->presenceMask & REDIRECTIONINDICATION_IES_RANAP_PERMANENTNAS_UE_ID_PRESENT)
        == REDIRECTIONINDICATION_IES_RANAP_PERMANENTNAS_UE_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_PermanentNAS_UE_ID, &redirectionIndication_IEs->permanentNAS_UE_ID);
    return 0;
}

int ranap_free_overloadies(
    RANAP_OverloadIEs_t *overloadIEs) {

    /* Optional field */
    if ((overloadIEs->presenceMask & OVERLOADIES_RANAP_NUMBEROFSTEPS_PRESENT)
        == OVERLOADIES_RANAP_NUMBEROFSTEPS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_NumberOfSteps, &overloadIEs->numberOfSteps);
    /* Optional field */
    if ((overloadIEs->presenceMask & OVERLOADIES_RANAP_GLOBALRNC_ID_PRESENT)
        == OVERLOADIES_RANAP_GLOBALRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &overloadIEs->globalRNC_ID);
    return 0;
}

int ranap_free_errorindicationies(
    RANAP_ErrorIndicationIEs_t *errorIndicationIEs) {

    /* Optional field */
    if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_RANAP_CAUSE_PRESENT)
        == ERRORINDICATIONIES_RANAP_CAUSE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &errorIndicationIEs->cause);
    /* Optional field */
    if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == ERRORINDICATIONIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &errorIndicationIEs->criticalityDiagnostics);
    /* Optional field */
    if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_RANAP_CN_DOMAININDICATOR_PRESENT)
        == ERRORINDICATIONIES_RANAP_CN_DOMAININDICATOR_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &errorIndicationIEs->cN_DomainIndicator);
    /* Optional field */
    if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_RANAP_GLOBALRNC_ID_PRESENT)
        == ERRORINDICATIONIES_RANAP_GLOBALRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &errorIndicationIEs->globalRNC_ID);
    return 0;
}

int ranap_free_srns_dataforwardcommandies(
    RANAP_SRNS_DataForwardCommandIEs_t *srnS_DataForwardCommandIEs) {

    /* Optional field */
    if ((srnS_DataForwardCommandIEs->presenceMask & SRNS_DATAFORWARDCOMMANDIES_RANAP_RAB_DATAFORWARDINGLIST_PRESENT)
        == SRNS_DATAFORWARDCOMMANDIES_RANAP_RAB_DATAFORWARDINGLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_DataForwardingList, &srnS_DataForwardCommandIEs->raB_DataForwardingList);
    return 0;
}

int ranap_free_forwardsrns_contexties(
    RANAP_ForwardSRNS_ContextIEs_t *forwardSRNS_ContextIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ContextList, &forwardSRNS_ContextIEs->raB_ContextList);
    return 0;
}

int ranap_free_rab_assignmentrequesties(
    RANAP_RAB_AssignmentRequestIEs_t *raB_AssignmentRequestIEs) {

    /* Optional field */
    if ((raB_AssignmentRequestIEs->presenceMask & RAB_ASSIGNMENTREQUESTIES_RANAP_RAB_SETUPORMODIFYLIST_PRESENT)
        == RAB_ASSIGNMENTREQUESTIES_RANAP_RAB_SETUPORMODIFYLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupOrModifyList, &raB_AssignmentRequestIEs->raB_SetupOrModifyList);
    /* Optional field */
    if ((raB_AssignmentRequestIEs->presenceMask & RAB_ASSIGNMENTREQUESTIES_RANAP_RAB_RELEASELIST_PRESENT)
        == RAB_ASSIGNMENTREQUESTIES_RANAP_RAB_RELEASELIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ReleaseList, &raB_AssignmentRequestIEs->raB_ReleaseList);
    return 0;
}

int ranap_free_rab_assignmentresponseies(
    RANAP_RAB_AssignmentResponseIEs_t *raB_AssignmentResponseIEs) {

    /* Optional field */
    if ((raB_AssignmentResponseIEs->presenceMask & RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_SETUPORMODIFIEDLIST_PRESENT)
        == RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_SETUPORMODIFIEDLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupOrModifiedList, &raB_AssignmentResponseIEs->raB_SetupOrModifiedList);
    /* Optional field */
    if ((raB_AssignmentResponseIEs->presenceMask & RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_RELEASEDLIST_PRESENT)
        == RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_RELEASEDLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ReleasedList, &raB_AssignmentResponseIEs->raB_ReleasedList);
    /* Optional field */
    if ((raB_AssignmentResponseIEs->presenceMask & RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_QUEUEDLIST_PRESENT)
        == RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_QUEUEDLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_QueuedList, &raB_AssignmentResponseIEs->raB_QueuedList);
    /* Optional field */
    if ((raB_AssignmentResponseIEs->presenceMask & RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_FAILEDLIST_PRESENT)
        == RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_FAILEDLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_FailedList, &raB_AssignmentResponseIEs->raB_FailedList);
    /* Optional field */
    if ((raB_AssignmentResponseIEs->presenceMask & RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_RELEASEFAILEDLIST_PRESENT)
        == RAB_ASSIGNMENTRESPONSEIES_RANAP_RAB_RELEASEFAILEDLIST_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ReleaseFailedList, &raB_AssignmentResponseIEs->raB_ReleaseFailedList);
    /* Optional field */
    if ((raB_AssignmentResponseIEs->presenceMask & RAB_ASSIGNMENTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RAB_ASSIGNMENTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &raB_AssignmentResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_rab_setupormodifieditemies(
    RANAP_RAB_SetupOrModifiedItemIEs_t *raB_SetupOrModifiedItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupOrModifiedItem, &raB_SetupOrModifiedItemIEs->raB_SetupOrModifiedItem);
    return 0;
}

int ranap_free_rab_releaseditemies(
    RANAP_RAB_ReleasedItemIEs_t *raB_ReleasedItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ReleasedItem, &raB_ReleasedItemIEs->raB_ReleasedItem);
    return 0;
}

int ranap_free_rab_queueditemies(
    RANAP_RAB_QueuedItemIEs_t *raB_QueuedItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_QueuedItem, &raB_QueuedItemIEs->raB_QueuedItem);
    return 0;
}

int ranap_free_geran_iumode_rab_failed_rabassgntresponse_itemies(
    RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs_t *geraN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item, &geraN_Iumode_RAB_Failed_RABAssgntResponse_ItemIEs->geraN_Iumode_RAB_Failed_RABAssgntResponse_Item);
    return 0;
}

int ranap_free_ranap_relocationinformationies(
    RANAP_RANAP_RelocationInformationIEs_t *ranaP_RelocationInformationIEs) {

    /* Optional field */
    if ((ranaP_RelocationInformationIEs->presenceMask & RANAP_RELOCATIONINFORMATIONIES_RANAP_RAB_CONTEXTLIST_RANAP_RELOCINF_PRESENT)
        == RANAP_RELOCATIONINFORMATIONIES_RANAP_RAB_CONTEXTLIST_RANAP_RELOCINF_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ContextList_RANAP_RelocInf, &ranaP_RelocationInformationIEs->raB_ContextList_RANAP_RelocInf);
    return 0;
}

int ranap_free_rab_contextitemies_ranap_relocinf(
    RANAP_RAB_ContextItemIEs_RANAP_RelocInf_t *raB_ContextItemIEs_RANAP_RelocInf) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ContextItem_RANAP_RelocInf, &raB_ContextItemIEs_RANAP_RelocInf->raB_ContextItem_RANAP_RelocInf);
    return 0;
}

int ranap_free_ranap_enhancedrelocationinformationrequesties(
    RANAP_RANAP_EnhancedRelocationInformationRequestIEs_t *ranaP_EnhancedRelocationInformationRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SourceRNC_ToTargetRNC_TransparentContainer, &ranaP_EnhancedRelocationInformationRequestIEs->source_ToTarget_TransparentContainer);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_OLDIUSIGCONIDCS_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_OLDIUSIGCONIDCS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IuSignallingConnectionIdentifier, &ranaP_EnhancedRelocationInformationRequestIEs->oldIuSigConIdCS);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_GLOBALCN_IDCS_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_GLOBALCN_IDCS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &ranaP_EnhancedRelocationInformationRequestIEs->globalCN_IDCS);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_OLDIUSIGCONIDPS_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_OLDIUSIGCONIDPS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IuSignallingConnectionIdentifier, &ranaP_EnhancedRelocationInformationRequestIEs->oldIuSigConIdPS);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_GLOBALCN_IDPS_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_ID_GLOBALCN_IDPS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &ranaP_EnhancedRelocationInformationRequestIEs->globalCN_IDPS);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_RAB_SETUPLIST_ENHRELOCINFOREQ_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_RAB_SETUPLIST_ENHRELOCINFOREQ_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoReq, &ranaP_EnhancedRelocationInformationRequestIEs->raB_SetupList_EnhRelocInfoReq);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_SNA_ACCESS_INFORMATION_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_SNA_ACCESS_INFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SNA_Access_Information, &ranaP_EnhancedRelocationInformationRequestIEs->snA_Access_Information);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_UESBI_IU_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_UESBI_IU_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_UESBI_Iu, &ranaP_EnhancedRelocationInformationRequestIEs->uesbI_Iu);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_PLMNIDENTITY_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_PLMNIDENTITY_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_PLMNidentity, &ranaP_EnhancedRelocationInformationRequestIEs->selectedPLMN_ID);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationRequestIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_CNMBMSLINKINGINFORMATION_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_CNMBMSLINKINGINFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CNMBMSLinkingInformation, &ranaP_EnhancedRelocationInformationRequestIEs->cnmbmsLinkingInformation);
    return 0;
}

int ranap_free_rab_setupitem_enhrelocinforeq_ies(
    RANAP_RAB_SetupItem_EnhRelocInfoReq_IEs_t *raB_SetupItem_EnhRelocInfoReq_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupItem_EnhRelocInfoReq, &raB_SetupItem_EnhRelocInfoReq_IEs->raB_SetupItem_EnhRelocInfoReq);
    return 0;
}

int ranap_free_ranap_enhancedrelocationinformationresponseies(
    RANAP_RANAP_EnhancedRelocationInformationResponseIEs_t *ranaP_EnhancedRelocationInformationResponseIEs) {

    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationResponseIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_TARGETRNC_TOSOURCERNC_TRANSPARENTCONTAINER_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TargetRNC_ToSourceRNC_TransparentContainer, &ranaP_EnhancedRelocationInformationResponseIEs->target_ToSource_TransparentContainer);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationResponseIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_RAB_SETUPLIST_ENHRELOCINFORES_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_RAB_SETUPLIST_ENHRELOCINFORES_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupList_EnhRelocInfoRes, &ranaP_EnhancedRelocationInformationResponseIEs->raB_SetupList_EnhRelocInfoRes);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationResponseIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_RAB_FAILEDLIST_ENHRELOCINFORES_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_RAB_FAILEDLIST_ENHRELOCINFORES_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_FailedList_EnhRelocInfoRes, &ranaP_EnhancedRelocationInformationResponseIEs->raB_FailedList_EnhRelocInfoRes);
    /* Optional field */
    if ((ranaP_EnhancedRelocationInformationResponseIEs->presenceMask & RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == RANAP_ENHANCEDRELOCATIONINFORMATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &ranaP_EnhancedRelocationInformationResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_rab_setupitem_enhrelocinfores_ies(
    RANAP_RAB_SetupItem_EnhRelocInfoRes_IEs_t *raB_SetupItem_EnhRelocInfoRes_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_SetupItem_EnhRelocInfoRes, &raB_SetupItem_EnhRelocInfoRes_IEs->raB_SetupItem_EnhRelocInfoRes);
    return 0;
}

int ranap_free_rab_faileditem_enhrelocinfores_ies(
    RANAP_RAB_FailedItem_EnhRelocInfoRes_IEs_t *raB_FailedItem_EnhRelocInfoRes_IEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_FailedItem_EnhRelocInfoRes, &raB_FailedItem_EnhRelocInfoRes_IEs->raB_FailedItem_EnhRelocInfoRes);
    return 0;
}

int ranap_free_rab_modifyrequesties(
    RANAP_RAB_ModifyRequestIEs_t *raB_ModifyRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ModifyList, &raB_ModifyRequestIEs->raB_ModifyList);
    return 0;
}

int ranap_free_rab_modifyitemies(
    RANAP_RAB_ModifyItemIEs_t *raB_ModifyItemIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_ModifyItem, &raB_ModifyItemIEs->raB_ModifyItem);
    return 0;
}

int ranap_free_locationrelateddatarequesties(
    RANAP_LocationRelatedDataRequestIEs_t *locationRelatedDataRequestIEs) {

    /* Optional field */
    if ((locationRelatedDataRequestIEs->presenceMask & LOCATIONRELATEDDATAREQUESTIES_RANAP_LOCATIONRELATEDDATAREQUESTTYPE_PRESENT)
        == LOCATIONRELATEDDATAREQUESTIES_RANAP_LOCATIONRELATEDDATAREQUESTTYPE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_LocationRelatedDataRequestType, &locationRelatedDataRequestIEs->locationRelatedDataRequestType);
    return 0;
}

int ranap_free_locationrelateddataresponseies(
    RANAP_LocationRelatedDataResponseIEs_t *locationRelatedDataResponseIEs) {

    /* Optional field */
    if ((locationRelatedDataResponseIEs->presenceMask & LOCATIONRELATEDDATARESPONSEIES_RANAP_BROADCASTASSISTANCEDATADECIPHERINGKEYS_PRESENT)
        == LOCATIONRELATEDDATARESPONSEIES_RANAP_BROADCASTASSISTANCEDATADECIPHERINGKEYS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_BroadcastAssistanceDataDecipheringKeys, &locationRelatedDataResponseIEs->broadcastAssistanceDataDecipheringKeys);
    return 0;
}

int ranap_free_locationrelateddatafailureies(
    RANAP_LocationRelatedDataFailureIEs_t *locationRelatedDataFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &locationRelatedDataFailureIEs->cause);
    return 0;
}

int ranap_free_informationtransferindicationies(
    RANAP_InformationTransferIndicationIEs_t *informationTransferIndicationIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InformationTransferID, &informationTransferIndicationIEs->informationTransferID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_ProvidedData, &informationTransferIndicationIEs->providedData);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &informationTransferIndicationIEs->cN_DomainIndicator);
    /* Optional field */
    if ((informationTransferIndicationIEs->presenceMask & INFORMATIONTRANSFERINDICATIONIES_RANAP_GLOBALCN_ID_PRESENT)
        == INFORMATIONTRANSFERINDICATIONIES_RANAP_GLOBALCN_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &informationTransferIndicationIEs->globalCN_ID);
    return 0;
}

int ranap_free_informationtransferconfirmationies(
    RANAP_InformationTransferConfirmationIEs_t *informationTransferConfirmationIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InformationTransferID, &informationTransferConfirmationIEs->informationTransferID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &informationTransferConfirmationIEs->cN_DomainIndicator);
    /* Optional field */
    if ((informationTransferConfirmationIEs->presenceMask & INFORMATIONTRANSFERCONFIRMATIONIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == INFORMATIONTRANSFERCONFIRMATIONIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &informationTransferConfirmationIEs->criticalityDiagnostics);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &informationTransferConfirmationIEs->globalRNC_ID);
    return 0;
}

int ranap_free_informationtransferfailureies(
    RANAP_InformationTransferFailureIEs_t *informationTransferFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InformationTransferID, &informationTransferFailureIEs->informationTransferID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &informationTransferFailureIEs->cN_DomainIndicator);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &informationTransferFailureIEs->cause);
    /* Optional field */
    if ((informationTransferFailureIEs->presenceMask & INFORMATIONTRANSFERFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == INFORMATIONTRANSFERFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &informationTransferFailureIEs->criticalityDiagnostics);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &informationTransferFailureIEs->globalRNC_ID);
    return 0;
}

int ranap_free_uespecificinformationindicationies(
    RANAP_UESpecificInformationIndicationIEs_t *ueSpecificInformationIndicationIEs) {

    /* Optional field */
    if ((ueSpecificInformationIndicationIEs->presenceMask & UESPECIFICINFORMATIONINDICATIONIES_RANAP_UESBI_IU_PRESENT)
        == UESPECIFICINFORMATIONINDICATIONIES_RANAP_UESBI_IU_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_UESBI_Iu, &ueSpecificInformationIndicationIEs->uesbI_Iu);
    return 0;
}

int ranap_free_directinformationtransferies(
    RANAP_DirectInformationTransferIEs_t *directInformationTransferIEs) {

    /* Optional field */
    if ((directInformationTransferIEs->presenceMask & DIRECTINFORMATIONTRANSFERIES_RANAP_INTERSYSTEMINFORMATIONTRANSFERTYPE_PRESENT)
        == DIRECTINFORMATIONTRANSFERIES_RANAP_INTERSYSTEMINFORMATIONTRANSFERTYPE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InterSystemInformationTransferType, &directInformationTransferIEs->interSystemInformationTransferType);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &directInformationTransferIEs->cN_DomainIndicator);
    /* Optional field */
    if ((directInformationTransferIEs->presenceMask & DIRECTINFORMATIONTRANSFERIES_RANAP_GLOBALRNC_ID_PRESENT)
        == DIRECTINFORMATIONTRANSFERIES_RANAP_GLOBALRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &directInformationTransferIEs->globalRNC_ID);
    /* Optional field */
    if ((directInformationTransferIEs->presenceMask & DIRECTINFORMATIONTRANSFERIES_RANAP_GLOBALCN_ID_PRESENT)
        == DIRECTINFORMATIONTRANSFERIES_RANAP_GLOBALCN_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &directInformationTransferIEs->globalCN_ID);
    return 0;
}

int ranap_free_uplinkinformationexchangerequesties(
    RANAP_UplinkInformationExchangeRequestIEs_t *uplinkInformationExchangeRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InformationExchangeID, &uplinkInformationExchangeRequestIEs->informationExchangeID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InformationExchangeType, &uplinkInformationExchangeRequestIEs->informationExchangeType);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &uplinkInformationExchangeRequestIEs->cN_DomainIndicator);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &uplinkInformationExchangeRequestIEs->globalRNC_ID);
    return 0;
}

int ranap_free_uplinkinformationexchangeresponseies(
    RANAP_UplinkInformationExchangeResponseIEs_t *uplinkInformationExchangeResponseIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InformationExchangeID, &uplinkInformationExchangeResponseIEs->informationExchangeID);
    /* Optional field */
    if ((uplinkInformationExchangeResponseIEs->presenceMask & UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_INFORMATIONREQUESTED_PRESENT)
        == UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_INFORMATIONREQUESTED_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InformationRequested, &uplinkInformationExchangeResponseIEs->informationRequested);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &uplinkInformationExchangeResponseIEs->cN_DomainIndicator);
    /* Optional field */
    if ((uplinkInformationExchangeResponseIEs->presenceMask & UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_GLOBALCN_ID_PRESENT)
        == UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_GLOBALCN_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &uplinkInformationExchangeResponseIEs->globalCN_ID);
    /* Optional field */
    if ((uplinkInformationExchangeResponseIEs->presenceMask & UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == UPLINKINFORMATIONEXCHANGERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &uplinkInformationExchangeResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_uplinkinformationexchangefailureies(
    RANAP_UplinkInformationExchangeFailureIEs_t *uplinkInformationExchangeFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_InformationExchangeID, &uplinkInformationExchangeFailureIEs->informationExchangeID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CN_DomainIndicator, &uplinkInformationExchangeFailureIEs->cN_DomainIndicator);
    /* Optional field */
    if ((uplinkInformationExchangeFailureIEs->presenceMask & UPLINKINFORMATIONEXCHANGEFAILUREIES_RANAP_GLOBALCN_ID_PRESENT)
        == UPLINKINFORMATIONEXCHANGEFAILUREIES_RANAP_GLOBALCN_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &uplinkInformationExchangeFailureIEs->globalCN_ID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &uplinkInformationExchangeFailureIEs->cause);
    /* Optional field */
    if ((uplinkInformationExchangeFailureIEs->presenceMask & UPLINKINFORMATIONEXCHANGEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == UPLINKINFORMATIONEXCHANGEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &uplinkInformationExchangeFailureIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmssessionstarties(
    RANAP_MBMSSessionStartIEs_t *mbmsSessionStartIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TMGI, &mbmsSessionStartIEs->tmgi);
    /* Optional field */
    if ((mbmsSessionStartIEs->presenceMask & MBMSSESSIONSTARTIES_RANAP_MBMSSESSIONIDENTITY_PRESENT)
        == MBMSSESSIONSTARTIES_RANAP_MBMSSESSIONIDENTITY_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_MBMSSessionIdentity, &mbmsSessionStartIEs->mbmsSessionIdentity);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_MBMSBearerServiceType, &mbmsSessionStartIEs->mbmsBearerServiceType);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IuSignallingConnectionIdentifier, &mbmsSessionStartIEs->iuSigConId);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAB_Parameters, &mbmsSessionStartIEs->raB_Parameters);
    /* Optional field */
    if ((mbmsSessionStartIEs->presenceMask & MBMSSESSIONSTARTIES_RANAP_PDP_TYPEINFORMATION_PRESENT)
        == MBMSSESSIONSTARTIES_RANAP_PDP_TYPEINFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_PDP_TypeInformation, &mbmsSessionStartIEs->pdP_TypeInformation);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_MBMSSessionDuration, &mbmsSessionStartIEs->mbmsSessionDuration);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_MBMSServiceArea, &mbmsSessionStartIEs->mbmsServiceArea);
    /* Optional field */
    if ((mbmsSessionStartIEs->presenceMask & MBMSSESSIONSTARTIES_RANAP_FREQUENCELAYERCONVERGENCEFLAG_PRESENT)
        == MBMSSESSIONSTARTIES_RANAP_FREQUENCELAYERCONVERGENCEFLAG_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_FrequenceLayerConvergenceFlag, &mbmsSessionStartIEs->frequenceLayerConvergenceFlag);
    /* Optional field */
    if ((mbmsSessionStartIEs->presenceMask & MBMSSESSIONSTARTIES_RANAP_RALISTOFIDLEMODEUES_PRESENT)
        == MBMSSESSIONSTARTIES_RANAP_RALISTOFIDLEMODEUES_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_RAListofIdleModeUEs, &mbmsSessionStartIEs->raListofIdleModeUEs);
    /* Optional field */
    if ((mbmsSessionStartIEs->presenceMask & MBMSSESSIONSTARTIES_RANAP_GLOBALCN_ID_PRESENT)
        == MBMSSESSIONSTARTIES_RANAP_GLOBALCN_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &mbmsSessionStartIEs->globalCN_ID);
    /* Optional field */
    if ((mbmsSessionStartIEs->presenceMask & MBMSSESSIONSTARTIES_RANAP_MBMSSESSIONREPETITIONNUMBER_PRESENT)
        == MBMSSESSIONSTARTIES_RANAP_MBMSSESSIONREPETITIONNUMBER_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_MBMSSessionRepetitionNumber, &mbmsSessionStartIEs->mbmsSessionRepetitionNumber);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TimeToMBMSDataTransfer, &mbmsSessionStartIEs->timeToMBMSDataTransfer);
    return 0;
}

int ranap_free_mbmssessionstartresponseies(
    RANAP_MBMSSessionStartResponseIEs_t *mbmsSessionStartResponseIEs) {

    /* Optional field */
    if ((mbmsSessionStartResponseIEs->presenceMask & MBMSSESSIONSTARTRESPONSEIES_RANAP_TRANSPORTLAYERINFORMATION_PRESENT)
        == MBMSSESSIONSTARTRESPONSEIES_RANAP_TRANSPORTLAYERINFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TransportLayerInformation, &mbmsSessionStartResponseIEs->transportLayerInformation);
    /* Optional field */
    if ((mbmsSessionStartResponseIEs->presenceMask & MBMSSESSIONSTARTRESPONSEIES_RANAP_CAUSE_PRESENT)
        == MBMSSESSIONSTARTRESPONSEIES_RANAP_CAUSE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsSessionStartResponseIEs->cause);
    /* Optional field */
    if ((mbmsSessionStartResponseIEs->presenceMask & MBMSSESSIONSTARTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSSESSIONSTARTRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsSessionStartResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmssessionstartfailureies(
    RANAP_MBMSSessionStartFailureIEs_t *mbmsSessionStartFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsSessionStartFailureIEs->cause);
    /* Optional field */
    if ((mbmsSessionStartFailureIEs->presenceMask & MBMSSESSIONSTARTFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSSESSIONSTARTFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsSessionStartFailureIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmssessionupdateies(
    RANAP_MBMSSessionUpdateIEs_t *mbmsSessionUpdateIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SessionUpdateID, &mbmsSessionUpdateIEs->sessionUpdateID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_DeltaRAListofIdleModeUEs, &mbmsSessionUpdateIEs->deltaRAListofIdleModeUEs);
    return 0;
}

int ranap_free_mbmssessionupdateresponseies(
    RANAP_MBMSSessionUpdateResponseIEs_t *mbmsSessionUpdateResponseIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SessionUpdateID, &mbmsSessionUpdateResponseIEs->sessionUpdateID);
    /* Optional field */
    if ((mbmsSessionUpdateResponseIEs->presenceMask & MBMSSESSIONUPDATERESPONSEIES_RANAP_TRANSPORTLAYERINFORMATION_PRESENT)
        == MBMSSESSIONUPDATERESPONSEIES_RANAP_TRANSPORTLAYERINFORMATION_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TransportLayerInformation, &mbmsSessionUpdateResponseIEs->transportLayerInformation);
    /* Optional field */
    if ((mbmsSessionUpdateResponseIEs->presenceMask & MBMSSESSIONUPDATERESPONSEIES_RANAP_CAUSE_PRESENT)
        == MBMSSESSIONUPDATERESPONSEIES_RANAP_CAUSE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsSessionUpdateResponseIEs->cause);
    /* Optional field */
    if ((mbmsSessionUpdateResponseIEs->presenceMask & MBMSSESSIONUPDATERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSSESSIONUPDATERESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsSessionUpdateResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmssessionupdatefailureies(
    RANAP_MBMSSessionUpdateFailureIEs_t *mbmsSessionUpdateFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SessionUpdateID, &mbmsSessionUpdateFailureIEs->sessionUpdateID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsSessionUpdateFailureIEs->cause);
    /* Optional field */
    if ((mbmsSessionUpdateFailureIEs->presenceMask & MBMSSESSIONUPDATEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSSESSIONUPDATEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsSessionUpdateFailureIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmssessionstopies(
    RANAP_MBMSSessionStopIEs_t *mbmsSessionStopIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_MBMSCNDe_Registration, &mbmsSessionStopIEs->mbmscnDe_Registration);
    return 0;
}

int ranap_free_mbmssessionstopresponseies(
    RANAP_MBMSSessionStopResponseIEs_t *mbmsSessionStopResponseIEs) {

    /* Optional field */
    if ((mbmsSessionStopResponseIEs->presenceMask & MBMSSESSIONSTOPRESPONSEIES_RANAP_CAUSE_PRESENT)
        == MBMSSESSIONSTOPRESPONSEIES_RANAP_CAUSE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsSessionStopResponseIEs->cause);
    /* Optional field */
    if ((mbmsSessionStopResponseIEs->presenceMask & MBMSSESSIONSTOPRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSSESSIONSTOPRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsSessionStopResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmsuelinkingrequesties(
    RANAP_MBMSUELinkingRequestIEs_t *mbmsueLinkingRequestIEs) {

    /* Optional field */
    if ((mbmsueLinkingRequestIEs->presenceMask & MBMSUELINKINGREQUESTIES_RANAP_JOINEDMBMSBEARERSERVICE_IES_PRESENT)
        == MBMSUELINKINGREQUESTIES_RANAP_JOINEDMBMSBEARERSERVICE_IES_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_JoinedMBMSBearerService_IEs, &mbmsueLinkingRequestIEs->joinedMBMSBearerServicesList);
    /* Optional field */
    if ((mbmsueLinkingRequestIEs->presenceMask & MBMSUELINKINGREQUESTIES_RANAP_LEFTMBMSBEARERSERVICE_IES_PRESENT)
        == MBMSUELINKINGREQUESTIES_RANAP_LEFTMBMSBEARERSERVICE_IES_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_LeftMBMSBearerService_IEs, &mbmsueLinkingRequestIEs->leftMBMSBearerServicesList);
    return 0;
}

int ranap_free_mbmsuelinkingresponseies(
    RANAP_MBMSUELinkingResponseIEs_t *mbmsueLinkingResponseIEs) {

    /* Optional field */
    if ((mbmsueLinkingResponseIEs->presenceMask & MBMSUELINKINGRESPONSEIES_RANAP_UNSUCCESSFULLINKING_IES_PRESENT)
        == MBMSUELINKINGRESPONSEIES_RANAP_UNSUCCESSFULLINKING_IES_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_UnsuccessfulLinking_IEs, &mbmsueLinkingResponseIEs->unsuccessfulLinkingList);
    /* Optional field */
    if ((mbmsueLinkingResponseIEs->presenceMask & MBMSUELINKINGRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSUELINKINGRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsueLinkingResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmsregistrationrequesties(
    RANAP_MBMSRegistrationRequestIEs_t *mbmsRegistrationRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_MBMSRegistrationRequestType, &mbmsRegistrationRequestIEs->mbmsRegistrationRequestType);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TMGI, &mbmsRegistrationRequestIEs->tmgi);
    /* Optional field */
    if ((mbmsRegistrationRequestIEs->presenceMask & MBMSREGISTRATIONREQUESTIES_RANAP_GLOBALRNC_ID_PRESENT)
        == MBMSREGISTRATIONREQUESTIES_RANAP_GLOBALRNC_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &mbmsRegistrationRequestIEs->globalRNC_ID);
    return 0;
}

int ranap_free_mbmsregistrationresponseies(
    RANAP_MBMSRegistrationResponseIEs_t *mbmsRegistrationResponseIEs) {

    /* Optional field */
    if ((mbmsRegistrationResponseIEs->presenceMask & MBMSREGISTRATIONRESPONSEIES_RANAP_TMGI_PRESENT)
        == MBMSREGISTRATIONRESPONSEIES_RANAP_TMGI_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TMGI, &mbmsRegistrationResponseIEs->tmgi);
    /* Optional field */
    if ((mbmsRegistrationResponseIEs->presenceMask & MBMSREGISTRATIONRESPONSEIES_RANAP_GLOBALCN_ID_PRESENT)
        == MBMSREGISTRATIONRESPONSEIES_RANAP_GLOBALCN_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &mbmsRegistrationResponseIEs->globalCN_ID);
    /* Optional field */
    if ((mbmsRegistrationResponseIEs->presenceMask & MBMSREGISTRATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSREGISTRATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsRegistrationResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmsregistrationfailureies(
    RANAP_MBMSRegistrationFailureIEs_t *mbmsRegistrationFailureIEs) {

    /* Optional field */
    if ((mbmsRegistrationFailureIEs->presenceMask & MBMSREGISTRATIONFAILUREIES_RANAP_TMGI_PRESENT)
        == MBMSREGISTRATIONFAILUREIES_RANAP_TMGI_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TMGI, &mbmsRegistrationFailureIEs->tmgi);
    /* Optional field */
    if ((mbmsRegistrationFailureIEs->presenceMask & MBMSREGISTRATIONFAILUREIES_RANAP_GLOBALCN_ID_PRESENT)
        == MBMSREGISTRATIONFAILUREIES_RANAP_GLOBALCN_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &mbmsRegistrationFailureIEs->globalCN_ID);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsRegistrationFailureIEs->cause);
    /* Optional field */
    if ((mbmsRegistrationFailureIEs->presenceMask & MBMSREGISTRATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSREGISTRATIONFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsRegistrationFailureIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmscnde_registrationrequesties(
    RANAP_MBMSCNDe_RegistrationRequestIEs_t *mbmscnDe_RegistrationRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TMGI, &mbmscnDe_RegistrationRequestIEs->tmgi);
    /* Optional field */
    if ((mbmscnDe_RegistrationRequestIEs->presenceMask & MBMSCNDE_REGISTRATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT)
        == MBMSCNDE_REGISTRATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalCN_ID, &mbmscnDe_RegistrationRequestIEs->globalCN_ID);
    return 0;
}

int ranap_free_mbmscnde_registrationresponseies(
    RANAP_MBMSCNDe_RegistrationResponseIEs_t *mbmscnDe_RegistrationResponseIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TMGI, &mbmscnDe_RegistrationResponseIEs->tmgi);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_GlobalRNC_ID, &mbmscnDe_RegistrationResponseIEs->globalRNC_ID);
    /* Optional field */
    if ((mbmscnDe_RegistrationResponseIEs->presenceMask & MBMSCNDE_REGISTRATIONRESPONSEIES_RANAP_CAUSE_PRESENT)
        == MBMSCNDE_REGISTRATIONRESPONSEIES_RANAP_CAUSE_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmscnDe_RegistrationResponseIEs->cause);
    /* Optional field */
    if ((mbmscnDe_RegistrationResponseIEs->presenceMask & MBMSCNDE_REGISTRATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSCNDE_REGISTRATIONRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmscnDe_RegistrationResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmsrabestablishmentindicationies(
    RANAP_MBMSRABEstablishmentIndicationIEs_t *mbmsrabEstablishmentIndicationIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_TransportLayerInformation, &mbmsrabEstablishmentIndicationIEs->transportLayerInformation);
    return 0;
}

int ranap_free_mbmsrabreleaserequesties(
    RANAP_MBMSRABReleaseRequestIEs_t *mbmsrabReleaseRequestIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsrabReleaseRequestIEs->cause);
    return 0;
}

int ranap_free_mbmsrabreleaseies(
    RANAP_MBMSRABReleaseIEs_t *mbmsrabReleaseIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsrabReleaseIEs->cause);
    /* Optional field */
    if ((mbmsrabReleaseIEs->presenceMask & MBMSRABRELEASEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSRABRELEASEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsrabReleaseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_mbmsrabreleasefailureies(
    RANAP_MBMSRABReleaseFailureIEs_t *mbmsrabReleaseFailureIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_Cause, &mbmsrabReleaseFailureIEs->cause);
    /* Optional field */
    if ((mbmsrabReleaseFailureIEs->presenceMask & MBMSRABRELEASEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == MBMSRABRELEASEFAILUREIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &mbmsrabReleaseFailureIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_srvcc_cskeysresponseies(
    RANAP_SRVCC_CSKeysResponseIEs_t *srvcC_CSKeysResponseIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_IntegrityProtectionKey, &srvcC_CSKeysResponseIEs->integrityProtectionKey);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_EncryptionKey, &srvcC_CSKeysResponseIEs->encryptionKey);
    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_SRVCC_Information, &srvcC_CSKeysResponseIEs->srvcC_Information);
    /* Optional field */
    if ((srvcC_CSKeysResponseIEs->presenceMask & SRVCC_CSKEYSRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT)
        == SRVCC_CSKEYSRESPONSEIES_RANAP_CRITICALITYDIAGNOSTICS_PRESENT) 
        ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_CriticalityDiagnostics, &srvcC_CSKeysResponseIEs->criticalityDiagnostics);
    return 0;
}

int ranap_free_ueradiocapabilitymatchresponseies(
    RANAP_UeRadioCapabilityMatchResponseIEs_t *ueRadioCapabilityMatchResponseIEs) {

    ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_RANAP_VoiceSupportMatchIndicator, &ueRadioCapabilityMatchResponseIEs->voiceSupportMatchIndicator);
    return 0;
}

