Upstreaming version 0.10.7
[ric-plt/submgr.git] / e2ap / lib / ProtocolExtensionField.c
index 0449d9f..62cda8d 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 "ProtocolExtensionField.h"
@@ -1595,6 +1595,15 @@ select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_extensionValue_type(const asn_T
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_SubjectToStatusTransfer_ItemExtIEs, id));
+       const int indexToPresence[7] = {
+               E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_ReceiveStatusOfULPDCPSDUsExtended,
+               E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTValueExtended,
+               E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTValueExtended,
+               E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_ReceiveStatusOfULPDCPSDUsPDCP_SNlength18,
+               E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTvaluePDCP_SNlength18,
+               E_RABs_SubjectToStatusTransfer_ItemExtIEs__extensionValue_PR_COUNTvaluePDCP_SNlength18
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -1606,7 +1615,7 @@ select_E_RABs_SubjectToStatusTransfer_ItemExtIEs_extensionValue_type(const asn_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;
            }
        }
@@ -2504,6 +2513,11 @@ select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_extensionValue_type(const asn_TYPE
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_Item_SCG_BearerExtIEs, id));
+       const int indexToPresence[3] = {
+               E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_Correlation_ID,
+               E_RABs_ToBeAdded_Item_SCG_BearerExtIEs__extensionValue_PR_Correlation_ID
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -2515,7 +2529,7 @@ select_E_RABs_ToBeAdded_Item_SCG_BearerExtIEs_extensionValue_type(const asn_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;
            }
        }
@@ -2999,6 +3013,11 @@ select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_extensionValue_type(const as
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs, id));
+       const int indexToPresence[3] = {
+               E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_Correlation_ID,
+               E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs__extensionValue_PR_Correlation_ID
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -3010,7 +3029,7 @@ select_E_RABs_ToBeAdded_ModReqItem_SCG_BearerExtIEs_extensionValue_type(const as
            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;
            }
        }
@@ -4601,6 +4620,12 @@ select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       const int indexToPresence[4] = {
+               E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_DuplicationActivation
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -4612,7 +4637,7 @@ select_E_RABs_ToBeAdded_SgNBAddReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_
            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;
            }
        }
@@ -4781,6 +4806,11 @@ select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_extens
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs, id));
+       const int indexToPresence[3] = {
+               E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -4792,7 +4822,7 @@ select_E_RABs_Admitted_ToBeAdded_SgNBAddReqAck_Item_SgNBPDCPpresentExtIEs_extens
            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;
            }
        }
@@ -5438,6 +5468,12 @@ select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       const int indexToPresence[4] = {
+               E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_DuplicationActivation
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -5449,7 +5485,7 @@ select_E_RABs_ToBeAdded_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionValue_
            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;
            }
        }
@@ -5735,6 +5771,12 @@ select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionVal
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs, id));
+       const int indexToPresence[4] = {
+               E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_GTPtunnelEndpoint
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -5746,7 +5788,7 @@ select_E_RABs_ToBeModified_SgNBModReq_Item_SgNBPDCPnotpresentExtIEs_extensionVal
            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;
            }
        }
@@ -6104,6 +6146,11 @@ select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extension
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id));
+       const int indexToPresence[3] = {
+               E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -6115,7 +6162,7 @@ select_E_RABs_Admitted_ToBeAdded_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extension
            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;
            }
        }
@@ -6401,6 +6448,11 @@ select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extens
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs, id));
+       const int indexToPresence[3] = {
+               E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -6412,7 +6464,7 @@ select_E_RABs_Admitted_ToBeModified_SgNBModAck_Item_SgNBPDCPpresentExtIEs_extens
            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;
            }
        }
@@ -7004,6 +7056,12 @@ select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_extensionValue
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs, id));
+       const int indexToPresence[4] = {
+               E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs__extensionValue_PR_NewDRBIDrequest
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -7015,7 +7073,7 @@ select_E_RABs_ToBeModified_SgNBModReqd_Item_SgNBPDCPpresentExtIEs_extensionValue
            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;
            }
        }
@@ -7364,6 +7422,11 @@ select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_ext
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs, id));
+       const int indexToPresence[3] = {
+               E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_NOTHING,
+               E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength,
+               E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs__extensionValue_PR_PDCPSnLength
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -7375,7 +7438,7 @@ select_E_RABs_AdmittedToBeModified_SgNBModConf_Item_SgNBPDCPnotpresentExtIEs_ext
            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;
            }
        }
@@ -11324,6 +11387,11 @@ select_E_RAB_Level_QoS_Parameters_ExtIEs_extensionValue_type(const asn_TYPE_desc
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E_RAB_Level_QoS_Parameters_ExtIEs, id));
+       const int indexToPresence[3] = {
+               E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR_NOTHING,
+               E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR_Packet_LossRate,
+               E_RAB_Level_QoS_Parameters_ExtIEs__extensionValue_PR_Packet_LossRate
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -11335,7 +11403,7 @@ select_E_RAB_Level_QoS_Parameters_ExtIEs_extensionValue_type(const asn_TYPE_desc
            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;
            }
        }
@@ -11756,6 +11824,15 @@ select_FDD_Info_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t *parent_t
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct FDD_Info_ExtIEs, id));
+       const int indexToPresence[7] = {
+               FDD_Info_ExtIEs__extensionValue_PR_NOTHING,
+               FDD_Info_ExtIEs__extensionValue_PR_EARFCNExtension,
+               FDD_Info_ExtIEs__extensionValue_PR_EARFCNExtension,
+               FDD_Info_ExtIEs__extensionValue_PR_OffsetOfNbiotChannelNumberToEARFCN,
+               FDD_Info_ExtIEs__extensionValue_PR_OffsetOfNbiotChannelNumberToEARFCN,
+               FDD_Info_ExtIEs__extensionValue_PR_NRS_NSSS_PowerOffset,
+               FDD_Info_ExtIEs__extensionValue_PR_NSSS_NumOccasionDifferentPrecoder
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -11767,7 +11844,7 @@ select_FDD_Info_ExtIEs_extensionValue_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;
            }
        }
@@ -12062,6 +12139,13 @@ select_GBR_QosInformation_ExtIEs_extensionValue_type(const asn_TYPE_descriptor_t
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct GBR_QosInformation_ExtIEs, id));
+       const int indexToPresence[5] = {
+               GBR_QosInformation_ExtIEs__extensionValue_PR_NOTHING,
+               GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate,
+               GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate,
+               GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate,
+               GBR_QosInformation_ExtIEs__extensionValue_PR_ExtendedBitRate
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -12073,7 +12157,7 @@ select_GBR_QosInformation_ExtIEs_extensionValue_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;
            }
        }
@@ -16598,6 +16682,11 @@ select_UEAggregate_MaximumBitrate_ExtIEs_extensionValue_type(const asn_TYPE_desc
        size_t for_column = 2; /* &Extension */
        size_t row, presence_index = 0;
        const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct UEAggregate_MaximumBitrate_ExtIEs, id));
+       const int indexToPresence[3] = {
+               UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR_NOTHING,
+               UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR_ExtendedBitRate,
+               UEAggregate_MaximumBitrate_ExtIEs__extensionValue_PR_ExtendedBitRate
+       };
        
        for(row=0; row < itable->rows_count; row++) {
            const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column];
@@ -16609,7 +16698,7 @@ select_UEAggregate_MaximumBitrate_ExtIEs_extensionValue_type(const asn_TYPE_desc
            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;
            }
        }