Upstreaming version 0.10.7
[ric-plt/submgr.git] / e2ap / lib / ProtocolIE-Field.c
index 20cd2af..58c93e4 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
  * From ASN.1 module "X2AP-Containers"
- *     found in "Spec/e2ap-v031ex.asn"
- *     `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
+ *     found in "X2AP-15-4-0.asn1"
+ *     `asn1c -D ./asn1_n1 -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
  */
 
 #include "ProtocolIE-Field.h"
@@ -12001,6 +12001,12 @@ select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type,
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id));
+       const int indexToPresence[4] = {
+               RICserviceUpdate_IEs__value_PR_NOTHING,
+               RICserviceUpdate_IEs__value_PR_RANfunctions_List,
+               RICserviceUpdate_IEs__value_PR_RANfunctions_List,
+               RICserviceUpdate_IEs__value_PR_RANfunctionsID_List
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -12012,7 +12018,7 @@ select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type,
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -12586,6 +12592,20 @@ select_HandoverRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *pa
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverRequestAcknowledge_IEs, id));
+       const int indexToPresence[12] = {
+               HandoverRequestAcknowledge_IEs__value_PR_NOTHING,
+               HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+               HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+               HandoverRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_List,
+               HandoverRequestAcknowledge_IEs__value_PR_E_RAB_List,
+               HandoverRequestAcknowledge_IEs__value_PR_TargeteNBtoSource_eNBTransparentContainer,
+               HandoverRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+               HandoverRequestAcknowledge_IEs__value_PR_UE_ContextKeptIndicator,
+               HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+               HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+               HandoverRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+               HandoverRequestAcknowledge_IEs__value_PR_UE_ContextKeptIndicator
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -12597,7 +12617,7 @@ select_HandoverRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *pa
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -12820,6 +12840,19 @@ select_HandoverReport_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, c
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverReport_IEs, id));
+       const int indexToPresence[11] = {
+               HandoverReport_IEs__value_PR_NOTHING,
+               HandoverReport_IEs__value_PR_HandoverReportType,
+               HandoverReport_IEs__value_PR_Cause,
+               HandoverReport_IEs__value_PR_ECGI,
+               HandoverReport_IEs__value_PR_ECGI,
+               HandoverReport_IEs__value_PR_ECGI,
+               HandoverReport_IEs__value_PR_TargetCellInUTRAN,
+               HandoverReport_IEs__value_PR_CRNTI,
+               HandoverReport_IEs__value_PR_MobilityInformation,
+               HandoverReport_IEs__value_PR_UE_RLF_Report_Container,
+               HandoverReport_IEs__value_PR_UE_RLF_Report_Container_for_extended_bands
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -12831,7 +12864,7 @@ select_HandoverReport_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, c
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -12937,6 +12970,15 @@ select_SNStatusTransfer_IEs_value_type(const asn_TYPE_descriptor_t *parent_type,
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SNStatusTransfer_IEs, id));
+       const int indexToPresence[7] = {
+               SNStatusTransfer_IEs__value_PR_NOTHING,
+               SNStatusTransfer_IEs__value_PR_UE_X2AP_ID,
+               SNStatusTransfer_IEs__value_PR_UE_X2AP_ID,
+               SNStatusTransfer_IEs__value_PR_E_RABs_SubjectToStatusTransfer_List,
+               SNStatusTransfer_IEs__value_PR_UE_X2AP_ID_Extension,
+               SNStatusTransfer_IEs__value_PR_UE_X2AP_ID_Extension,
+               SNStatusTransfer_IEs__value_PR_SgNB_UE_X2AP_ID
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -12948,7 +12990,7 @@ select_SNStatusTransfer_IEs_value_type(const asn_TYPE_descriptor_t *parent_type,
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -13054,6 +13096,15 @@ select_UEContextRelease_IEs_value_type(const asn_TYPE_descriptor_t *parent_type,
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEContextRelease_IEs, id));
+       const int indexToPresence[7] = {
+               UEContextRelease_IEs__value_PR_NOTHING,
+               UEContextRelease_IEs__value_PR_UE_X2AP_ID,
+               UEContextRelease_IEs__value_PR_UE_X2AP_ID,
+               UEContextRelease_IEs__value_PR_UE_X2AP_ID_Extension,
+               UEContextRelease_IEs__value_PR_UE_X2AP_ID_Extension,
+               UEContextRelease_IEs__value_PR_SIPTOBearerDeactivationIndication,
+               UEContextRelease_IEs__value_PR_SgNB_UE_X2AP_ID
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -13065,7 +13116,7 @@ select_UEContextRelease_IEs_value_type(const asn_TYPE_descriptor_t *parent_type,
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -13171,6 +13222,14 @@ select_HandoverCancel_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, c
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct HandoverCancel_IEs, id));
+       const int indexToPresence[6] = {
+               HandoverCancel_IEs__value_PR_NOTHING,
+               HandoverCancel_IEs__value_PR_UE_X2AP_ID,
+               HandoverCancel_IEs__value_PR_UE_X2AP_ID,
+               HandoverCancel_IEs__value_PR_Cause,
+               HandoverCancel_IEs__value_PR_UE_X2AP_ID_Extension,
+               HandoverCancel_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -13182,7 +13241,7 @@ select_HandoverCancel_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, c
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -13288,6 +13347,16 @@ select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type,
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndication_IEs, id));
+       const int indexToPresence[8] = {
+               ErrorIndication_IEs__value_PR_NOTHING,
+               ErrorIndication_IEs__value_PR_UE_X2AP_ID,
+               ErrorIndication_IEs__value_PR_UE_X2AP_ID,
+               ErrorIndication_IEs__value_PR_Cause,
+               ErrorIndication_IEs__value_PR_CriticalityDiagnostics,
+               ErrorIndication_IEs__value_PR_UE_X2AP_ID_Extension,
+               ErrorIndication_IEs__value_PR_UE_X2AP_ID_Extension,
+               ErrorIndication_IEs__value_PR_SgNB_UE_X2AP_ID
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -13299,7 +13368,7 @@ select_ErrorIndication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type,
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -14107,6 +14176,15 @@ select_ENBConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ENBConfigurationUpdate_IEs, id));
+       const int indexToPresence[7] = {
+               ENBConfigurationUpdate_IEs__value_PR_NOTHING,
+               ENBConfigurationUpdate_IEs__value_PR_ServedCells,
+               ENBConfigurationUpdate_IEs__value_PR_ServedCellsToModify,
+               ENBConfigurationUpdate_IEs__value_PR_Old_ECGIs,
+               ENBConfigurationUpdate_IEs__value_PR_GUGroupIDList,
+               ENBConfigurationUpdate_IEs__value_PR_GUGroupIDList,
+               ENBConfigurationUpdate_IEs__value_PR_CoverageModificationList
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -14118,7 +14196,7 @@ select_ENBConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -14458,6 +14536,18 @@ select_ResourceStatusRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusRequest_IEs, id));
+       const int indexToPresence[10] = {
+               ResourceStatusRequest_IEs__value_PR_NOTHING,
+               ResourceStatusRequest_IEs__value_PR_Measurement_ID,
+               ResourceStatusRequest_IEs__value_PR_Measurement_ID,
+               ResourceStatusRequest_IEs__value_PR_Registration_Request,
+               ResourceStatusRequest_IEs__value_PR_ReportCharacteristics,
+               ResourceStatusRequest_IEs__value_PR_CellToReport_List,
+               ResourceStatusRequest_IEs__value_PR_ReportingPeriodicity,
+               ResourceStatusRequest_IEs__value_PR_PartialSuccessIndicator,
+               ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityRSRPMR,
+               ResourceStatusRequest_IEs__value_PR_ReportingPeriodicityCSIR
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -14469,7 +14559,7 @@ select_ResourceStatusRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -14575,6 +14665,13 @@ select_ResourceStatusResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusResponse_IEs, id));
+       const int indexToPresence[5] = {
+               ResourceStatusResponse_IEs__value_PR_NOTHING,
+               ResourceStatusResponse_IEs__value_PR_Measurement_ID,
+               ResourceStatusResponse_IEs__value_PR_Measurement_ID,
+               ResourceStatusResponse_IEs__value_PR_CriticalityDiagnostics,
+               ResourceStatusResponse_IEs__value_PR_MeasurementInitiationResult_List
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -14586,7 +14683,7 @@ select_ResourceStatusResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -14692,6 +14789,14 @@ select_ResourceStatusFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusFailure_IEs, id));
+       const int indexToPresence[6] = {
+               ResourceStatusFailure_IEs__value_PR_NOTHING,
+               ResourceStatusFailure_IEs__value_PR_Measurement_ID,
+               ResourceStatusFailure_IEs__value_PR_Measurement_ID,
+               ResourceStatusFailure_IEs__value_PR_Cause,
+               ResourceStatusFailure_IEs__value_PR_CriticalityDiagnostics,
+               ResourceStatusFailure_IEs__value_PR_CompleteFailureCauseInformation_List
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -14703,7 +14808,7 @@ select_ResourceStatusFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -14809,6 +14914,12 @@ select_ResourceStatusUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_t
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResourceStatusUpdate_IEs, id));
+       const int indexToPresence[4] = {
+               ResourceStatusUpdate_IEs__value_PR_NOTHING,
+               ResourceStatusUpdate_IEs__value_PR_Measurement_ID,
+               ResourceStatusUpdate_IEs__value_PR_Measurement_ID,
+               ResourceStatusUpdate_IEs__value_PR_CellMeasurementResult_List
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -14820,7 +14931,7 @@ select_ResourceStatusUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_t
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -14926,6 +15037,14 @@ select_MobilityChangeRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeRequest_IEs, id));
+       const int indexToPresence[6] = {
+               MobilityChangeRequest_IEs__value_PR_NOTHING,
+               MobilityChangeRequest_IEs__value_PR_ECGI,
+               MobilityChangeRequest_IEs__value_PR_ECGI,
+               MobilityChangeRequest_IEs__value_PR_MobilityParametersInformation,
+               MobilityChangeRequest_IEs__value_PR_MobilityParametersInformation,
+               MobilityChangeRequest_IEs__value_PR_Cause
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -14937,7 +15056,7 @@ select_MobilityChangeRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -15043,6 +15162,12 @@ select_MobilityChangeAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *par
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeAcknowledge_IEs, id));
+       const int indexToPresence[4] = {
+               MobilityChangeAcknowledge_IEs__value_PR_NOTHING,
+               MobilityChangeAcknowledge_IEs__value_PR_ECGI,
+               MobilityChangeAcknowledge_IEs__value_PR_ECGI,
+               MobilityChangeAcknowledge_IEs__value_PR_CriticalityDiagnostics
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -15054,7 +15179,7 @@ select_MobilityChangeAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *par
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -15160,6 +15285,14 @@ select_MobilityChangeFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct MobilityChangeFailure_IEs, id));
+       const int indexToPresence[6] = {
+               MobilityChangeFailure_IEs__value_PR_NOTHING,
+               MobilityChangeFailure_IEs__value_PR_ECGI,
+               MobilityChangeFailure_IEs__value_PR_ECGI,
+               MobilityChangeFailure_IEs__value_PR_Cause,
+               MobilityChangeFailure_IEs__value_PR_MobilityParametersModificationRange,
+               MobilityChangeFailure_IEs__value_PR_CriticalityDiagnostics
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -15171,7 +15304,7 @@ select_MobilityChangeFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -15979,6 +16112,21 @@ select_SeNBAdditionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_ty
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequest_IEs, id));
+       const int indexToPresence[13] = {
+               SeNBAdditionRequest_IEs__value_PR_NOTHING,
+               SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID,
+               SeNBAdditionRequest_IEs__value_PR_UESecurityCapabilities,
+               SeNBAdditionRequest_IEs__value_PR_SeNBSecurityKey,
+               SeNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate,
+               SeNBAdditionRequest_IEs__value_PR_PLMN_Identity,
+               SeNBAdditionRequest_IEs__value_PR_E_RABs_ToBeAdded_List,
+               SeNBAdditionRequest_IEs__value_PR_MeNBtoSeNBContainer,
+               SeNBAdditionRequest_IEs__value_PR_CSGMembershipStatus,
+               SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID,
+               SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBAdditionRequest_IEs__value_PR_ExpectedUEBehaviour,
+               SeNBAdditionRequest_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -15990,7 +16138,7 @@ select_SeNBAdditionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_ty
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -16096,6 +16244,20 @@ select_SeNBAdditionRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestAcknowledge_IEs, id));
+       const int indexToPresence[12] = {
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_NOTHING,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_List,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_E_RAB_List,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_TransportLayerAddress,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_TransportLayerAddress,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBAdditionRequestAcknowledge_IEs__value_PR_TunnelInformation
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16107,7 +16269,7 @@ select_SeNBAdditionRequestAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -16213,6 +16375,15 @@ select_SeNBAdditionRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *par
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBAdditionRequestReject_IEs, id));
+       const int indexToPresence[7] = {
+               SeNBAdditionRequestReject_IEs__value_PR_NOTHING,
+               SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID,
+               SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID,
+               SeNBAdditionRequestReject_IEs__value_PR_Cause,
+               SeNBAdditionRequestReject_IEs__value_PR_CriticalityDiagnostics,
+               SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBAdditionRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16224,7 +16395,7 @@ select_SeNBAdditionRequestReject_IEs_value_type(const asn_TYPE_descriptor_t *par
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -16330,6 +16501,14 @@ select_SeNBReconfigurationComplete_IEs_value_type(const asn_TYPE_descriptor_t *p
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReconfigurationComplete_IEs, id));
+       const int indexToPresence[6] = {
+               SeNBReconfigurationComplete_IEs__value_PR_NOTHING,
+               SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID,
+               SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID,
+               SeNBReconfigurationComplete_IEs__value_PR_ResponseInformationSeNBReconfComp,
+               SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBReconfigurationComplete_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16341,7 +16520,7 @@ select_SeNBReconfigurationComplete_IEs_value_type(const asn_TYPE_descriptor_t *p
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -16447,6 +16626,19 @@ select_SeNBModificationRequest_IEs_value_type(const asn_TYPE_descriptor_t *paren
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequest_IEs, id));
+       const int indexToPresence[11] = {
+               SeNBModificationRequest_IEs__value_PR_NOTHING,
+               SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRequest_IEs__value_PR_Cause,
+               SeNBModificationRequest_IEs__value_PR_SCGChangeIndication,
+               SeNBModificationRequest_IEs__value_PR_PLMN_Identity,
+               SeNBModificationRequest_IEs__value_PR_UE_ContextInformationSeNBModReq,
+               SeNBModificationRequest_IEs__value_PR_MeNBtoSeNBContainer,
+               SeNBModificationRequest_IEs__value_PR_CSGMembershipStatus,
+               SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16458,7 +16650,7 @@ select_SeNBModificationRequest_IEs_value_type(const asn_TYPE_descriptor_t *paren
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -16564,6 +16756,19 @@ select_SeNBModificationRequestAcknowledge_IEs_value_type(const asn_TYPE_descript
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestAcknowledge_IEs, id));
+       const int indexToPresence[11] = {
+               SeNBModificationRequestAcknowledge_IEs__value_PR_NOTHING,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_ModAckList,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_ModAckList,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_ModAckList,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_SeNBtoMeNBContainer,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16575,7 +16780,7 @@ select_SeNBModificationRequestAcknowledge_IEs_value_type(const asn_TYPE_descript
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -16681,6 +16886,15 @@ select_SeNBModificationRequestReject_IEs_value_type(const asn_TYPE_descriptor_t
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequestReject_IEs, id));
+       const int indexToPresence[7] = {
+               SeNBModificationRequestReject_IEs__value_PR_NOTHING,
+               SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRequestReject_IEs__value_PR_Cause,
+               SeNBModificationRequestReject_IEs__value_PR_CriticalityDiagnostics,
+               SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBModificationRequestReject_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16692,7 +16906,7 @@ select_SeNBModificationRequestReject_IEs_value_type(const asn_TYPE_descriptor_t
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -16798,6 +17012,17 @@ select_SeNBModificationRequired_IEs_value_type(const asn_TYPE_descriptor_t *pare
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRequired_IEs, id));
+       const int indexToPresence[9] = {
+               SeNBModificationRequired_IEs__value_PR_NOTHING,
+               SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRequired_IEs__value_PR_Cause,
+               SeNBModificationRequired_IEs__value_PR_SCGChangeIndication,
+               SeNBModificationRequired_IEs__value_PR_E_RABs_ToBeReleased_ModReqd,
+               SeNBModificationRequired_IEs__value_PR_SeNBtoMeNBContainer,
+               SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBModificationRequired_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16809,7 +17034,7 @@ select_SeNBModificationRequired_IEs_value_type(const asn_TYPE_descriptor_t *pare
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -16915,6 +17140,15 @@ select_SeNBModificationConfirm_IEs_value_type(const asn_TYPE_descriptor_t *paren
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationConfirm_IEs, id));
+       const int indexToPresence[7] = {
+               SeNBModificationConfirm_IEs__value_PR_NOTHING,
+               SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationConfirm_IEs__value_PR_MeNBtoSeNBContainer,
+               SeNBModificationConfirm_IEs__value_PR_CriticalityDiagnostics,
+               SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBModificationConfirm_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16926,7 +17160,7 @@ select_SeNBModificationConfirm_IEs_value_type(const asn_TYPE_descriptor_t *paren
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -17032,6 +17266,16 @@ select_SeNBModificationRefuse_IEs_value_type(const asn_TYPE_descriptor_t *parent
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBModificationRefuse_IEs, id));
+       const int indexToPresence[8] = {
+               SeNBModificationRefuse_IEs__value_PR_NOTHING,
+               SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID,
+               SeNBModificationRefuse_IEs__value_PR_Cause,
+               SeNBModificationRefuse_IEs__value_PR_MeNBtoSeNBContainer,
+               SeNBModificationRefuse_IEs__value_PR_CriticalityDiagnostics,
+               SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBModificationRefuse_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -17043,7 +17287,7 @@ select_SeNBModificationRefuse_IEs_value_type(const asn_TYPE_descriptor_t *parent
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -17149,6 +17393,17 @@ select_SeNBReleaseRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_typ
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequest_IEs, id));
+       const int indexToPresence[9] = {
+               SeNBReleaseRequest_IEs__value_PR_NOTHING,
+               SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID,
+               SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID,
+               SeNBReleaseRequest_IEs__value_PR_Cause,
+               SeNBReleaseRequest_IEs__value_PR_E_RABs_ToBeReleased_List_RelReq,
+               SeNBReleaseRequest_IEs__value_PR_UE_ContextKeptIndicator,
+               SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBReleaseRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBReleaseRequest_IEs__value_PR_MakeBeforeBreakIndicator
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -17160,7 +17415,7 @@ select_SeNBReleaseRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_typ
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -17266,6 +17521,14 @@ select_SeNBReleaseRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_ty
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseRequired_IEs, id));
+       const int indexToPresence[6] = {
+               SeNBReleaseRequired_IEs__value_PR_NOTHING,
+               SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID,
+               SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID,
+               SeNBReleaseRequired_IEs__value_PR_Cause,
+               SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBReleaseRequired_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -17277,7 +17540,7 @@ select_SeNBReleaseRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_ty
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -17383,6 +17646,15 @@ select_SeNBReleaseConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_typ
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBReleaseConfirm_IEs, id));
+       const int indexToPresence[7] = {
+               SeNBReleaseConfirm_IEs__value_PR_NOTHING,
+               SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID,
+               SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID,
+               SeNBReleaseConfirm_IEs__value_PR_E_RABs_ToBeReleased_List_RelConf,
+               SeNBReleaseConfirm_IEs__value_PR_CriticalityDiagnostics,
+               SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBReleaseConfirm_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -17394,7 +17666,7 @@ select_SeNBReleaseConfirm_IEs_value_type(const asn_TYPE_descriptor_t *parent_typ
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -17500,6 +17772,14 @@ select_SeNBCounterCheckRequest_IEs_value_type(const asn_TYPE_descriptor_t *paren
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SeNBCounterCheckRequest_IEs, id));
+       const int indexToPresence[6] = {
+               SeNBCounterCheckRequest_IEs__value_PR_NOTHING,
+               SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID,
+               SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID,
+               SeNBCounterCheckRequest_IEs__value_PR_E_RABs_SubjectToCounterCheck_List,
+               SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+               SeNBCounterCheckRequest_IEs__value_PR_UE_X2AP_ID_Extension
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -17511,7 +17791,7 @@ select_SeNBCounterCheckRequest_IEs_value_type(const asn_TYPE_descriptor_t *paren
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -18085,6 +18365,24 @@ select_RetrieveUEContextResponse_IEs_value_type(const asn_TYPE_descriptor_t *par
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RetrieveUEContextResponse_IEs, id));
+       const int indexToPresence[16] = {
+               RetrieveUEContextResponse_IEs__value_PR_NOTHING,
+               RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID,
+               RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID_Extension,
+               RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID,
+               RetrieveUEContextResponse_IEs__value_PR_UE_X2AP_ID_Extension,
+               RetrieveUEContextResponse_IEs__value_PR_GUMMEI,
+               RetrieveUEContextResponse_IEs__value_PR_UE_ContextInformationRetrieve,
+               RetrieveUEContextResponse_IEs__value_PR_TraceActivation,
+               RetrieveUEContextResponse_IEs__value_PR_SRVCCOperationPossible,
+               RetrieveUEContextResponse_IEs__value_PR_Masked_IMEISV,
+               RetrieveUEContextResponse_IEs__value_PR_ExpectedUEBehaviour,
+               RetrieveUEContextResponse_IEs__value_PR_ProSeAuthorized,
+               RetrieveUEContextResponse_IEs__value_PR_CriticalityDiagnostics,
+               RetrieveUEContextResponse_IEs__value_PR_V2XServicesAuthorized,
+               RetrieveUEContextResponse_IEs__value_PR_AerialUEsubscriptionInformation,
+               RetrieveUEContextResponse_IEs__value_PR_Subscription_Based_UE_DifferentiationInfo
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -18096,7 +18394,7 @@ select_RetrieveUEContextResponse_IEs_value_type(const asn_TYPE_descriptor_t *par
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -18787,6 +19085,21 @@ select_SgNBModificationRequest_IEs_value_type(const asn_TYPE_descriptor_t *paren
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequest_IEs, id));
+       const int indexToPresence[13] = {
+               SgNBModificationRequest_IEs__value_PR_NOTHING,
+               SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID,
+               SgNBModificationRequest_IEs__value_PR_SgNB_UE_X2AP_ID,
+               SgNBModificationRequest_IEs__value_PR_Cause,
+               SgNBModificationRequest_IEs__value_PR_PLMN_Identity,
+               SgNBModificationRequest_IEs__value_PR_HandoverRestrictionList,
+               SgNBModificationRequest_IEs__value_PR_SCGConfigurationQuery,
+               SgNBModificationRequest_IEs__value_PR_UE_ContextInformation_SgNBModReq,
+               SgNBModificationRequest_IEs__value_PR_MeNBtoSgNBContainer,
+               SgNBModificationRequest_IEs__value_PR_UE_X2AP_ID_Extension,
+               SgNBModificationRequest_IEs__value_PR_MeNBResourceCoordinationInformation,
+               SgNBModificationRequest_IEs__value_PR_SplitSRBs,
+               SgNBModificationRequest_IEs__value_PR_SplitSRBs
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -18798,7 +19111,7 @@ select_SgNBModificationRequest_IEs_value_type(const asn_TYPE_descriptor_t *paren
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -18904,6 +19217,22 @@ select_SgNBModificationRequestAcknowledge_IEs_value_type(const asn_TYPE_descript
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct SgNBModificationRequestAcknowledge_IEs, id));
+       const int indexToPresence[14] = {
+               SgNBModificationRequestAcknowledge_IEs__value_PR_NOTHING,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_SgNB_UE_X2AP_ID,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeAdded_SgNBModAckList,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeModified_SgNBModAckList,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_E_RABs_Admitted_ToBeReleased_SgNBModAckList,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_E_RAB_List,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBtoMeNBContainer,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_CriticalityDiagnostics,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_UE_X2AP_ID_Extension,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_SgNBResourceCoordinationInformation,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_SplitSRBs,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_SplitSRBs,
+               SgNBModificationRequestAcknowledge_IEs__value_PR_RRC_Config_Ind
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -18915,7 +19244,7 @@ select_SgNBModificationRequestAcknowledge_IEs_value_type(const asn_TYPE_descript
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }
@@ -24583,6 +24912,13 @@ select_DataForwardingAddressIndication_IEs_value_type(const asn_TYPE_descriptor_
        size_t for_column = 2; /* &Value */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct DataForwardingAddressIndication_IEs, id));
+       const int indexToPresence[5] = {
+               DataForwardingAddressIndication_IEs__value_PR_NOTHING,
+               DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID_Extension,
+               DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID,
+               DataForwardingAddressIndication_IEs__value_PR_UE_X2AP_ID_Extension,
+               DataForwardingAddressIndication_IEs__value_PR_E_RABs_DataForwardingAddress_List
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -24594,7 +24930,7 @@ select_DataForwardingAddressIndication_IEs_value_type(const asn_TYPE_descriptor_
            presence_index++;
            if(constraining_cell->type_descriptor->op->compare_struct(constraining_cell->type_descriptor, constraining_value, constraining_cell->value_sptr) == 0) {
                result.type_descriptor = type_cell->type_descriptor;
-               result.presence_index = presence_index;
+               result.presence_index = indexToPresence[presence_index];
                break;
            }
        }