From: Ankit Barve Date: Tue, 1 Feb 2022 15:52:26 +0000 (+0000) Subject: Merge "[Epic-ID: ODUHIGH-406][Task-ID: ODUHIGH-415]: Paging Configuration" X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=a5f35b2204dd87ebe347f11282000852b55810ad;hp=49dc0e36836dc940ec40dea3a475ff067177819a;p=o-du%2Fl2.git Merge "[Epic-ID: ODUHIGH-406][Task-ID: ODUHIGH-415]: Paging Configuration" --- diff --git a/src/codec_utils/E2AP/AMFName.c b/src/codec_utils/E2AP/AMFName.c new file mode 100644 index 000000000..473aaa64d --- /dev/null +++ b/src/codec_utils/E2AP/AMFName.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "AMFName.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +AMFName_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_AMFName_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_AMFName_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_AMFName_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_AMFName_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_AMFName_1_v2c, /* Value to PER code map */ + asn_PER_MAP_AMFName_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_AMFName_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_AMFName = { + "AMFName", + "AMFName", + &asn_OP_PrintableString, + asn_DEF_AMFName_tags_1, + sizeof(asn_DEF_AMFName_tags_1) + /sizeof(asn_DEF_AMFName_tags_1[0]), /* 1 */ + asn_DEF_AMFName_tags_1, /* Same as above */ + sizeof(asn_DEF_AMFName_tags_1) + /sizeof(asn_DEF_AMFName_tags_1[0]), /* 1 */ + { &asn_OER_type_AMFName_constr_1, &asn_PER_type_AMFName_constr_1, AMFName_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/E2AP/AMFName.h b/src/codec_utils/E2AP/AMFName.h new file mode 100644 index 000000000..a91019f98 --- /dev/null +++ b/src/codec_utils/E2AP/AMFName.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _AMFName_H_ +#define _AMFName_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* AMFName */ +typedef PrintableString_t AMFName_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_AMFName_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_AMFName; +asn_struct_free_f AMFName_free; +asn_struct_print_f AMFName_print; +asn_constr_check_f AMFName_constraint; +ber_type_decoder_f AMFName_decode_ber; +der_type_encoder_f AMFName_encode_der; +xer_type_decoder_f AMFName_decode_xer; +xer_type_encoder_f AMFName_encode_xer; +oer_type_decoder_f AMFName_decode_oer; +oer_type_encoder_f AMFName_encode_oer; +per_type_decoder_f AMFName_decode_uper; +per_type_encoder_f AMFName_encode_uper; +per_type_decoder_f AMFName_decode_aper; +per_type_encoder_f AMFName_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _AMFName_H_ */ +#include diff --git a/src/codec_utils/E2AP/CauseE2.c b/src/codec_utils/E2AP/CauseE2.c index 4d39d1f26..9ec73cfa7 100644 --- a/src/codec_utils/E2AP/CauseE2.c +++ b/src/codec_utils/E2AP/CauseE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CauseE2.h" @@ -11,7 +11,7 @@ static asn_oer_constraints_t asn_OER_type_CauseE2_constr_1 CC_NOTUSED = { { 0, 0 }, -1}; asn_per_constraints_t asn_PER_type_CauseE2_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 4 } /* (0..4,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 5 } /* (0..5,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; @@ -19,7 +19,7 @@ asn_TYPE_member_t asn_MBR_CauseE2_1[] = { { ATF_NOFLAGS, 0, offsetof(struct CauseE2, choice.ricRequest), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_CauseRIC, + &asn_DEF_CauseRICrequest, 0, { 0, 0, 0 }, 0, 0, /* No default value */ @@ -34,9 +34,18 @@ asn_TYPE_member_t asn_MBR_CauseE2_1[] = { 0, 0, /* No default value */ "ricService" }, - { ATF_NOFLAGS, 0, offsetof(struct CauseE2, choice.transport), + { ATF_NOFLAGS, 0, offsetof(struct CauseE2, choice.e2Node), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), -1, /* IMPLICIT tag at current level */ + &asn_DEF_CauseE2node, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2Node" + }, + { ATF_NOFLAGS, 0, offsetof(struct CauseE2, choice.transport), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseTransport, 0, { 0, 0, 0 }, @@ -44,7 +53,7 @@ asn_TYPE_member_t asn_MBR_CauseE2_1[] = { "transport" }, { ATF_NOFLAGS, 0, offsetof(struct CauseE2, choice.protocol), - (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseProtocol, 0, @@ -53,7 +62,7 @@ asn_TYPE_member_t asn_MBR_CauseE2_1[] = { "protocol" }, { ATF_NOFLAGS, 0, offsetof(struct CauseE2, choice.misc), - (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CauseMisc, 0, @@ -65,9 +74,10 @@ asn_TYPE_member_t asn_MBR_CauseE2_1[] = { static const asn_TYPE_tag2member_t asn_MAP_CauseE2_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* misc */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* misc */ }; asn_CHOICE_specifics_t asn_SPC_CauseE2_specs_1 = { sizeof(struct CauseE2), @@ -75,9 +85,9 @@ asn_CHOICE_specifics_t asn_SPC_CauseE2_specs_1 = { offsetof(struct CauseE2, present), sizeof(((struct CauseE2 *)0)->present), asn_MAP_CauseE2_tag2el_1, - 5, /* Count of tags in the map */ + 6, /* Count of tags in the map */ 0, 0, - 5 /* Extensions start */ + 6 /* Extensions start */ }; asn_TYPE_descriptor_t asn_DEF_CauseE2 = { "CauseE2", @@ -89,7 +99,7 @@ asn_TYPE_descriptor_t asn_DEF_CauseE2 = { 0, /* No tags (count) */ { &asn_OER_type_CauseE2_constr_1, &asn_PER_type_CauseE2_constr_1, CHOICE_constraint }, asn_MBR_CauseE2_1, - 5, /* Elements count */ + 6, /* Elements count */ &asn_SPC_CauseE2_specs_1 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/CauseE2.h b/src/codec_utils/E2AP/CauseE2.h index 1298a7f97..075677e68 100644 --- a/src/codec_utils/E2AP/CauseE2.h +++ b/src/codec_utils/E2AP/CauseE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CauseE2_H_ @@ -12,8 +12,9 @@ #include /* Including external dependencies */ -#include "CauseRIC.h" +#include "CauseRICrequest.h" #include "CauseRICservice.h" +#include "CauseE2node.h" #include "CauseTransport.h" #include "CauseProtocol.h" #include "CauseMisc.h" @@ -28,6 +29,7 @@ typedef enum CauseE2_PR { CauseE2_PR_NOTHING, /* No components present */ CauseE2_PR_ricRequest, CauseE2_PR_ricService, + CauseE2_PR_e2Node, CauseE2_PR_transport, CauseE2_PR_protocol, CauseE2_PR_misc @@ -39,8 +41,9 @@ typedef enum CauseE2_PR { typedef struct CauseE2 { CauseE2_PR present; union CauseE2_u { - CauseRIC_t ricRequest; + CauseRICrequest_t ricRequest; CauseRICservice_t ricService; + CauseE2node_t e2Node; CauseTransport_t transport; CauseProtocol_t protocol; CauseMisc_t misc; @@ -57,7 +60,7 @@ typedef struct CauseE2 { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_CauseE2; extern asn_CHOICE_specifics_t asn_SPC_CauseE2_specs_1; -extern asn_TYPE_member_t asn_MBR_CauseE2_1[5]; +extern asn_TYPE_member_t asn_MBR_CauseE2_1[6]; extern asn_per_constraints_t asn_PER_type_CauseE2_constr_1; #ifdef __cplusplus diff --git a/src/codec_utils/E2AP/CauseE2node.c b/src/codec_utils/E2AP/CauseE2node.c new file mode 100644 index 000000000..731fb2ca1 --- /dev/null +++ b/src/codec_utils/E2AP/CauseE2node.c @@ -0,0 +1,56 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CauseE2node.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseE2node_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CauseE2node_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 0, 0, 0, 0 } /* (0..0,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseE2node_value2enum_1[] = { + { 0, 24, "e2node-component-unknown" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseE2node_enum2value_1[] = { + 0 /* e2node-component-unknown(0) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseE2node_specs_1 = { + asn_MAP_CauseE2node_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseE2node_enum2value_1, /* N => "tag"; sorted by N */ + 1, /* Number of elements in the maps */ + 2, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseE2node_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseE2node = { + "CauseE2node", + "CauseE2node", + &asn_OP_NativeEnumerated, + asn_DEF_CauseE2node_tags_1, + sizeof(asn_DEF_CauseE2node_tags_1) + /sizeof(asn_DEF_CauseE2node_tags_1[0]), /* 1 */ + asn_DEF_CauseE2node_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseE2node_tags_1) + /sizeof(asn_DEF_CauseE2node_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseE2node_constr_1, &asn_PER_type_CauseE2node_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseE2node_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/CauseE2node.h b/src/codec_utils/E2AP/CauseE2node.h new file mode 100644 index 000000000..ccfc6aa04 --- /dev/null +++ b/src/codec_utils/E2AP/CauseE2node.h @@ -0,0 +1,55 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CauseE2node_H_ +#define _CauseE2node_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseE2node { + CauseE2node_e2node_component_unknown = 0 + /* + * Enumeration is extensible + */ +} e_CauseE2node; + +/* CauseE2node */ +typedef long CauseE2node_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseE2node_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseE2node; +extern const asn_INTEGER_specifics_t asn_SPC_CauseE2node_specs_1; +asn_struct_free_f CauseE2node_free; +asn_struct_print_f CauseE2node_print; +asn_constr_check_f CauseE2node_constraint; +ber_type_decoder_f CauseE2node_decode_ber; +der_type_encoder_f CauseE2node_encode_der; +xer_type_decoder_f CauseE2node_decode_xer; +xer_type_encoder_f CauseE2node_encode_xer; +oer_type_decoder_f CauseE2node_decode_oer; +oer_type_encoder_f CauseE2node_encode_oer; +per_type_decoder_f CauseE2node_decode_uper; +per_type_encoder_f CauseE2node_encode_uper; +per_type_decoder_f CauseE2node_decode_aper; +per_type_encoder_f CauseE2node_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseE2node_H_ */ +#include diff --git a/src/codec_utils/E2AP/CauseMisc.c b/src/codec_utils/E2AP/CauseMisc.c index 2cc334e5d..6d8fc3885 100644 --- a/src/codec_utils/E2AP/CauseMisc.c +++ b/src/codec_utils/E2AP/CauseMisc.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CauseMisc.h" diff --git a/src/codec_utils/E2AP/CauseMisc.h b/src/codec_utils/E2AP/CauseMisc.h index bd8c78463..83c35d621 100644 --- a/src/codec_utils/E2AP/CauseMisc.h +++ b/src/codec_utils/E2AP/CauseMisc.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CauseMisc_H_ diff --git a/src/codec_utils/E2AP/CauseProtocol.c b/src/codec_utils/E2AP/CauseProtocol.c index 6f9fa4123..8fdc1c656 100644 --- a/src/codec_utils/E2AP/CauseProtocol.c +++ b/src/codec_utils/E2AP/CauseProtocol.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CauseProtocol.h" diff --git a/src/codec_utils/E2AP/CauseProtocol.h b/src/codec_utils/E2AP/CauseProtocol.h index 75083ab9b..ae7d706c9 100644 --- a/src/codec_utils/E2AP/CauseProtocol.h +++ b/src/codec_utils/E2AP/CauseProtocol.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CauseProtocol_H_ diff --git a/src/codec_utils/E2AP/CauseRIC.c b/src/codec_utils/E2AP/CauseRIC.c deleted file mode 100644 index 18e644e92..000000000 --- a/src/codec_utils/E2AP/CauseRIC.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "CauseRIC.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_CauseRIC_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -asn_per_constraints_t asn_PER_type_CauseRIC_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 10 } /* (0..10,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_CauseRIC_value2enum_1[] = { - { 0, 23, "ran-function-id-Invalid" }, - { 1, 20, "action-not-supported" }, - { 2, 17, "excessive-actions" }, - { 3, 16, "duplicate-action" }, - { 4, 15, "duplicate-event" }, - { 5, 23, "function-resource-limit" }, - { 6, 18, "request-id-unknown" }, - { 7, 46, "inconsistent-action-subsequent-action-sequence" }, - { 8, 23, "control-message-invalid" }, - { 9, 23, "call-process-id-invalid" }, - { 10, 11, "unspecified" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_CauseRIC_enum2value_1[] = { - 1, /* action-not-supported(1) */ - 9, /* call-process-id-invalid(9) */ - 8, /* control-message-invalid(8) */ - 3, /* duplicate-action(3) */ - 4, /* duplicate-event(4) */ - 2, /* excessive-actions(2) */ - 5, /* function-resource-limit(5) */ - 7, /* inconsistent-action-subsequent-action-sequence(7) */ - 0, /* ran-function-id-Invalid(0) */ - 6, /* request-id-unknown(6) */ - 10 /* unspecified(10) */ - /* This list is extensible */ -}; -const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1 = { - asn_MAP_CauseRIC_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_CauseRIC_enum2value_1, /* N => "tag"; sorted by N */ - 11, /* Number of elements in the maps */ - 12, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_CauseRIC_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_CauseRIC = { - "CauseRIC", - "CauseRIC", - &asn_OP_NativeEnumerated, - asn_DEF_CauseRIC_tags_1, - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - asn_DEF_CauseRIC_tags_1, /* Same as above */ - sizeof(asn_DEF_CauseRIC_tags_1) - /sizeof(asn_DEF_CauseRIC_tags_1[0]), /* 1 */ - { &asn_OER_type_CauseRIC_constr_1, &asn_PER_type_CauseRIC_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_CauseRIC_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/E2AP/CauseRIC.h b/src/codec_utils/E2AP/CauseRIC.h deleted file mode 100644 index b4925f308..000000000 --- a/src/codec_utils/E2AP/CauseRIC.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _CauseRIC_H_ -#define _CauseRIC_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum CauseRIC { - CauseRIC_ran_function_id_Invalid = 0, - CauseRIC_action_not_supported = 1, - CauseRIC_excessive_actions = 2, - CauseRIC_duplicate_action = 3, - CauseRIC_duplicate_event = 4, - CauseRIC_function_resource_limit = 5, - CauseRIC_request_id_unknown = 6, - CauseRIC_inconsistent_action_subsequent_action_sequence = 7, - CauseRIC_control_message_invalid = 8, - CauseRIC_call_process_id_invalid = 9, - CauseRIC_unspecified = 10 - /* - * Enumeration is extensible - */ -} e_CauseRIC; - -/* CauseRIC */ -typedef long CauseRIC_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_CauseRIC_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_CauseRIC; -extern const asn_INTEGER_specifics_t asn_SPC_CauseRIC_specs_1; -asn_struct_free_f CauseRIC_free; -asn_struct_print_f CauseRIC_print; -asn_constr_check_f CauseRIC_constraint; -ber_type_decoder_f CauseRIC_decode_ber; -der_type_encoder_f CauseRIC_encode_der; -xer_type_decoder_f CauseRIC_decode_xer; -xer_type_encoder_f CauseRIC_encode_xer; -oer_type_decoder_f CauseRIC_decode_oer; -oer_type_encoder_f CauseRIC_encode_oer; -per_type_decoder_f CauseRIC_decode_uper; -per_type_encoder_f CauseRIC_encode_uper; -per_type_decoder_f CauseRIC_decode_aper; -per_type_encoder_f CauseRIC_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _CauseRIC_H_ */ -#include diff --git a/src/codec_utils/E2AP/CauseRICrequest.c b/src/codec_utils/E2AP/CauseRICrequest.c new file mode 100644 index 000000000..a723b2bc5 --- /dev/null +++ b/src/codec_utils/E2AP/CauseRICrequest.c @@ -0,0 +1,82 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "CauseRICrequest.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_CauseRICrequest_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_CauseRICrequest_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 4, 4, 0, 13 } /* (0..13,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_CauseRICrequest_value2enum_1[] = { + { 0, 23, "ran-function-id-invalid" }, + { 1, 20, "action-not-supported" }, + { 2, 17, "excessive-actions" }, + { 3, 16, "duplicate-action" }, + { 4, 23, "duplicate-event-trigger" }, + { 5, 23, "function-resource-limit" }, + { 6, 18, "request-id-unknown" }, + { 7, 46, "inconsistent-action-subsequent-action-sequence" }, + { 8, 23, "control-message-invalid" }, + { 9, 27, "ric-call-process-id-invalid" }, + { 10, 21, "control-timer-expired" }, + { 11, 25, "control-failed-to-execute" }, + { 12, 16, "system-not-ready" }, + { 13, 11, "unspecified" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_CauseRICrequest_enum2value_1[] = { + 1, /* action-not-supported(1) */ + 11, /* control-failed-to-execute(11) */ + 8, /* control-message-invalid(8) */ + 10, /* control-timer-expired(10) */ + 3, /* duplicate-action(3) */ + 4, /* duplicate-event-trigger(4) */ + 2, /* excessive-actions(2) */ + 5, /* function-resource-limit(5) */ + 7, /* inconsistent-action-subsequent-action-sequence(7) */ + 0, /* ran-function-id-invalid(0) */ + 6, /* request-id-unknown(6) */ + 9, /* ric-call-process-id-invalid(9) */ + 12, /* system-not-ready(12) */ + 13 /* unspecified(13) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_CauseRICrequest_specs_1 = { + asn_MAP_CauseRICrequest_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_CauseRICrequest_enum2value_1, /* N => "tag"; sorted by N */ + 14, /* Number of elements in the maps */ + 15, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_CauseRICrequest_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_CauseRICrequest = { + "CauseRICrequest", + "CauseRICrequest", + &asn_OP_NativeEnumerated, + asn_DEF_CauseRICrequest_tags_1, + sizeof(asn_DEF_CauseRICrequest_tags_1) + /sizeof(asn_DEF_CauseRICrequest_tags_1[0]), /* 1 */ + asn_DEF_CauseRICrequest_tags_1, /* Same as above */ + sizeof(asn_DEF_CauseRICrequest_tags_1) + /sizeof(asn_DEF_CauseRICrequest_tags_1[0]), /* 1 */ + { &asn_OER_type_CauseRICrequest_constr_1, &asn_PER_type_CauseRICrequest_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_CauseRICrequest_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/CauseRICrequest.h b/src/codec_utils/E2AP/CauseRICrequest.h new file mode 100644 index 000000000..4d09a28f5 --- /dev/null +++ b/src/codec_utils/E2AP/CauseRICrequest.h @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _CauseRICrequest_H_ +#define _CauseRICrequest_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum CauseRICrequest { + CauseRICrequest_ran_function_id_invalid = 0, + CauseRICrequest_action_not_supported = 1, + CauseRICrequest_excessive_actions = 2, + CauseRICrequest_duplicate_action = 3, + CauseRICrequest_duplicate_event_trigger = 4, + CauseRICrequest_function_resource_limit = 5, + CauseRICrequest_request_id_unknown = 6, + CauseRICrequest_inconsistent_action_subsequent_action_sequence = 7, + CauseRICrequest_control_message_invalid = 8, + CauseRICrequest_ric_call_process_id_invalid = 9, + CauseRICrequest_control_timer_expired = 10, + CauseRICrequest_control_failed_to_execute = 11, + CauseRICrequest_system_not_ready = 12, + CauseRICrequest_unspecified = 13 + /* + * Enumeration is extensible + */ +} e_CauseRICrequest; + +/* CauseRICrequest */ +typedef long CauseRICrequest_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_CauseRICrequest_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_CauseRICrequest; +extern const asn_INTEGER_specifics_t asn_SPC_CauseRICrequest_specs_1; +asn_struct_free_f CauseRICrequest_free; +asn_struct_print_f CauseRICrequest_print; +asn_constr_check_f CauseRICrequest_constraint; +ber_type_decoder_f CauseRICrequest_decode_ber; +der_type_encoder_f CauseRICrequest_encode_der; +xer_type_decoder_f CauseRICrequest_decode_xer; +xer_type_encoder_f CauseRICrequest_encode_xer; +oer_type_decoder_f CauseRICrequest_decode_oer; +oer_type_encoder_f CauseRICrequest_encode_oer; +per_type_decoder_f CauseRICrequest_decode_uper; +per_type_encoder_f CauseRICrequest_encode_uper; +per_type_decoder_f CauseRICrequest_decode_aper; +per_type_encoder_f CauseRICrequest_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _CauseRICrequest_H_ */ +#include diff --git a/src/codec_utils/E2AP/CauseRICservice.c b/src/codec_utils/E2AP/CauseRICservice.c index 2846bfefb..a2fb0f163 100644 --- a/src/codec_utils/E2AP/CauseRICservice.c +++ b/src/codec_utils/E2AP/CauseRICservice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CauseRICservice.h" @@ -20,14 +20,14 @@ asn_per_constraints_t asn_PER_type_CauseRICservice_constr_1 CC_NOTUSED = { 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_CauseRICservice_value2enum_1[] = { - { 0, 21, "function-not-required" }, + { 0, 26, "ran-function-not-supported" }, { 1, 19, "excessive-functions" }, { 2, 18, "ric-resource-limit" } /* This list is extensible */ }; static const unsigned int asn_MAP_CauseRICservice_enum2value_1[] = { 1, /* excessive-functions(1) */ - 0, /* function-not-required(0) */ + 0, /* ran-function-not-supported(0) */ 2 /* ric-resource-limit(2) */ /* This list is extensible */ }; diff --git a/src/codec_utils/E2AP/CauseRICservice.h b/src/codec_utils/E2AP/CauseRICservice.h index cc6db2d18..36f976790 100644 --- a/src/codec_utils/E2AP/CauseRICservice.h +++ b/src/codec_utils/E2AP/CauseRICservice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CauseRICservice_H_ @@ -20,7 +20,7 @@ extern "C" { /* Dependencies */ typedef enum CauseRICservice { - CauseRICservice_function_not_required = 0, + CauseRICservice_ran_function_not_supported = 0, CauseRICservice_excessive_functions = 1, CauseRICservice_ric_resource_limit = 2 /* diff --git a/src/codec_utils/E2AP/CauseTransport.c b/src/codec_utils/E2AP/CauseTransport.c index 6189c270c..e72e31019 100644 --- a/src/codec_utils/E2AP/CauseTransport.c +++ b/src/codec_utils/E2AP/CauseTransport.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CauseTransport.h" diff --git a/src/codec_utils/E2AP/CauseTransport.h b/src/codec_utils/E2AP/CauseTransport.h index ec4550d12..ba77953e8 100644 --- a/src/codec_utils/E2AP/CauseTransport.h +++ b/src/codec_utils/E2AP/CauseTransport.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CauseTransport_H_ diff --git a/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ItemE2.c b/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ItemE2.c index 2c8702565..db06d3168 100644 --- a/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ItemE2.c +++ b/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ItemE2.c @@ -1,21 +1,21 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CriticalityDiagnostics-IE-ItemE2.h" asn_TYPE_member_t asn_MBR_CriticalityDiagnostics_IE_ItemE2_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_ItemE2, iECriticalityE2), + { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_ItemE2, iECriticality), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "iECriticalityE2" + "iECriticality" }, { ATF_NOFLAGS, 0, offsetof(struct CriticalityDiagnostics_IE_ItemE2, iE_ID), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), @@ -40,7 +40,7 @@ static const ber_tlv_tag_t asn_DEF_CriticalityDiagnostics_IE_ItemE2_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_CriticalityDiagnostics_IE_ItemE2_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticalityE2 */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* iECriticality */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* iE-ID */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* typeOfError */ }; diff --git a/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ItemE2.h b/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ItemE2.h index 701fc31ef..61828d262 100644 --- a/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ItemE2.h +++ b/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ItemE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CriticalityDiagnostics_IE_ItemE2_H_ @@ -23,7 +23,7 @@ extern "C" { /* CriticalityDiagnostics-IE-ItemE2 */ typedef struct CriticalityDiagnostics_IE_ItemE2 { - CriticalityE2_t iECriticalityE2; + CriticalityE2_t iECriticality; ProtocolIE_IDE2_t iE_ID; TypeOfErrorE2_t typeOfError; /* diff --git a/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ListE2.c b/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ListE2.c index c548688e7..22dc08fb9 100644 --- a/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ListE2.c +++ b/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ListE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CriticalityDiagnostics-IE-ListE2.h" diff --git a/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ListE2.h b/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ListE2.h index 6c0424df9..bb608050a 100644 --- a/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ListE2.h +++ b/src/codec_utils/E2AP/CriticalityDiagnostics-IE-ListE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CriticalityDiagnostics_IE_ListE2_H_ diff --git a/src/codec_utils/E2AP/CriticalityDiagnosticsE2.c b/src/codec_utils/E2AP/CriticalityDiagnosticsE2.c index 67cee5133..eb4e16c87 100644 --- a/src/codec_utils/E2AP/CriticalityDiagnosticsE2.c +++ b/src/codec_utils/E2AP/CriticalityDiagnosticsE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CriticalityDiagnosticsE2.h" diff --git a/src/codec_utils/E2AP/CriticalityDiagnosticsE2.h b/src/codec_utils/E2AP/CriticalityDiagnosticsE2.h index 4cba2c711..fc078d17d 100644 --- a/src/codec_utils/E2AP/CriticalityDiagnosticsE2.h +++ b/src/codec_utils/E2AP/CriticalityDiagnosticsE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CriticalityDiagnosticsE2_H_ diff --git a/src/codec_utils/E2AP/CriticalityE2.c b/src/codec_utils/E2AP/CriticalityE2.c index 45a5d8728..7140f1e37 100644 --- a/src/codec_utils/E2AP/CriticalityE2.c +++ b/src/codec_utils/E2AP/CriticalityE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "CriticalityE2.h" diff --git a/src/codec_utils/E2AP/CriticalityE2.h b/src/codec_utils/E2AP/CriticalityE2.h index fea39ba66..232a93d87 100644 --- a/src/codec_utils/E2AP/CriticalityE2.h +++ b/src/codec_utils/E2AP/CriticalityE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _CriticalityE2_H_ diff --git a/src/codec_utils/E2AP/E2AP-PDU.c b/src/codec_utils/E2AP/E2AP-PDU.c index da98a385f..a1f927c57 100644 --- a/src/codec_utils/E2AP/E2AP-PDU.c +++ b/src/codec_utils/E2AP/E2AP-PDU.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "E2AP-PDU.h" diff --git a/src/codec_utils/E2AP/E2AP-PDU.h b/src/codec_utils/E2AP/E2AP-PDU.h index 04086642d..2617f3e45 100644 --- a/src/codec_utils/E2AP/E2AP-PDU.h +++ b/src/codec_utils/E2AP/E2AP-PDU.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _E2AP_PDU_H_ @@ -10,9 +10,6 @@ #include -#include -#include -#include /* Including external dependencies */ #include diff --git a/src/codec_utils/E2AP/E2connectionSetupFailed-Item.c b/src/codec_utils/E2AP/E2connectionSetupFailed-Item.c new file mode 100644 index 000000000..f474eebc0 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionSetupFailed-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionSetupFailed-Item.h" + +static asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_Item, tnlInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CauseE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* cause */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_Item_specs_1 = { + sizeof(struct E2connectionSetupFailed_Item), + offsetof(struct E2connectionSetupFailed_Item, _asn_ctx), + asn_MAP_E2connectionSetupFailed_Item_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_Item = { + "E2connectionSetupFailed-Item", + "E2connectionSetupFailed-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionSetupFailed_Item_tags_1, + sizeof(asn_DEF_E2connectionSetupFailed_Item_tags_1) + /sizeof(asn_DEF_E2connectionSetupFailed_Item_tags_1[0]), /* 1 */ + asn_DEF_E2connectionSetupFailed_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionSetupFailed_Item_tags_1) + /sizeof(asn_DEF_E2connectionSetupFailed_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionSetupFailed_Item_1, + 2, /* Elements count */ + &asn_SPC_E2connectionSetupFailed_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionSetupFailed-Item.h b/src/codec_utils/E2AP/E2connectionSetupFailed-Item.h new file mode 100644 index 000000000..531000643 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionSetupFailed-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionSetupFailed_Item_H_ +#define _E2connectionSetupFailed_Item_H_ + + +#include + +/* Including external dependencies */ +#include "TNLinformation.h" +#include "CauseE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionSetupFailed-Item */ +typedef struct E2connectionSetupFailed_Item { + TNLinformation_t tnlInformation; + CauseE2_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionSetupFailed_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionSetupFailed_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2connectionSetupFailed-List.c b/src/codec_utils/E2AP/E2connectionSetupFailed-List.c new file mode 100644 index 000000000..edc44a477 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionSetupFailed-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionSetupFailed-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2connectionSetupFailed_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_E2connectionSetupFailed_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2connectionSetupFailed_List_specs_1 = { + sizeof(struct E2connectionSetupFailed_List), + offsetof(struct E2connectionSetupFailed_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_List = { + "E2connectionSetupFailed-List", + "E2connectionSetupFailed-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2connectionSetupFailed_List_tags_1, + sizeof(asn_DEF_E2connectionSetupFailed_List_tags_1) + /sizeof(asn_DEF_E2connectionSetupFailed_List_tags_1[0]), /* 1 */ + asn_DEF_E2connectionSetupFailed_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionSetupFailed_List_tags_1) + /sizeof(asn_DEF_E2connectionSetupFailed_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2connectionSetupFailed_List_constr_1, &asn_PER_type_E2connectionSetupFailed_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2connectionSetupFailed_List_1, + 1, /* Single element */ + &asn_SPC_E2connectionSetupFailed_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionSetupFailed-List.h b/src/codec_utils/E2AP/E2connectionSetupFailed-List.h new file mode 100644 index 000000000..8a42cc27b --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionSetupFailed-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionSetupFailed_List_H_ +#define _E2connectionSetupFailed_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2connectionSetupFailed-List */ +typedef struct E2connectionSetupFailed_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionSetupFailed_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionSetupFailed_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2connectionUpdate-Item.c b/src/codec_utils/E2AP/E2connectionUpdate-Item.c new file mode 100644 index 000000000..a9a80685c --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdate-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionUpdate-Item.h" + +static asn_TYPE_member_t asn_MBR_E2connectionUpdate_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_Item, tnlInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_Item, tnlUsage), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLusage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlUsage" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlUsage */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_Item_specs_1 = { + sizeof(struct E2connectionUpdate_Item), + offsetof(struct E2connectionUpdate_Item, _asn_ctx), + asn_MAP_E2connectionUpdate_Item_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_Item = { + "E2connectionUpdate-Item", + "E2connectionUpdate-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdate_Item_tags_1, + sizeof(asn_DEF_E2connectionUpdate_Item_tags_1) + /sizeof(asn_DEF_E2connectionUpdate_Item_tags_1[0]), /* 1 */ + asn_DEF_E2connectionUpdate_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_Item_tags_1) + /sizeof(asn_DEF_E2connectionUpdate_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdate_Item_1, + 2, /* Elements count */ + &asn_SPC_E2connectionUpdate_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionUpdate-Item.h b/src/codec_utils/E2AP/E2connectionUpdate-Item.h new file mode 100644 index 000000000..cfa89d4c2 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdate-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionUpdate_Item_H_ +#define _E2connectionUpdate_Item_H_ + + +#include + +/* Including external dependencies */ +#include "TNLinformation.h" +#include "TNLusage.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionUpdate-Item */ +typedef struct E2connectionUpdate_Item { + TNLinformation_t tnlInformation; + TNLusage_t tnlUsage; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdate_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdate_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2connectionUpdate-List.c b/src/codec_utils/E2AP/E2connectionUpdate-List.c new file mode 100644 index 000000000..2be4919fc --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdate-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionUpdate-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2connectionUpdate_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_E2connectionUpdate_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2connectionUpdate_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P4, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2connectionUpdate_List_specs_1 = { + sizeof(struct E2connectionUpdate_List), + offsetof(struct E2connectionUpdate_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_List = { + "E2connectionUpdate-List", + "E2connectionUpdate-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2connectionUpdate_List_tags_1, + sizeof(asn_DEF_E2connectionUpdate_List_tags_1) + /sizeof(asn_DEF_E2connectionUpdate_List_tags_1[0]), /* 1 */ + asn_DEF_E2connectionUpdate_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_List_tags_1) + /sizeof(asn_DEF_E2connectionUpdate_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2connectionUpdate_List_constr_1, &asn_PER_type_E2connectionUpdate_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2connectionUpdate_List_1, + 1, /* Single element */ + &asn_SPC_E2connectionUpdate_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionUpdate-List.h b/src/codec_utils/E2AP/E2connectionUpdate-List.h new file mode 100644 index 000000000..3c44570db --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdate-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionUpdate_List_H_ +#define _E2connectionUpdate_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2connectionUpdate-List */ +typedef struct E2connectionUpdate_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdate_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdate_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2connectionUpdate.c b/src/codec_utils/E2AP/E2connectionUpdate.c new file mode 100644 index 000000000..42955a1f7 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionUpdate.h" + +asn_TYPE_member_t asn_MBR_E2connectionUpdate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ContainerE2_1925P15, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_specs_1 = { + sizeof(struct E2connectionUpdate), + offsetof(struct E2connectionUpdate, _asn_ctx), + asn_MAP_E2connectionUpdate_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate = { + "E2connectionUpdate", + "E2connectionUpdate", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdate_tags_1, + sizeof(asn_DEF_E2connectionUpdate_tags_1) + /sizeof(asn_DEF_E2connectionUpdate_tags_1[0]), /* 1 */ + asn_DEF_E2connectionUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_tags_1) + /sizeof(asn_DEF_E2connectionUpdate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdate_1, + 1, /* Elements count */ + &asn_SPC_E2connectionUpdate_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionUpdate.h b/src/codec_utils/E2AP/E2connectionUpdate.h new file mode 100644 index 000000000..eed948bce --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionUpdate_H_ +#define _E2connectionUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ContainerE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionUpdate */ +typedef struct E2connectionUpdate { + ProtocolIE_ContainerE2_1925P15_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdate_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2connectionUpdateAcknowledge.c b/src/codec_utils/E2AP/E2connectionUpdateAcknowledge.c new file mode 100644 index 000000000..75d482d0d --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionUpdateAcknowledge.h" + +asn_TYPE_member_t asn_MBR_E2connectionUpdateAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ContainerE2_1925P16, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAcknowledge_specs_1 = { + sizeof(struct E2connectionUpdateAcknowledge), + offsetof(struct E2connectionUpdateAcknowledge, _asn_ctx), + asn_MAP_E2connectionUpdateAcknowledge_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAcknowledge = { + "E2connectionUpdateAcknowledge", + "E2connectionUpdateAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdateAcknowledge_tags_1, + sizeof(asn_DEF_E2connectionUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_E2connectionUpdateAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_E2connectionUpdateAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_E2connectionUpdateAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_E2connectionUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionUpdateAcknowledge.h b/src/codec_utils/E2AP/E2connectionUpdateAcknowledge.h new file mode 100644 index 000000000..07a1cd470 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionUpdateAcknowledge_H_ +#define _E2connectionUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ContainerE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionUpdateAcknowledge */ +typedef struct E2connectionUpdateAcknowledge { + ProtocolIE_ContainerE2_1925P16_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdateAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdateAcknowledge_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2connectionUpdateFailure.c b/src/codec_utils/E2AP/E2connectionUpdateFailure.c new file mode 100644 index 000000000..93b29ffc9 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionUpdateFailure.h" + +asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ContainerE2_1925P17, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_specs_1 = { + sizeof(struct E2connectionUpdateFailure), + offsetof(struct E2connectionUpdateFailure, _asn_ctx), + asn_MAP_E2connectionUpdateFailure_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure = { + "E2connectionUpdateFailure", + "E2connectionUpdateFailure", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdateFailure_tags_1, + sizeof(asn_DEF_E2connectionUpdateFailure_tags_1) + /sizeof(asn_DEF_E2connectionUpdateFailure_tags_1[0]), /* 1 */ + asn_DEF_E2connectionUpdateFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateFailure_tags_1) + /sizeof(asn_DEF_E2connectionUpdateFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_E2connectionUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionUpdateFailure.h b/src/codec_utils/E2AP/E2connectionUpdateFailure.h new file mode 100644 index 000000000..7e927a13f --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionUpdateFailure_H_ +#define _E2connectionUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ContainerE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionUpdateFailure */ +typedef struct E2connectionUpdateFailure { + ProtocolIE_ContainerE2_1925P17_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdateFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdateFailure_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2connectionUpdateRemove-Item.c b/src/codec_utils/E2AP/E2connectionUpdateRemove-Item.c new file mode 100644 index 000000000..100f29ec2 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdateRemove-Item.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionUpdateRemove-Item.h" + +static asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_Item, tnlInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformation" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* tnlInformation */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_Item_specs_1 = { + sizeof(struct E2connectionUpdateRemove_Item), + offsetof(struct E2connectionUpdateRemove_Item, _asn_ctx), + asn_MAP_E2connectionUpdateRemove_Item_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_Item = { + "E2connectionUpdateRemove-Item", + "E2connectionUpdateRemove-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdateRemove_Item_tags_1, + sizeof(asn_DEF_E2connectionUpdateRemove_Item_tags_1) + /sizeof(asn_DEF_E2connectionUpdateRemove_Item_tags_1[0]), /* 1 */ + asn_DEF_E2connectionUpdateRemove_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateRemove_Item_tags_1) + /sizeof(asn_DEF_E2connectionUpdateRemove_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateRemove_Item_1, + 1, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionUpdateRemove-Item.h b/src/codec_utils/E2AP/E2connectionUpdateRemove-Item.h new file mode 100644 index 000000000..eeb2b9952 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdateRemove-Item.h @@ -0,0 +1,42 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionUpdateRemove_Item_H_ +#define _E2connectionUpdateRemove_Item_H_ + + +#include + +/* Including external dependencies */ +#include "TNLinformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2connectionUpdateRemove-Item */ +typedef struct E2connectionUpdateRemove_Item { + TNLinformation_t tnlInformation; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdateRemove_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdateRemove_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2connectionUpdateRemove-List.c b/src/codec_utils/E2AP/E2connectionUpdateRemove-List.c new file mode 100644 index 000000000..711b69762 --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdateRemove-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2connectionUpdateRemove-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2connectionUpdateRemove_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_E2connectionUpdateRemove_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P5, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2connectionUpdateRemove_List_specs_1 = { + sizeof(struct E2connectionUpdateRemove_List), + offsetof(struct E2connectionUpdateRemove_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_List = { + "E2connectionUpdateRemove-List", + "E2connectionUpdateRemove-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2connectionUpdateRemove_List_tags_1, + sizeof(asn_DEF_E2connectionUpdateRemove_List_tags_1) + /sizeof(asn_DEF_E2connectionUpdateRemove_List_tags_1[0]), /* 1 */ + asn_DEF_E2connectionUpdateRemove_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateRemove_List_tags_1) + /sizeof(asn_DEF_E2connectionUpdateRemove_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2connectionUpdateRemove_List_constr_1, &asn_PER_type_E2connectionUpdateRemove_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2connectionUpdateRemove_List_1, + 1, /* Single element */ + &asn_SPC_E2connectionUpdateRemove_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2connectionUpdateRemove-List.h b/src/codec_utils/E2AP/E2connectionUpdateRemove-List.h new file mode 100644 index 000000000..85ef7307f --- /dev/null +++ b/src/codec_utils/E2AP/E2connectionUpdateRemove-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2connectionUpdateRemove_List_H_ +#define _E2connectionUpdateRemove_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2connectionUpdateRemove-List */ +typedef struct E2connectionUpdateRemove_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdateRemove_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2connectionUpdateRemove_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigAddition-Item.c b/src/codec_utils/E2AP/E2nodeComponentConfigAddition-Item.c new file mode 100644 index 000000000..f2ef04dc9 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigAddition-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigAddition-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_Item, e2nodeComponentConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfiguration" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfiguration */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigAddition_Item), + offsetof(struct E2nodeComponentConfigAddition_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigAddition_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_Item = { + "E2nodeComponentConfigAddition-Item", + "E2nodeComponentConfigAddition-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAddition_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAddition_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigAddition-Item.h b/src/codec_utils/E2AP/E2nodeComponentConfigAddition-Item.h new file mode 100644 index 000000000..bee3b0987 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigAddition-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigAddition_Item_H_ +#define _E2nodeComponentConfigAddition_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfiguration.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigAddition-Item */ +typedef struct E2nodeComponentConfigAddition_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfiguration_t e2nodeComponentConfiguration; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAddition_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigAddition-List.c b/src/codec_utils/E2AP/E2nodeComponentConfigAddition-List.c new file mode 100644 index 000000000..1cc7cc5b4 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigAddition-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigAddition-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigAddition_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAddition_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P7, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAddition_List_specs_1 = { + sizeof(struct E2nodeComponentConfigAddition_List), + offsetof(struct E2nodeComponentConfigAddition_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_List = { + "E2nodeComponentConfigAddition-List", + "E2nodeComponentConfigAddition-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigAddition_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigAddition_List_constr_1, &asn_PER_type_E2nodeComponentConfigAddition_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigAddition_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigAddition_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigAddition-List.h b/src/codec_utils/E2AP/E2nodeComponentConfigAddition-List.h new file mode 100644 index 000000000..0762d56ec --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigAddition-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigAddition_List_H_ +#define _E2nodeComponentConfigAddition_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2nodeComponentConfigAddition-List */ +typedef struct E2nodeComponentConfigAddition_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAddition_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-Item.c b/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-Item.c new file mode 100644 index 000000000..52e8188fb --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigAdditionAck-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_Item, e2nodeComponentConfigurationAck), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfigurationAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfigurationAck" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigAdditionAck_Item), + offsetof(struct E2nodeComponentConfigAdditionAck_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigAdditionAck_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_Item = { + "E2nodeComponentConfigAdditionAck-Item", + "E2nodeComponentConfigAdditionAck-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAdditionAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAdditionAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-Item.h b/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-Item.h new file mode 100644 index 000000000..f5a3f0a6e --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigAdditionAck_Item_H_ +#define _E2nodeComponentConfigAdditionAck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigAdditionAck-Item */ +typedef struct E2nodeComponentConfigAdditionAck_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAdditionAck_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-List.c b/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-List.c new file mode 100644 index 000000000..dc9d74dba --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigAdditionAck-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigAdditionAck_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P11, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1 = { + sizeof(struct E2nodeComponentConfigAdditionAck_List), + offsetof(struct E2nodeComponentConfigAdditionAck_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_List = { + "E2nodeComponentConfigAdditionAck-List", + "E2nodeComponentConfigAdditionAck-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigAdditionAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigAdditionAck_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigAdditionAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigAdditionAck_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-List.h b/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-List.h new file mode 100644 index 000000000..f9ef2a1af --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigAdditionAck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigAdditionAck_List_H_ +#define _E2nodeComponentConfigAdditionAck_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2nodeComponentConfigAdditionAck-List */ +typedef struct E2nodeComponentConfigAdditionAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigAdditionAck_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-Item.c b/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-Item.c new file mode 100644 index 000000000..9cbc677a8 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigRemoval-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentID */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigRemoval_Item), + offsetof(struct E2nodeComponentConfigRemoval_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemoval_Item_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_Item = { + "E2nodeComponentConfigRemoval-Item", + "E2nodeComponentConfigRemoval-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemoval_Item_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-Item.h b/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-Item.h new file mode 100644 index 000000000..a0f1e5b2a --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-Item.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigRemoval_Item_H_ +#define _E2nodeComponentConfigRemoval_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigRemoval-Item */ +typedef struct E2nodeComponentConfigRemoval_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemoval_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-List.c b/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-List.c new file mode 100644 index 000000000..0b00014cf --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigRemoval-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigRemoval_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P9, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemoval_List_specs_1 = { + sizeof(struct E2nodeComponentConfigRemoval_List), + offsetof(struct E2nodeComponentConfigRemoval_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_List = { + "E2nodeComponentConfigRemoval-List", + "E2nodeComponentConfigRemoval-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigRemoval_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigRemoval_List_constr_1, &asn_PER_type_E2nodeComponentConfigRemoval_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigRemoval_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-List.h b/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-List.h new file mode 100644 index 000000000..decf5cbab --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigRemoval-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigRemoval_List_H_ +#define _E2nodeComponentConfigRemoval_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2nodeComponentConfigRemoval-List */ +typedef struct E2nodeComponentConfigRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemoval_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-Item.c b/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-Item.c new file mode 100644 index 000000000..9305cf1f8 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigRemovalAck-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_Item, e2nodeComponentConfigurationAck), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfigurationAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfigurationAck" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigRemovalAck_Item), + offsetof(struct E2nodeComponentConfigRemovalAck_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemovalAck_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_Item = { + "E2nodeComponentConfigRemovalAck-Item", + "E2nodeComponentConfigRemovalAck-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemovalAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemovalAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-Item.h b/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-Item.h new file mode 100644 index 000000000..8e2916c48 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigRemovalAck_Item_H_ +#define _E2nodeComponentConfigRemovalAck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigRemovalAck-Item */ +typedef struct E2nodeComponentConfigRemovalAck_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemovalAck_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-List.c b/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-List.c new file mode 100644 index 000000000..a6fe076cd --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigRemovalAck-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigRemovalAck_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P13, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1 = { + sizeof(struct E2nodeComponentConfigRemovalAck_List), + offsetof(struct E2nodeComponentConfigRemovalAck_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_List = { + "E2nodeComponentConfigRemovalAck-List", + "E2nodeComponentConfigRemovalAck-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigRemovalAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigRemovalAck_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigRemovalAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigRemovalAck_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-List.h b/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-List.h new file mode 100644 index 000000000..651be1b84 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigRemovalAck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigRemovalAck_List_H_ +#define _E2nodeComponentConfigRemovalAck_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2nodeComponentConfigRemovalAck-List */ +typedef struct E2nodeComponentConfigRemovalAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigRemovalAck_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-Item.c b/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-Item.c new file mode 100644 index 000000000..107e78b00 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigUpdate-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_Item, e2nodeComponentConfiguration), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfiguration, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfiguration" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfiguration */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigUpdate_Item), + offsetof(struct E2nodeComponentConfigUpdate_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdate_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_Item = { + "E2nodeComponentConfigUpdate-Item", + "E2nodeComponentConfigUpdate-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigUpdate_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdate_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-Item.h b/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-Item.h new file mode 100644 index 000000000..ded0f5791 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigUpdate_Item_H_ +#define _E2nodeComponentConfigUpdate_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfiguration.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigUpdate-Item */ +typedef struct E2nodeComponentConfigUpdate_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfiguration_t e2nodeComponentConfiguration; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigUpdate_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigUpdate_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-List.c b/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-List.c new file mode 100644 index 000000000..c27ed23e4 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigUpdate-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P8, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 = { + sizeof(struct E2nodeComponentConfigUpdate_List), + offsetof(struct E2nodeComponentConfigUpdate_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_List = { + "E2nodeComponentConfigUpdate-List", + "E2nodeComponentConfigUpdate-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigUpdate_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdate_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigUpdate_List_constr_1, &asn_PER_type_E2nodeComponentConfigUpdate_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigUpdate_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigUpdate_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-List.h b/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-List.h new file mode 100644 index 000000000..37dcf6dbf --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigUpdate-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigUpdate_List_H_ +#define _E2nodeComponentConfigUpdate_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2nodeComponentConfigUpdate-List */ +typedef struct E2nodeComponentConfigUpdate_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigUpdate_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigUpdate_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-Item.c b/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-Item.c new file mode 100644 index 000000000..10232b828 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigUpdateAck-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentInterfaceType), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceType" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_E2nodeComponentID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_Item, e2nodeComponentConfigurationAck), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentConfigurationAck, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentConfigurationAck" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceType */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* e2nodeComponentConfigurationAck */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1 = { + sizeof(struct E2nodeComponentConfigUpdateAck_Item), + offsetof(struct E2nodeComponentConfigUpdateAck_Item, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdateAck_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_Item = { + "E2nodeComponentConfigUpdateAck-Item", + "E2nodeComponentConfigUpdateAck-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigUpdateAck_Item_1, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdateAck_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-Item.h b/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-Item.h new file mode 100644 index 000000000..f1c80e076 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigUpdateAck_Item_H_ +#define _E2nodeComponentConfigUpdateAck_Item_H_ + + +#include + +/* Including external dependencies */ +#include "E2nodeComponentInterfaceType.h" +#include "E2nodeComponentID.h" +#include "E2nodeComponentConfigurationAck.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfigUpdateAck-Item */ +typedef struct E2nodeComponentConfigUpdateAck_Item { + E2nodeComponentInterfaceType_t e2nodeComponentInterfaceType; + E2nodeComponentID_t e2nodeComponentID; + E2nodeComponentConfigurationAck_t e2nodeComponentConfigurationAck; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigUpdateAck_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigUpdateAck_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-List.c b/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-List.c new file mode 100644 index 000000000..197f099f8 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigUpdateAck-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..1024)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 10, 10, 1, 1024 } /* (SIZE(1..1024)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P12, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 = { + sizeof(struct E2nodeComponentConfigUpdateAck_List), + offsetof(struct E2nodeComponentConfigUpdateAck_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_List = { + "E2nodeComponentConfigUpdateAck-List", + "E2nodeComponentConfigUpdateAck-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentConfigUpdateAck_List_constr_1, &asn_PER_type_E2nodeComponentConfigUpdateAck_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeComponentConfigUpdateAck_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeComponentConfigUpdateAck_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-List.h b/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-List.h new file mode 100644 index 000000000..afdd22a7c --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigUpdateAck-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigUpdateAck_List_H_ +#define _E2nodeComponentConfigUpdateAck_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2nodeComponentConfigUpdateAck-List */ +typedef struct E2nodeComponentConfigUpdateAck_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigUpdateAck_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigUpdateAck_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfiguration.c b/src/codec_utils/E2AP/E2nodeComponentConfiguration.c new file mode 100644 index 000000000..33bc72839 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfiguration.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfiguration.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfiguration_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfiguration, e2nodeComponentRequestPart), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentRequestPart" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfiguration, e2nodeComponentResponsePart), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_OCTET_STRING, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentResponsePart" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfiguration_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfiguration_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentRequestPart */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* e2nodeComponentResponsePart */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfiguration_specs_1 = { + sizeof(struct E2nodeComponentConfiguration), + offsetof(struct E2nodeComponentConfiguration, _asn_ctx), + asn_MAP_E2nodeComponentConfiguration_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfiguration = { + "E2nodeComponentConfiguration", + "E2nodeComponentConfiguration", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfiguration_tags_1, + sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfiguration_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfiguration_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfiguration_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfiguration_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfiguration.h b/src/codec_utils/E2AP/E2nodeComponentConfiguration.h new file mode 100644 index 000000000..8e3a3fbac --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfiguration.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfiguration_H_ +#define _E2nodeComponentConfiguration_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentConfiguration */ +typedef struct E2nodeComponentConfiguration { + OCTET_STRING_t e2nodeComponentRequestPart; + OCTET_STRING_t e2nodeComponentResponsePart; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfiguration_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfiguration; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfiguration_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfiguration_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfiguration_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigurationAck.c b/src/codec_utils/E2AP/E2nodeComponentConfigurationAck.c new file mode 100644 index 000000000..a759943e2 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigurationAck.c @@ -0,0 +1,114 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentConfigurationAck.h" + +#include "CauseE2.h" +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_updateOutcome_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_updateOutcome_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_updateOutcome_value2enum_2[] = { + { 0, 7, "success" }, + { 1, 7, "failure" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_updateOutcome_enum2value_2[] = { + 1, /* failure(1) */ + 0 /* success(0) */ + /* This list is extensible */ +}; +static const asn_INTEGER_specifics_t asn_SPC_updateOutcome_specs_2 = { + asn_MAP_updateOutcome_value2enum_2, /* "tag" => N; sorted by tag */ + asn_MAP_updateOutcome_enum2value_2, /* N => "tag"; sorted by N */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_updateOutcome_tags_2[] = { + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_updateOutcome_2 = { + "updateOutcome", + "updateOutcome", + &asn_OP_NativeEnumerated, + asn_DEF_updateOutcome_tags_2, + sizeof(asn_DEF_updateOutcome_tags_2) + /sizeof(asn_DEF_updateOutcome_tags_2[0]) - 1, /* 1 */ + asn_DEF_updateOutcome_tags_2, /* Same as above */ + sizeof(asn_DEF_updateOutcome_tags_2) + /sizeof(asn_DEF_updateOutcome_tags_2[0]), /* 2 */ + { &asn_OER_type_updateOutcome_constr_2, &asn_PER_type_updateOutcome_constr_2, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_updateOutcome_specs_2 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigurationAck_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigurationAck, updateOutcome), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_updateOutcome_2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "updateOutcome" + }, + { ATF_POINTER, 1, offsetof(struct E2nodeComponentConfigurationAck, failureCause), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CauseE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "failureCause" + }, +}; +static const int asn_MAP_E2nodeComponentConfigurationAck_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigurationAck_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigurationAck_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* updateOutcome */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* failureCause */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigurationAck_specs_1 = { + sizeof(struct E2nodeComponentConfigurationAck), + offsetof(struct E2nodeComponentConfigurationAck, _asn_ctx), + asn_MAP_E2nodeComponentConfigurationAck_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_E2nodeComponentConfigurationAck_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigurationAck = { + "E2nodeComponentConfigurationAck", + "E2nodeComponentConfigurationAck", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigurationAck_tags_1, + sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigurationAck_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1) + /sizeof(asn_DEF_E2nodeComponentConfigurationAck_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigurationAck_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentConfigurationAck_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentConfigurationAck.h b/src/codec_utils/E2AP/E2nodeComponentConfigurationAck.h new file mode 100644 index 000000000..c1e93fcc9 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentConfigurationAck.h @@ -0,0 +1,58 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentConfigurationAck_H_ +#define _E2nodeComponentConfigurationAck_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2nodeComponentConfigurationAck__updateOutcome { + E2nodeComponentConfigurationAck__updateOutcome_success = 0, + E2nodeComponentConfigurationAck__updateOutcome_failure = 1 + /* + * Enumeration is extensible + */ +} e_E2nodeComponentConfigurationAck__updateOutcome; + +/* Forward declarations */ +struct CauseE2; + +/* E2nodeComponentConfigurationAck */ +typedef struct E2nodeComponentConfigurationAck { + long updateOutcome; + struct CauseE2 *failureCause; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigurationAck_t; + +/* Implementation */ +/* extern asn_TYPE_descriptor_t asn_DEF_updateOutcome_2; // (Use -fall-defs-global to expose) */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigurationAck; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigurationAck_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigurationAck_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentConfigurationAck_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentID.c b/src/codec_utils/E2AP/E2nodeComponentID.c new file mode 100644 index 000000000..4614ab7a2 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentID.c @@ -0,0 +1,122 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentID.h" + +#include "E2nodeComponentInterfaceNG.h" +#include "E2nodeComponentInterfaceXn.h" +#include "E2nodeComponentInterfaceE1.h" +#include "E2nodeComponentInterfaceF1.h" +#include "E2nodeComponentInterfaceW1.h" +#include "E2nodeComponentInterfaceS1.h" +#include "E2nodeComponentInterfaceX2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeComponentID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_E2nodeComponentID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[] = { + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeNG), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceNG, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeNG" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeXn), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceXn, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeXn" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeE1), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceE1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeE1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeF1), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceF1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeF1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeW1), + (ASN_TAG_CLASS_CONTEXT | (4 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceW1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeW1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeS1), + (ASN_TAG_CLASS_CONTEXT | (5 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceS1, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeS1" + }, + { ATF_POINTER, 0, offsetof(struct E2nodeComponentID, choice.e2nodeComponentInterfaceTypeX2), + (ASN_TAG_CLASS_CONTEXT | (6 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_E2nodeComponentInterfaceX2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "e2nodeComponentInterfaceTypeX2" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* e2nodeComponentInterfaceTypeNG */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* e2nodeComponentInterfaceTypeXn */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2nodeComponentInterfaceTypeE1 */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* e2nodeComponentInterfaceTypeF1 */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* e2nodeComponentInterfaceTypeW1 */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* e2nodeComponentInterfaceTypeS1 */ + { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* e2nodeComponentInterfaceTypeX2 */ +}; +asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1 = { + sizeof(struct E2nodeComponentID), + offsetof(struct E2nodeComponentID, _asn_ctx), + offsetof(struct E2nodeComponentID, present), + sizeof(((struct E2nodeComponentID *)0)->present), + asn_MAP_E2nodeComponentID_tag2el_1, + 7, /* Count of tags in the map */ + 0, 0, + 7 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID = { + "E2nodeComponentID", + "E2nodeComponentID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_E2nodeComponentID_constr_1, &asn_PER_type_E2nodeComponentID_constr_1, CHOICE_constraint }, + asn_MBR_E2nodeComponentID_1, + 7, /* Elements count */ + &asn_SPC_E2nodeComponentID_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentID.h b/src/codec_utils/E2AP/E2nodeComponentID.h new file mode 100644 index 000000000..f68d83118 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentID.h @@ -0,0 +1,76 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentID_H_ +#define _E2nodeComponentID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2nodeComponentID_PR { + E2nodeComponentID_PR_NOTHING, /* No components present */ + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeNG, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeXn, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeE1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeF1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeW1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeS1, + E2nodeComponentID_PR_e2nodeComponentInterfaceTypeX2 + /* Extensions may appear below */ + +} E2nodeComponentID_PR; + +/* Forward declarations */ +struct E2nodeComponentInterfaceNG; +struct E2nodeComponentInterfaceXn; +struct E2nodeComponentInterfaceE1; +struct E2nodeComponentInterfaceF1; +struct E2nodeComponentInterfaceW1; +struct E2nodeComponentInterfaceS1; +struct E2nodeComponentInterfaceX2; + +/* E2nodeComponentID */ +typedef struct E2nodeComponentID { + E2nodeComponentID_PR present; + union E2nodeComponentID_u { + struct E2nodeComponentInterfaceNG *e2nodeComponentInterfaceTypeNG; + struct E2nodeComponentInterfaceXn *e2nodeComponentInterfaceTypeXn; + struct E2nodeComponentInterfaceE1 *e2nodeComponentInterfaceTypeE1; + struct E2nodeComponentInterfaceF1 *e2nodeComponentInterfaceTypeF1; + struct E2nodeComponentInterfaceW1 *e2nodeComponentInterfaceTypeW1; + struct E2nodeComponentInterfaceS1 *e2nodeComponentInterfaceTypeS1; + struct E2nodeComponentInterfaceX2 *e2nodeComponentInterfaceTypeX2; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentID; +extern asn_CHOICE_specifics_t asn_SPC_E2nodeComponentID_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentID_1[7]; +extern asn_per_constraints_t asn_PER_type_E2nodeComponentID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentID_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceE1.c b/src/codec_utils/E2AP/E2nodeComponentInterfaceE1.c new file mode 100644 index 000000000..1d33dc20b --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceE1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceE1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceE1, gNB_CU_CP_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-CU-CP-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceE1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceE1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-CU-CP-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceE1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceE1), + offsetof(struct E2nodeComponentInterfaceE1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceE1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceE1 = { + "E2nodeComponentInterfaceE1", + "E2nodeComponentInterfaceE1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceE1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceE1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceE1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceE1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceE1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceE1.h b/src/codec_utils/E2AP/E2nodeComponentInterfaceE1.h new file mode 100644 index 000000000..7ed570a86 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceE1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceE1_H_ +#define _E2nodeComponentInterfaceE1_H_ + + +#include + +/* Including external dependencies */ +#include "GNB-CU-UP-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceE1 */ +typedef struct E2nodeComponentInterfaceE1 { + GNB_CU_UP_ID_t gNB_CU_CP_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceE1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceE1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceE1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceE1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceE1_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceF1.c b/src/codec_utils/E2AP/E2nodeComponentInterfaceF1.c new file mode 100644 index 000000000..633603862 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceF1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceF1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceF1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceF1, gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB-DU-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceF1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceF1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* gNB-DU-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceF1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceF1), + offsetof(struct E2nodeComponentInterfaceF1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceF1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceF1 = { + "E2nodeComponentInterfaceF1", + "E2nodeComponentInterfaceF1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceF1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceF1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceF1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceF1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceF1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceF1.h b/src/codec_utils/E2AP/E2nodeComponentInterfaceF1.h new file mode 100644 index 000000000..4012894ee --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceF1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceF1_H_ +#define _E2nodeComponentInterfaceF1_H_ + + +#include + +/* Including external dependencies */ +#include "GNB-DU-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceF1 */ +typedef struct E2nodeComponentInterfaceF1 { + GNB_DU_ID_t gNB_DU_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceF1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceF1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceF1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceF1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceF1_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceNG.c b/src/codec_utils/E2AP/E2nodeComponentInterfaceNG.c new file mode 100644 index 000000000..8e23357e7 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceNG.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceNG.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceNG_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceNG, amf_name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_AMFName, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "amf-name" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceNG_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceNG_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* amf-name */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceNG_specs_1 = { + sizeof(struct E2nodeComponentInterfaceNG), + offsetof(struct E2nodeComponentInterfaceNG, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceNG_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceNG = { + "E2nodeComponentInterfaceNG", + "E2nodeComponentInterfaceNG", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceNG_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceNG_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceNG_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceNG_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceNG_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceNG.h b/src/codec_utils/E2AP/E2nodeComponentInterfaceNG.h new file mode 100644 index 000000000..c63540f39 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceNG.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceNG_H_ +#define _E2nodeComponentInterfaceNG_H_ + + +#include + +/* Including external dependencies */ +#include "AMFName.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceNG */ +typedef struct E2nodeComponentInterfaceNG { + AMFName_t amf_name; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceNG_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceNG; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceNG_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceNG_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceNG_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceS1.c b/src/codec_utils/E2AP/E2nodeComponentInterfaceS1.c new file mode 100644 index 000000000..dec2eff53 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceS1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceS1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceS1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceS1, mme_name), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_MMEname, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "mme-name" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceS1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceS1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* mme-name */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceS1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceS1), + offsetof(struct E2nodeComponentInterfaceS1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceS1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceS1 = { + "E2nodeComponentInterfaceS1", + "E2nodeComponentInterfaceS1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceS1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceS1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceS1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceS1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceS1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceS1.h b/src/codec_utils/E2AP/E2nodeComponentInterfaceS1.h new file mode 100644 index 000000000..efd849b02 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceS1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceS1_H_ +#define _E2nodeComponentInterfaceS1_H_ + + +#include + +/* Including external dependencies */ +#include "MMEname.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceS1 */ +typedef struct E2nodeComponentInterfaceS1 { + MMEname_t mme_name; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceS1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceS1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceS1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceS1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceS1_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceType.c b/src/codec_utils/E2AP/E2nodeComponentInterfaceType.c new file mode 100644 index 000000000..133bdc81f --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceType.c @@ -0,0 +1,68 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceType.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_E2nodeComponentInterfaceType_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_E2nodeComponentInterfaceType_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 3, 3, 0, 6 } /* (0..6,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_E2nodeComponentInterfaceType_value2enum_1[] = { + { 0, 2, "ng" }, + { 1, 2, "xn" }, + { 2, 2, "e1" }, + { 3, 2, "f1" }, + { 4, 2, "w1" }, + { 5, 2, "s1" }, + { 6, 2, "x2" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_E2nodeComponentInterfaceType_enum2value_1[] = { + 2, /* e1(2) */ + 3, /* f1(3) */ + 0, /* ng(0) */ + 5, /* s1(5) */ + 4, /* w1(4) */ + 6, /* x2(6) */ + 1 /* xn(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentInterfaceType_specs_1 = { + asn_MAP_E2nodeComponentInterfaceType_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_E2nodeComponentInterfaceType_enum2value_1, /* N => "tag"; sorted by N */ + 7, /* Number of elements in the maps */ + 8, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceType_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceType = { + "E2nodeComponentInterfaceType", + "E2nodeComponentInterfaceType", + &asn_OP_NativeEnumerated, + asn_DEF_E2nodeComponentInterfaceType_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceType_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceType_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeComponentInterfaceType_constr_1, &asn_PER_type_E2nodeComponentInterfaceType_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_E2nodeComponentInterfaceType_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceType.h b/src/codec_utils/E2AP/E2nodeComponentInterfaceType.h new file mode 100644 index 000000000..bc05cb495 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceType.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceType_H_ +#define _E2nodeComponentInterfaceType_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum E2nodeComponentInterfaceType { + E2nodeComponentInterfaceType_ng = 0, + E2nodeComponentInterfaceType_xn = 1, + E2nodeComponentInterfaceType_e1 = 2, + E2nodeComponentInterfaceType_f1 = 3, + E2nodeComponentInterfaceType_w1 = 4, + E2nodeComponentInterfaceType_s1 = 5, + E2nodeComponentInterfaceType_x2 = 6 + /* + * Enumeration is extensible + */ +} e_E2nodeComponentInterfaceType; + +/* E2nodeComponentInterfaceType */ +typedef long E2nodeComponentInterfaceType_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_E2nodeComponentInterfaceType_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceType; +extern const asn_INTEGER_specifics_t asn_SPC_E2nodeComponentInterfaceType_specs_1; +asn_struct_free_f E2nodeComponentInterfaceType_free; +asn_struct_print_f E2nodeComponentInterfaceType_print; +asn_constr_check_f E2nodeComponentInterfaceType_constraint; +ber_type_decoder_f E2nodeComponentInterfaceType_decode_ber; +der_type_encoder_f E2nodeComponentInterfaceType_encode_der; +xer_type_decoder_f E2nodeComponentInterfaceType_decode_xer; +xer_type_encoder_f E2nodeComponentInterfaceType_encode_xer; +oer_type_decoder_f E2nodeComponentInterfaceType_decode_oer; +oer_type_encoder_f E2nodeComponentInterfaceType_encode_oer; +per_type_decoder_f E2nodeComponentInterfaceType_decode_uper; +per_type_encoder_f E2nodeComponentInterfaceType_encode_uper; +per_type_decoder_f E2nodeComponentInterfaceType_decode_aper; +per_type_encoder_f E2nodeComponentInterfaceType_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceType_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceW1.c b/src/codec_utils/E2AP/E2nodeComponentInterfaceW1.c new file mode 100644 index 000000000..a0f353deb --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceW1.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceW1.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceW1_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceW1, ng_eNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGENB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-eNB-DU-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceW1_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceW1_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* ng-eNB-DU-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceW1_specs_1 = { + sizeof(struct E2nodeComponentInterfaceW1), + offsetof(struct E2nodeComponentInterfaceW1, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceW1_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceW1 = { + "E2nodeComponentInterfaceW1", + "E2nodeComponentInterfaceW1", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceW1_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceW1_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceW1_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceW1_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceW1_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceW1.h b/src/codec_utils/E2AP/E2nodeComponentInterfaceW1.h new file mode 100644 index 000000000..e7c076f38 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceW1.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceW1_H_ +#define _E2nodeComponentInterfaceW1_H_ + + +#include + +/* Including external dependencies */ +#include "NGENB-DU-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceW1 */ +typedef struct E2nodeComponentInterfaceW1 { + NGENB_DU_ID_t ng_eNB_DU_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceW1_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceW1; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceW1_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceW1_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceW1_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceX2.c b/src/codec_utils/E2AP/E2nodeComponentInterfaceX2.c new file mode 100644 index 000000000..343e23346 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceX2.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceX2.h" + +#include "GlobalENB-ID.h" +#include "GlobalenGNB-ID.h" +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceX2_1[] = { + { ATF_POINTER, 2, offsetof(struct E2nodeComponentInterfaceX2, global_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-eNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct E2nodeComponentInterfaceX2, global_en_gNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalenGNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-en-gNB-ID" + }, +}; +static const int asn_MAP_E2nodeComponentInterfaceX2_oms_1[] = { 0, 1 }; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceX2_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceX2_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* global-en-gNB-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceX2_specs_1 = { + sizeof(struct E2nodeComponentInterfaceX2), + offsetof(struct E2nodeComponentInterfaceX2, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceX2_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_E2nodeComponentInterfaceX2_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceX2 = { + "E2nodeComponentInterfaceX2", + "E2nodeComponentInterfaceX2", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceX2_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceX2_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceX2_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceX2_1, + 2, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceX2_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceX2.h b/src/codec_utils/E2AP/E2nodeComponentInterfaceX2.h new file mode 100644 index 000000000..0d004da10 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceX2.h @@ -0,0 +1,48 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceX2_H_ +#define _E2nodeComponentInterfaceX2_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct GlobalENB_ID; +struct GlobalenGNB_ID; + +/* E2nodeComponentInterfaceX2 */ +typedef struct E2nodeComponentInterfaceX2 { + struct GlobalENB_ID *global_eNB_ID; /* OPTIONAL */ + struct GlobalenGNB_ID *global_en_gNB_ID; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceX2_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceX2; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceX2_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceX2_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceX2_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceXn.c b/src/codec_utils/E2AP/E2nodeComponentInterfaceXn.c new file mode 100644 index 000000000..ddbac7b00 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceXn.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeComponentInterfaceXn.h" + +asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceXn_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentInterfaceXn, global_NG_RAN_Node_ID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_GlobalNG_RANNode_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-NG-RAN-Node-ID" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentInterfaceXn_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentInterfaceXn_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-NG-RAN-Node-ID */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceXn_specs_1 = { + sizeof(struct E2nodeComponentInterfaceXn), + offsetof(struct E2nodeComponentInterfaceXn, _asn_ctx), + asn_MAP_E2nodeComponentInterfaceXn_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceXn = { + "E2nodeComponentInterfaceXn", + "E2nodeComponentInterfaceXn", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentInterfaceXn_tags_1, + sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1[0]), /* 1 */ + asn_DEF_E2nodeComponentInterfaceXn_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1) + /sizeof(asn_DEF_E2nodeComponentInterfaceXn_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentInterfaceXn_1, + 1, /* Elements count */ + &asn_SPC_E2nodeComponentInterfaceXn_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeComponentInterfaceXn.h b/src/codec_utils/E2AP/E2nodeComponentInterfaceXn.h new file mode 100644 index 000000000..78665c535 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeComponentInterfaceXn.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeComponentInterfaceXn_H_ +#define _E2nodeComponentInterfaceXn_H_ + + +#include + +/* Including external dependencies */ +#include "GlobalNG-RANNode-ID.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeComponentInterfaceXn */ +typedef struct E2nodeComponentInterfaceXn { + GlobalNG_RANNode_ID_t global_NG_RAN_Node_ID; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentInterfaceXn_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentInterfaceXn; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentInterfaceXn_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentInterfaceXn_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeComponentInterfaceXn_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeConfigurationUpdate.c b/src/codec_utils/E2AP/E2nodeConfigurationUpdate.c new file mode 100644 index 000000000..d46bc9ca3 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeConfigurationUpdate.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeConfigurationUpdate.h" + +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ContainerE2_1925P18, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_specs_1 = { + sizeof(struct E2nodeConfigurationUpdate), + offsetof(struct E2nodeConfigurationUpdate, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdate_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate = { + "E2nodeConfigurationUpdate", + "E2nodeConfigurationUpdate", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeConfigurationUpdate_tags_1, + sizeof(asn_DEF_E2nodeConfigurationUpdate_tags_1) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_tags_1[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdate_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdate_tags_1) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeConfigurationUpdate_1, + 1, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdate_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeConfigurationUpdate.h b/src/codec_utils/E2AP/E2nodeConfigurationUpdate.h new file mode 100644 index 000000000..f6d6f4fc3 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeConfigurationUpdate.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeConfigurationUpdate_H_ +#define _E2nodeConfigurationUpdate_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ContainerE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeConfigurationUpdate */ +typedef struct E2nodeConfigurationUpdate { + ProtocolIE_ContainerE2_1925P18_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeConfigurationUpdate_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeConfigurationUpdate_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeConfigurationUpdateAcknowledge.c b/src/codec_utils/E2AP/E2nodeConfigurationUpdateAcknowledge.c new file mode 100644 index 000000000..f610305b2 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeConfigurationUpdateAcknowledge.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeConfigurationUpdateAcknowledge.h" + +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ContainerE2_1925P19, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_specs_1 = { + sizeof(struct E2nodeConfigurationUpdateAcknowledge), + offsetof(struct E2nodeConfigurationUpdateAcknowledge, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdateAcknowledge_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge = { + "E2nodeConfigurationUpdateAcknowledge", + "E2nodeConfigurationUpdateAcknowledge", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1, + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeConfigurationUpdateAcknowledge_1, + 1, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdateAcknowledge_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeConfigurationUpdateAcknowledge.h b/src/codec_utils/E2AP/E2nodeConfigurationUpdateAcknowledge.h new file mode 100644 index 000000000..42a10d0fd --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeConfigurationUpdateAcknowledge.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeConfigurationUpdateAcknowledge_H_ +#define _E2nodeConfigurationUpdateAcknowledge_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ContainerE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeConfigurationUpdateAcknowledge */ +typedef struct E2nodeConfigurationUpdateAcknowledge { + ProtocolIE_ContainerE2_1925P19_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeConfigurationUpdateAcknowledge_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeConfigurationUpdateAcknowledge_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeConfigurationUpdateFailure.c b/src/codec_utils/E2AP/E2nodeConfigurationUpdateFailure.c new file mode 100644 index 000000000..e64da8673 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeConfigurationUpdateFailure.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeConfigurationUpdateFailure.h" + +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ContainerE2_1925P20, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_specs_1 = { + sizeof(struct E2nodeConfigurationUpdateFailure), + offsetof(struct E2nodeConfigurationUpdateFailure, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdateFailure_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure = { + "E2nodeConfigurationUpdateFailure", + "E2nodeConfigurationUpdateFailure", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeConfigurationUpdateFailure_tags_1, + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_tags_1[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateFailure_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_tags_1) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeConfigurationUpdateFailure_1, + 1, /* Elements count */ + &asn_SPC_E2nodeConfigurationUpdateFailure_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeConfigurationUpdateFailure.h b/src/codec_utils/E2AP/E2nodeConfigurationUpdateFailure.h new file mode 100644 index 000000000..40b211340 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeConfigurationUpdateFailure.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeConfigurationUpdateFailure_H_ +#define _E2nodeConfigurationUpdateFailure_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ContainerE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeConfigurationUpdateFailure */ +typedef struct E2nodeConfigurationUpdateFailure { + ProtocolIE_ContainerE2_1925P20_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeConfigurationUpdateFailure_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_specs_1; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeConfigurationUpdateFailure_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-Item.c b/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-Item.c new file mode 100644 index 000000000..1735548c9 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-Item.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeTNLassociationRemoval-Item.h" + +static asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_Item, tnlInformation), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformation" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_Item, tnlInformationRIC), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_TNLinformation, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "tnlInformationRIC" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlInformation */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlInformationRIC */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1 = { + sizeof(struct E2nodeTNLassociationRemoval_Item), + offsetof(struct E2nodeTNLassociationRemoval_Item, _asn_ctx), + asn_MAP_E2nodeTNLassociationRemoval_Item_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_Item = { + "E2nodeTNLassociationRemoval-Item", + "E2nodeTNLassociationRemoval-Item", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeTNLassociationRemoval_Item_1, + 2, /* Elements count */ + &asn_SPC_E2nodeTNLassociationRemoval_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-Item.h b/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-Item.h new file mode 100644 index 000000000..2ffd49f1d --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-Item.h @@ -0,0 +1,43 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeTNLassociationRemoval_Item_H_ +#define _E2nodeTNLassociationRemoval_Item_H_ + + +#include + +/* Including external dependencies */ +#include "TNLinformation.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* E2nodeTNLassociationRemoval-Item */ +typedef struct E2nodeTNLassociationRemoval_Item { + TNLinformation_t tnlInformation; + TNLinformation_t tnlInformationRIC; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeTNLassociationRemoval_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-List.c b/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-List.c new file mode 100644 index 000000000..a5ad3d715 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-List.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "E2nodeTNLassociationRemoval-List.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_E2nodeTNLassociationRemoval_List_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..32)) */}; +static asn_per_constraints_t asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_List_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P10, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_E2nodeTNLassociationRemoval_List_specs_1 = { + sizeof(struct E2nodeTNLassociationRemoval_List), + offsetof(struct E2nodeTNLassociationRemoval_List, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_List = { + "E2nodeTNLassociationRemoval-List", + "E2nodeTNLassociationRemoval-List", + &asn_OP_SEQUENCE_OF, + asn_DEF_E2nodeTNLassociationRemoval_List_tags_1, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_List_tags_1, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_List_tags_1[0]), /* 1 */ + { &asn_OER_type_E2nodeTNLassociationRemoval_List_constr_1, &asn_PER_type_E2nodeTNLassociationRemoval_List_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_E2nodeTNLassociationRemoval_List_1, + 1, /* Single element */ + &asn_SPC_E2nodeTNLassociationRemoval_List_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-List.h b/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-List.h new file mode 100644 index 000000000..132ca0462 --- /dev/null +++ b/src/codec_utils/E2AP/E2nodeTNLassociationRemoval-List.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _E2nodeTNLassociationRemoval_List_H_ +#define _E2nodeTNLassociationRemoval_List_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* E2nodeTNLassociationRemoval-List */ +typedef struct E2nodeTNLassociationRemoval_List { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_List_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_List; + +#ifdef __cplusplus +} +#endif + +#endif /* _E2nodeTNLassociationRemoval_List_H_ */ +#include diff --git a/src/codec_utils/E2AP/E2setupFailure.c b/src/codec_utils/E2AP/E2setupFailure.c index 83d21ef79..09c914a4b 100644 --- a/src/codec_utils/E2AP/E2setupFailure.c +++ b/src/codec_utils/E2AP/E2setupFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "E2setupFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P13, + &asn_DEF_ProtocolIE_ContainerE2_1925P14, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/E2setupFailure.h b/src/codec_utils/E2AP/E2setupFailure.h index 22bf6ac5a..ee87e13b7 100644 --- a/src/codec_utils/E2AP/E2setupFailure.h +++ b/src/codec_utils/E2AP/E2setupFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _E2setupFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupFailure */ typedef struct E2setupFailure { - ProtocolIE_ContainerE2_1407P13_t protocolIEs; + ProtocolIE_ContainerE2_1925P14_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/E2setupRequest.c b/src/codec_utils/E2AP/E2setupRequest.c index fcd8a379d..f9214e7aa 100644 --- a/src/codec_utils/E2AP/E2setupRequest.c +++ b/src/codec_utils/E2AP/E2setupRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "E2setupRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P11, + &asn_DEF_ProtocolIE_ContainerE2_1925P12, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/E2setupRequest.h b/src/codec_utils/E2AP/E2setupRequest.h index 283c8cab8..d00bba81f 100644 --- a/src/codec_utils/E2AP/E2setupRequest.h +++ b/src/codec_utils/E2AP/E2setupRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _E2setupRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupRequest */ typedef struct E2setupRequest { - ProtocolIE_ContainerE2_1407P11_t protocolIEs; + ProtocolIE_ContainerE2_1925P12_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/E2setupResponse.c b/src/codec_utils/E2AP/E2setupResponse.c index 5a9943af4..04b3dbc38 100644 --- a/src/codec_utils/E2AP/E2setupResponse.c +++ b/src/codec_utils/E2AP/E2setupResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "E2setupResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_E2setupResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct E2setupResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P12, + &asn_DEF_ProtocolIE_ContainerE2_1925P13, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/E2setupResponse.h b/src/codec_utils/E2AP/E2setupResponse.h index e1ae8e898..48e071682 100644 --- a/src/codec_utils/E2AP/E2setupResponse.h +++ b/src/codec_utils/E2AP/E2setupResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _E2setupResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* E2setupResponse */ typedef struct E2setupResponse { - ProtocolIE_ContainerE2_1407P12_t protocolIEs; + ProtocolIE_ContainerE2_1925P13_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/ENB-ID-Choice.c b/src/codec_utils/E2AP/ENB-ID-Choice.c index 34a2970f1..50be29b01 100644 --- a/src/codec_utils/E2AP/ENB-ID-Choice.c +++ b/src/codec_utils/E2AP/ENB-ID-Choice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ENB-ID-Choice.h" diff --git a/src/codec_utils/E2AP/ENB-ID-Choice.h b/src/codec_utils/E2AP/ENB-ID-Choice.h index c9a3b4008..84db89d2f 100644 --- a/src/codec_utils/E2AP/ENB-ID-Choice.h +++ b/src/codec_utils/E2AP/ENB-ID-Choice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ENB_ID_Choice_H_ diff --git a/src/codec_utils/E2AP/ENB-ID.c b/src/codec_utils/E2AP/ENB-ID.c index 01894152f..845ce3d9e 100644 --- a/src/codec_utils/E2AP/ENB-ID.c +++ b/src/codec_utils/E2AP/ENB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ENB-ID.h" diff --git a/src/codec_utils/E2AP/ENB-ID.h b/src/codec_utils/E2AP/ENB-ID.h index e64a39d9b..01294a37c 100644 --- a/src/codec_utils/E2AP/ENB-ID.h +++ b/src/codec_utils/E2AP/ENB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ENB_ID_H_ diff --git a/src/codec_utils/E2AP/ENGNB-ID.c b/src/codec_utils/E2AP/ENGNB-ID.c index be3e5926f..17c3752d7 100644 --- a/src/codec_utils/E2AP/ENGNB-ID.c +++ b/src/codec_utils/E2AP/ENGNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ENGNB-ID.h" diff --git a/src/codec_utils/E2AP/ENGNB-ID.h b/src/codec_utils/E2AP/ENGNB-ID.h index 13002af16..bf108f3fd 100644 --- a/src/codec_utils/E2AP/ENGNB-ID.h +++ b/src/codec_utils/E2AP/ENGNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ENGNB_ID_H_ diff --git a/src/codec_utils/E2AP/ErrorIndicationE2.c b/src/codec_utils/E2AP/ErrorIndicationE2.c index 027208428..8152b7a6d 100644 --- a/src/codec_utils/E2AP/ErrorIndicationE2.c +++ b/src/codec_utils/E2AP/ErrorIndicationE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ErrorIndicationE2.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ErrorIndicationE2_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P10, + &asn_DEF_ProtocolIE_ContainerE2_1925P11, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/ErrorIndicationE2.h b/src/codec_utils/E2AP/ErrorIndicationE2.h index 8b752e23a..72a836a48 100644 --- a/src/codec_utils/E2AP/ErrorIndicationE2.h +++ b/src/codec_utils/E2AP/ErrorIndicationE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ErrorIndicationE2_H_ @@ -21,7 +21,7 @@ extern "C" { /* ErrorIndicationE2 */ typedef struct ErrorIndicationE2 { - ProtocolIE_ContainerE2_1407P10_t protocolIEs; + ProtocolIE_ContainerE2_1925P11_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/GNB-CU-UP-ID.c b/src/codec_utils/E2AP/GNB-CU-UP-ID.c index 8a017d742..065b4f3e6 100644 --- a/src/codec_utils/E2AP/GNB-CU-UP-ID.c +++ b/src/codec_utils/E2AP/GNB-CU-UP-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GNB-CU-UP-ID.h" diff --git a/src/codec_utils/E2AP/GNB-CU-UP-ID.h b/src/codec_utils/E2AP/GNB-CU-UP-ID.h index 7bf479d90..2194b5de4 100644 --- a/src/codec_utils/E2AP/GNB-CU-UP-ID.h +++ b/src/codec_utils/E2AP/GNB-CU-UP-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GNB_CU_UP_ID_H_ diff --git a/src/codec_utils/E2AP/GNB-DU-ID.c b/src/codec_utils/E2AP/GNB-DU-ID.c new file mode 100644 index 000000000..87ebe40c5 --- /dev/null +++ b/src/codec_utils/E2AP/GNB-DU-ID.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GNB-DU-ID.h" + +int +GNB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const INTEGER_t *st = (const INTEGER_t *)sptr; + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(asn_INTEGER2long(st, &value)) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value too large (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if((value >= 0 && value <= 68719476735)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using INTEGER, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { + { 8, 1 } /* (0..68719476735) */, + -1}; +asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_GNB_DU_ID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID = { + "GNB-DU-ID", + "GNB-DU-ID", + &asn_OP_INTEGER, + asn_DEF_GNB_DU_ID_tags_1, + sizeof(asn_DEF_GNB_DU_ID_tags_1) + /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_GNB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_GNB_DU_ID_tags_1) + /sizeof(asn_DEF_GNB_DU_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_GNB_DU_ID_constr_1, &asn_PER_type_GNB_DU_ID_constr_1, GNB_DU_ID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/E2AP/GNB-DU-ID.h b/src/codec_utils/E2AP/GNB-DU-ID.h new file mode 100644 index 000000000..e0c76235d --- /dev/null +++ b/src/codec_utils/E2AP/GNB-DU-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GNB_DU_ID_H_ +#define _GNB_DU_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* GNB-DU-ID */ +typedef INTEGER_t GNB_DU_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_GNB_DU_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_ID; +asn_struct_free_f GNB_DU_ID_free; +asn_struct_print_f GNB_DU_ID_print; +asn_constr_check_f GNB_DU_ID_constraint; +ber_type_decoder_f GNB_DU_ID_decode_ber; +der_type_encoder_f GNB_DU_ID_encode_der; +xer_type_decoder_f GNB_DU_ID_decode_xer; +xer_type_encoder_f GNB_DU_ID_encode_xer; +oer_type_decoder_f GNB_DU_ID_decode_oer; +oer_type_encoder_f GNB_DU_ID_encode_oer; +per_type_decoder_f GNB_DU_ID_decode_uper; +per_type_encoder_f GNB_DU_ID_encode_uper; +per_type_decoder_f GNB_DU_ID_decode_aper; +per_type_encoder_f GNB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _GNB_DU_ID_H_ */ +#include diff --git a/src/codec_utils/E2AP/GNB-DU-IDE2.h b/src/codec_utils/E2AP/GNB-DU-IDE2.h deleted file mode 100644 index e190ee099..000000000 --- a/src/codec_utils/E2AP/GNB-DU-IDE2.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _GNB_DU_IDE2_H_ -#define _GNB_DU_IDE2_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* GNB-DU-IDE2 */ -typedef INTEGER_t GNB_DU_IDE2_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_GNB_DU_IDE2_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_GNB_DU_IDE2; -asn_struct_free_f GNB_DU_IDE2_free; -asn_struct_print_f GNB_DU_IDE2_print; -asn_constr_check_f GNB_DU_IDE2_constraint; -ber_type_decoder_f GNB_DU_IDE2_decode_ber; -der_type_encoder_f GNB_DU_IDE2_encode_der; -xer_type_decoder_f GNB_DU_IDE2_decode_xer; -xer_type_encoder_f GNB_DU_IDE2_encode_xer; -oer_type_decoder_f GNB_DU_IDE2_decode_oer; -oer_type_encoder_f GNB_DU_IDE2_encode_oer; -per_type_decoder_f GNB_DU_IDE2_decode_uper; -per_type_encoder_f GNB_DU_IDE2_encode_uper; -per_type_decoder_f GNB_DU_IDE2_decode_aper; -per_type_encoder_f GNB_DU_IDE2_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _GNB_DU_IDE2_H_ */ -#include diff --git a/src/codec_utils/E2AP/GNB-ID-Choice.c b/src/codec_utils/E2AP/GNB-ID-Choice.c index a9284595e..cc3d19b07 100644 --- a/src/codec_utils/E2AP/GNB-ID-Choice.c +++ b/src/codec_utils/E2AP/GNB-ID-Choice.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GNB-ID-Choice.h" diff --git a/src/codec_utils/E2AP/GNB-ID-Choice.h b/src/codec_utils/E2AP/GNB-ID-Choice.h index ef1008775..b720ce4c0 100644 --- a/src/codec_utils/E2AP/GNB-ID-Choice.h +++ b/src/codec_utils/E2AP/GNB-ID-Choice.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GNB_ID_Choice_H_ diff --git a/src/codec_utils/E2AP/GlobalE2node-ID.c b/src/codec_utils/E2AP/GlobalE2node-ID.c index 3cfd04151..a2e83d8a4 100644 --- a/src/codec_utils/E2AP/GlobalE2node-ID.c +++ b/src/codec_utils/E2AP/GlobalE2node-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalE2node-ID.h" diff --git a/src/codec_utils/E2AP/GlobalE2node-ID.h b/src/codec_utils/E2AP/GlobalE2node-ID.h index 0596af74f..f00fb0f46 100644 --- a/src/codec_utils/E2AP/GlobalE2node-ID.h +++ b/src/codec_utils/E2AP/GlobalE2node-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_ID_H_ diff --git a/src/codec_utils/E2AP/GlobalE2node-eNB-ID.c b/src/codec_utils/E2AP/GlobalE2node-eNB-ID.c index 2003c6c4a..17cca5d5f 100644 --- a/src/codec_utils/E2AP/GlobalE2node-eNB-ID.c +++ b/src/codec_utils/E2AP/GlobalE2node-eNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalE2node-eNB-ID.h" diff --git a/src/codec_utils/E2AP/GlobalE2node-eNB-ID.h b/src/codec_utils/E2AP/GlobalE2node-eNB-ID.h index dadf6db3e..6b58bb2df 100644 --- a/src/codec_utils/E2AP/GlobalE2node-eNB-ID.h +++ b/src/codec_utils/E2AP/GlobalE2node-eNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_eNB_ID_H_ diff --git a/src/codec_utils/E2AP/GlobalE2node-en-gNB-ID.c b/src/codec_utils/E2AP/GlobalE2node-en-gNB-ID.c index dc4a324b1..b2281cb3a 100644 --- a/src/codec_utils/E2AP/GlobalE2node-en-gNB-ID.c +++ b/src/codec_utils/E2AP/GlobalE2node-en-gNB-ID.c @@ -1,36 +1,58 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalE2node-en-gNB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_gNB_ID), + { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_en_gNB_ID, global_en_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_GlobalenGNB_ID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "global-gNB-ID" + "global-en-gNB-ID" + }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_en_gNB_ID, en_gNB_CU_UP_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_CU_UP_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "en-gNB-CU-UP-ID" + }, + { ATF_POINTER, 1, offsetof(struct GlobalE2node_en_gNB_ID, en_gNB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GNB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "en-gNB-DU-ID" }, }; +static const int asn_MAP_GlobalE2node_en_gNB_ID_oms_1[] = { 1, 2 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_en_gNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-en-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB-CU-UP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* en-gNB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1 = { sizeof(struct GlobalE2node_en_gNB_ID), offsetof(struct GlobalE2node_en_gNB_ID, _asn_ctx), asn_MAP_GlobalE2node_en_gNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ + 3, /* Count of tags in the map */ + asn_MAP_GlobalE2node_en_gNB_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { "GlobalE2node-en-gNB-ID", @@ -44,7 +66,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID = { /sizeof(asn_DEF_GlobalE2node_en_gNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_en_gNB_ID_1, - 1, /* Elements count */ + 3, /* Elements count */ &asn_SPC_GlobalE2node_en_gNB_ID_specs_1 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/GlobalE2node-en-gNB-ID.h b/src/codec_utils/E2AP/GlobalE2node-en-gNB-ID.h index ab6b6ff78..2598d4b00 100644 --- a/src/codec_utils/E2AP/GlobalE2node-en-gNB-ID.h +++ b/src/codec_utils/E2AP/GlobalE2node-en-gNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_en_gNB_ID_H_ @@ -13,6 +13,8 @@ /* Including external dependencies */ #include "GlobalenGNB-ID.h" +#include "GNB-CU-UP-ID.h" +#include "GNB-DU-ID.h" #include #ifdef __cplusplus @@ -21,7 +23,9 @@ extern "C" { /* GlobalE2node-en-gNB-ID */ typedef struct GlobalE2node_en_gNB_ID { - GlobalenGNB_ID_t global_gNB_ID; + GlobalenGNB_ID_t global_en_gNB_ID; + GNB_CU_UP_ID_t *en_gNB_CU_UP_ID; /* OPTIONAL */ + GNB_DU_ID_t *en_gNB_DU_ID; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -34,7 +38,7 @@ typedef struct GlobalE2node_en_gNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_en_gNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_en_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[1]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_en_gNB_ID_1[3]; #ifdef __cplusplus } diff --git a/src/codec_utils/E2AP/GlobalE2node-gNB-ID.c b/src/codec_utils/E2AP/GlobalE2node-gNB-ID.c index fe1831520..8da3dae92 100644 --- a/src/codec_utils/E2AP/GlobalE2node-gNB-ID.c +++ b/src/codec_utils/E2AP/GlobalE2node-gNB-ID.c @@ -1,12 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalE2node-gNB-ID.h" +#include "GlobalenGNB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_gNB_ID, global_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), @@ -17,9 +18,18 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { 0, 0, /* No default value */ "global-gNB-ID" }, - { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), + { ATF_POINTER, 3, offsetof(struct GlobalE2node_gNB_ID, global_en_gNB_ID), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalenGNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-en-gNB-ID" + }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_gNB_ID, gNB_CU_UP_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ &asn_DEF_GNB_CU_UP_ID, 0, { 0, 0, 0 }, @@ -27,32 +37,33 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[] = { "gNB-CU-UP-ID" }, { ATF_POINTER, 1, offsetof(struct GlobalE2node_gNB_ID, gNB_DU_ID), - (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_GNB_DU_IDE2, + &asn_DEF_GNB_DU_ID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ "gNB-DU-ID" }, }; -static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2 }; +static const int asn_MAP_GlobalE2node_gNB_ID_oms_1[] = { 1, 2, 3 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_gNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_gNB_ID_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-gNB-ID */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* gNB-CU-UP-ID */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* gNB-DU-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* global-en-gNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* gNB-CU-UP-ID */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* gNB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1 = { sizeof(struct GlobalE2node_gNB_ID), offsetof(struct GlobalE2node_gNB_ID, _asn_ctx), asn_MAP_GlobalE2node_gNB_ID_tag2el_1, - 3, /* Count of tags in the map */ + 4, /* Count of tags in the map */ asn_MAP_GlobalE2node_gNB_ID_oms_1, /* Optional members */ - 2, 0, /* Root/Additions */ - 3, /* First extension addition */ + 3, 0, /* Root/Additions */ + 4, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { "GlobalE2node-gNB-ID", @@ -66,7 +77,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID = { /sizeof(asn_DEF_GlobalE2node_gNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_gNB_ID_1, - 3, /* Elements count */ + 4, /* Elements count */ &asn_SPC_GlobalE2node_gNB_ID_specs_1 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/GlobalE2node-gNB-ID.h b/src/codec_utils/E2AP/GlobalE2node-gNB-ID.h index 3eb603645..147b072ea 100644 --- a/src/codec_utils/E2AP/GlobalE2node-gNB-ID.h +++ b/src/codec_utils/E2AP/GlobalE2node-gNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_gNB_ID_H_ @@ -14,18 +14,22 @@ /* Including external dependencies */ #include "GlobalgNB-ID.h" #include "GNB-CU-UP-ID.h" -#include "GNB-DU-IDE2.h" +#include "GNB-DU-ID.h" #include #ifdef __cplusplus extern "C" { #endif +/* Forward declarations */ +struct GlobalenGNB_ID; + /* GlobalE2node-gNB-ID */ typedef struct GlobalE2node_gNB_ID { GlobalgNB_ID_t global_gNB_ID; + struct GlobalenGNB_ID *global_en_gNB_ID; /* OPTIONAL */ GNB_CU_UP_ID_t *gNB_CU_UP_ID; /* OPTIONAL */ - GNB_DU_IDE2_t *gNB_DU_ID; /* OPTIONAL */ + GNB_DU_ID_t *gNB_DU_ID; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -38,7 +42,7 @@ typedef struct GlobalE2node_gNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_gNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_gNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[3]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_gNB_ID_1[4]; #ifdef __cplusplus } diff --git a/src/codec_utils/E2AP/GlobalE2node-ng-eNB-ID.c b/src/codec_utils/E2AP/GlobalE2node-ng-eNB-ID.c index 2653a0001..5b8ad8f17 100644 --- a/src/codec_utils/E2AP/GlobalE2node-ng-eNB-ID.c +++ b/src/codec_utils/E2AP/GlobalE2node-ng-eNB-ID.c @@ -1,12 +1,13 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalE2node-ng-eNB-ID.h" +#include "GlobalENB-ID.h" asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalE2node_ng_eNB_ID, global_ng_eNB_ID), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), @@ -17,20 +18,42 @@ asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[] = { 0, 0, /* No default value */ "global-ng-eNB-ID" }, + { ATF_POINTER, 2, offsetof(struct GlobalE2node_ng_eNB_ID, global_eNB_ID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalENB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "global-eNB-ID" + }, + { ATF_POINTER, 1, offsetof(struct GlobalE2node_ng_eNB_ID, ngENB_DU_ID), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_NGENB_DU_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ngENB-DU-ID" + }, }; +static const int asn_MAP_GlobalE2node_ng_eNB_ID_oms_1[] = { 1, 2 }; static const ber_tlv_tag_t asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; static const asn_TYPE_tag2member_t asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* global-ng-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* global-ng-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* global-eNB-ID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ngENB-DU-ID */ }; asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 = { sizeof(struct GlobalE2node_ng_eNB_ID), offsetof(struct GlobalE2node_ng_eNB_ID, _asn_ctx), asn_MAP_GlobalE2node_ng_eNB_ID_tag2el_1, - 1, /* Count of tags in the map */ - 0, 0, 0, /* Optional elements (not needed) */ - 1, /* First extension addition */ + 3, /* Count of tags in the map */ + asn_MAP_GlobalE2node_ng_eNB_ID_oms_1, /* Optional members */ + 2, 0, /* Root/Additions */ + 3, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { "GlobalE2node-ng-eNB-ID", @@ -44,7 +67,7 @@ asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID = { /sizeof(asn_DEF_GlobalE2node_ng_eNB_ID_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_GlobalE2node_ng_eNB_ID_1, - 1, /* Elements count */ + 3, /* Elements count */ &asn_SPC_GlobalE2node_ng_eNB_ID_specs_1 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/GlobalE2node-ng-eNB-ID.h b/src/codec_utils/E2AP/GlobalE2node-ng-eNB-ID.h index 93b0b6015..b9088fc25 100644 --- a/src/codec_utils/E2AP/GlobalE2node-ng-eNB-ID.h +++ b/src/codec_utils/E2AP/GlobalE2node-ng-eNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalE2node_ng_eNB_ID_H_ @@ -13,15 +13,21 @@ /* Including external dependencies */ #include "GlobalngeNB-ID.h" +#include "NGENB-DU-ID.h" #include #ifdef __cplusplus extern "C" { #endif +/* Forward declarations */ +struct GlobalENB_ID; + /* GlobalE2node-ng-eNB-ID */ typedef struct GlobalE2node_ng_eNB_ID { GlobalngeNB_ID_t global_ng_eNB_ID; + struct GlobalENB_ID *global_eNB_ID; /* OPTIONAL */ + NGENB_DU_ID_t *ngENB_DU_ID; /* OPTIONAL */ /* * This type is extensible, * possible extensions are below. @@ -34,7 +40,7 @@ typedef struct GlobalE2node_ng_eNB_ID { /* Implementation */ extern asn_TYPE_descriptor_t asn_DEF_GlobalE2node_ng_eNB_ID; extern asn_SEQUENCE_specifics_t asn_SPC_GlobalE2node_ng_eNB_ID_specs_1; -extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[1]; +extern asn_TYPE_member_t asn_MBR_GlobalE2node_ng_eNB_ID_1[3]; #ifdef __cplusplus } diff --git a/src/codec_utils/E2AP/GlobalENB-ID.c b/src/codec_utils/E2AP/GlobalENB-ID.c index b0d89807e..381cfc69e 100644 --- a/src/codec_utils/E2AP/GlobalENB-ID.c +++ b/src/codec_utils/E2AP/GlobalENB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalENB-ID.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_GlobalENB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalENB_ID, pLMN_Identity), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_IdentityE2, + &asn_DEF_PLMN_Identity, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/GlobalENB-ID.h b/src/codec_utils/E2AP/GlobalENB-ID.h index a9417954a..6541aa3c4 100644 --- a/src/codec_utils/E2AP/GlobalENB-ID.h +++ b/src/codec_utils/E2AP/GlobalENB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalENB_ID_H_ @@ -12,7 +12,7 @@ #include /* Including external dependencies */ -#include "PLMN-IdentityE2.h" +#include "PLMN-Identity.h" #include "ENB-ID.h" #include @@ -22,7 +22,7 @@ extern "C" { /* GlobalENB-ID */ typedef struct GlobalENB_ID { - PLMN_IdentityE2_t pLMN_Identity; + PLMN_Identity_t pLMN_Identity; ENB_ID_t eNB_ID; /* * This type is extensible, diff --git a/src/codec_utils/E2AP/GlobalNG-RANNode-ID.c b/src/codec_utils/E2AP/GlobalNG-RANNode-ID.c new file mode 100644 index 000000000..bbfb74017 --- /dev/null +++ b/src/codec_utils/E2AP/GlobalNG-RANNode-ID.c @@ -0,0 +1,67 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "GlobalNG-RANNode-ID.h" + +#include "GlobalgNB-ID.h" +#include "GlobalngeNB-ID.h" +static asn_oer_constraints_t asn_OER_type_GlobalNG_RANNode_ID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_GlobalNG_RANNode_ID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_GlobalNG_RANNode_ID_1[] = { + { ATF_POINTER, 0, offsetof(struct GlobalNG_RANNode_ID, choice.gNB), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalgNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "gNB" + }, + { ATF_POINTER, 0, offsetof(struct GlobalNG_RANNode_ID, choice.ng_eNB), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_GlobalngeNB_ID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ng-eNB" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_GlobalNG_RANNode_ID_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* ng-eNB */ +}; +asn_CHOICE_specifics_t asn_SPC_GlobalNG_RANNode_ID_specs_1 = { + sizeof(struct GlobalNG_RANNode_ID), + offsetof(struct GlobalNG_RANNode_ID, _asn_ctx), + offsetof(struct GlobalNG_RANNode_ID, present), + sizeof(((struct GlobalNG_RANNode_ID *)0)->present), + asn_MAP_GlobalNG_RANNode_ID_tag2el_1, + 2, /* Count of tags in the map */ + 0, 0, + 2 /* Extensions start */ +}; +asn_TYPE_descriptor_t asn_DEF_GlobalNG_RANNode_ID = { + "GlobalNG-RANNode-ID", + "GlobalNG-RANNode-ID", + &asn_OP_CHOICE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { &asn_OER_type_GlobalNG_RANNode_ID_constr_1, &asn_PER_type_GlobalNG_RANNode_ID_constr_1, CHOICE_constraint }, + asn_MBR_GlobalNG_RANNode_ID_1, + 2, /* Elements count */ + &asn_SPC_GlobalNG_RANNode_ID_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/GlobalNG-RANNode-ID.h b/src/codec_utils/E2AP/GlobalNG-RANNode-ID.h new file mode 100644 index 000000000..ac476dd72 --- /dev/null +++ b/src/codec_utils/E2AP/GlobalNG-RANNode-ID.h @@ -0,0 +1,61 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _GlobalNG_RANNode_ID_H_ +#define _GlobalNG_RANNode_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum GlobalNG_RANNode_ID_PR { + GlobalNG_RANNode_ID_PR_NOTHING, /* No components present */ + GlobalNG_RANNode_ID_PR_gNB, + GlobalNG_RANNode_ID_PR_ng_eNB + /* Extensions may appear below */ + +} GlobalNG_RANNode_ID_PR; + +/* Forward declarations */ +struct GlobalgNB_ID; +struct GlobalngeNB_ID; + +/* GlobalNG-RANNode-ID */ +typedef struct GlobalNG_RANNode_ID { + GlobalNG_RANNode_ID_PR present; + union GlobalNG_RANNode_ID_u { + struct GlobalgNB_ID *gNB; + struct GlobalngeNB_ID *ng_eNB; + /* + * This type is extensible, + * possible extensions are below. + */ + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} GlobalNG_RANNode_ID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_GlobalNG_RANNode_ID; +extern asn_CHOICE_specifics_t asn_SPC_GlobalNG_RANNode_ID_specs_1; +extern asn_TYPE_member_t asn_MBR_GlobalNG_RANNode_ID_1[2]; +extern asn_per_constraints_t asn_PER_type_GlobalNG_RANNode_ID_constr_1; + +#ifdef __cplusplus +} +#endif + +#endif /* _GlobalNG_RANNode_ID_H_ */ +#include diff --git a/src/codec_utils/E2AP/GlobalRIC-ID.c b/src/codec_utils/E2AP/GlobalRIC-ID.c index 245ec55ad..384f03ba9 100644 --- a/src/codec_utils/E2AP/GlobalRIC-ID.c +++ b/src/codec_utils/E2AP/GlobalRIC-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalRIC-ID.h" @@ -50,7 +50,7 @@ static asn_TYPE_member_t asn_MBR_GlobalRIC_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalRIC_ID, pLMN_Identity), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_IdentityE2, + &asn_DEF_PLMN_Identity, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/GlobalRIC-ID.h b/src/codec_utils/E2AP/GlobalRIC-ID.h index 43ef3672e..6e1bc0072 100644 --- a/src/codec_utils/E2AP/GlobalRIC-ID.h +++ b/src/codec_utils/E2AP/GlobalRIC-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalRIC_ID_H_ @@ -12,7 +12,7 @@ #include /* Including external dependencies */ -#include "PLMN-IdentityE2.h" +#include "PLMN-Identity.h" #include #include @@ -22,7 +22,7 @@ extern "C" { /* GlobalRIC-ID */ typedef struct GlobalRIC_ID { - PLMN_IdentityE2_t pLMN_Identity; + PLMN_Identity_t pLMN_Identity; BIT_STRING_t ric_ID; /* * This type is extensible, diff --git a/src/codec_utils/E2AP/GlobalenGNB-ID.c b/src/codec_utils/E2AP/GlobalenGNB-ID.c index 57c4d227a..7b7e4e901 100644 --- a/src/codec_utils/E2AP/GlobalenGNB-ID.c +++ b/src/codec_utils/E2AP/GlobalenGNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalenGNB-ID.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_GlobalenGNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalenGNB_ID, pLMN_Identity), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_IdentityE2, + &asn_DEF_PLMN_Identity, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/GlobalenGNB-ID.h b/src/codec_utils/E2AP/GlobalenGNB-ID.h index 793d3992d..6dfe7df6b 100644 --- a/src/codec_utils/E2AP/GlobalenGNB-ID.h +++ b/src/codec_utils/E2AP/GlobalenGNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalenGNB_ID_H_ @@ -12,7 +12,7 @@ #include /* Including external dependencies */ -#include "PLMN-IdentityE2.h" +#include "PLMN-Identity.h" #include "ENGNB-ID.h" #include @@ -22,7 +22,7 @@ extern "C" { /* GlobalenGNB-ID */ typedef struct GlobalenGNB_ID { - PLMN_IdentityE2_t pLMN_Identity; + PLMN_Identity_t pLMN_Identity; ENGNB_ID_t gNB_ID; /* * This type is extensible, diff --git a/src/codec_utils/E2AP/GlobalgNB-ID.c b/src/codec_utils/E2AP/GlobalgNB-ID.c index d7f1ce6a9..bd81b7b13 100644 --- a/src/codec_utils/E2AP/GlobalgNB-ID.c +++ b/src/codec_utils/E2AP/GlobalgNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalgNB-ID.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_GlobalgNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalgNB_ID, plmn_id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_IdentityE2, + &asn_DEF_PLMN_Identity, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/GlobalgNB-ID.h b/src/codec_utils/E2AP/GlobalgNB-ID.h index e3749a421..7b6b99b2a 100644 --- a/src/codec_utils/E2AP/GlobalgNB-ID.h +++ b/src/codec_utils/E2AP/GlobalgNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalgNB_ID_H_ @@ -12,7 +12,7 @@ #include /* Including external dependencies */ -#include "PLMN-IdentityE2.h" +#include "PLMN-Identity.h" #include "GNB-ID-Choice.h" #include @@ -22,7 +22,7 @@ extern "C" { /* GlobalgNB-ID */ typedef struct GlobalgNB_ID { - PLMN_IdentityE2_t plmn_id; + PLMN_Identity_t plmn_id; GNB_ID_Choice_t gnb_id; /* * This type is extensible, diff --git a/src/codec_utils/E2AP/GlobalngeNB-ID.c b/src/codec_utils/E2AP/GlobalngeNB-ID.c index 8b65d9738..a1ef4b5a8 100644 --- a/src/codec_utils/E2AP/GlobalngeNB-ID.c +++ b/src/codec_utils/E2AP/GlobalngeNB-ID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "GlobalngeNB-ID.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_GlobalngeNB_ID_1[] = { { ATF_NOFLAGS, 0, offsetof(struct GlobalngeNB_ID, plmn_id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_PLMN_IdentityE2, + &asn_DEF_PLMN_Identity, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/GlobalngeNB-ID.h b/src/codec_utils/E2AP/GlobalngeNB-ID.h index 5ededc6d7..9264610fb 100644 --- a/src/codec_utils/E2AP/GlobalngeNB-ID.h +++ b/src/codec_utils/E2AP/GlobalngeNB-ID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _GlobalngeNB_ID_H_ @@ -12,7 +12,7 @@ #include /* Including external dependencies */ -#include "PLMN-IdentityE2.h" +#include "PLMN-Identity.h" #include "ENB-ID-Choice.h" #include @@ -22,7 +22,7 @@ extern "C" { /* GlobalngeNB-ID */ typedef struct GlobalngeNB_ID { - PLMN_IdentityE2_t plmn_id; + PLMN_Identity_t plmn_id; ENB_ID_Choice_t enb_id; /* * This type is extensible, diff --git a/src/codec_utils/E2AP/InitiatingMessageE2.c b/src/codec_utils/E2AP/InitiatingMessageE2.c index 3f6985983..c5e2eaf6e 100644 --- a/src/codec_utils/E2AP/InitiatingMessageE2.c +++ b/src/codec_utils/E2AP/InitiatingMessageE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "InitiatingMessageE2.h" @@ -17,14 +17,20 @@ static const long asn_VAL_4_id_RICcontrol = 4; static const long asn_VAL_4_reject = 0; static const long asn_VAL_5_id_E2setup = 1; static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; +static const long asn_VAL_6_id_E2nodeConfigurationUpdate = 10; static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndicationE2 = 2; +static const long asn_VAL_7_id_E2connectionUpdate = 11; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_Reset = 3; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_RICindication = 5; static const long asn_VAL_9_ignore = 1; +static const long asn_VAL_10_id_RICserviceQuery = 6; +static const long asn_VAL_10_ignore = 1; +static const long asn_VAL_11_id_ErrorIndicationE2 = 2; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -51,29 +57,44 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2setupFailure }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_5_id_E2setup }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_5_reject }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, + { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_6_id_E2nodeConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_6_reject }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_E2connectionUpdate }, + { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, + { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2connectionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_7_id_E2connectionUpdate }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_7_reject }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_ResetRequest }, { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_ResetResponse }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_6_reject }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_8_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_8_reject }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICindication }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_7_ignore }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_9_id_RICindication }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_9_ignore }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICserviceQuery }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_8_ignore }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_10_id_RICserviceQuery }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_10_ignore }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_ErrorIndicationE2 }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_9_id_ErrorIndicationE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_9_ignore } + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_11_id_ErrorIndicationE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_11_ignore }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcomeE2", }, + { "&UnsuccessfulOutcomeE2", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -262,6 +283,24 @@ static asn_TYPE_member_t asn_MBR_value_4[] = { 0, 0, /* No default value */ "E2setupRequest" }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.E2nodeConfigurationUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeConfigurationUpdate" + }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.E2connectionUpdate), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdate" + }, { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.ResetRequest), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -298,17 +337,29 @@ static asn_TYPE_member_t asn_MBR_value_4[] = { 0, 0, /* No default value */ "ErrorIndicationE2" }, + { ATF_NOFLAGS, 0, offsetof(struct InitiatingMessageE2__value, choice.RICsubscriptionDeleteRequired), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequired, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscriptionDeleteRequired" + }, }; static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 8 }, /* RICsubscriptionRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 7 }, /* RICsubscriptionDeleteRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 6 }, /* RICserviceUpdate */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 5 }, /* RICcontrolRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 4 }, /* E2setupRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 3 }, /* ResetRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 2 }, /* RICindication */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 1 }, /* RICserviceQuery */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 0 } /* ErrorIndicationE2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 11 }, /* RICsubscriptionRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 10 }, /* RICsubscriptionDeleteRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 9 }, /* RICserviceUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 8 }, /* RICcontrolRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 7 }, /* E2setupRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 6 }, /* E2nodeConfigurationUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 5 }, /* E2connectionUpdate */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 4 }, /* ResetRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 8, -8, 3 }, /* RICindication */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 9, -9, 2 }, /* RICserviceQuery */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 10, -10, 1 }, /* ErrorIndicationE2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 11, -11, 0 } /* RICsubscriptionDeleteRequired */ }; static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { sizeof(struct InitiatingMessageE2__value), @@ -316,7 +367,7 @@ static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { offsetof(struct InitiatingMessageE2__value, present), sizeof(((struct InitiatingMessageE2__value *)0)->present), asn_MAP_value_tag2el_4, - 9, /* Count of tags in the map */ + 12, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; @@ -331,7 +382,7 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, asn_MBR_value_4, - 9, /* Elements count */ + 12, /* Elements count */ &asn_SPC_value_specs_4 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/InitiatingMessageE2.h b/src/codec_utils/E2AP/InitiatingMessageE2.h index 6d8baa4c3..f2717668a 100644 --- a/src/codec_utils/E2AP/InitiatingMessageE2.h +++ b/src/codec_utils/E2AP/InitiatingMessageE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _InitiatingMessageE2_H_ @@ -31,11 +31,18 @@ #include "E2setupRequest.h" #include "E2setupResponse.h" #include "E2setupFailure.h" +#include "E2nodeConfigurationUpdate.h" +#include "E2nodeConfigurationUpdateAcknowledge.h" +#include "E2nodeConfigurationUpdateFailure.h" +#include "E2connectionUpdate.h" +#include "E2connectionUpdateAcknowledge.h" +#include "E2connectionUpdateFailure.h" #include "ResetRequest.h" #include "ResetResponse.h" #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndicationE2.h" +#include "RICsubscriptionDeleteRequired.h" #include #include #include @@ -52,10 +59,13 @@ typedef enum InitiatingMessageE2__value_PR { InitiatingMessageE2__value_PR_RICserviceUpdate, InitiatingMessageE2__value_PR_RICcontrolRequest, InitiatingMessageE2__value_PR_E2setupRequest, + InitiatingMessageE2__value_PR_E2nodeConfigurationUpdate, + InitiatingMessageE2__value_PR_E2connectionUpdate, InitiatingMessageE2__value_PR_ResetRequest, InitiatingMessageE2__value_PR_RICindication, InitiatingMessageE2__value_PR_RICserviceQuery, - InitiatingMessageE2__value_PR_ErrorIndicationE2 + InitiatingMessageE2__value_PR_ErrorIndicationE2, + InitiatingMessageE2__value_PR_RICsubscriptionDeleteRequired } InitiatingMessageE2__value_PR; /* InitiatingMessageE2 */ @@ -70,10 +80,13 @@ typedef struct InitiatingMessageE2 { RICserviceUpdate_t RICserviceUpdate; RICcontrolRequest_t RICcontrolRequest; E2setupRequest_t E2setupRequest; + E2nodeConfigurationUpdate_t E2nodeConfigurationUpdate; + E2connectionUpdate_t E2connectionUpdate; ResetRequest_t ResetRequest; RICindication_t RICindication; RICserviceQuery_t RICserviceQuery; ErrorIndicationE2_t ErrorIndicationE2; + RICsubscriptionDeleteRequired_t RICsubscriptionDeleteRequired; } choice; /* Context for parsing across buffer boundaries */ diff --git a/src/codec_utils/E2AP/MMEname.c b/src/codec_utils/E2AP/MMEname.c new file mode 100644 index 000000000..73aa8e931 --- /dev/null +++ b/src/codec_utils/E2AP/MMEname.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "MMEname.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +MMEname_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 150) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_MMEname_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_MMEname_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_MMEname_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_MMEname_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 150 } /* (SIZE(1..150,...)) */, + asn_PER_MAP_MMEname_1_v2c, /* Value to PER code map */ + asn_PER_MAP_MMEname_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_MMEname_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_MMEname = { + "MMEname", + "MMEname", + &asn_OP_PrintableString, + asn_DEF_MMEname_tags_1, + sizeof(asn_DEF_MMEname_tags_1) + /sizeof(asn_DEF_MMEname_tags_1[0]), /* 1 */ + asn_DEF_MMEname_tags_1, /* Same as above */ + sizeof(asn_DEF_MMEname_tags_1) + /sizeof(asn_DEF_MMEname_tags_1[0]), /* 1 */ + { &asn_OER_type_MMEname_constr_1, &asn_PER_type_MMEname_constr_1, MMEname_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/E2AP/MMEname.h b/src/codec_utils/E2AP/MMEname.h new file mode 100644 index 000000000..0fca261e4 --- /dev/null +++ b/src/codec_utils/E2AP/MMEname.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _MMEname_H_ +#define _MMEname_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* MMEname */ +typedef PrintableString_t MMEname_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_MMEname_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_MMEname; +asn_struct_free_f MMEname_free; +asn_struct_print_f MMEname_print; +asn_constr_check_f MMEname_constraint; +ber_type_decoder_f MMEname_decode_ber; +der_type_encoder_f MMEname_encode_der; +xer_type_decoder_f MMEname_decode_xer; +xer_type_encoder_f MMEname_encode_xer; +oer_type_decoder_f MMEname_decode_oer; +oer_type_encoder_f MMEname_encode_oer; +per_type_decoder_f MMEname_decode_uper; +per_type_encoder_f MMEname_encode_uper; +per_type_decoder_f MMEname_decode_aper; +per_type_encoder_f MMEname_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _MMEname_H_ */ +#include diff --git a/src/codec_utils/E2AP/Makefile.am.libasncodec b/src/codec_utils/E2AP/Makefile.am.libasncodec index 76d673614..671db8208 100644 --- a/src/codec_utils/E2AP/Makefile.am.libasncodec +++ b/src/codec_utils/E2AP/Makefile.am.libasncodec @@ -1,288 +1,386 @@ ASN_MODULE_SRCS= \ - ./out/E2AP-PDU.c \ - ./out/InitiatingMessageE2.c \ - ./out/SuccessfulOutcomeE2.c \ - ./out/UnsuccessfulOutcomeE2.c \ - ./out/RICsubscriptionRequest.c \ - ./out/RICsubscriptionDetails.c \ - ./out/RICactions-ToBeSetup-List.c \ - ./out/RICaction-ToBeSetup-Item.c \ - ./out/RICsubscriptionResponse.c \ - ./out/RICaction-Admitted-List.c \ - ./out/RICaction-Admitted-Item.c \ - ./out/RICaction-NotAdmitted-List.c \ - ./out/RICaction-NotAdmitted-Item.c \ - ./out/RICsubscriptionFailure.c \ - ./out/RICsubscriptionDeleteRequest.c \ - ./out/RICsubscriptionDeleteResponse.c \ - ./out/RICsubscriptionDeleteFailure.c \ - ./out/RICindication.c \ - ./out/RICcontrolRequest.c \ - ./out/RICcontrolAcknowledge.c \ - ./out/RICcontrolFailure.c \ - ./out/ErrorIndicationE2.c \ - ./out/E2setupRequest.c \ - ./out/E2setupResponse.c \ - ./out/E2setupFailure.c \ - ./out/ResetRequest.c \ - ./out/ResetResponse.c \ - ./out/RICserviceUpdate.c \ - ./out/RANfunctions-List.c \ - ./out/RANfunction-Item.c \ - ./out/RANfunctionsID-List.c \ - ./out/RANfunctionID-Item.c \ - ./out/RICserviceUpdateAcknowledge.c \ - ./out/RANfunctionsIDcause-List.c \ - ./out/RANfunctionIDcause-Item.c \ - ./out/RICserviceUpdateFailure.c \ - ./out/RICserviceQuery.c \ - ./out/CauseE2.c \ - ./out/CauseMisc.c \ - ./out/CauseProtocol.c \ - ./out/CauseRIC.c \ - ./out/CauseRICservice.c \ - ./out/CauseTransport.c \ - ./out/CriticalityDiagnosticsE2.c \ - ./out/CriticalityDiagnostics-IE-ListE2.c \ - ./out/CriticalityDiagnostics-IE-ItemE2.c \ - ./out/ENB-ID.c \ - ./out/ENB-ID-Choice.c \ - ./out/ENGNB-ID.c \ - ./out/GlobalE2node-ID.c \ - ./out/GlobalE2node-en-gNB-ID.c \ - ./out/GlobalE2node-eNB-ID.c \ - ./out/GlobalE2node-gNB-ID.c \ - ./out/GlobalE2node-ng-eNB-ID.c \ - ./out/GlobalENB-ID.c \ - ./out/GlobalenGNB-ID.c \ - ./out/GlobalgNB-ID.c \ - ./out/GlobalngeNB-ID.c \ - ./out/GlobalRIC-ID.c \ - ./out/GNB-CU-UP-ID.c \ - ./out/GNB-DU-IDE2.c \ - ./out/GNB-ID-Choice.c \ - ./out/PLMN-IdentityE2.c \ - ./out/RANfunctionDefinition.c \ - ./out/RANfunctionID.c \ - ./out/RANfunctionRevision.c \ - ./out/RICactionDefinition.c \ - ./out/RICactionID.c \ - ./out/RICactionType.c \ - ./out/RICcallProcessID.c \ - ./out/RICcontrolAckRequest.c \ - ./out/RICcontrolHeader.c \ - ./out/RICcontrolMessage.c \ - ./out/RICcontrolOutcome.c \ - ./out/RICcontrolStatus.c \ - ./out/RICeventTriggerDefinition.c \ - ./out/RICindicationHeader.c \ - ./out/RICindicationMessage.c \ - ./out/RICindicationSN.c \ - ./out/RICindicationType.c \ - ./out/RICrequestID.c \ - ./out/RICsubsequentAction.c \ - ./out/RICsubsequentActionType.c \ - ./out/RICtimeToWait.c \ - ./out/TimeToWaitE2.c \ - ./out/TypeOfErrorE2.c \ - ./out/CriticalityE2.c \ - ./out/PresenceE2.c \ - ./out/ProcedureCodeE2.c \ - ./out/ProtocolIE-IDE2.c \ - ./out/TriggeringMessageE2.c \ - ./out/ProtocolIE-ContainerE2.c \ - ./out/ProtocolIE-SingleContainerE2.c \ - ./out/ProtocolIE-FieldE2.c \ - ./out/ProtocolIE-ContainerPairE2.c \ - ./out/ProtocolIE-FieldPairE2.c \ - ./out/ProtocolIE-ContainerList.c \ - ./out/ProtocolIE-ContainerPairList.c + ./E2AP/E2AP-PDU.c \ + ./E2AP/InitiatingMessageE2.c \ + ./E2AP/SuccessfulOutcomeE2.c \ + ./E2AP/UnsuccessfulOutcomeE2.c \ + ./E2AP/RICsubscriptionRequest.c \ + ./E2AP/RICsubscriptionDetails.c \ + ./E2AP/RICactions-ToBeSetup-List.c \ + ./E2AP/RICaction-ToBeSetup-Item.c \ + ./E2AP/RICsubscriptionResponse.c \ + ./E2AP/RICaction-Admitted-List.c \ + ./E2AP/RICaction-Admitted-Item.c \ + ./E2AP/RICaction-NotAdmitted-List.c \ + ./E2AP/RICaction-NotAdmitted-Item.c \ + ./E2AP/RICsubscriptionFailure.c \ + ./E2AP/RICsubscriptionDeleteRequest.c \ + ./E2AP/RICsubscriptionDeleteResponse.c \ + ./E2AP/RICsubscriptionDeleteFailure.c \ + ./E2AP/RICsubscriptionDeleteRequired.c \ + ./E2AP/RICsubscription-List-withCause.c \ + ./E2AP/RICsubscription-withCause-Item.c \ + ./E2AP/RICindication.c \ + ./E2AP/RICcontrolRequest.c \ + ./E2AP/RICcontrolAcknowledge.c \ + ./E2AP/RICcontrolFailure.c \ + ./E2AP/ErrorIndicationE2.c \ + ./E2AP/E2setupRequest.c \ + ./E2AP/E2setupResponse.c \ + ./E2AP/E2setupFailure.c \ + ./E2AP/E2connectionUpdate.c \ + ./E2AP/E2connectionUpdate-List.c \ + ./E2AP/E2connectionUpdate-Item.c \ + ./E2AP/E2connectionUpdateRemove-List.c \ + ./E2AP/E2connectionUpdateRemove-Item.c \ + ./E2AP/E2connectionUpdateAcknowledge.c \ + ./E2AP/E2connectionSetupFailed-List.c \ + ./E2AP/E2connectionSetupFailed-Item.c \ + ./E2AP/E2connectionUpdateFailure.c \ + ./E2AP/E2nodeConfigurationUpdate.c \ + ./E2AP/E2nodeComponentConfigAddition-List.c \ + ./E2AP/E2nodeComponentConfigAddition-Item.c \ + ./E2AP/E2nodeComponentConfigUpdate-List.c \ + ./E2AP/E2nodeComponentConfigUpdate-Item.c \ + ./E2AP/E2nodeComponentConfigRemoval-List.c \ + ./E2AP/E2nodeComponentConfigRemoval-Item.c \ + ./E2AP/E2nodeTNLassociationRemoval-List.c \ + ./E2AP/E2nodeTNLassociationRemoval-Item.c \ + ./E2AP/E2nodeConfigurationUpdateAcknowledge.c \ + ./E2AP/E2nodeComponentConfigAdditionAck-List.c \ + ./E2AP/E2nodeComponentConfigAdditionAck-Item.c \ + ./E2AP/E2nodeComponentConfigUpdateAck-List.c \ + ./E2AP/E2nodeComponentConfigUpdateAck-Item.c \ + ./E2AP/E2nodeComponentConfigRemovalAck-List.c \ + ./E2AP/E2nodeComponentConfigRemovalAck-Item.c \ + ./E2AP/E2nodeConfigurationUpdateFailure.c \ + ./E2AP/ResetRequest.c \ + ./E2AP/ResetResponse.c \ + ./E2AP/RICserviceUpdate.c \ + ./E2AP/RANfunctions-List.c \ + ./E2AP/RANfunction-Item.c \ + ./E2AP/RANfunctionsID-List.c \ + ./E2AP/RANfunctionID-Item.c \ + ./E2AP/RICserviceUpdateAcknowledge.c \ + ./E2AP/RANfunctionsIDcause-List.c \ + ./E2AP/RANfunctionIDcause-Item.c \ + ./E2AP/RICserviceUpdateFailure.c \ + ./E2AP/RICserviceQuery.c \ + ./E2AP/AMFName.c \ + ./E2AP/CauseE2.c \ + ./E2AP/CauseE2node.c \ + ./E2AP/CauseMisc.c \ + ./E2AP/CauseProtocol.c \ + ./E2AP/CauseRICrequest.c \ + ./E2AP/CauseRICservice.c \ + ./E2AP/CauseTransport.c \ + ./E2AP/CriticalityDiagnosticsE2.c \ + ./E2AP/CriticalityDiagnostics-IE-ListE2.c \ + ./E2AP/CriticalityDiagnostics-IE-ItemE2.c \ + ./E2AP/E2nodeComponentConfiguration.c \ + ./E2AP/E2nodeComponentConfigurationAck.c \ + ./E2AP/E2nodeComponentInterfaceType.c \ + ./E2AP/E2nodeComponentID.c \ + ./E2AP/E2nodeComponentInterfaceE1.c \ + ./E2AP/E2nodeComponentInterfaceF1.c \ + ./E2AP/E2nodeComponentInterfaceNG.c \ + ./E2AP/E2nodeComponentInterfaceS1.c \ + ./E2AP/E2nodeComponentInterfaceX2.c \ + ./E2AP/E2nodeComponentInterfaceXn.c \ + ./E2AP/E2nodeComponentInterfaceW1.c \ + ./E2AP/ENB-ID.c \ + ./E2AP/ENB-ID-Choice.c \ + ./E2AP/ENGNB-ID.c \ + ./E2AP/GlobalE2node-ID.c \ + ./E2AP/GlobalE2node-en-gNB-ID.c \ + ./E2AP/GlobalE2node-eNB-ID.c \ + ./E2AP/GlobalE2node-gNB-ID.c \ + ./E2AP/GlobalE2node-ng-eNB-ID.c \ + ./E2AP/GlobalENB-ID.c \ + ./E2AP/GlobalenGNB-ID.c \ + ./E2AP/GlobalgNB-ID.c \ + ./E2AP/GlobalngeNB-ID.c \ + ./E2AP/GlobalNG-RANNode-ID.c \ + ./E2AP/GlobalRIC-ID.c \ + ./E2AP/GNB-CU-UP-ID.c \ + ./E2AP/GNB-DU-ID.c \ + ./E2AP/GNB-ID-Choice.c \ + ./E2AP/MMEname.c \ + ./E2AP/NGENB-DU-ID.c \ + ./E2AP/PLMN-Identity.c \ + ./E2AP/RANfunctionDefinition.c \ + ./E2AP/RANfunctionID.c \ + ./E2AP/RANfunctionOID.c \ + ./E2AP/RANfunctionRevision.c \ + ./E2AP/RICactionDefinition.c \ + ./E2AP/RICactionID.c \ + ./E2AP/RICactionType.c \ + ./E2AP/RICcallProcessID.c \ + ./E2AP/RICcontrolAckRequest.c \ + ./E2AP/RICcontrolHeader.c \ + ./E2AP/RICcontrolMessage.c \ + ./E2AP/RICcontrolOutcome.c \ + ./E2AP/RICeventTriggerDefinition.c \ + ./E2AP/RICindicationHeader.c \ + ./E2AP/RICindicationMessage.c \ + ./E2AP/RICindicationSN.c \ + ./E2AP/RICindicationType.c \ + ./E2AP/RICrequestID.c \ + ./E2AP/RICsubsequentAction.c \ + ./E2AP/RICsubsequentActionType.c \ + ./E2AP/RICtimeToWait.c \ + ./E2AP/TimeToWaitE2.c \ + ./E2AP/TNLinformation.c \ + ./E2AP/TNLusage.c \ + ./E2AP/TransactionID.c \ + ./E2AP/TypeOfErrorE2.c \ + ./E2AP/CriticalityE2.c \ + ./E2AP/PresenceE2.c \ + ./E2AP/ProcedureCodeE2.c \ + ./E2AP/ProtocolIE-IDE2.c \ + ./E2AP/TriggeringMessageE2.c \ + ./E2AP/ProtocolIE-ContainerE2.c \ + ./E2AP/ProtocolIE-SingleContainerE2.c \ + ./E2AP/ProtocolIE-FieldE2.c \ + ./E2AP/ProtocolIE-ContainerPairE2.c \ + ./E2AP/ProtocolIE-FieldPairE2.c \ + ./E2AP/ProtocolIE-ContainerList.c \ + ./E2AP/ProtocolIE-ContainerPairList.c ASN_MODULE_HDRS= \ - ./out/E2AP-PDU.h \ - ./out/InitiatingMessageE2.h \ - ./out/SuccessfulOutcomeE2.h \ - ./out/UnsuccessfulOutcomeE2.h \ - ./out/RICsubscriptionRequest.h \ - ./out/RICsubscriptionDetails.h \ - ./out/RICactions-ToBeSetup-List.h \ - ./out/RICaction-ToBeSetup-Item.h \ - ./out/RICsubscriptionResponse.h \ - ./out/RICaction-Admitted-List.h \ - ./out/RICaction-Admitted-Item.h \ - ./out/RICaction-NotAdmitted-List.h \ - ./out/RICaction-NotAdmitted-Item.h \ - ./out/RICsubscriptionFailure.h \ - ./out/RICsubscriptionDeleteRequest.h \ - ./out/RICsubscriptionDeleteResponse.h \ - ./out/RICsubscriptionDeleteFailure.h \ - ./out/RICindication.h \ - ./out/RICcontrolRequest.h \ - ./out/RICcontrolAcknowledge.h \ - ./out/RICcontrolFailure.h \ - ./out/ErrorIndicationE2.h \ - ./out/E2setupRequest.h \ - ./out/E2setupResponse.h \ - ./out/E2setupFailure.h \ - ./out/ResetRequest.h \ - ./out/ResetResponse.h \ - ./out/RICserviceUpdate.h \ - ./out/RANfunctions-List.h \ - ./out/RANfunction-Item.h \ - ./out/RANfunctionsID-List.h \ - ./out/RANfunctionID-Item.h \ - ./out/RICserviceUpdateAcknowledge.h \ - ./out/RANfunctionsIDcause-List.h \ - ./out/RANfunctionIDcause-Item.h \ - ./out/RICserviceUpdateFailure.h \ - ./out/RICserviceQuery.h \ - ./out/CauseE2.h \ - ./out/CauseMisc.h \ - ./out/CauseProtocol.h \ - ./out/CauseRIC.h \ - ./out/CauseRICservice.h \ - ./out/CauseTransport.h \ - ./out/CriticalityDiagnosticsE2.h \ - ./out/CriticalityDiagnostics-IE-ListE2.h \ - ./out/CriticalityDiagnostics-IE-ItemE2.h \ - ./out/ENB-ID.h \ - ./out/ENB-ID-Choice.h \ - ./out/ENGNB-ID.h \ - ./out/GlobalE2node-ID.h \ - ./out/GlobalE2node-en-gNB-ID.h \ - ./out/GlobalE2node-eNB-ID.h \ - ./out/GlobalE2node-gNB-ID.h \ - ./out/GlobalE2node-ng-eNB-ID.h \ - ./out/GlobalENB-ID.h \ - ./out/GlobalenGNB-ID.h \ - ./out/GlobalgNB-ID.h \ - ./out/GlobalngeNB-ID.h \ - ./out/GlobalRIC-ID.h \ - ./out/GNB-CU-UP-ID.h \ - ./out/GNB-DU-IDE2.h \ - ./out/GNB-ID-Choice.h \ - ./out/PLMN-IdentityE2.h \ - ./out/RANfunctionDefinition.h \ - ./out/RANfunctionID.h \ - ./out/RANfunctionRevision.h \ - ./out/RICactionDefinition.h \ - ./out/RICactionID.h \ - ./out/RICactionType.h \ - ./out/RICcallProcessID.h \ - ./out/RICcontrolAckRequest.h \ - ./out/RICcontrolHeader.h \ - ./out/RICcontrolMessage.h \ - ./out/RICcontrolOutcome.h \ - ./out/RICcontrolStatus.h \ - ./out/RICeventTriggerDefinition.h \ - ./out/RICindicationHeader.h \ - ./out/RICindicationMessage.h \ - ./out/RICindicationSN.h \ - ./out/RICindicationType.h \ - ./out/RICrequestID.h \ - ./out/RICsubsequentAction.h \ - ./out/RICsubsequentActionType.h \ - ./out/RICtimeToWait.h \ - ./out/TimeToWaitE2.h \ - ./out/TypeOfErrorE2.h \ - ./out/CriticalityE2.h \ - ./out/PresenceE2.h \ - ./out/ProcedureCodeE2.h \ - ./out/ProtocolIE-IDE2.h \ - ./out/TriggeringMessageE2.h \ - ./out/ProtocolIE-ContainerE2.h \ - ./out/ProtocolIE-SingleContainerE2.h \ - ./out/ProtocolIE-FieldE2.h \ - ./out/ProtocolIE-ContainerPairE2.h \ - ./out/ProtocolIE-FieldPairE2.h \ - ./out/ProtocolIE-ContainerList.h \ - ./out/ProtocolIE-ContainerPairList.h + ./E2AP/E2AP-PDU.h \ + ./E2AP/InitiatingMessageE2.h \ + ./E2AP/SuccessfulOutcomeE2.h \ + ./E2AP/UnsuccessfulOutcomeE2.h \ + ./E2AP/RICsubscriptionRequest.h \ + ./E2AP/RICsubscriptionDetails.h \ + ./E2AP/RICactions-ToBeSetup-List.h \ + ./E2AP/RICaction-ToBeSetup-Item.h \ + ./E2AP/RICsubscriptionResponse.h \ + ./E2AP/RICaction-Admitted-List.h \ + ./E2AP/RICaction-Admitted-Item.h \ + ./E2AP/RICaction-NotAdmitted-List.h \ + ./E2AP/RICaction-NotAdmitted-Item.h \ + ./E2AP/RICsubscriptionFailure.h \ + ./E2AP/RICsubscriptionDeleteRequest.h \ + ./E2AP/RICsubscriptionDeleteResponse.h \ + ./E2AP/RICsubscriptionDeleteFailure.h \ + ./E2AP/RICsubscriptionDeleteRequired.h \ + ./E2AP/RICsubscription-List-withCause.h \ + ./E2AP/RICsubscription-withCause-Item.h \ + ./E2AP/RICindication.h \ + ./E2AP/RICcontrolRequest.h \ + ./E2AP/RICcontrolAcknowledge.h \ + ./E2AP/RICcontrolFailure.h \ + ./E2AP/ErrorIndicationE2.h \ + ./E2AP/E2setupRequest.h \ + ./E2AP/E2setupResponse.h \ + ./E2AP/E2setupFailure.h \ + ./E2AP/E2connectionUpdate.h \ + ./E2AP/E2connectionUpdate-List.h \ + ./E2AP/E2connectionUpdate-Item.h \ + ./E2AP/E2connectionUpdateRemove-List.h \ + ./E2AP/E2connectionUpdateRemove-Item.h \ + ./E2AP/E2connectionUpdateAcknowledge.h \ + ./E2AP/E2connectionSetupFailed-List.h \ + ./E2AP/E2connectionSetupFailed-Item.h \ + ./E2AP/E2connectionUpdateFailure.h \ + ./E2AP/E2nodeConfigurationUpdate.h \ + ./E2AP/E2nodeComponentConfigAddition-List.h \ + ./E2AP/E2nodeComponentConfigAddition-Item.h \ + ./E2AP/E2nodeComponentConfigUpdate-List.h \ + ./E2AP/E2nodeComponentConfigUpdate-Item.h \ + ./E2AP/E2nodeComponentConfigRemoval-List.h \ + ./E2AP/E2nodeComponentConfigRemoval-Item.h \ + ./E2AP/E2nodeTNLassociationRemoval-List.h \ + ./E2AP/E2nodeTNLassociationRemoval-Item.h \ + ./E2AP/E2nodeConfigurationUpdateAcknowledge.h \ + ./E2AP/E2nodeComponentConfigAdditionAck-List.h \ + ./E2AP/E2nodeComponentConfigAdditionAck-Item.h \ + ./E2AP/E2nodeComponentConfigUpdateAck-List.h \ + ./E2AP/E2nodeComponentConfigUpdateAck-Item.h \ + ./E2AP/E2nodeComponentConfigRemovalAck-List.h \ + ./E2AP/E2nodeComponentConfigRemovalAck-Item.h \ + ./E2AP/E2nodeConfigurationUpdateFailure.h \ + ./E2AP/ResetRequest.h \ + ./E2AP/ResetResponse.h \ + ./E2AP/RICserviceUpdate.h \ + ./E2AP/RANfunctions-List.h \ + ./E2AP/RANfunction-Item.h \ + ./E2AP/RANfunctionsID-List.h \ + ./E2AP/RANfunctionID-Item.h \ + ./E2AP/RICserviceUpdateAcknowledge.h \ + ./E2AP/RANfunctionsIDcause-List.h \ + ./E2AP/RANfunctionIDcause-Item.h \ + ./E2AP/RICserviceUpdateFailure.h \ + ./E2AP/RICserviceQuery.h \ + ./E2AP/AMFName.h \ + ./E2AP/CauseE2.h \ + ./E2AP/CauseE2node.h \ + ./E2AP/CauseMisc.h \ + ./E2AP/CauseProtocol.h \ + ./E2AP/CauseRICrequest.h \ + ./E2AP/CauseRICservice.h \ + ./E2AP/CauseTransport.h \ + ./E2AP/CriticalityDiagnosticsE2.h \ + ./E2AP/CriticalityDiagnostics-IE-ListE2.h \ + ./E2AP/CriticalityDiagnostics-IE-ItemE2.h \ + ./E2AP/E2nodeComponentConfiguration.h \ + ./E2AP/E2nodeComponentConfigurationAck.h \ + ./E2AP/E2nodeComponentInterfaceType.h \ + ./E2AP/E2nodeComponentID.h \ + ./E2AP/E2nodeComponentInterfaceE1.h \ + ./E2AP/E2nodeComponentInterfaceF1.h \ + ./E2AP/E2nodeComponentInterfaceNG.h \ + ./E2AP/E2nodeComponentInterfaceS1.h \ + ./E2AP/E2nodeComponentInterfaceX2.h \ + ./E2AP/E2nodeComponentInterfaceXn.h \ + ./E2AP/E2nodeComponentInterfaceW1.h \ + ./E2AP/ENB-ID.h \ + ./E2AP/ENB-ID-Choice.h \ + ./E2AP/ENGNB-ID.h \ + ./E2AP/GlobalE2node-ID.h \ + ./E2AP/GlobalE2node-en-gNB-ID.h \ + ./E2AP/GlobalE2node-eNB-ID.h \ + ./E2AP/GlobalE2node-gNB-ID.h \ + ./E2AP/GlobalE2node-ng-eNB-ID.h \ + ./E2AP/GlobalENB-ID.h \ + ./E2AP/GlobalenGNB-ID.h \ + ./E2AP/GlobalgNB-ID.h \ + ./E2AP/GlobalngeNB-ID.h \ + ./E2AP/GlobalNG-RANNode-ID.h \ + ./E2AP/GlobalRIC-ID.h \ + ./E2AP/GNB-CU-UP-ID.h \ + ./E2AP/GNB-DU-ID.h \ + ./E2AP/GNB-ID-Choice.h \ + ./E2AP/MMEname.h \ + ./E2AP/NGENB-DU-ID.h \ + ./E2AP/PLMN-Identity.h \ + ./E2AP/RANfunctionDefinition.h \ + ./E2AP/RANfunctionID.h \ + ./E2AP/RANfunctionOID.h \ + ./E2AP/RANfunctionRevision.h \ + ./E2AP/RICactionDefinition.h \ + ./E2AP/RICactionID.h \ + ./E2AP/RICactionType.h \ + ./E2AP/RICcallProcessID.h \ + ./E2AP/RICcontrolAckRequest.h \ + ./E2AP/RICcontrolHeader.h \ + ./E2AP/RICcontrolMessage.h \ + ./E2AP/RICcontrolOutcome.h \ + ./E2AP/RICeventTriggerDefinition.h \ + ./E2AP/RICindicationHeader.h \ + ./E2AP/RICindicationMessage.h \ + ./E2AP/RICindicationSN.h \ + ./E2AP/RICindicationType.h \ + ./E2AP/RICrequestID.h \ + ./E2AP/RICsubsequentAction.h \ + ./E2AP/RICsubsequentActionType.h \ + ./E2AP/RICtimeToWait.h \ + ./E2AP/TimeToWaitE2.h \ + ./E2AP/TNLinformation.h \ + ./E2AP/TNLusage.h \ + ./E2AP/TransactionID.h \ + ./E2AP/TypeOfErrorE2.h \ + ./E2AP/CriticalityE2.h \ + ./E2AP/PresenceE2.h \ + ./E2AP/ProcedureCodeE2.h \ + ./E2AP/ProtocolIE-IDE2.h \ + ./E2AP/TriggeringMessageE2.h \ + ./E2AP/ProtocolIE-ContainerE2.h \ + ./E2AP/ProtocolIE-SingleContainerE2.h \ + ./E2AP/ProtocolIE-FieldE2.h \ + ./E2AP/ProtocolIE-ContainerPairE2.h \ + ./E2AP/ProtocolIE-FieldPairE2.h \ + ./E2AP/ProtocolIE-ContainerList.h \ + ./E2AP/ProtocolIE-ContainerPairList.h -ASN_MODULE_HDRS+=./out/ANY.h -ASN_MODULE_SRCS+=./out/ANY.c -ASN_MODULE_HDRS+=./out/OCTET_STRING.h -ASN_MODULE_HDRS+=./out/OPEN_TYPE.h -ASN_MODULE_SRCS+=./out/OPEN_TYPE.c -ASN_MODULE_HDRS+=./out/constr_CHOICE.h -ASN_MODULE_HDRS+=./out/INTEGER.h -ASN_MODULE_SRCS+=./out/INTEGER.c -ASN_MODULE_HDRS+=./out/NativeEnumerated.h -ASN_MODULE_SRCS+=./out/NativeEnumerated.c -ASN_MODULE_HDRS+=./out/NativeInteger.h -ASN_MODULE_SRCS+=./out/NativeInteger.c -ASN_MODULE_HDRS+=./out/asn_SEQUENCE_OF.h -ASN_MODULE_SRCS+=./out/asn_SEQUENCE_OF.c -ASN_MODULE_HDRS+=./out/asn_SET_OF.h -ASN_MODULE_SRCS+=./out/asn_SET_OF.c -ASN_MODULE_SRCS+=./out/constr_CHOICE.c -ASN_MODULE_HDRS+=./out/constr_SEQUENCE.h -ASN_MODULE_SRCS+=./out/constr_SEQUENCE.c -ASN_MODULE_HDRS+=./out/constr_SEQUENCE_OF.h -ASN_MODULE_SRCS+=./out/constr_SEQUENCE_OF.c -ASN_MODULE_HDRS+=./out/constr_SET_OF.h -ASN_MODULE_SRCS+=./out/constr_SET_OF.c -ASN_MODULE_HDRS+=./out/asn_application.h -ASN_MODULE_SRCS+=./out/asn_application.c -ASN_MODULE_HDRS+=./out/asn_ioc.h -ASN_MODULE_HDRS+=./out/asn_system.h -ASN_MODULE_HDRS+=./out/asn_codecs.h -ASN_MODULE_HDRS+=./out/asn_internal.h -ASN_MODULE_SRCS+=./out/asn_internal.c -ASN_MODULE_HDRS+=./out/asn_random_fill.h -ASN_MODULE_SRCS+=./out/asn_random_fill.c -ASN_MODULE_HDRS+=./out/asn_bit_data.h -ASN_MODULE_SRCS+=./out/asn_bit_data.c -ASN_MODULE_SRCS+=./out/OCTET_STRING.c -ASN_MODULE_HDRS+=./out/BIT_STRING.h -ASN_MODULE_SRCS+=./out/BIT_STRING.c -ASN_MODULE_SRCS+=./out/asn_codecs_prim.c -ASN_MODULE_HDRS+=./out/asn_codecs_prim.h -ASN_MODULE_HDRS+=./out/ber_tlv_length.h -ASN_MODULE_SRCS+=./out/ber_tlv_length.c -ASN_MODULE_HDRS+=./out/ber_tlv_tag.h -ASN_MODULE_SRCS+=./out/ber_tlv_tag.c -ASN_MODULE_HDRS+=./out/ber_decoder.h -ASN_MODULE_SRCS+=./out/ber_decoder.c -ASN_MODULE_HDRS+=./out/der_encoder.h -ASN_MODULE_SRCS+=./out/der_encoder.c -ASN_MODULE_HDRS+=./out/constr_TYPE.h -ASN_MODULE_SRCS+=./out/constr_TYPE.c -ASN_MODULE_HDRS+=./out/constraints.h -ASN_MODULE_SRCS+=./out/constraints.c -ASN_MODULE_HDRS+=./out/xer_support.h -ASN_MODULE_SRCS+=./out/xer_support.c -ASN_MODULE_HDRS+=./out/xer_decoder.h -ASN_MODULE_SRCS+=./out/xer_decoder.c -ASN_MODULE_HDRS+=./out/xer_encoder.h -ASN_MODULE_SRCS+=./out/xer_encoder.c -ASN_MODULE_HDRS+=./out/per_support.h -ASN_MODULE_SRCS+=./out/per_support.c -ASN_MODULE_HDRS+=./out/per_decoder.h -ASN_MODULE_SRCS+=./out/per_decoder.c -ASN_MODULE_HDRS+=./out/per_encoder.h -ASN_MODULE_SRCS+=./out/per_encoder.c -ASN_MODULE_HDRS+=./out/per_opentype.h -ASN_MODULE_SRCS+=./out/per_opentype.c -ASN_MODULE_HDRS+=./out/oer_decoder.h -ASN_MODULE_HDRS+=./out/oer_encoder.h -ASN_MODULE_HDRS+=./out/oer_support.h -ASN_MODULE_SRCS+=./out/oer_decoder.c -ASN_MODULE_SRCS+=./out/oer_encoder.c -ASN_MODULE_SRCS+=./out/oer_support.c -ASN_MODULE_SRCS+=./out/OPEN_TYPE_oer.c -ASN_MODULE_SRCS+=./out/INTEGER_oer.c -ASN_MODULE_SRCS+=./out/BIT_STRING_oer.c -ASN_MODULE_SRCS+=./out/OCTET_STRING_oer.c -ASN_MODULE_SRCS+=./out/NativeInteger_oer.c -ASN_MODULE_SRCS+=./out/NativeEnumerated_oer.c -ASN_MODULE_SRCS+=./out/constr_CHOICE_oer.c -ASN_MODULE_SRCS+=./out/constr_SEQUENCE_oer.c -ASN_MODULE_SRCS+=./out/constr_SET_OF_oer.c +ASN_MODULE_HDRS+=./E2AP/ANY.h +ASN_MODULE_SRCS+=./E2AP/ANY.c +ASN_MODULE_HDRS+=./E2AP/OCTET_STRING.h +ASN_MODULE_HDRS+=./E2AP/OPEN_TYPE.h +ASN_MODULE_SRCS+=./E2AP/OPEN_TYPE.c +ASN_MODULE_HDRS+=./E2AP/constr_CHOICE.h +ASN_MODULE_HDRS+=./E2AP/INTEGER.h +ASN_MODULE_SRCS+=./E2AP/INTEGER.c +ASN_MODULE_HDRS+=./E2AP/NativeEnumerated.h +ASN_MODULE_SRCS+=./E2AP/NativeEnumerated.c +ASN_MODULE_HDRS+=./E2AP/NativeInteger.h +ASN_MODULE_SRCS+=./E2AP/NativeInteger.c +ASN_MODULE_HDRS+=./E2AP/PrintableString.h +ASN_MODULE_SRCS+=./E2AP/PrintableString.c +ASN_MODULE_HDRS+=./E2AP/asn_SEQUENCE_OF.h +ASN_MODULE_SRCS+=./E2AP/asn_SEQUENCE_OF.c +ASN_MODULE_HDRS+=./E2AP/asn_SET_OF.h +ASN_MODULE_SRCS+=./E2AP/asn_SET_OF.c +ASN_MODULE_SRCS+=./E2AP/constr_CHOICE.c +ASN_MODULE_HDRS+=./E2AP/constr_SEQUENCE.h +ASN_MODULE_SRCS+=./E2AP/constr_SEQUENCE.c +ASN_MODULE_HDRS+=./E2AP/constr_SEQUENCE_OF.h +ASN_MODULE_SRCS+=./E2AP/constr_SEQUENCE_OF.c +ASN_MODULE_HDRS+=./E2AP/constr_SET_OF.h +ASN_MODULE_SRCS+=./E2AP/constr_SET_OF.c +ASN_MODULE_HDRS+=./E2AP/asn_application.h +ASN_MODULE_SRCS+=./E2AP/asn_application.c +ASN_MODULE_HDRS+=./E2AP/asn_ioc.h +ASN_MODULE_HDRS+=./E2AP/asn_system.h +ASN_MODULE_HDRS+=./E2AP/asn_codecs.h +ASN_MODULE_HDRS+=./E2AP/asn_internal.h +ASN_MODULE_SRCS+=./E2AP/asn_internal.c +ASN_MODULE_HDRS+=./E2AP/asn_random_fill.h +ASN_MODULE_SRCS+=./E2AP/asn_random_fill.c +ASN_MODULE_HDRS+=./E2AP/asn_bit_data.h +ASN_MODULE_SRCS+=./E2AP/asn_bit_data.c +ASN_MODULE_SRCS+=./E2AP/OCTET_STRING.c +ASN_MODULE_HDRS+=./E2AP/BIT_STRING.h +ASN_MODULE_SRCS+=./E2AP/BIT_STRING.c +ASN_MODULE_SRCS+=./E2AP/asn_codecs_prim.c +ASN_MODULE_HDRS+=./E2AP/asn_codecs_prim.h +ASN_MODULE_HDRS+=./E2AP/ber_tlv_length.h +ASN_MODULE_SRCS+=./E2AP/ber_tlv_length.c +ASN_MODULE_HDRS+=./E2AP/ber_tlv_tag.h +ASN_MODULE_SRCS+=./E2AP/ber_tlv_tag.c +ASN_MODULE_HDRS+=./E2AP/ber_decoder.h +ASN_MODULE_SRCS+=./E2AP/ber_decoder.c +ASN_MODULE_HDRS+=./E2AP/der_encoder.h +ASN_MODULE_SRCS+=./E2AP/der_encoder.c +ASN_MODULE_HDRS+=./E2AP/constr_TYPE.h +ASN_MODULE_SRCS+=./E2AP/constr_TYPE.c +ASN_MODULE_HDRS+=./E2AP/constraints.h +ASN_MODULE_SRCS+=./E2AP/constraints.c +ASN_MODULE_HDRS+=./E2AP/xer_support.h +ASN_MODULE_SRCS+=./E2AP/xer_support.c +ASN_MODULE_HDRS+=./E2AP/xer_decoder.h +ASN_MODULE_SRCS+=./E2AP/xer_decoder.c +ASN_MODULE_HDRS+=./E2AP/xer_encoder.h +ASN_MODULE_SRCS+=./E2AP/xer_encoder.c +ASN_MODULE_HDRS+=./E2AP/per_support.h +ASN_MODULE_SRCS+=./E2AP/per_support.c +ASN_MODULE_HDRS+=./E2AP/per_decoder.h +ASN_MODULE_SRCS+=./E2AP/per_decoder.c +ASN_MODULE_HDRS+=./E2AP/per_encoder.h +ASN_MODULE_SRCS+=./E2AP/per_encoder.c +ASN_MODULE_HDRS+=./E2AP/per_opentype.h +ASN_MODULE_SRCS+=./E2AP/per_opentype.c +ASN_MODULE_HDRS+=./E2AP/oer_decoder.h +ASN_MODULE_HDRS+=./E2AP/oer_encoder.h +ASN_MODULE_HDRS+=./E2AP/oer_support.h +ASN_MODULE_SRCS+=./E2AP/oer_decoder.c +ASN_MODULE_SRCS+=./E2AP/oer_encoder.c +ASN_MODULE_SRCS+=./E2AP/oer_support.c +ASN_MODULE_SRCS+=./E2AP/OPEN_TYPE_oer.c +ASN_MODULE_SRCS+=./E2AP/INTEGER_oer.c +ASN_MODULE_SRCS+=./E2AP/BIT_STRING_oer.c +ASN_MODULE_SRCS+=./E2AP/OCTET_STRING_oer.c +ASN_MODULE_SRCS+=./E2AP/NativeInteger_oer.c +ASN_MODULE_SRCS+=./E2AP/NativeEnumerated_oer.c +ASN_MODULE_SRCS+=./E2AP/constr_CHOICE_oer.c +ASN_MODULE_SRCS+=./E2AP/constr_SEQUENCE_oer.c +ASN_MODULE_SRCS+=./E2AP/constr_SET_OF_oer.c ASN_MODULE_CFLAGS= lib_LTLIBRARIES+=libasncodec.la libasncodec_la_SOURCES=$(ASN_MODULE_SRCS) $(ASN_MODULE_HDRS) -libasncodec_la_CPPFLAGS=-I$(top_srcdir)/./out/ +libasncodec_la_CPPFLAGS=-I$(top_srcdir)/./E2AP/ libasncodec_la_CFLAGS=$(ASN_MODULE_CFLAGS) libasncodec_la_LDFLAGS=-lm diff --git a/src/codec_utils/E2AP/GNB-DU-IDE2.c b/src/codec_utils/E2AP/NGENB-DU-ID.c similarity index 57% rename from src/codec_utils/E2AP/GNB-DU-IDE2.c rename to src/codec_utils/E2AP/NGENB-DU-ID.c index 52ec04099..3aa7b5f07 100644 --- a/src/codec_utils/E2AP/GNB-DU-IDE2.c +++ b/src/codec_utils/E2AP/NGENB-DU-ID.c @@ -1,14 +1,14 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ -#include "GNB-DU-IDE2.h" +#include "NGENB-DU-ID.h" int -GNB_DU_IDE2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, +NGENB_DU_ID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const INTEGER_t *st = (const INTEGER_t *)sptr; long value; @@ -42,28 +42,28 @@ GNB_DU_IDE2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using INTEGER, * so here we adjust the DEF accordingly. */ -static asn_oer_constraints_t asn_OER_type_GNB_DU_IDE2_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = { { 8, 1 } /* (0..68719476735) */, -1}; -asn_per_constraints_t asn_PER_type_GNB_DU_IDE2_constr_1 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1 CC_NOTUSED = { { APC_CONSTRAINED, 36, -1, 0, 68719476735 } /* (0..68719476735) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static const ber_tlv_tag_t asn_DEF_GNB_DU_IDE2_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_NGENB_DU_ID_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_GNB_DU_IDE2 = { - "GNB-DU-IDE2", - "GNB-DU-IDE2", +asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID = { + "NGENB-DU-ID", + "NGENB-DU-ID", &asn_OP_INTEGER, - asn_DEF_GNB_DU_IDE2_tags_1, - sizeof(asn_DEF_GNB_DU_IDE2_tags_1) - /sizeof(asn_DEF_GNB_DU_IDE2_tags_1[0]), /* 1 */ - asn_DEF_GNB_DU_IDE2_tags_1, /* Same as above */ - sizeof(asn_DEF_GNB_DU_IDE2_tags_1) - /sizeof(asn_DEF_GNB_DU_IDE2_tags_1[0]), /* 1 */ - { &asn_OER_type_GNB_DU_IDE2_constr_1, &asn_PER_type_GNB_DU_IDE2_constr_1, GNB_DU_IDE2_constraint }, + asn_DEF_NGENB_DU_ID_tags_1, + sizeof(asn_DEF_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */ + asn_DEF_NGENB_DU_ID_tags_1, /* Same as above */ + sizeof(asn_DEF_NGENB_DU_ID_tags_1) + /sizeof(asn_DEF_NGENB_DU_ID_tags_1[0]), /* 1 */ + { &asn_OER_type_NGENB_DU_ID_constr_1, &asn_PER_type_NGENB_DU_ID_constr_1, NGENB_DU_ID_constraint }, 0, 0, /* No members */ 0 /* No specifics */ }; diff --git a/src/codec_utils/E2AP/NGENB-DU-ID.h b/src/codec_utils/E2AP/NGENB-DU-ID.h new file mode 100644 index 000000000..c3f7f7688 --- /dev/null +++ b/src/codec_utils/E2AP/NGENB-DU-ID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _NGENB_DU_ID_H_ +#define _NGENB_DU_ID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* NGENB-DU-ID */ +typedef INTEGER_t NGENB_DU_ID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_NGENB_DU_ID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_NGENB_DU_ID; +asn_struct_free_f NGENB_DU_ID_free; +asn_struct_print_f NGENB_DU_ID_print; +asn_constr_check_f NGENB_DU_ID_constraint; +ber_type_decoder_f NGENB_DU_ID_decode_ber; +der_type_encoder_f NGENB_DU_ID_encode_der; +xer_type_decoder_f NGENB_DU_ID_decode_xer; +xer_type_encoder_f NGENB_DU_ID_encode_xer; +oer_type_decoder_f NGENB_DU_ID_decode_oer; +oer_type_encoder_f NGENB_DU_ID_encode_oer; +per_type_decoder_f NGENB_DU_ID_decode_uper; +per_type_encoder_f NGENB_DU_ID_encode_uper; +per_type_decoder_f NGENB_DU_ID_decode_aper; +per_type_encoder_f NGENB_DU_ID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _NGENB_DU_ID_H_ */ +#include diff --git a/src/codec_utils/E2AP/PLMN-IdentityE2.c b/src/codec_utils/E2AP/PLMN-Identity.c similarity index 51% rename from src/codec_utils/E2AP/PLMN-IdentityE2.c rename to src/codec_utils/E2AP/PLMN-Identity.c index 800a2163a..1d69212b3 100644 --- a/src/codec_utils/E2AP/PLMN-IdentityE2.c +++ b/src/codec_utils/E2AP/PLMN-Identity.c @@ -1,14 +1,14 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ -#include "PLMN-IdentityE2.h" +#include "PLMN-Identity.h" int -PLMN_IdentityE2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, +PLMN_Identity_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, asn_app_constraint_failed_f *ctfailcb, void *app_key) { const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr; size_t size; @@ -37,28 +37,28 @@ PLMN_IdentityE2_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, * This type is implemented using OCTET_STRING, * so here we adjust the DEF accordingly. */ -static asn_oer_constraints_t asn_OER_type_PLMN_IdentityE2_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_PLMN_Identity_constr_1 CC_NOTUSED = { { 0, 0 }, 3 /* (SIZE(3..3)) */}; -asn_per_constraints_t asn_PER_type_PLMN_IdentityE2_constr_1 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 0, 0, 3, 3 } /* (SIZE(3..3)) */, 0, 0 /* No PER value map */ }; -static const ber_tlv_tag_t asn_DEF_PLMN_IdentityE2_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_PLMN_Identity_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityE2 = { - "PLMN-IdentityE2", - "PLMN-IdentityE2", +asn_TYPE_descriptor_t asn_DEF_PLMN_Identity = { + "PLMN-Identity", + "PLMN-Identity", &asn_OP_OCTET_STRING, - asn_DEF_PLMN_IdentityE2_tags_1, - sizeof(asn_DEF_PLMN_IdentityE2_tags_1) - /sizeof(asn_DEF_PLMN_IdentityE2_tags_1[0]), /* 1 */ - asn_DEF_PLMN_IdentityE2_tags_1, /* Same as above */ - sizeof(asn_DEF_PLMN_IdentityE2_tags_1) - /sizeof(asn_DEF_PLMN_IdentityE2_tags_1[0]), /* 1 */ - { &asn_OER_type_PLMN_IdentityE2_constr_1, &asn_PER_type_PLMN_IdentityE2_constr_1, PLMN_IdentityE2_constraint }, + asn_DEF_PLMN_Identity_tags_1, + sizeof(asn_DEF_PLMN_Identity_tags_1) + /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ + asn_DEF_PLMN_Identity_tags_1, /* Same as above */ + sizeof(asn_DEF_PLMN_Identity_tags_1) + /sizeof(asn_DEF_PLMN_Identity_tags_1[0]), /* 1 */ + { &asn_OER_type_PLMN_Identity_constr_1, &asn_PER_type_PLMN_Identity_constr_1, PLMN_Identity_constraint }, 0, 0, /* No members */ &asn_SPC_OCTET_STRING_specs /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/PLMN-Identity.h b/src/codec_utils/E2AP/PLMN-Identity.h new file mode 100644 index 000000000..cce107bf5 --- /dev/null +++ b/src/codec_utils/E2AP/PLMN-Identity.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _PLMN_Identity_H_ +#define _PLMN_Identity_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* PLMN-Identity */ +typedef OCTET_STRING_t PLMN_Identity_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_PLMN_Identity_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_PLMN_Identity; +asn_struct_free_f PLMN_Identity_free; +asn_struct_print_f PLMN_Identity_print; +asn_constr_check_f PLMN_Identity_constraint; +ber_type_decoder_f PLMN_Identity_decode_ber; +der_type_encoder_f PLMN_Identity_encode_der; +xer_type_decoder_f PLMN_Identity_decode_xer; +xer_type_encoder_f PLMN_Identity_encode_xer; +oer_type_decoder_f PLMN_Identity_decode_oer; +oer_type_encoder_f PLMN_Identity_encode_oer; +per_type_decoder_f PLMN_Identity_decode_uper; +per_type_encoder_f PLMN_Identity_encode_uper; +per_type_decoder_f PLMN_Identity_decode_aper; +per_type_encoder_f PLMN_Identity_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _PLMN_Identity_H_ */ +#include diff --git a/src/codec_utils/E2AP/PLMN-IdentityE2.h b/src/codec_utils/E2AP/PLMN-IdentityE2.h deleted file mode 100644 index 44d0cd2c6..000000000 --- a/src/codec_utils/E2AP/PLMN-IdentityE2.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _PLMN_IdentityE2_H_ -#define _PLMN_IdentityE2_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* PLMN-IdentityE2 */ -typedef OCTET_STRING_t PLMN_IdentityE2_t; - -/* Implementation */ -extern asn_per_constraints_t asn_PER_type_PLMN_IdentityE2_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_PLMN_IdentityE2; -asn_struct_free_f PLMN_IdentityE2_free; -asn_struct_print_f PLMN_IdentityE2_print; -asn_constr_check_f PLMN_IdentityE2_constraint; -ber_type_decoder_f PLMN_IdentityE2_decode_ber; -der_type_encoder_f PLMN_IdentityE2_encode_der; -xer_type_decoder_f PLMN_IdentityE2_decode_xer; -xer_type_encoder_f PLMN_IdentityE2_encode_xer; -oer_type_decoder_f PLMN_IdentityE2_decode_oer; -oer_type_encoder_f PLMN_IdentityE2_encode_oer; -per_type_decoder_f PLMN_IdentityE2_decode_uper; -per_type_encoder_f PLMN_IdentityE2_encode_uper; -per_type_decoder_f PLMN_IdentityE2_decode_aper; -per_type_encoder_f PLMN_IdentityE2_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _PLMN_IdentityE2_H_ */ -#include diff --git a/src/codec_utils/E2AP/PresenceE2.c b/src/codec_utils/E2AP/PresenceE2.c index 9ce3b2b91..df65af5ad 100644 --- a/src/codec_utils/E2AP/PresenceE2.c +++ b/src/codec_utils/E2AP/PresenceE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "PresenceE2.h" diff --git a/src/codec_utils/E2AP/PresenceE2.h b/src/codec_utils/E2AP/PresenceE2.h index 8ab9ca2d6..d0b75db63 100644 --- a/src/codec_utils/E2AP/PresenceE2.h +++ b/src/codec_utils/E2AP/PresenceE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _PresenceE2_H_ diff --git a/src/codec_utils/E2AP/PrintableString.c b/src/codec_utils/E2AP/PrintableString.c new file mode 100644 index 000000000..8fc39399e --- /dev/null +++ b/src/codec_utils/E2AP/PrintableString.c @@ -0,0 +1,130 @@ +/*- + * Copyright (c) 2003, 2004, 2006 Lev Walkin . + * All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#include +#include + +/* + * ASN.1:1984 (X.409) + */ +static const int _PrintableString_alphabet[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int _PrintableString_code2value[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122}; + +/* + * PrintableString basic type description. + */ +static const ber_tlv_tag_t asn_DEF_PrintableString_tags[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)), /* [UNIVERSAL 19] IMPLICIT ...*/ + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)) /* ... OCTET STRING */ +}; +static int asn_DEF_PrintableString_v2c(unsigned int value) { + return _PrintableString_alphabet[value > 255 ? 0 : value] - 1; +} +static int asn_DEF_PrintableString_c2v(unsigned int code) { + if(code < 74) + return _PrintableString_code2value[code]; + return -1; +} +static asn_per_constraints_t asn_DEF_PrintableString_per_constraints = { + { APC_CONSTRAINED, 4, 4, 0x20, 0x39 }, /* Value */ + { APC_SEMI_CONSTRAINED, -1, -1, 0, 0 }, /* Size */ + asn_DEF_PrintableString_v2c, + asn_DEF_PrintableString_c2v +}; +asn_TYPE_operation_t asn_OP_PrintableString = { + OCTET_STRING_free, + OCTET_STRING_print_utf8, /* ASCII subset */ + OCTET_STRING_compare, + OCTET_STRING_decode_ber, /* Implemented in terms of OCTET STRING */ + OCTET_STRING_encode_der, + OCTET_STRING_decode_xer_utf8, + OCTET_STRING_encode_xer_utf8, +#ifdef ASN_DISABLE_OER_SUPPORT + 0, + 0, +#else + OCTET_STRING_decode_oer, + OCTET_STRING_encode_oer, +#endif /* ASN_DISABLE_OER_SUPPORT */ +#ifdef ASN_DISABLE_PER_SUPPORT + 0, + 0, + 0, + 0, +#else + OCTET_STRING_decode_uper, + OCTET_STRING_encode_uper, + OCTET_STRING_decode_aper, + OCTET_STRING_encode_aper, +#endif /* ASN_DISABLE_PER_SUPPORT */ + OCTET_STRING_random_fill, + 0 /* Use generic outmost tag fetcher */ +}; +asn_TYPE_descriptor_t asn_DEF_PrintableString = { + "PrintableString", + "PrintableString", + &asn_OP_PrintableString, + asn_DEF_PrintableString_tags, + sizeof(asn_DEF_PrintableString_tags) + / sizeof(asn_DEF_PrintableString_tags[0]) - 1, + asn_DEF_PrintableString_tags, + sizeof(asn_DEF_PrintableString_tags) + / sizeof(asn_DEF_PrintableString_tags[0]), + { 0, &asn_DEF_PrintableString_per_constraints, PrintableString_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + + +int +PrintableString_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, + void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + + if(st && st->buf) { + uint8_t *buf = st->buf; + uint8_t *end = buf + st->size; + + /* + * Check the alphabet of the PrintableString. + * ASN.1:1984 (X.409) + */ + for(; buf < end; buf++) { + if(!_PrintableString_alphabet[*buf]) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value byte %ld (%d) " + "not in PrintableString alphabet " + "(%s:%d)", + td->name, + (long)((buf - st->buf) + 1), + *buf, + __FILE__, __LINE__); + return -1; + } + } + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + return 0; +} diff --git a/src/codec_utils/E2AP/PrintableString.h b/src/codec_utils/E2AP/PrintableString.h new file mode 100644 index 000000000..8c2b61ab2 --- /dev/null +++ b/src/codec_utils/E2AP/PrintableString.h @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2003-2017 Lev Walkin . All rights reserved. + * Redistribution and modifications are permitted subject to BSD license. + */ +#ifndef _PrintableString_H_ +#define _PrintableString_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef OCTET_STRING_t PrintableString_t; /* Implemented via OCTET STRING */ + +extern asn_TYPE_descriptor_t asn_DEF_PrintableString; +extern asn_TYPE_operation_t asn_OP_PrintableString; + +asn_constr_check_f PrintableString_constraint; + +#define PrintableString_free OCTET_STRING_free +#define PrintableString_print OCTET_STRING_print_utf8 +#define PrintableString_compare OCTET_STRING_compare +#define PrintableString_decode_ber OCTET_STRING_decode_ber +#define PrintableString_encode_der OCTET_STRING_encode_der +#define PrintableString_decode_xer OCTET_STRING_decode_xer_utf8 +#define PrintableString_encode_xer OCTET_STRING_encode_xer_utf8 +#define PrintableString_decode_uper OCTET_STRING_decode_uper +#define PrintableString_encode_uper OCTET_STRING_encode_uper +#define PrintableString_decode_aper OCTET_STRING_decode_aper +#define PrintableString_encode_aper OCTET_STRING_encode_aper + +#ifdef __cplusplus +} +#endif + +#endif /* _PrintableString_H_ */ diff --git a/src/codec_utils/E2AP/ProcedureCodeE2.c b/src/codec_utils/E2AP/ProcedureCodeE2.c index a9335b871..d0f03a499 100644 --- a/src/codec_utils/E2AP/ProcedureCodeE2.c +++ b/src/codec_utils/E2AP/ProcedureCodeE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProcedureCodeE2.h" diff --git a/src/codec_utils/E2AP/ProcedureCodeE2.h b/src/codec_utils/E2AP/ProcedureCodeE2.h index bf85b9ba1..c0bac8a69 100644 --- a/src/codec_utils/E2AP/ProcedureCodeE2.h +++ b/src/codec_utils/E2AP/ProcedureCodeE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProcedureCodeE2_H_ @@ -46,6 +46,9 @@ per_type_encoder_f ProcedureCodeE2_encode_aper; #define ProcedureCodeE2_id_RICserviceUpdate ((ProcedureCodeE2_t)7) #define ProcedureCodeE2_id_RICsubscription ((ProcedureCodeE2_t)8) #define ProcedureCodeE2_id_RICsubscriptionDelete ((ProcedureCodeE2_t)9) +#define ProcedureCodeE2_id_E2nodeConfigurationUpdate ((ProcedureCodeE2_t)10) +#define ProcedureCodeE2_id_E2connectionUpdate ((ProcedureCodeE2_t)11) +#define ProcedureCodeE2_id_RICsubscriptionDeleteRequired ((ProcedureCodeE2_t)12) #ifdef __cplusplus } diff --git a/src/codec_utils/E2AP/ProtocolIE-ContainerE2.c b/src/codec_utils/E2AP/ProtocolIE-ContainerE2.c index 3c6446b8d..d14c9ec54 100644 --- a/src/codec_utils/E2AP/ProtocolIE-ContainerE2.c +++ b/src/codec_utils/E2AP/ProtocolIE-ContainerE2.c @@ -1,174 +1,230 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProtocolIE-ContainerE2.h" #include "ProtocolIE-FieldE2.h" -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P0_constr_1 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P0_constr_1 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P0_constr_1 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P0_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P1_constr_3 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P1_constr_3 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P1_constr_3 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P1_constr_3 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P2_constr_5 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P2_constr_5 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P2_constr_5 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P2_constr_5 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P3_constr_7 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P3_constr_7 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P3_constr_7 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P3_constr_7 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P4_constr_9 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P4_constr_9 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P4_constr_9 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P4_constr_9 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P5_constr_11 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P5_constr_11 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P5_constr_11 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P5_constr_11 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P6_constr_13 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P6_constr_13 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P6_constr_13 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P6_constr_13 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P7_constr_15 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P7_constr_15 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P7_constr_15 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P7_constr_15 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P8_constr_17 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P8_constr_17 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P8_constr_17 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P8_constr_17 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P9_constr_19 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P9_constr_19 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P9_constr_19 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P9_constr_19 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P10_constr_21 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P10_constr_21 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P10_constr_21 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P10_constr_21 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P11_constr_23 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P11_constr_23 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P11_constr_23 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P11_constr_23 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P12_constr_25 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P12_constr_25 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P12_constr_25 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P12_constr_25 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P13_constr_27 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P13_constr_27 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P13_constr_27 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P13_constr_27 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P14_constr_29 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P14_constr_29 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P14_constr_29 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P14_constr_29 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P15_constr_31 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P15_constr_31 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P15_constr_31 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P15_constr_31 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P16_constr_33 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P16_constr_33 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P16_constr_33 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P16_constr_33 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P17_constr_35 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P17_constr_35 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P17_constr_35 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P17_constr_35 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P18_constr_37 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P18_constr_37 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P18_constr_37 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P18_constr_37 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1407P19_constr_39 CC_NOTUSED = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P19_constr_39 CC_NOTUSED = { { 0, 0 }, -1 /* (SIZE(0..65535)) */}; -asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P19_constr_39 CC_NOTUSED = { +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P19_constr_39 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, 0, 0 /* No PER value map */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P0_1[] = { +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P20_constr_41 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P20_constr_41 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P21_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P21_constr_43 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P22_constr_45 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P22_constr_45 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P23_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P23_constr_47 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P24_constr_49 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P24_constr_49 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P25_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P25_constr_51 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_type_ProtocolIE_ContainerE2_1925P26_constr_53 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..65535)) */}; +asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P26_constr_53 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (SIZE(0..65535)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P0_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -179,31 +235,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P0_1[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P0_specs_1 = { - sizeof(struct ProtocolIE_ContainerE2_1407P0), - offsetof(struct ProtocolIE_ContainerE2_1407P0, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P0_specs_1 = { + sizeof(struct ProtocolIE_ContainerE2_1925P0), + offsetof(struct ProtocolIE_ContainerE2_1925P0, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P0 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P0 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P0_tags_1, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P0_tags_1[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P0_constr_1, &asn_PER_type_ProtocolIE_ContainerE2_1407P0_constr_1, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P0_1, + asn_DEF_ProtocolIE_ContainerE2_1925P0_tags_1, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P0_tags_1[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P0_constr_1, &asn_PER_type_ProtocolIE_ContainerE2_1925P0_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P0_1, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P0_specs_1 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P0_specs_1 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P1_3[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P1_3[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -214,31 +270,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P1_3[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P1_tags_3[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P1_tags_3[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P1_specs_3 = { - sizeof(struct ProtocolIE_ContainerE2_1407P1), - offsetof(struct ProtocolIE_ContainerE2_1407P1, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P1_specs_3 = { + sizeof(struct ProtocolIE_ContainerE2_1925P1), + offsetof(struct ProtocolIE_ContainerE2_1925P1, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P1 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P1 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P1_tags_3, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P1_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P1_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P1_tags_3) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P1_tags_3[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P1_constr_3, &asn_PER_type_ProtocolIE_ContainerE2_1407P1_constr_3, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P1_3, + asn_DEF_ProtocolIE_ContainerE2_1925P1_tags_3, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P1_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P1_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P1_tags_3) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P1_tags_3[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P1_constr_3, &asn_PER_type_ProtocolIE_ContainerE2_1925P1_constr_3, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P1_3, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P1_specs_3 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P1_specs_3 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P2_5[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P2_5[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -249,31 +305,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P2_5[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P2_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P2_tags_5[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P2_specs_5 = { - sizeof(struct ProtocolIE_ContainerE2_1407P2), - offsetof(struct ProtocolIE_ContainerE2_1407P2, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P2_specs_5 = { + sizeof(struct ProtocolIE_ContainerE2_1925P2), + offsetof(struct ProtocolIE_ContainerE2_1925P2, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P2 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P2 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P2_tags_5, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P2_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P2_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P2_tags_5) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P2_tags_5[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P2_constr_5, &asn_PER_type_ProtocolIE_ContainerE2_1407P2_constr_5, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P2_5, + asn_DEF_ProtocolIE_ContainerE2_1925P2_tags_5, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P2_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P2_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P2_tags_5) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P2_tags_5[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P2_constr_5, &asn_PER_type_ProtocolIE_ContainerE2_1925P2_constr_5, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P2_5, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P2_specs_5 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P2_specs_5 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P3_7[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P3_7[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -284,31 +340,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P3_7[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P3_tags_7[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P3_tags_7[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P3_specs_7 = { - sizeof(struct ProtocolIE_ContainerE2_1407P3), - offsetof(struct ProtocolIE_ContainerE2_1407P3, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P3_specs_7 = { + sizeof(struct ProtocolIE_ContainerE2_1925P3), + offsetof(struct ProtocolIE_ContainerE2_1925P3, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P3 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P3 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P3_tags_7, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P3_tags_7[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P3_tags_7, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P3_tags_7) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P3_tags_7[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P3_constr_7, &asn_PER_type_ProtocolIE_ContainerE2_1407P3_constr_7, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P3_7, + asn_DEF_ProtocolIE_ContainerE2_1925P3_tags_7, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P3_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P3_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P3_tags_7) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P3_tags_7[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P3_constr_7, &asn_PER_type_ProtocolIE_ContainerE2_1925P3_constr_7, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P3_7, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P3_specs_7 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P3_specs_7 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P4_9[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P4_9[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -319,31 +375,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P4_9[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P4_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P4_tags_9[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P4_specs_9 = { - sizeof(struct ProtocolIE_ContainerE2_1407P4), - offsetof(struct ProtocolIE_ContainerE2_1407P4, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P4_specs_9 = { + sizeof(struct ProtocolIE_ContainerE2_1925P4), + offsetof(struct ProtocolIE_ContainerE2_1925P4, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P4 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P4 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P4_tags_9, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P4_tags_9[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P4_tags_9, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P4_tags_9) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P4_tags_9[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P4_constr_9, &asn_PER_type_ProtocolIE_ContainerE2_1407P4_constr_9, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P4_9, + asn_DEF_ProtocolIE_ContainerE2_1925P4_tags_9, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P4_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P4_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P4_tags_9) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P4_tags_9[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P4_constr_9, &asn_PER_type_ProtocolIE_ContainerE2_1925P4_constr_9, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P4_9, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P4_specs_9 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P4_specs_9 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P5_11[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P5_11[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -354,31 +410,66 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P5_11[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P5_tags_11[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P5_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P5_specs_11 = { + sizeof(struct ProtocolIE_ContainerE2_1925P5), + offsetof(struct ProtocolIE_ContainerE2_1925P5, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P5 = { + "ProtocolIE-ContainerE2", + "ProtocolIE-ContainerE2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_ContainerE2_1925P5_tags_11, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P5_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P5_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P5_tags_11) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P5_tags_11[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P5_constr_11, &asn_PER_type_ProtocolIE_ContainerE2_1925P5_constr_11, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P5_11, + 1, /* Single element */ + &asn_SPC_ProtocolIE_ContainerE2_1925P5_specs_11 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P6_13[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDeleteRequired_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P6_tags_13[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P5_specs_11 = { - sizeof(struct ProtocolIE_ContainerE2_1407P5), - offsetof(struct ProtocolIE_ContainerE2_1407P5, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P6_specs_13 = { + sizeof(struct ProtocolIE_ContainerE2_1925P6), + offsetof(struct ProtocolIE_ContainerE2_1925P6, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P5 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P6 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P5_tags_11, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P5_tags_11[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P5_tags_11, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P5_tags_11) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P5_tags_11[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P5_constr_11, &asn_PER_type_ProtocolIE_ContainerE2_1407P5_constr_11, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P5_11, + asn_DEF_ProtocolIE_ContainerE2_1925P6_tags_13, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P6_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P6_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P6_tags_13) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P6_tags_13[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P6_constr_13, &asn_PER_type_ProtocolIE_ContainerE2_1925P6_constr_13, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P6_13, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P5_specs_11 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P6_specs_13 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P6_13[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P7_15[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -389,31 +480,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P6_13[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P6_tags_13[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P7_tags_15[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P6_specs_13 = { - sizeof(struct ProtocolIE_ContainerE2_1407P6), - offsetof(struct ProtocolIE_ContainerE2_1407P6, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P7_specs_15 = { + sizeof(struct ProtocolIE_ContainerE2_1925P7), + offsetof(struct ProtocolIE_ContainerE2_1925P7, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P6 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P7 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P6_tags_13, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P6_tags_13[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P6_tags_13, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P6_tags_13) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P6_tags_13[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P6_constr_13, &asn_PER_type_ProtocolIE_ContainerE2_1407P6_constr_13, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P6_13, + asn_DEF_ProtocolIE_ContainerE2_1925P7_tags_15, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P7_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P7_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P7_tags_15) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P7_tags_15[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P7_constr_15, &asn_PER_type_ProtocolIE_ContainerE2_1925P7_constr_15, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P7_15, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P6_specs_13 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P7_specs_15 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P7_15[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P8_17[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -424,31 +515,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P7_15[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P7_tags_15[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P8_tags_17[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P7_specs_15 = { - sizeof(struct ProtocolIE_ContainerE2_1407P7), - offsetof(struct ProtocolIE_ContainerE2_1407P7, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P8_specs_17 = { + sizeof(struct ProtocolIE_ContainerE2_1925P8), + offsetof(struct ProtocolIE_ContainerE2_1925P8, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P7 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P8 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P7_tags_15, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P7_tags_15[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P7_tags_15, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P7_tags_15) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P7_tags_15[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P7_constr_15, &asn_PER_type_ProtocolIE_ContainerE2_1407P7_constr_15, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P7_15, + asn_DEF_ProtocolIE_ContainerE2_1925P8_tags_17, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P8_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P8_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P8_tags_17) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P8_tags_17[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P8_constr_17, &asn_PER_type_ProtocolIE_ContainerE2_1925P8_constr_17, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P8_17, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P7_specs_15 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P8_specs_17 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P8_17[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P9_19[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -459,31 +550,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P8_17[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P8_tags_17[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P9_tags_19[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P8_specs_17 = { - sizeof(struct ProtocolIE_ContainerE2_1407P8), - offsetof(struct ProtocolIE_ContainerE2_1407P8, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P9_specs_19 = { + sizeof(struct ProtocolIE_ContainerE2_1925P9), + offsetof(struct ProtocolIE_ContainerE2_1925P9, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P8 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P9 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P8_tags_17, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P8_tags_17[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P8_tags_17, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P8_tags_17) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P8_tags_17[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P8_constr_17, &asn_PER_type_ProtocolIE_ContainerE2_1407P8_constr_17, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P8_17, + asn_DEF_ProtocolIE_ContainerE2_1925P9_tags_19, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P9_tags_19[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P9_tags_19, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P9_tags_19) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P9_tags_19[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P9_constr_19, &asn_PER_type_ProtocolIE_ContainerE2_1925P9_constr_19, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P9_19, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P8_specs_17 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P9_specs_19 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P9_19[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P10_21[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -494,31 +585,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P9_19[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P9_tags_19[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P10_tags_21[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P9_specs_19 = { - sizeof(struct ProtocolIE_ContainerE2_1407P9), - offsetof(struct ProtocolIE_ContainerE2_1407P9, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P10_specs_21 = { + sizeof(struct ProtocolIE_ContainerE2_1925P10), + offsetof(struct ProtocolIE_ContainerE2_1925P10, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P9 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P10 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P9_tags_19, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P9_tags_19[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P9_tags_19, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P9_tags_19) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P9_tags_19[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P9_constr_19, &asn_PER_type_ProtocolIE_ContainerE2_1407P9_constr_19, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P9_19, + asn_DEF_ProtocolIE_ContainerE2_1925P10_tags_21, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P10_tags_21[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P10_tags_21, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P10_tags_21) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P10_tags_21[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P10_constr_21, &asn_PER_type_ProtocolIE_ContainerE2_1925P10_constr_21, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P10_21, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P9_specs_19 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P10_specs_21 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P10_21[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P11_23[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -529,31 +620,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P10_21[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P10_tags_21[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P11_tags_23[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P10_specs_21 = { - sizeof(struct ProtocolIE_ContainerE2_1407P10), - offsetof(struct ProtocolIE_ContainerE2_1407P10, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P11_specs_23 = { + sizeof(struct ProtocolIE_ContainerE2_1925P11), + offsetof(struct ProtocolIE_ContainerE2_1925P11, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P10 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P11 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P10_tags_21, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P10_tags_21[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P10_tags_21, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P10_tags_21) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P10_tags_21[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P10_constr_21, &asn_PER_type_ProtocolIE_ContainerE2_1407P10_constr_21, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P10_21, + asn_DEF_ProtocolIE_ContainerE2_1925P11_tags_23, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P11_tags_23[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P11_tags_23, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P11_tags_23) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P11_tags_23[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P11_constr_23, &asn_PER_type_ProtocolIE_ContainerE2_1925P11_constr_23, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P11_23, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P10_specs_21 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P11_specs_23 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P11_23[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P12_25[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -564,31 +655,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P11_23[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P11_tags_23[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P12_tags_25[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P11_specs_23 = { - sizeof(struct ProtocolIE_ContainerE2_1407P11), - offsetof(struct ProtocolIE_ContainerE2_1407P11, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P12_specs_25 = { + sizeof(struct ProtocolIE_ContainerE2_1925P12), + offsetof(struct ProtocolIE_ContainerE2_1925P12, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P11 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P12 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P11_tags_23, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P11_tags_23[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P11_tags_23, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P11_tags_23) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P11_tags_23[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P11_constr_23, &asn_PER_type_ProtocolIE_ContainerE2_1407P11_constr_23, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P11_23, + asn_DEF_ProtocolIE_ContainerE2_1925P12_tags_25, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P12_tags_25[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P12_tags_25, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P12_tags_25) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P12_tags_25[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P12_constr_25, &asn_PER_type_ProtocolIE_ContainerE2_1925P12_constr_25, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P12_25, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P11_specs_23 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P12_specs_25 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P12_25[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P13_27[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -599,31 +690,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P12_25[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P12_tags_25[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P13_tags_27[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P12_specs_25 = { - sizeof(struct ProtocolIE_ContainerE2_1407P12), - offsetof(struct ProtocolIE_ContainerE2_1407P12, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P13_specs_27 = { + sizeof(struct ProtocolIE_ContainerE2_1925P13), + offsetof(struct ProtocolIE_ContainerE2_1925P13, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P12 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P13 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P12_tags_25, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P12_tags_25[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P12_tags_25, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P12_tags_25) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P12_tags_25[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P12_constr_25, &asn_PER_type_ProtocolIE_ContainerE2_1407P12_constr_25, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P12_25, + asn_DEF_ProtocolIE_ContainerE2_1925P13_tags_27, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P13_tags_27[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P13_tags_27, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P13_tags_27) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P13_tags_27[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P13_constr_27, &asn_PER_type_ProtocolIE_ContainerE2_1925P13_constr_27, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P13_27, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P12_specs_25 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P13_specs_27 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P13_27[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P14_29[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -634,31 +725,241 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P13_27[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P13_tags_27[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P14_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P14_specs_29 = { + sizeof(struct ProtocolIE_ContainerE2_1925P14), + offsetof(struct ProtocolIE_ContainerE2_1925P14, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P14 = { + "ProtocolIE-ContainerE2", + "ProtocolIE-ContainerE2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_ContainerE2_1925P14_tags_29, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P14_tags_29[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P14_tags_29, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P14_tags_29) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P14_tags_29[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P14_constr_29, &asn_PER_type_ProtocolIE_ContainerE2_1925P14_constr_29, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P14_29, + 1, /* Single element */ + &asn_SPC_ProtocolIE_ContainerE2_1925P14_specs_29 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P15_31[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P15_tags_31[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P15_specs_31 = { + sizeof(struct ProtocolIE_ContainerE2_1925P15), + offsetof(struct ProtocolIE_ContainerE2_1925P15, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P15 = { + "ProtocolIE-ContainerE2", + "ProtocolIE-ContainerE2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_ContainerE2_1925P15_tags_31, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P15_tags_31[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P15_tags_31, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P15_tags_31) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P15_tags_31[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P15_constr_31, &asn_PER_type_ProtocolIE_ContainerE2_1925P15_constr_31, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P15_31, + 1, /* Single element */ + &asn_SPC_ProtocolIE_ContainerE2_1925P15_specs_31 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P16_33[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateAck_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P16_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P16_specs_33 = { + sizeof(struct ProtocolIE_ContainerE2_1925P16), + offsetof(struct ProtocolIE_ContainerE2_1925P16, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P16 = { + "ProtocolIE-ContainerE2", + "ProtocolIE-ContainerE2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_ContainerE2_1925P16_tags_33, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P16_tags_33[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P16_tags_33, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P16_tags_33) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P16_tags_33[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P16_constr_33, &asn_PER_type_ProtocolIE_ContainerE2_1925P16_constr_33, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P16_33, + 1, /* Single element */ + &asn_SPC_ProtocolIE_ContainerE2_1925P16_specs_33 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P17_35[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateFailure_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P17_tags_35[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P17_specs_35 = { + sizeof(struct ProtocolIE_ContainerE2_1925P17), + offsetof(struct ProtocolIE_ContainerE2_1925P17, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P17 = { + "ProtocolIE-ContainerE2", + "ProtocolIE-ContainerE2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_ContainerE2_1925P17_tags_35, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P17_tags_35[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P17_tags_35, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P17_tags_35) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P17_tags_35[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P17_constr_35, &asn_PER_type_ProtocolIE_ContainerE2_1925P17_constr_35, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P17_35, + 1, /* Single element */ + &asn_SPC_ProtocolIE_ContainerE2_1925P17_specs_35 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P18_37[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdate_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P18_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P18_specs_37 = { + sizeof(struct ProtocolIE_ContainerE2_1925P18), + offsetof(struct ProtocolIE_ContainerE2_1925P18, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P18 = { + "ProtocolIE-ContainerE2", + "ProtocolIE-ContainerE2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_ContainerE2_1925P18_tags_37, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P18_tags_37[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P18_tags_37, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P18_tags_37) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P18_tags_37[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P18_constr_37, &asn_PER_type_ProtocolIE_ContainerE2_1925P18_constr_37, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P18_37, + 1, /* Single element */ + &asn_SPC_ProtocolIE_ContainerE2_1925P18_specs_37 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P19_39[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P19_tags_39[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P19_specs_39 = { + sizeof(struct ProtocolIE_ContainerE2_1925P19), + offsetof(struct ProtocolIE_ContainerE2_1925P19, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P19 = { + "ProtocolIE-ContainerE2", + "ProtocolIE-ContainerE2", + &asn_OP_SEQUENCE_OF, + asn_DEF_ProtocolIE_ContainerE2_1925P19_tags_39, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P19_tags_39[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P19_tags_39, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P19_tags_39) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P19_tags_39[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P19_constr_39, &asn_PER_type_ProtocolIE_ContainerE2_1925P19_constr_39, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P19_39, + 1, /* Single element */ + &asn_SPC_ProtocolIE_ContainerE2_1925P19_specs_39 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P20_41[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdateFailure_IEs, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P20_tags_41[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P13_specs_27 = { - sizeof(struct ProtocolIE_ContainerE2_1407P13), - offsetof(struct ProtocolIE_ContainerE2_1407P13, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P20_specs_41 = { + sizeof(struct ProtocolIE_ContainerE2_1925P20), + offsetof(struct ProtocolIE_ContainerE2_1925P20, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P13 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P20 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P13_tags_27, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P13_tags_27[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P13_tags_27, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P13_tags_27) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P13_tags_27[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P13_constr_27, &asn_PER_type_ProtocolIE_ContainerE2_1407P13_constr_27, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P13_27, + asn_DEF_ProtocolIE_ContainerE2_1925P20_tags_41, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P20_tags_41[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P20_tags_41, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P20_tags_41) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P20_tags_41[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P20_constr_41, &asn_PER_type_ProtocolIE_ContainerE2_1925P20_constr_41, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P20_41, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P13_specs_27 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P20_specs_41 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P14_29[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P21_43[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -669,31 +970,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P14_29[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P14_tags_29[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P21_tags_43[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P14_specs_29 = { - sizeof(struct ProtocolIE_ContainerE2_1407P14), - offsetof(struct ProtocolIE_ContainerE2_1407P14, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P21_specs_43 = { + sizeof(struct ProtocolIE_ContainerE2_1925P21), + offsetof(struct ProtocolIE_ContainerE2_1925P21, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P14 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P21 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P14_tags_29, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P14_tags_29[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P14_tags_29, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P14_tags_29) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P14_tags_29[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P14_constr_29, &asn_PER_type_ProtocolIE_ContainerE2_1407P14_constr_29, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P14_29, + asn_DEF_ProtocolIE_ContainerE2_1925P21_tags_43, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P21_tags_43[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P21_tags_43, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P21_tags_43) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P21_tags_43[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P21_constr_43, &asn_PER_type_ProtocolIE_ContainerE2_1925P21_constr_43, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P21_43, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P14_specs_29 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P21_specs_43 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P15_31[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P22_45[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -704,31 +1005,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P15_31[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P15_tags_31[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P22_tags_45[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P15_specs_31 = { - sizeof(struct ProtocolIE_ContainerE2_1407P15), - offsetof(struct ProtocolIE_ContainerE2_1407P15, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P22_specs_45 = { + sizeof(struct ProtocolIE_ContainerE2_1925P22), + offsetof(struct ProtocolIE_ContainerE2_1925P22, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P15 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P22 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P15_tags_31, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P15_tags_31[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P15_tags_31, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P15_tags_31) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P15_tags_31[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P15_constr_31, &asn_PER_type_ProtocolIE_ContainerE2_1407P15_constr_31, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P15_31, + asn_DEF_ProtocolIE_ContainerE2_1925P22_tags_45, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P22_tags_45[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P22_tags_45, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P22_tags_45) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P22_tags_45[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P22_constr_45, &asn_PER_type_ProtocolIE_ContainerE2_1925P22_constr_45, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P22_45, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P15_specs_31 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P22_specs_45 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P16_33[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P23_47[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -739,31 +1040,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P16_33[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P16_tags_33[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P23_tags_47[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P16_specs_33 = { - sizeof(struct ProtocolIE_ContainerE2_1407P16), - offsetof(struct ProtocolIE_ContainerE2_1407P16, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P23_specs_47 = { + sizeof(struct ProtocolIE_ContainerE2_1925P23), + offsetof(struct ProtocolIE_ContainerE2_1925P23, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P16 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P23 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P16_tags_33, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P16_tags_33[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P16_tags_33, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P16_tags_33) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P16_tags_33[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P16_constr_33, &asn_PER_type_ProtocolIE_ContainerE2_1407P16_constr_33, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P16_33, + asn_DEF_ProtocolIE_ContainerE2_1925P23_tags_47, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P23_tags_47[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P23_tags_47, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P23_tags_47) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P23_tags_47[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P23_constr_47, &asn_PER_type_ProtocolIE_ContainerE2_1925P23_constr_47, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P23_47, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P16_specs_33 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P23_specs_47 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P17_35[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P24_49[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -774,31 +1075,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P17_35[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P17_tags_35[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P24_tags_49[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P17_specs_35 = { - sizeof(struct ProtocolIE_ContainerE2_1407P17), - offsetof(struct ProtocolIE_ContainerE2_1407P17, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P24_specs_49 = { + sizeof(struct ProtocolIE_ContainerE2_1925P24), + offsetof(struct ProtocolIE_ContainerE2_1925P24, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P17 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P24 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P17_tags_35, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P17_tags_35[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P17_tags_35, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P17_tags_35) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P17_tags_35[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P17_constr_35, &asn_PER_type_ProtocolIE_ContainerE2_1407P17_constr_35, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P17_35, + asn_DEF_ProtocolIE_ContainerE2_1925P24_tags_49, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P24_tags_49[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P24_tags_49, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P24_tags_49) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P24_tags_49[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P24_constr_49, &asn_PER_type_ProtocolIE_ContainerE2_1925P24_constr_49, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P24_49, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P17_specs_35 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P24_specs_49 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P18_37[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P25_51[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -809,31 +1110,31 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P18_37[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P18_tags_37[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P25_tags_51[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P18_specs_37 = { - sizeof(struct ProtocolIE_ContainerE2_1407P18), - offsetof(struct ProtocolIE_ContainerE2_1407P18, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P25_specs_51 = { + sizeof(struct ProtocolIE_ContainerE2_1925P25), + offsetof(struct ProtocolIE_ContainerE2_1925P25, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P18 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P25 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P18_tags_37, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P18_tags_37[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P18_tags_37, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P18_tags_37) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P18_tags_37[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P18_constr_37, &asn_PER_type_ProtocolIE_ContainerE2_1407P18_constr_37, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P18_37, + asn_DEF_ProtocolIE_ContainerE2_1925P25_tags_51, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P25_tags_51[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P25_tags_51, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P25_tags_51) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P25_tags_51[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P25_constr_51, &asn_PER_type_ProtocolIE_ContainerE2_1925P25_constr_51, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P25_51, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P18_specs_37 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P25_specs_51 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P19_39[] = { +asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P26_53[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -844,27 +1145,27 @@ asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P19_39[] = { "" }, }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1407P19_tags_39[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_ContainerE2_1925P26_tags_53[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P19_specs_39 = { - sizeof(struct ProtocolIE_ContainerE2_1407P19), - offsetof(struct ProtocolIE_ContainerE2_1407P19, _asn_ctx), +asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P26_specs_53 = { + sizeof(struct ProtocolIE_ContainerE2_1925P26), + offsetof(struct ProtocolIE_ContainerE2_1925P26, _asn_ctx), 0, /* XER encoding is XMLDelimitedItemList */ }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P19 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P26 = { "ProtocolIE-ContainerE2", "ProtocolIE-ContainerE2", &asn_OP_SEQUENCE_OF, - asn_DEF_ProtocolIE_ContainerE2_1407P19_tags_39, - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P19_tags_39[0]), /* 1 */ - asn_DEF_ProtocolIE_ContainerE2_1407P19_tags_39, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P19_tags_39) - /sizeof(asn_DEF_ProtocolIE_ContainerE2_1407P19_tags_39[0]), /* 1 */ - { &asn_OER_type_ProtocolIE_ContainerE2_1407P19_constr_39, &asn_PER_type_ProtocolIE_ContainerE2_1407P19_constr_39, SEQUENCE_OF_constraint }, - asn_MBR_ProtocolIE_ContainerE2_1407P19_39, + asn_DEF_ProtocolIE_ContainerE2_1925P26_tags_53, + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P26_tags_53[0]), /* 1 */ + asn_DEF_ProtocolIE_ContainerE2_1925P26_tags_53, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P26_tags_53) + /sizeof(asn_DEF_ProtocolIE_ContainerE2_1925P26_tags_53[0]), /* 1 */ + { &asn_OER_type_ProtocolIE_ContainerE2_1925P26_constr_53, &asn_PER_type_ProtocolIE_ContainerE2_1925P26_constr_53, SEQUENCE_OF_constraint }, + asn_MBR_ProtocolIE_ContainerE2_1925P26_53, 1, /* Single element */ - &asn_SPC_ProtocolIE_ContainerE2_1407P19_specs_39 /* Additional specs */ + &asn_SPC_ProtocolIE_ContainerE2_1925P26_specs_53 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/ProtocolIE-ContainerE2.h b/src/codec_utils/E2AP/ProtocolIE-ContainerE2.h index 7da7246c9..3a1c87f90 100644 --- a/src/codec_utils/E2AP/ProtocolIE-ContainerE2.h +++ b/src/codec_utils/E2AP/ProtocolIE-ContainerE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_ContainerE2_H_ @@ -26,6 +26,7 @@ struct RICsubscriptionFailure_IEs; struct RICsubscriptionDeleteRequest_IEs; struct RICsubscriptionDeleteResponse_IEs; struct RICsubscriptionDeleteFailure_IEs; +struct RICsubscriptionDeleteRequired_IEs; struct RICindication_IEs; struct RICcontrolRequest_IEs; struct RICcontrolAcknowledge_IEs; @@ -34,6 +35,12 @@ struct ErrorIndicationE2_IEs; struct E2setupRequestIEs; struct E2setupResponseIEs; struct E2setupFailureIEs; +struct E2connectionUpdate_IEs; +struct E2connectionUpdateAck_IEs; +struct E2connectionUpdateFailure_IEs; +struct E2nodeConfigurationUpdate_IEs; +struct E2nodeConfigurationUpdateAcknowledge_IEs; +struct E2nodeConfigurationUpdateFailure_IEs; struct ResetRequestIEs; struct ResetResponseIEs; struct RICserviceUpdate_IEs; @@ -42,208 +49,278 @@ struct RICserviceUpdateFailure_IEs; struct RICserviceQuery_IEs; /* ProtocolIE-ContainerE2 */ -typedef struct ProtocolIE_ContainerE2_1407P0 { +typedef struct ProtocolIE_ContainerE2_1925P0 { A_SEQUENCE_OF(struct RICsubscriptionRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P0_t; -typedef struct ProtocolIE_ContainerE2_1407P1 { +} ProtocolIE_ContainerE2_1925P0_t; +typedef struct ProtocolIE_ContainerE2_1925P1 { A_SEQUENCE_OF(struct RICsubscriptionResponse_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P1_t; -typedef struct ProtocolIE_ContainerE2_1407P2 { +} ProtocolIE_ContainerE2_1925P1_t; +typedef struct ProtocolIE_ContainerE2_1925P2 { A_SEQUENCE_OF(struct RICsubscriptionFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P2_t; -typedef struct ProtocolIE_ContainerE2_1407P3 { +} ProtocolIE_ContainerE2_1925P2_t; +typedef struct ProtocolIE_ContainerE2_1925P3 { A_SEQUENCE_OF(struct RICsubscriptionDeleteRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P3_t; -typedef struct ProtocolIE_ContainerE2_1407P4 { +} ProtocolIE_ContainerE2_1925P3_t; +typedef struct ProtocolIE_ContainerE2_1925P4 { A_SEQUENCE_OF(struct RICsubscriptionDeleteResponse_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P4_t; -typedef struct ProtocolIE_ContainerE2_1407P5 { +} ProtocolIE_ContainerE2_1925P4_t; +typedef struct ProtocolIE_ContainerE2_1925P5 { A_SEQUENCE_OF(struct RICsubscriptionDeleteFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P5_t; -typedef struct ProtocolIE_ContainerE2_1407P6 { +} ProtocolIE_ContainerE2_1925P5_t; +typedef struct ProtocolIE_ContainerE2_1925P6 { + A_SEQUENCE_OF(struct RICsubscriptionDeleteRequired_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_ContainerE2_1925P6_t; +typedef struct ProtocolIE_ContainerE2_1925P7 { A_SEQUENCE_OF(struct RICindication_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P6_t; -typedef struct ProtocolIE_ContainerE2_1407P7 { +} ProtocolIE_ContainerE2_1925P7_t; +typedef struct ProtocolIE_ContainerE2_1925P8 { A_SEQUENCE_OF(struct RICcontrolRequest_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P7_t; -typedef struct ProtocolIE_ContainerE2_1407P8 { +} ProtocolIE_ContainerE2_1925P8_t; +typedef struct ProtocolIE_ContainerE2_1925P9 { A_SEQUENCE_OF(struct RICcontrolAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P8_t; -typedef struct ProtocolIE_ContainerE2_1407P9 { +} ProtocolIE_ContainerE2_1925P9_t; +typedef struct ProtocolIE_ContainerE2_1925P10 { A_SEQUENCE_OF(struct RICcontrolFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P9_t; -typedef struct ProtocolIE_ContainerE2_1407P10 { +} ProtocolIE_ContainerE2_1925P10_t; +typedef struct ProtocolIE_ContainerE2_1925P11 { A_SEQUENCE_OF(struct ErrorIndicationE2_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P10_t; -typedef struct ProtocolIE_ContainerE2_1407P11 { +} ProtocolIE_ContainerE2_1925P11_t; +typedef struct ProtocolIE_ContainerE2_1925P12 { A_SEQUENCE_OF(struct E2setupRequestIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P11_t; -typedef struct ProtocolIE_ContainerE2_1407P12 { +} ProtocolIE_ContainerE2_1925P12_t; +typedef struct ProtocolIE_ContainerE2_1925P13 { A_SEQUENCE_OF(struct E2setupResponseIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P12_t; -typedef struct ProtocolIE_ContainerE2_1407P13 { +} ProtocolIE_ContainerE2_1925P13_t; +typedef struct ProtocolIE_ContainerE2_1925P14 { A_SEQUENCE_OF(struct E2setupFailureIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P13_t; -typedef struct ProtocolIE_ContainerE2_1407P14 { +} ProtocolIE_ContainerE2_1925P14_t; +typedef struct ProtocolIE_ContainerE2_1925P15 { + A_SEQUENCE_OF(struct E2connectionUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_ContainerE2_1925P15_t; +typedef struct ProtocolIE_ContainerE2_1925P16 { + A_SEQUENCE_OF(struct E2connectionUpdateAck_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_ContainerE2_1925P16_t; +typedef struct ProtocolIE_ContainerE2_1925P17 { + A_SEQUENCE_OF(struct E2connectionUpdateFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_ContainerE2_1925P17_t; +typedef struct ProtocolIE_ContainerE2_1925P18 { + A_SEQUENCE_OF(struct E2nodeConfigurationUpdate_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_ContainerE2_1925P18_t; +typedef struct ProtocolIE_ContainerE2_1925P19 { + A_SEQUENCE_OF(struct E2nodeConfigurationUpdateAcknowledge_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_ContainerE2_1925P19_t; +typedef struct ProtocolIE_ContainerE2_1925P20 { + A_SEQUENCE_OF(struct E2nodeConfigurationUpdateFailure_IEs) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} ProtocolIE_ContainerE2_1925P20_t; +typedef struct ProtocolIE_ContainerE2_1925P21 { A_SEQUENCE_OF(struct ResetRequestIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P14_t; -typedef struct ProtocolIE_ContainerE2_1407P15 { +} ProtocolIE_ContainerE2_1925P21_t; +typedef struct ProtocolIE_ContainerE2_1925P22 { A_SEQUENCE_OF(struct ResetResponseIEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P15_t; -typedef struct ProtocolIE_ContainerE2_1407P16 { +} ProtocolIE_ContainerE2_1925P22_t; +typedef struct ProtocolIE_ContainerE2_1925P23 { A_SEQUENCE_OF(struct RICserviceUpdate_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P16_t; -typedef struct ProtocolIE_ContainerE2_1407P17 { +} ProtocolIE_ContainerE2_1925P23_t; +typedef struct ProtocolIE_ContainerE2_1925P24 { A_SEQUENCE_OF(struct RICserviceUpdateAcknowledge_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P17_t; -typedef struct ProtocolIE_ContainerE2_1407P18 { +} ProtocolIE_ContainerE2_1925P24_t; +typedef struct ProtocolIE_ContainerE2_1925P25 { A_SEQUENCE_OF(struct RICserviceUpdateFailure_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P18_t; -typedef struct ProtocolIE_ContainerE2_1407P19 { +} ProtocolIE_ContainerE2_1925P25_t; +typedef struct ProtocolIE_ContainerE2_1925P26 { A_SEQUENCE_OF(struct RICserviceQuery_IEs) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; -} ProtocolIE_ContainerE2_1407P19_t; +} ProtocolIE_ContainerE2_1925P26_t; /* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P0; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P0_specs_1; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P0_1[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P0_constr_1; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P1; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P1_specs_3; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P1_3[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P1_constr_3; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P2; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P2_specs_5; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P2_5[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P2_constr_5; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P3; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P3_specs_7; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P3_7[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P3_constr_7; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P4; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P4_specs_9; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P4_9[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P4_constr_9; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P5; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P5_specs_11; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P5_11[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P5_constr_11; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P6; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P6_specs_13; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P6_13[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P6_constr_13; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P7; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P7_specs_15; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P7_15[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P7_constr_15; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P8; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P8_specs_17; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P8_17[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P8_constr_17; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P9; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P9_specs_19; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P9_19[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P9_constr_19; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P10; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P10_specs_21; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P10_21[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P10_constr_21; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P11; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P11_specs_23; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P11_23[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P11_constr_23; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P12; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P12_specs_25; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P12_25[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P12_constr_25; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P13; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P13_specs_27; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P13_27[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P13_constr_27; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P14; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P14_specs_29; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P14_29[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P14_constr_29; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P15; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P15_specs_31; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P15_31[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P15_constr_31; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P16; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P16_specs_33; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P16_33[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P16_constr_33; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P17; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P17_specs_35; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P17_35[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P17_constr_35; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P18; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P18_specs_37; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P18_37[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P18_constr_37; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1407P19; -extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1407P19_specs_39; -extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1407P19_39[1]; -extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1407P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P0; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P0_specs_1; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P0_1[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P0_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P1; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P1_specs_3; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P1_3[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P1_constr_3; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P2; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P2_specs_5; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P2_5[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P2_constr_5; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P3; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P3_specs_7; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P3_7[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P3_constr_7; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P4; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P4_specs_9; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P4_9[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P4_constr_9; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P5; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P5_specs_11; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P5_11[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P5_constr_11; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P6; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P6_specs_13; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P6_13[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P6_constr_13; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P7; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P7_specs_15; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P7_15[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P7_constr_15; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P8; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P8_specs_17; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P8_17[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P8_constr_17; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P9; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P9_specs_19; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P9_19[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P9_constr_19; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P10; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P10_specs_21; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P10_21[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P10_constr_21; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P11; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P11_specs_23; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P11_23[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P11_constr_23; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P12; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P12_specs_25; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P12_25[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P12_constr_25; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P13; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P13_specs_27; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P13_27[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P13_constr_27; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P14; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P14_specs_29; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P14_29[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P14_constr_29; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P15; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P15_specs_31; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P15_31[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P15_constr_31; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P16; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P16_specs_33; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P16_33[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P16_constr_33; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P17; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P17_specs_35; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P17_35[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P17_constr_35; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P18; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P18_specs_37; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P18_37[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P18_constr_37; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P19; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P19_specs_39; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P19_39[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P19_constr_39; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P20; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P20_specs_41; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P20_41[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P20_constr_41; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P21; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P21_specs_43; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P21_43[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P21_constr_43; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P22; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P22_specs_45; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P22_45[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P22_constr_45; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P23; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P23_specs_47; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P23_47[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P23_constr_47; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P24; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P24_specs_49; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P24_49[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P24_constr_49; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P25; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P25_specs_51; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P25_51[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P25_constr_51; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_ContainerE2_1925P26; +extern asn_SET_OF_specifics_t asn_SPC_ProtocolIE_ContainerE2_1925P26_specs_53; +extern asn_TYPE_member_t asn_MBR_ProtocolIE_ContainerE2_1925P26_53[1]; +extern asn_per_constraints_t asn_PER_type_ProtocolIE_ContainerE2_1925P26_constr_53; #ifdef __cplusplus } diff --git a/src/codec_utils/E2AP/ProtocolIE-ContainerList.c b/src/codec_utils/E2AP/ProtocolIE-ContainerList.c index 3b9b894d0..2f3ce855f 100644 --- a/src/codec_utils/E2AP/ProtocolIE-ContainerList.c +++ b/src/codec_utils/E2AP/ProtocolIE-ContainerList.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProtocolIE-ContainerList.h" diff --git a/src/codec_utils/E2AP/ProtocolIE-ContainerList.h b/src/codec_utils/E2AP/ProtocolIE-ContainerList.h index e3aca2bf6..5780c58db 100644 --- a/src/codec_utils/E2AP/ProtocolIE-ContainerList.h +++ b/src/codec_utils/E2AP/ProtocolIE-ContainerList.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_ContainerList_H_ diff --git a/src/codec_utils/E2AP/ProtocolIE-ContainerPairE2.c b/src/codec_utils/E2AP/ProtocolIE-ContainerPairE2.c index ea31cdb45..8d39f8217 100644 --- a/src/codec_utils/E2AP/ProtocolIE-ContainerPairE2.c +++ b/src/codec_utils/E2AP/ProtocolIE-ContainerPairE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProtocolIE-ContainerPairE2.h" diff --git a/src/codec_utils/E2AP/ProtocolIE-ContainerPairE2.h b/src/codec_utils/E2AP/ProtocolIE-ContainerPairE2.h index 9157d114d..9dcf23e2d 100644 --- a/src/codec_utils/E2AP/ProtocolIE-ContainerPairE2.h +++ b/src/codec_utils/E2AP/ProtocolIE-ContainerPairE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_ContainerPairE2_H_ diff --git a/src/codec_utils/E2AP/ProtocolIE-ContainerPairList.c b/src/codec_utils/E2AP/ProtocolIE-ContainerPairList.c index e43c23120..c8809df97 100644 --- a/src/codec_utils/E2AP/ProtocolIE-ContainerPairList.c +++ b/src/codec_utils/E2AP/ProtocolIE-ContainerPairList.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProtocolIE-ContainerPairList.h" diff --git a/src/codec_utils/E2AP/ProtocolIE-ContainerPairList.h b/src/codec_utils/E2AP/ProtocolIE-ContainerPairList.h index e5aff3e05..df77300f1 100644 --- a/src/codec_utils/E2AP/ProtocolIE-ContainerPairList.h +++ b/src/codec_utils/E2AP/ProtocolIE-ContainerPairList.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_ContainerPairList_H_ diff --git a/src/codec_utils/E2AP/ProtocolIE-FieldE2.c b/src/codec_utils/E2AP/ProtocolIE-FieldE2.c index d287458e1..6b3d40918 100644 --- a/src/codec_utils/E2AP/ProtocolIE-FieldE2.c +++ b/src/codec_utils/E2AP/ProtocolIE-FieldE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProtocolIE-FieldE2.h" @@ -43,38 +43,170 @@ static const asn_ioc_cell_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows[] = { static const asn_ioc_set_t asn_IOS_RICaction_NotAdmitted_ItemIEs_1[] = { { 1, 4, asn_IOS_RICaction_NotAdmitted_ItemIEs_1_rows } }; -static const long asn_VAL_64_id_RANfunction_Item = 8; -static const long asn_VAL_64_ignore = 1; -static const long asn_VAL_64_mandatory = 2; +static const long asn_VAL_24_id_RICsubscription_withCause_Item = 51; +static const long asn_VAL_24_ignore = 1; +static const long asn_VAL_24_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_RICsubscription_withCause_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_24_id_RICsubscription_withCause_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_24_ignore }, + { "&Value", aioc__type, &asn_DEF_RICsubscription_withCause_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_24_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICsubscription_withCause_ItemIEs_1[] = { + { 1, 4, asn_IOS_RICsubscription_withCause_ItemIEs_1_rows } +}; +static const long asn_VAL_71_id_E2connectionUpdate_Item = 43; +static const long asn_VAL_71_ignore = 1; +static const long asn_VAL_71_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdate_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_71_id_E2connectionUpdate_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_71_ignore }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_71_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2connectionUpdate_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2connectionUpdate_ItemIEs_1_rows } +}; +static const long asn_VAL_72_id_E2connectionUpdateRemove_Item = 47; +static const long asn_VAL_72_ignore = 1; +static const long asn_VAL_72_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdateRemove_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_72_id_E2connectionUpdateRemove_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_72_ignore }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_72_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2connectionUpdateRemove_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2connectionUpdateRemove_ItemIEs_1_rows } +}; +static const long asn_VAL_76_id_E2connectionSetupFailed_Item = 41; +static const long asn_VAL_76_ignore = 1; +static const long asn_VAL_76_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2connectionSetupFailed_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_76_id_E2connectionSetupFailed_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_76_ignore }, + { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_76_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2connectionSetupFailed_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2connectionSetupFailed_ItemIEs_1_rows } +}; +static const long asn_VAL_87_id_E2nodeComponentConfigAddition_Item = 51; +static const long asn_VAL_87_reject = 0; +static const long asn_VAL_87_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_87_id_E2nodeComponentConfigAddition_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_87_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_87_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1_rows } +}; +static const long asn_VAL_88_id_E2nodeComponentConfigUpdate_Item = 34; +static const long asn_VAL_88_reject = 0; +static const long asn_VAL_88_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_88_id_E2nodeComponentConfigUpdate_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_88_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_88_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1_rows } +}; +static const long asn_VAL_89_id_E2nodeComponentConfigRemoval_Item = 55; +static const long asn_VAL_89_reject = 0; +static const long asn_VAL_89_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_89_id_E2nodeComponentConfigRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_89_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_89_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1_rows } +}; +static const long asn_VAL_90_id_E2nodeTNLassociationRemoval_Item = 59; +static const long asn_VAL_90_reject = 0; +static const long asn_VAL_90_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_90_id_E2nodeTNLassociationRemoval_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_90_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_90_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1_rows } +}; +static const long asn_VAL_95_id_E2nodeComponentConfigAdditionAck_Item = 53; +static const long asn_VAL_95_reject = 0; +static const long asn_VAL_95_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_95_id_E2nodeComponentConfigAdditionAck_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_95_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_95_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1_rows } +}; +static const long asn_VAL_96_id_E2nodeComponentConfigUpdateAck_Item = 36; +static const long asn_VAL_96_reject = 0; +static const long asn_VAL_96_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_96_id_E2nodeComponentConfigUpdateAck_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_96_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_96_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1_rows } +}; +static const long asn_VAL_97_id_E2nodeComponentConfigRemovalAck_Item = 57; +static const long asn_VAL_97_reject = 0; +static const long asn_VAL_97_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_97_id_E2nodeComponentConfigRemovalAck_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_97_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_Item }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_97_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1[] = { + { 1, 4, asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1_rows } +}; +static const long asn_VAL_110_id_RANfunction_Item = 8; +static const long asn_VAL_110_ignore = 1; +static const long asn_VAL_110_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunction_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_64_id_RANfunction_Item }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_64_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_110_id_RANfunction_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_110_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunction_Item }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_64_mandatory } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_110_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunction_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunction_ItemIEs_1_rows } }; -static const long asn_VAL_65_id_RANfunctionID_Item = 6; -static const long asn_VAL_65_ignore = 1; -static const long asn_VAL_65_mandatory = 2; +static const long asn_VAL_111_id_RANfunctionID_Item = 6; +static const long asn_VAL_111_ignore = 1; +static const long asn_VAL_111_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunctionID_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_65_id_RANfunctionID_Item }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_65_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_111_id_RANfunctionID_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_111_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunctionID_Item }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_65_mandatory } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_111_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunctionID_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunctionID_ItemIEs_1_rows } }; -static const long asn_VAL_68_id_RANfunctionIEcause_Item = 7; -static const long asn_VAL_68_ignore = 1; -static const long asn_VAL_68_mandatory = 2; +static const long asn_VAL_115_id_RANfunctionIEcause_Item = 7; +static const long asn_VAL_115_ignore = 1; +static const long asn_VAL_115_mandatory = 2; static const asn_ioc_cell_t asn_IOS_RANfunctionIDcause_ItemIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_68_id_RANfunctionIEcause_Item }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_68_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_115_id_RANfunctionIEcause_Item }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_115_ignore }, { "&Value", aioc__type, &asn_DEF_RANfunctionIDcause_Item }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_68_mandatory } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_115_mandatory } }; static const asn_ioc_set_t asn_IOS_RANfunctionIDcause_ItemIEs_1[] = { { 1, 4, asn_IOS_RANfunctionIDcause_ItemIEs_1_rows } @@ -144,7 +276,7 @@ static const long asn_VAL_11_mandatory = 2; static const long asn_VAL_12_id_RANfunctionID = 5; static const long asn_VAL_12_reject = 0; static const long asn_VAL_12_mandatory = 2; -static const long asn_VAL_13_id_RICactions_NotAdmitted = 18; +static const long asn_VAL_13_id_CauseE2 = 1; static const long asn_VAL_13_reject = 0; static const long asn_VAL_13_mandatory = 2; static const long asn_VAL_14_id_CriticalityDiagnosticsE2 = 2; @@ -159,9 +291,9 @@ static const asn_ioc_cell_t asn_IOS_RICsubscriptionFailure_IEs_1_rows[] = { { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_12_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_12_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_13_id_RICactions_NotAdmitted }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_13_id_CauseE2 }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_13_reject }, - { "&Value", aioc__type, &asn_DEF_RICaction_NotAdmitted_List }, + { "&Value", aioc__type, &asn_DEF_CauseE2 }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_13_mandatory }, { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_14_id_CriticalityDiagnosticsE2 }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_14_ignore }, @@ -242,404 +374,705 @@ static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows[] = static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteFailure_IEs_1[] = { { 4, 4, asn_IOS_RICsubscriptionDeleteFailure_IEs_1_rows } }; -static const long asn_VAL_23_id_RICrequestID = 29; -static const long asn_VAL_23_reject = 0; +static const long asn_VAL_23_id_RICsubscriptionToBeRemoved = 50; +static const long asn_VAL_23_ignore = 1; static const long asn_VAL_23_mandatory = 2; -static const long asn_VAL_24_id_RANfunctionID = 5; -static const long asn_VAL_24_reject = 0; -static const long asn_VAL_24_mandatory = 2; -static const long asn_VAL_25_id_RICactionID = 15; +static const asn_ioc_cell_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_23_id_RICsubscriptionToBeRemoved }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_23_ignore }, + { "&Value", aioc__type, &asn_DEF_RICsubscription_List_withCause }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_23_mandatory } +}; +static const asn_ioc_set_t asn_IOS_RICsubscriptionDeleteRequired_IEs_1[] = { + { 1, 4, asn_IOS_RICsubscriptionDeleteRequired_IEs_1_rows } +}; +static const long asn_VAL_25_id_RICrequestID = 29; static const long asn_VAL_25_reject = 0; static const long asn_VAL_25_mandatory = 2; -static const long asn_VAL_26_id_RICindicationSN = 27; +static const long asn_VAL_26_id_RANfunctionID = 5; static const long asn_VAL_26_reject = 0; -static const long asn_VAL_26_optional = 0; -static const long asn_VAL_27_id_RICindicationType = 28; +static const long asn_VAL_26_mandatory = 2; +static const long asn_VAL_27_id_RICactionID = 15; static const long asn_VAL_27_reject = 0; static const long asn_VAL_27_mandatory = 2; -static const long asn_VAL_28_id_RICindicationHeader = 25; +static const long asn_VAL_28_id_RICindicationSN = 27; static const long asn_VAL_28_reject = 0; -static const long asn_VAL_28_mandatory = 2; -static const long asn_VAL_29_id_RICindicationMessage = 26; +static const long asn_VAL_28_optional = 0; +static const long asn_VAL_29_id_RICindicationType = 28; static const long asn_VAL_29_reject = 0; static const long asn_VAL_29_mandatory = 2; -static const long asn_VAL_30_id_RICcallProcessID = 20; +static const long asn_VAL_30_id_RICindicationHeader = 25; static const long asn_VAL_30_reject = 0; -static const long asn_VAL_30_optional = 0; +static const long asn_VAL_30_mandatory = 2; +static const long asn_VAL_31_id_RICindicationMessage = 26; +static const long asn_VAL_31_reject = 0; +static const long asn_VAL_31_mandatory = 2; +static const long asn_VAL_32_id_RICcallProcessID = 20; +static const long asn_VAL_32_reject = 0; +static const long asn_VAL_32_optional = 0; static const asn_ioc_cell_t asn_IOS_RICindication_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_23_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_23_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_23_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_24_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_24_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_24_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_25_id_RICactionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_25_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_25_reject }, - { "&Value", aioc__type, &asn_DEF_RICactionID }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_25_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_26_id_RICindicationSN }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_26_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_26_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationSN }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_26_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_27_id_RICindicationType }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_26_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_27_id_RICactionID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_27_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationType }, + { "&Value", aioc__type, &asn_DEF_RICactionID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_27_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_28_id_RICindicationHeader }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_28_id_RICindicationSN }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_28_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_28_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_29_id_RICindicationMessage }, + { "&Value", aioc__type, &asn_DEF_RICindicationSN }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_28_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_29_id_RICindicationType }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_29_reject }, - { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, + { "&Value", aioc__type, &asn_DEF_RICindicationType }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_29_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_30_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_30_id_RICindicationHeader }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_30_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationHeader }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_30_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_31_id_RICindicationMessage }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_31_reject }, + { "&Value", aioc__type, &asn_DEF_RICindicationMessage }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_31_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_32_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_32_reject }, { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_30_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_32_optional } }; static const asn_ioc_set_t asn_IOS_RICindication_IEs_1[] = { { 8, 4, asn_IOS_RICindication_IEs_1_rows } }; -static const long asn_VAL_31_id_RICrequestID = 29; -static const long asn_VAL_31_reject = 0; -static const long asn_VAL_31_mandatory = 2; -static const long asn_VAL_32_id_RANfunctionID = 5; -static const long asn_VAL_32_reject = 0; -static const long asn_VAL_32_mandatory = 2; -static const long asn_VAL_33_id_RICcallProcessID = 20; +static const long asn_VAL_33_id_RICrequestID = 29; static const long asn_VAL_33_reject = 0; -static const long asn_VAL_33_optional = 0; -static const long asn_VAL_34_id_RICcontrolHeader = 22; +static const long asn_VAL_33_mandatory = 2; +static const long asn_VAL_34_id_RANfunctionID = 5; static const long asn_VAL_34_reject = 0; static const long asn_VAL_34_mandatory = 2; -static const long asn_VAL_35_id_RICcontrolMessage = 23; +static const long asn_VAL_35_id_RICcallProcessID = 20; static const long asn_VAL_35_reject = 0; -static const long asn_VAL_35_mandatory = 2; -static const long asn_VAL_36_id_RICcontrolAckRequest = 21; +static const long asn_VAL_35_optional = 0; +static const long asn_VAL_36_id_RICcontrolHeader = 22; static const long asn_VAL_36_reject = 0; -static const long asn_VAL_36_optional = 0; +static const long asn_VAL_36_mandatory = 2; +static const long asn_VAL_37_id_RICcontrolMessage = 23; +static const long asn_VAL_37_reject = 0; +static const long asn_VAL_37_mandatory = 2; +static const long asn_VAL_38_id_RICcontrolAckRequest = 21; +static const long asn_VAL_38_reject = 0; +static const long asn_VAL_38_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolRequest_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_31_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_31_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_31_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_32_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_32_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_32_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_33_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_33_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_33_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_33_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_34_id_RICcontrolHeader }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_33_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_34_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_34_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_34_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_35_id_RICcontrolMessage }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_35_id_RICcallProcessID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_35_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_35_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_36_id_RICcontrolAckRequest }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_35_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_36_id_RICcontrolHeader }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_36_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolHeader }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_36_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_37_id_RICcontrolMessage }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_37_reject }, + { "&Value", aioc__type, &asn_DEF_RICcontrolMessage }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_37_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_38_id_RICcontrolAckRequest }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_38_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolAckRequest }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_36_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_38_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolRequest_IEs_1[] = { { 6, 4, asn_IOS_RICcontrolRequest_IEs_1_rows } }; -static const long asn_VAL_37_id_RICrequestID = 29; -static const long asn_VAL_37_reject = 0; -static const long asn_VAL_37_mandatory = 2; -static const long asn_VAL_38_id_RANfunctionID = 5; -static const long asn_VAL_38_reject = 0; -static const long asn_VAL_38_mandatory = 2; -static const long asn_VAL_39_id_RICcallProcessID = 20; +static const long asn_VAL_39_id_RICrequestID = 29; static const long asn_VAL_39_reject = 0; -static const long asn_VAL_39_optional = 0; -static const long asn_VAL_40_id_RICcontrolStatus = 24; +static const long asn_VAL_39_mandatory = 2; +static const long asn_VAL_40_id_RANfunctionID = 5; static const long asn_VAL_40_reject = 0; static const long asn_VAL_40_mandatory = 2; -static const long asn_VAL_41_id_RICcontrolOutcome = 32; +static const long asn_VAL_41_id_RICcallProcessID = 20; static const long asn_VAL_41_reject = 0; static const long asn_VAL_41_optional = 0; +static const long asn_VAL_42_id_RICcontrolOutcome = 32; +static const long asn_VAL_42_reject = 0; +static const long asn_VAL_42_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_37_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_37_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_37_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_38_id_RANfunctionID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_38_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_38_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_39_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_39_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_39_reject }, - { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_39_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_40_id_RICcontrolStatus }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_39_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_40_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_40_reject }, - { "&Value", aioc__type, &asn_DEF_RICcontrolStatus }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_40_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_41_id_RICcontrolOutcome }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_41_id_RICcallProcessID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_41_reject }, + { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_41_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_42_id_RICcontrolOutcome }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_42_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_41_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_42_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolAcknowledge_IEs_1[] = { - { 5, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } + { 4, 4, asn_IOS_RICcontrolAcknowledge_IEs_1_rows } }; -static const long asn_VAL_42_id_RICrequestID = 29; -static const long asn_VAL_42_reject = 0; -static const long asn_VAL_42_mandatory = 2; -static const long asn_VAL_43_id_RANfunctionID = 5; +static const long asn_VAL_43_id_RICrequestID = 29; static const long asn_VAL_43_reject = 0; static const long asn_VAL_43_mandatory = 2; -static const long asn_VAL_44_id_RICcallProcessID = 20; +static const long asn_VAL_44_id_RANfunctionID = 5; static const long asn_VAL_44_reject = 0; -static const long asn_VAL_44_optional = 0; -static const long asn_VAL_45_id_CauseE2 = 1; -static const long asn_VAL_45_ignore = 1; -static const long asn_VAL_45_mandatory = 2; -static const long asn_VAL_46_id_RICcontrolOutcome = 32; -static const long asn_VAL_46_reject = 0; -static const long asn_VAL_46_optional = 0; +static const long asn_VAL_44_mandatory = 2; +static const long asn_VAL_45_id_RICcallProcessID = 20; +static const long asn_VAL_45_reject = 0; +static const long asn_VAL_45_optional = 0; +static const long asn_VAL_46_id_CauseE2 = 1; +static const long asn_VAL_46_ignore = 1; +static const long asn_VAL_46_mandatory = 2; +static const long asn_VAL_47_id_RICcontrolOutcome = 32; +static const long asn_VAL_47_reject = 0; +static const long asn_VAL_47_optional = 0; static const asn_ioc_cell_t asn_IOS_RICcontrolFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_42_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_42_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_42_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_43_id_RANfunctionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_43_id_RICrequestID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_43_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_43_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_44_id_RICcallProcessID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_44_id_RANfunctionID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_44_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_44_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_45_id_RICcallProcessID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_45_reject }, { "&Value", aioc__type, &asn_DEF_RICcallProcessID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_44_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_45_id_CauseE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_45_ignore }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_45_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_46_id_CauseE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_46_ignore }, { "&Value", aioc__type, &asn_DEF_CauseE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_45_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_46_id_RICcontrolOutcome }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_46_reject }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_46_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_47_id_RICcontrolOutcome }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_47_reject }, { "&Value", aioc__type, &asn_DEF_RICcontrolOutcome }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_46_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_47_optional } }; static const asn_ioc_set_t asn_IOS_RICcontrolFailure_IEs_1[] = { { 5, 4, asn_IOS_RICcontrolFailure_IEs_1_rows } }; -static const long asn_VAL_47_id_RICrequestID = 29; -static const long asn_VAL_47_reject = 0; -static const long asn_VAL_47_optional = 0; -static const long asn_VAL_48_id_RANfunctionID = 5; +static const long asn_VAL_48_id_TransactionID = 49; static const long asn_VAL_48_reject = 0; static const long asn_VAL_48_optional = 0; -static const long asn_VAL_49_id_CauseE2 = 1; -static const long asn_VAL_49_ignore = 1; +static const long asn_VAL_49_id_RICrequestID = 29; +static const long asn_VAL_49_reject = 0; static const long asn_VAL_49_optional = 0; -static const long asn_VAL_50_id_CriticalityDiagnosticsE2 = 2; -static const long asn_VAL_50_ignore = 1; +static const long asn_VAL_50_id_RANfunctionID = 5; +static const long asn_VAL_50_reject = 0; static const long asn_VAL_50_optional = 0; +static const long asn_VAL_51_id_CauseE2 = 1; +static const long asn_VAL_51_ignore = 1; +static const long asn_VAL_51_optional = 0; +static const long asn_VAL_52_id_CriticalityDiagnosticsE2 = 2; +static const long asn_VAL_52_ignore = 1; +static const long asn_VAL_52_optional = 0; static const asn_ioc_cell_t asn_IOS_ErrorIndicationE2_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_47_id_RICrequestID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_47_reject }, - { "&Value", aioc__type, &asn_DEF_RICrequestID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_47_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_48_id_RANfunctionID }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_48_id_TransactionID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_48_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_48_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_49_id_CauseE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_49_ignore }, - { "&Value", aioc__type, &asn_DEF_CauseE2 }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_49_id_RICrequestID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_49_reject }, + { "&Value", aioc__type, &asn_DEF_RICrequestID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_49_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_50_id_CriticalityDiagnosticsE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_50_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_50_id_RANfunctionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_50_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_50_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_51_id_CauseE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_51_ignore }, + { "&Value", aioc__type, &asn_DEF_CauseE2 }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_51_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_52_id_CriticalityDiagnosticsE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_52_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnosticsE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_50_optional } -}; -static const asn_ioc_set_t asn_IOS_ErrorIndicationE2_IEs_1[] = { - { 4, 4, asn_IOS_ErrorIndicationE2_IEs_1_rows } -}; -static const long asn_VAL_51_id_GlobalE2node_ID = 3; -static const long asn_VAL_51_reject = 0; -static const long asn_VAL_51_mandatory = 2; -static const long asn_VAL_52_id_RANfunctionsAdded = 10; -static const long asn_VAL_52_reject = 0; -static const long asn_VAL_52_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_51_id_GlobalE2node_ID }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_51_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_51_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_52_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_52_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_52_optional } }; -static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { - { 2, 4, asn_IOS_E2setupRequestIEs_1_rows } +static const asn_ioc_set_t asn_IOS_ErrorIndicationE2_IEs_1[] = { + { 5, 4, asn_IOS_ErrorIndicationE2_IEs_1_rows } }; -static const long asn_VAL_53_id_GlobalRIC_ID = 4; +static const long asn_VAL_53_id_TransactionID = 49; static const long asn_VAL_53_reject = 0; static const long asn_VAL_53_mandatory = 2; -static const long asn_VAL_54_id_RANfunctionsAccepted = 9; +static const long asn_VAL_54_id_GlobalE2node_ID = 3; static const long asn_VAL_54_reject = 0; -static const long asn_VAL_54_optional = 0; -static const long asn_VAL_55_id_RANfunctionsRejected = 13; +static const long asn_VAL_54_mandatory = 2; +static const long asn_VAL_55_id_RANfunctionsAdded = 10; static const long asn_VAL_55_reject = 0; -static const long asn_VAL_55_optional = 0; -static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_53_id_GlobalRIC_ID }, +static const long asn_VAL_55_mandatory = 2; +static const long asn_VAL_56_id_E2nodeComponentConfigAddition = 50; +static const long asn_VAL_56_reject = 0; +static const long asn_VAL_56_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2setupRequestIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_53_id_TransactionID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_53_reject }, - { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_53_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_54_id_RANfunctionsAccepted }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_54_id_GlobalE2node_ID }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_54_reject }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_54_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_55_id_RANfunctionsRejected }, + { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_54_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_55_id_RANfunctionsAdded }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_55_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_55_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_56_id_E2nodeComponentConfigAddition }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_56_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_56_mandatory } +}; +static const asn_ioc_set_t asn_IOS_E2setupRequestIEs_1[] = { + { 4, 4, asn_IOS_E2setupRequestIEs_1_rows } +}; +static const long asn_VAL_57_id_TransactionID = 49; +static const long asn_VAL_57_reject = 0; +static const long asn_VAL_57_mandatory = 2; +static const long asn_VAL_58_id_GlobalRIC_ID = 4; +static const long asn_VAL_58_reject = 0; +static const long asn_VAL_58_mandatory = 2; +static const long asn_VAL_59_id_RANfunctionsAccepted = 9; +static const long asn_VAL_59_reject = 0; +static const long asn_VAL_59_optional = 0; +static const long asn_VAL_60_id_RANfunctionsRejected = 13; +static const long asn_VAL_60_reject = 0; +static const long asn_VAL_60_optional = 0; +static const long asn_VAL_61_id_E2nodeComponentConfigAdditionAck = 52; +static const long asn_VAL_61_reject = 0; +static const long asn_VAL_61_mandatory = 2; +static const asn_ioc_cell_t asn_IOS_E2setupResponseIEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_57_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_57_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_57_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_58_id_GlobalRIC_ID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_58_reject }, + { "&Value", aioc__type, &asn_DEF_GlobalRIC_ID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_58_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_59_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_59_reject }, + { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_59_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_60_id_RANfunctionsRejected }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_60_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_55_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_60_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_61_id_E2nodeComponentConfigAdditionAck }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_61_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_61_mandatory } }; static const asn_ioc_set_t asn_IOS_E2setupResponseIEs_1[] = { - { 3, 4, asn_IOS_E2setupResponseIEs_1_rows } + { 5, 4, asn_IOS_E2setupResponseIEs_1_rows } }; -static const long asn_VAL_56_id_CauseE2 = 1; -static const long asn_VAL_56_ignore = 1; -static const long asn_VAL_56_mandatory = 2; -static const long asn_VAL_57_id_TimeToWaitE2 = 31; -static const long asn_VAL_57_ignore = 1; -static const long asn_VAL_57_optional = 0; -static const long asn_VAL_58_id_CriticalityDiagnosticsE2 = 2; -static const long asn_VAL_58_ignore = 1; -static const long asn_VAL_58_optional = 0; +static const long asn_VAL_62_id_TransactionID = 49; +static const long asn_VAL_62_reject = 0; +static const long asn_VAL_62_mandatory = 2; +static const long asn_VAL_63_id_CauseE2 = 1; +static const long asn_VAL_63_ignore = 1; +static const long asn_VAL_63_mandatory = 2; +static const long asn_VAL_64_id_TimeToWaitE2 = 31; +static const long asn_VAL_64_ignore = 1; +static const long asn_VAL_64_optional = 0; +static const long asn_VAL_65_id_CriticalityDiagnosticsE2 = 2; +static const long asn_VAL_65_ignore = 1; +static const long asn_VAL_65_optional = 0; +static const long asn_VAL_66_id_TNLinformation = 48; +static const long asn_VAL_66_ignore = 1; +static const long asn_VAL_66_optional = 0; static const asn_ioc_cell_t asn_IOS_E2setupFailureIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_56_id_CauseE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_56_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_62_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_62_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_62_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_63_id_CauseE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_63_ignore }, { "&Value", aioc__type, &asn_DEF_CauseE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_56_mandatory }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_57_id_TimeToWaitE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_57_ignore }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_63_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_64_id_TimeToWaitE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_64_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWaitE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_57_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_58_id_CriticalityDiagnosticsE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_58_ignore }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_64_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_65_id_CriticalityDiagnosticsE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_65_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnosticsE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_58_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_65_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_66_id_TNLinformation }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_66_ignore }, + { "&Value", aioc__type, &asn_DEF_TNLinformation }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_66_optional } }; static const asn_ioc_set_t asn_IOS_E2setupFailureIEs_1[] = { - { 3, 4, asn_IOS_E2setupFailureIEs_1_rows } + { 5, 4, asn_IOS_E2setupFailureIEs_1_rows } +}; +static const long asn_VAL_67_id_TransactionID = 49; +static const long asn_VAL_67_reject = 0; +static const long asn_VAL_67_mandatory = 2; +static const long asn_VAL_68_id_E2connectionUpdateAdd = 44; +static const long asn_VAL_68_reject = 0; +static const long asn_VAL_68_optional = 0; +static const long asn_VAL_69_id_E2connectionUpdateRemove = 46; +static const long asn_VAL_69_reject = 0; +static const long asn_VAL_69_optional = 0; +static const long asn_VAL_70_id_E2connectionUpdateModify = 45; +static const long asn_VAL_70_reject = 0; +static const long asn_VAL_70_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdate_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_67_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_67_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_67_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_68_id_E2connectionUpdateAdd }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_68_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_68_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_69_id_E2connectionUpdateRemove }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_69_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdateRemove_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_69_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_70_id_E2connectionUpdateModify }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_70_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_70_optional } +}; +static const asn_ioc_set_t asn_IOS_E2connectionUpdate_IEs_1[] = { + { 4, 4, asn_IOS_E2connectionUpdate_IEs_1_rows } +}; +static const long asn_VAL_73_id_TransactionID = 49; +static const long asn_VAL_73_reject = 0; +static const long asn_VAL_73_mandatory = 2; +static const long asn_VAL_74_id_E2connectionSetup = 39; +static const long asn_VAL_74_reject = 0; +static const long asn_VAL_74_optional = 0; +static const long asn_VAL_75_id_E2connectionSetupFailed = 40; +static const long asn_VAL_75_reject = 0; +static const long asn_VAL_75_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdateAck_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_73_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_73_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_73_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_74_id_E2connectionSetup }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_74_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionUpdate_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_74_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_75_id_E2connectionSetupFailed }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_75_reject }, + { "&Value", aioc__type, &asn_DEF_E2connectionSetupFailed_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_75_optional } +}; +static const asn_ioc_set_t asn_IOS_E2connectionUpdateAck_IEs_1[] = { + { 3, 4, asn_IOS_E2connectionUpdateAck_IEs_1_rows } +}; +static const long asn_VAL_77_id_TransactionID = 49; +static const long asn_VAL_77_reject = 0; +static const long asn_VAL_77_mandatory = 2; +static const long asn_VAL_78_id_CauseE2 = 1; +static const long asn_VAL_78_reject = 0; +static const long asn_VAL_78_optional = 0; +static const long asn_VAL_79_id_TimeToWaitE2 = 31; +static const long asn_VAL_79_ignore = 1; +static const long asn_VAL_79_optional = 0; +static const long asn_VAL_80_id_CriticalityDiagnosticsE2 = 2; +static const long asn_VAL_80_ignore = 1; +static const long asn_VAL_80_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2connectionUpdateFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_77_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_77_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_77_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_78_id_CauseE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_78_reject }, + { "&Value", aioc__type, &asn_DEF_CauseE2 }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_78_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_79_id_TimeToWaitE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_79_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWaitE2 }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_79_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_80_id_CriticalityDiagnosticsE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_80_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnosticsE2 }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_80_optional } +}; +static const asn_ioc_set_t asn_IOS_E2connectionUpdateFailure_IEs_1[] = { + { 4, 4, asn_IOS_E2connectionUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_81_id_TransactionID = 49; +static const long asn_VAL_81_reject = 0; +static const long asn_VAL_81_mandatory = 2; +static const long asn_VAL_82_id_GlobalE2node_ID = 3; +static const long asn_VAL_82_reject = 0; +static const long asn_VAL_82_optional = 0; +static const long asn_VAL_83_id_E2nodeComponentConfigAddition = 50; +static const long asn_VAL_83_reject = 0; +static const long asn_VAL_83_optional = 0; +static const long asn_VAL_84_id_E2nodeComponentConfigUpdate = 33; +static const long asn_VAL_84_reject = 0; +static const long asn_VAL_84_optional = 0; +static const long asn_VAL_85_id_E2nodeComponentConfigRemoval = 54; +static const long asn_VAL_85_reject = 0; +static const long asn_VAL_85_optional = 0; +static const long asn_VAL_86_id_E2nodeTNLassociationRemoval = 58; +static const long asn_VAL_86_reject = 0; +static const long asn_VAL_86_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_81_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_81_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_81_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_82_id_GlobalE2node_ID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_82_reject }, + { "&Value", aioc__type, &asn_DEF_GlobalE2node_ID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_82_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_83_id_E2nodeComponentConfigAddition }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_83_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAddition_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_83_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_84_id_E2nodeComponentConfigUpdate }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_84_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdate_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_84_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_85_id_E2nodeComponentConfigRemoval }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_85_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemoval_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_85_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_86_id_E2nodeTNLassociationRemoval }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_86_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeTNLassociationRemoval_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_86_optional } +}; +static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdate_IEs_1[] = { + { 6, 4, asn_IOS_E2nodeConfigurationUpdate_IEs_1_rows } +}; +static const long asn_VAL_91_id_TransactionID = 49; +static const long asn_VAL_91_reject = 0; +static const long asn_VAL_91_mandatory = 2; +static const long asn_VAL_92_id_E2nodeComponentConfigAdditionAck = 52; +static const long asn_VAL_92_reject = 0; +static const long asn_VAL_92_optional = 0; +static const long asn_VAL_93_id_E2nodeComponentConfigUpdateAck = 35; +static const long asn_VAL_93_reject = 0; +static const long asn_VAL_93_optional = 0; +static const long asn_VAL_94_id_E2nodeComponentConfigRemovalAck = 56; +static const long asn_VAL_94_reject = 0; +static const long asn_VAL_94_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_91_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_91_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_91_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_92_id_E2nodeComponentConfigAdditionAck }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_92_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigAdditionAck_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_92_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_93_id_E2nodeComponentConfigUpdateAck }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_93_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigUpdateAck_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_93_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_94_id_E2nodeComponentConfigRemovalAck }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_94_reject }, + { "&Value", aioc__type, &asn_DEF_E2nodeComponentConfigRemovalAck_List }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_94_optional } +}; +static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1[] = { + { 4, 4, asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1_rows } +}; +static const long asn_VAL_98_id_TransactionID = 49; +static const long asn_VAL_98_reject = 0; +static const long asn_VAL_98_mandatory = 2; +static const long asn_VAL_99_id_CauseE2 = 1; +static const long asn_VAL_99_ignore = 1; +static const long asn_VAL_99_mandatory = 2; +static const long asn_VAL_100_id_TimeToWaitE2 = 31; +static const long asn_VAL_100_ignore = 1; +static const long asn_VAL_100_optional = 0; +static const long asn_VAL_101_id_CriticalityDiagnosticsE2 = 2; +static const long asn_VAL_101_ignore = 1; +static const long asn_VAL_101_optional = 0; +static const asn_ioc_cell_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows[] = { + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_98_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_98_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_98_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_99_id_CauseE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_99_ignore }, + { "&Value", aioc__type, &asn_DEF_CauseE2 }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_99_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_100_id_TimeToWaitE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_100_ignore }, + { "&Value", aioc__type, &asn_DEF_TimeToWaitE2 }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_100_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_101_id_CriticalityDiagnosticsE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_101_ignore }, + { "&Value", aioc__type, &asn_DEF_CriticalityDiagnosticsE2 }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_101_optional } }; -static const long asn_VAL_59_id_CauseE2 = 1; -static const long asn_VAL_59_ignore = 1; -static const long asn_VAL_59_mandatory = 2; +static const asn_ioc_set_t asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1[] = { + { 4, 4, asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_102_id_TransactionID = 49; +static const long asn_VAL_102_reject = 0; +static const long asn_VAL_102_mandatory = 2; +static const long asn_VAL_103_id_CauseE2 = 1; +static const long asn_VAL_103_ignore = 1; +static const long asn_VAL_103_mandatory = 2; static const asn_ioc_cell_t asn_IOS_ResetRequestIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_59_id_CauseE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_59_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_102_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_102_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_102_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_103_id_CauseE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_103_ignore }, { "&Value", aioc__type, &asn_DEF_CauseE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_59_mandatory } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_103_mandatory } }; static const asn_ioc_set_t asn_IOS_ResetRequestIEs_1[] = { - { 1, 4, asn_IOS_ResetRequestIEs_1_rows } -}; -static const long asn_VAL_60_id_CriticalityDiagnosticsE2 = 2; -static const long asn_VAL_60_ignore = 1; -static const long asn_VAL_60_optional = 0; + { 2, 4, asn_IOS_ResetRequestIEs_1_rows } +}; +static const long asn_VAL_104_id_TransactionID = 49; +static const long asn_VAL_104_reject = 0; +static const long asn_VAL_104_mandatory = 2; +static const long asn_VAL_105_id_CriticalityDiagnosticsE2 = 2; +static const long asn_VAL_105_ignore = 1; +static const long asn_VAL_105_optional = 0; static const asn_ioc_cell_t asn_IOS_ResetResponseIEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_60_id_CriticalityDiagnosticsE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_60_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_104_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_104_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_104_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_105_id_CriticalityDiagnosticsE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_105_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnosticsE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_60_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_105_optional } }; static const asn_ioc_set_t asn_IOS_ResetResponseIEs_1[] = { - { 1, 4, asn_IOS_ResetResponseIEs_1_rows } -}; -static const long asn_VAL_61_id_RANfunctionsAdded = 10; -static const long asn_VAL_61_reject = 0; -static const long asn_VAL_61_optional = 0; -static const long asn_VAL_62_id_RANfunctionsModified = 12; -static const long asn_VAL_62_reject = 0; -static const long asn_VAL_62_optional = 0; -static const long asn_VAL_63_id_RANfunctionsDeleted = 11; -static const long asn_VAL_63_reject = 0; -static const long asn_VAL_63_optional = 0; + { 2, 4, asn_IOS_ResetResponseIEs_1_rows } +}; +static const long asn_VAL_106_id_TransactionID = 49; +static const long asn_VAL_106_reject = 0; +static const long asn_VAL_106_mandatory = 2; +static const long asn_VAL_107_id_RANfunctionsAdded = 10; +static const long asn_VAL_107_reject = 0; +static const long asn_VAL_107_optional = 0; +static const long asn_VAL_108_id_RANfunctionsModified = 12; +static const long asn_VAL_108_reject = 0; +static const long asn_VAL_108_optional = 0; +static const long asn_VAL_109_id_RANfunctionsDeleted = 11; +static const long asn_VAL_109_reject = 0; +static const long asn_VAL_109_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdate_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_61_id_RANfunctionsAdded }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_61_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_106_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_106_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_106_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_107_id_RANfunctionsAdded }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_107_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_61_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_62_id_RANfunctionsModified }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_62_reject }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_107_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_108_id_RANfunctionsModified }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_108_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctions_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_62_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_63_id_RANfunctionsDeleted }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_63_reject }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_108_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_109_id_RANfunctionsDeleted }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_109_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_63_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_109_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdate_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } -}; -static const long asn_VAL_66_id_RANfunctionsAccepted = 9; -static const long asn_VAL_66_reject = 0; -static const long asn_VAL_66_optional = 0; -static const long asn_VAL_67_id_RANfunctionsRejected = 13; -static const long asn_VAL_67_reject = 0; -static const long asn_VAL_67_optional = 0; + { 4, 4, asn_IOS_RICserviceUpdate_IEs_1_rows } +}; +static const long asn_VAL_112_id_TransactionID = 49; +static const long asn_VAL_112_reject = 0; +static const long asn_VAL_112_mandatory = 2; +static const long asn_VAL_113_id_RANfunctionsAccepted = 9; +static const long asn_VAL_113_reject = 0; +static const long asn_VAL_113_mandatory = 2; +static const long asn_VAL_114_id_RANfunctionsRejected = 13; +static const long asn_VAL_114_reject = 0; +static const long asn_VAL_114_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_66_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_66_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_112_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_112_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_112_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_113_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_113_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_66_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_67_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_67_reject }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_113_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_114_id_RANfunctionsRejected }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_114_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_67_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_114_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdateAcknowledge_IEs_1[] = { - { 2, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } -}; -static const long asn_VAL_69_id_RANfunctionsRejected = 13; -static const long asn_VAL_69_ignore = 1; -static const long asn_VAL_69_optional = 0; -static const long asn_VAL_70_id_TimeToWaitE2 = 31; -static const long asn_VAL_70_ignore = 1; -static const long asn_VAL_70_optional = 0; -static const long asn_VAL_71_id_CriticalityDiagnosticsE2 = 2; -static const long asn_VAL_71_ignore = 1; -static const long asn_VAL_71_optional = 0; + { 3, 4, asn_IOS_RICserviceUpdateAcknowledge_IEs_1_rows } +}; +static const long asn_VAL_116_id_TransactionID = 49; +static const long asn_VAL_116_reject = 0; +static const long asn_VAL_116_mandatory = 2; +static const long asn_VAL_117_id_CauseE2 = 1; +static const long asn_VAL_117_reject = 0; +static const long asn_VAL_117_mandatory = 2; +static const long asn_VAL_118_id_TimeToWaitE2 = 31; +static const long asn_VAL_118_ignore = 1; +static const long asn_VAL_118_optional = 0; +static const long asn_VAL_119_id_CriticalityDiagnosticsE2 = 2; +static const long asn_VAL_119_ignore = 1; +static const long asn_VAL_119_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceUpdateFailure_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_69_id_RANfunctionsRejected }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_69_ignore }, - { "&Value", aioc__type, &asn_DEF_RANfunctionsIDcause_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_69_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_70_id_TimeToWaitE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_70_ignore }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_116_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_116_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_116_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_117_id_CauseE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_117_reject }, + { "&Value", aioc__type, &asn_DEF_CauseE2 }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_117_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_118_id_TimeToWaitE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_118_ignore }, { "&Value", aioc__type, &asn_DEF_TimeToWaitE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_70_optional }, - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_71_id_CriticalityDiagnosticsE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_71_ignore }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_118_optional }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_119_id_CriticalityDiagnosticsE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_119_ignore }, { "&Value", aioc__type, &asn_DEF_CriticalityDiagnosticsE2 }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_71_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_119_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceUpdateFailure_IEs_1[] = { - { 3, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } -}; -static const long asn_VAL_72_id_RANfunctionsAccepted = 9; -static const long asn_VAL_72_reject = 0; -static const long asn_VAL_72_optional = 0; + { 4, 4, asn_IOS_RICserviceUpdateFailure_IEs_1_rows } +}; +static const long asn_VAL_120_id_TransactionID = 49; +static const long asn_VAL_120_reject = 0; +static const long asn_VAL_120_mandatory = 2; +static const long asn_VAL_121_id_RANfunctionsAccepted = 9; +static const long asn_VAL_121_reject = 0; +static const long asn_VAL_121_optional = 0; static const asn_ioc_cell_t asn_IOS_RICserviceQuery_IEs_1_rows[] = { - { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_72_id_RANfunctionsAccepted }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_72_reject }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_120_id_TransactionID }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_120_reject }, + { "&Value", aioc__type, &asn_DEF_TransactionID }, + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_120_mandatory }, + { "&id", aioc__value, &asn_DEF_ProtocolIE_IDE2, &asn_VAL_121_id_RANfunctionsAccepted }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_121_reject }, { "&Value", aioc__type, &asn_DEF_RANfunctionsID_List }, - { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_72_optional } + { "&presence", aioc__value, &asn_DEF_PresenceE2, &asn_VAL_121_optional } }; static const asn_ioc_set_t asn_IOS_RICserviceQuery_IEs_1[] = { - { 1, 4, asn_IOS_RICserviceQuery_IEs_1_rows } + { 2, 4, asn_IOS_RICserviceQuery_IEs_1_rows } }; static int memb_id_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -1018,13 +1451,13 @@ memb_id_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscription_withCause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscription_withCause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscription_withCause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1064,13 +1497,13 @@ memb_criticality_constraint_13(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscription_withCause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscription_withCause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscription_withCause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1135,13 +1568,13 @@ memb_id_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1181,13 +1614,13 @@ memb_criticality_constraint_17(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1252,13 +1685,13 @@ memb_id_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateRemove_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1298,13 +1731,13 @@ memb_criticality_constraint_21(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionUpdateRemove_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateRemove_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateRemove_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1369,13 +1802,13 @@ memb_id_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionSetupFailed_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1415,13 +1848,13 @@ memb_criticality_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2connectionSetupFailed_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2connectionSetupFailed_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionSetupFailed_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1486,13 +1919,13 @@ memb_id_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAddition_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1532,13 +1965,13 @@ memb_criticality_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAddition_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAddition_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1603,13 +2036,13 @@ memb_id_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1649,13 +2082,13 @@ memb_criticality_constraint_33(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdate_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdate_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1720,13 +2153,13 @@ memb_id_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1766,13 +2199,13 @@ memb_criticality_constraint_37(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemoval_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1837,13 +2270,13 @@ memb_id_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1883,13 +2316,13 @@ memb_criticality_constraint_41(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeTNLassociationRemoval_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeTNLassociationRemoval_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -1954,13 +2387,13 @@ memb_id_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2000,13 +2433,13 @@ memb_criticality_constraint_45(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigAdditionAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2071,13 +2504,13 @@ memb_id_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2117,13 +2550,13 @@ memb_criticality_constraint_49(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigUpdateAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2188,13 +2621,13 @@ memb_id_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2234,13 +2667,13 @@ memb_criticality_constraint_53(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_E2nodeComponentConfigRemovalAck_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2305,13 +2738,13 @@ memb_id_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunction_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2351,13 +2784,13 @@ memb_criticality_constraint_57(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunction_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunction_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunction_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2422,13 +2855,13 @@ memb_id_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionID_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2468,13 +2901,13 @@ memb_criticality_constraint_61(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionID_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionID_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionID_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2539,13 +2972,13 @@ memb_id_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ErrorIndicationE2_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionIDcause_ItemIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndicationE2_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndicationE2_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2585,13 +3018,13 @@ memb_criticality_constraint_65(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_ErrorIndicationE2_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RANfunctionIDcause_ItemIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ErrorIndicationE2_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RANfunctionIDcause_ItemIEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndicationE2_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RANfunctionIDcause_ItemIEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2656,13 +3089,13 @@ memb_id_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2702,13 +3135,13 @@ memb_criticality_constraint_69(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2773,13 +3206,13 @@ memb_id_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2819,13 +3252,13 @@ memb_criticality_constraint_73(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2890,13 +3323,13 @@ memb_id_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -2936,13 +3369,13 @@ memb_criticality_constraint_77(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3007,13 +3440,13 @@ memb_id_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3053,13 +3486,13 @@ memb_criticality_constraint_81(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3124,13 +3557,13 @@ memb_id_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteResponse_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3170,13 +3603,13 @@ memb_criticality_constraint_85(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteResponse_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteResponse_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteResponse_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3241,13 +3674,13 @@ memb_id_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3287,13 +3720,13 @@ memb_criticality_constraint_89(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteFailure_IEs_1; size_t constraining_column = 0; /* &id */ 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 long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteFailure_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3358,13 +3791,13 @@ memb_id_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequired_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequired_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequired_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3404,13 +3837,13 @@ memb_criticality_constraint_93(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICsubscriptionDeleteRequired_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICsubscriptionDeleteRequired_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICsubscriptionDeleteRequired_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3475,13 +3908,13 @@ memb_id_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICindication_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3521,13 +3954,13 @@ memb_criticality_constraint_97(const asn_TYPE_descriptor_t *td, const void *sptr } static asn_type_selector_result_t -select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICindication_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICindication_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICindication_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3592,13 +4025,13 @@ memb_id_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, } static asn_type_selector_result_t -select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolRequest_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 1; /* &criticality */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3638,13 +4071,13 @@ memb_criticality_constraint_101(const asn_TYPE_descriptor_t *td, const void *spt } static asn_type_selector_result_t -select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { +select_RICcontrolRequest_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { asn_type_selector_result_t result = {0, 0}; - const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolRequest_IEs_1; size_t constraining_column = 0; /* &id */ size_t for_column = 2; /* &Value */ size_t row, presence_index = 0; - const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolRequest_IEs, id)); for(row=0; row < itable->rows_count; row++) { const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; @@ -3683,656 +4116,5050 @@ memb_value_constraint_101(const asn_TYPE_descriptor_t *td, const void *sptr, return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); } -static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_id_constr_6 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_7 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_value_constr_8 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_id_constr_10 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_11 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_value_constr_12 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_id_constr_14 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_15 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_value_constr_16 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_id_constr_18 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_19 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_value_constr_20 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_id_constr_22 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_23 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_value_constr_24 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_id_constr_26 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_27 CC_NOTUSED = { +static int +memb_id_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICcontrolAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICcontrolAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_105(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICcontrolFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICcontrolFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICcontrolFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICcontrolFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_109(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ErrorIndicationE2_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ErrorIndicationE2_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndicationE2_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ErrorIndicationE2_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ErrorIndicationE2_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ErrorIndicationE2_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_113(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2setupRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2setupRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2setupRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_117(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2setupResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2setupResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2setupResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_121(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2setupFailureIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2setupFailureIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2setupFailureIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2setupFailureIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_125(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2connectionUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2connectionUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdate_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_129(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2connectionUpdateAck_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2connectionUpdateAck_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateAck_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateAck_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_133(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2connectionUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2connectionUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2connectionUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2connectionUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_137(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdate_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_141(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_145(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_E2nodeConfigurationUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_E2nodeConfigurationUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_149(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ResetRequestIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ResetRequestIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetRequestIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetRequestIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_153(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_ResetResponseIEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_ResetResponseIEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_ResetResponseIEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct ResetResponseIEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_157(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdate_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdate_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdate_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdate_IEs_1; + size_t constraining_column = 0; /* &id */ + 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)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_161(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdateAcknowledge_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdateAcknowledge_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateAcknowledge_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateAcknowledge_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_165(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceUpdateFailure_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceUpdateFailure_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceUpdateFailure_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceUpdateFailure_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_169(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static int +memb_id_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 65535)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_type_selector_result_t +select_RICserviceQuery_IEs_criticality_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 1; /* &criticality */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_criticality_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_type_selector_result_t +select_RICserviceQuery_IEs_value_type(const asn_TYPE_descriptor_t *parent_type, const void *parent_sptr) { + asn_type_selector_result_t result = {0, 0}; + const asn_ioc_set_t *itable = asn_IOS_RICserviceQuery_IEs_1; + size_t constraining_column = 0; /* &id */ + size_t for_column = 2; /* &Value */ + size_t row, presence_index = 0; + const long *constraining_value = (const long *)((const char *)parent_sptr + offsetof(struct RICserviceQuery_IEs, id)); + + for(row=0; row < itable->rows_count; row++) { + const asn_ioc_cell_t *constraining_cell = &itable->rows[row * itable->columns_count + constraining_column]; + const asn_ioc_cell_t *type_cell = &itable->rows[row * itable->columns_count + for_column]; + + if(type_cell->cell_kind == aioc__undefined) + continue; + + 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; + break; + } + } + + return result; +} + +static int +memb_value_constraint_173(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + + if(1 /* No applicable constraints whatsoever */) { + /* Nothing is here. See below */ + } + + return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key); +} + +static asn_oer_constraints_t asn_OER_memb_id_constr_2 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_2 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_3 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_3 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_4 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_4 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_6 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_6 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_7 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_7 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_8 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_8 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_10 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_10 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_11 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_11 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_12 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_12 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_14 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_14 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_15 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_15 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_16 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_16 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_18 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_18 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_19 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_19 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_20 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_20 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_22 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_22 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_23 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_23 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_24 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_24 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_26 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_26 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_27 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_28 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_30 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_31 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_32 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_34 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_35 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_36 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_38 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_39 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_40 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_42 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_43 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_44 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_46 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_47 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_48 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_50 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_51 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_52 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_54 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_55 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_56 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_58 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_59 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_60 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_62 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_63 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_64 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_66 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_67 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_68 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_70 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_71 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_72 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_74 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_75 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_76 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_78 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_79 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_80 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_82 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_83 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_84 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_86 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_87 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_88 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_90 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_91 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_92 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_94 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_95 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_96 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_98 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_99 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_100 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_102 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_103 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_104 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_106 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_106 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_107 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_107 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_108 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_108 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_110 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_110 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_111 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_111 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_112 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_112 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_114 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_114 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_115 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_115 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_116 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_116 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_118 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_118 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_119 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_119 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_120 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_120 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_122 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_122 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_123 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_123 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_124 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_124 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_126 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_126 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_127 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_127 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_128 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_128 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_130 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_130 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_131 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_131 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_132 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_132 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_134 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_134 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_135 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_135 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_136 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_136 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_138 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_138 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_139 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_139 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_140 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_140 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_142 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_142 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_143 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_143 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_144 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_144 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_146 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_146 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_147 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_147 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_148 CC_NOTUSED = { { 0, 0 }, -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_27 CC_NOTUSED = { +static asn_per_constraints_t asn_PER_memb_value_constr_148 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_150 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_150 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_151 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_151 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_152 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_152 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_154 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_154 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_155 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_155 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_156 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_156 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_158 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_158 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_159 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_159 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_160 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_160 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_162 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_162 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_163 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_163 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_164 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_164 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_166 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_166 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_167 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_167 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_168 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_168 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_170 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_170 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_171 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_171 CC_NOTUSED = { + { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_value_constr_172 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_172 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_id_constr_174 CC_NOTUSED = { + { 2, 1 } /* (0..65535) */, + -1}; +static asn_per_constraints_t asn_PER_memb_id_constr_174 CC_NOTUSED = { + { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_criticality_constr_175 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_criticality_constr_175 CC_NOTUSED = { { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_28 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_28 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_oer_constraints_t asn_OER_memb_value_constr_176 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_memb_value_constr_176 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_value_4[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_ToBeSetup_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-ToBeSetup-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { + sizeof(struct RICaction_ToBeSetup_ItemIEs__value), + offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), + sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_4, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_4 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_4, + 1, /* Elements count */ + &asn_SPC_value_specs_4 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_RICaction_ToBeSetup_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_4, + select_RICaction_ToBeSetup_ItemIEs_value_type, + { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { + sizeof(struct RICaction_ToBeSetup_ItemIEs), + offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), + asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { + "RICaction-ToBeSetup-ItemIEs", + "RICaction-ToBeSetup-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, + sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) + /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ + sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) + /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_ToBeSetup_ItemIEs_1, + 3, /* Elements count */ + &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_8[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_Admitted_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-Admitted-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { + sizeof(struct RICaction_Admitted_ItemIEs__value), + offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_Admitted_ItemIEs__value, present), + sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_8, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_8 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_8, + 1, /* Elements count */ + &asn_SPC_value_specs_8 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_6, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_RICaction_Admitted_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_7, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_8, + select_RICaction_Admitted_ItemIEs_value_type, + { &asn_OER_memb_value_constr_8, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { + sizeof(struct RICaction_Admitted_ItemIEs), + offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), + asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { + "RICaction-Admitted-ItemIEs", + "RICaction-Admitted-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_Admitted_ItemIEs_tags_5, + sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) + /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ + sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) + /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_Admitted_ItemIEs_5, + 3, /* Elements count */ + &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_12[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_NotAdmitted_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-NotAdmitted-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { + sizeof(struct RICaction_NotAdmitted_ItemIEs__value), + offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), + offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), + sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_12, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_12 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_12, + 1, /* Elements count */ + &asn_SPC_value_specs_12 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_10, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_RICaction_NotAdmitted_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_11, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_12, + select_RICaction_NotAdmitted_ItemIEs_value_type, + { &asn_OER_memb_value_constr_12, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { + sizeof(struct RICaction_NotAdmitted_ItemIEs), + offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), + asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { + "RICaction-NotAdmitted-ItemIEs", + "RICaction-NotAdmitted-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, + sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) + /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ + sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) + /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICaction_NotAdmitted_ItemIEs_9, + 3, /* Elements count */ + &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_16[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs__value, choice.RICsubscription_withCause_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscription_withCause_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscription-withCause-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-withCause-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { + sizeof(struct RICsubscription_withCause_ItemIEs__value), + offsetof(struct RICsubscription_withCause_ItemIEs__value, _asn_ctx), + offsetof(struct RICsubscription_withCause_ItemIEs__value, present), + sizeof(((struct RICsubscription_withCause_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_16, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_16 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_16, + 1, /* Elements count */ + &asn_SPC_value_specs_16 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_RICsubscription_withCause_ItemIEs_13[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_14, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_RICsubscription_withCause_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_15, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_16, + select_RICsubscription_withCause_ItemIEs_value_type, + { &asn_OER_memb_value_constr_16, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_withCause_ItemIEs_tag2el_13[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 = { + sizeof(struct RICsubscription_withCause_ItemIEs), + offsetof(struct RICsubscription_withCause_ItemIEs, _asn_ctx), + asn_MAP_RICsubscription_withCause_ItemIEs_tag2el_13, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_ItemIEs = { + "RICsubscription-withCause-ItemIEs", + "RICsubscription-withCause-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscription_withCause_ItemIEs_tags_13, + sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13) + /sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[0]), /* 1 */ + asn_DEF_RICsubscription_withCause_ItemIEs_tags_13, /* Same as above */ + sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13) + /sizeof(asn_DEF_RICsubscription_withCause_ItemIEs_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_ItemIEs_13, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_20[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs__value, choice.E2connectionUpdate_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdate_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdate-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdate-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { + sizeof(struct E2connectionUpdate_ItemIEs__value), + offsetof(struct E2connectionUpdate_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionUpdate_ItemIEs__value, present), + sizeof(((struct E2connectionUpdate_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_20, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_20 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_20, + 1, /* Elements count */ + &asn_SPC_value_specs_20 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_17[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_18, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2connectionUpdate_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_19, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_20, + select_E2connectionUpdate_ItemIEs_value_type, + { &asn_OER_memb_value_constr_20, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_ItemIEs_tags_17[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_ItemIEs_tag2el_17[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_17 = { + sizeof(struct E2connectionUpdate_ItemIEs), + offsetof(struct E2connectionUpdate_ItemIEs, _asn_ctx), + asn_MAP_E2connectionUpdate_ItemIEs_tag2el_17, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs = { + "E2connectionUpdate-ItemIEs", + "E2connectionUpdate-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdate_ItemIEs_tags_17, + sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17) + /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17[0]), /* 1 */ + asn_DEF_E2connectionUpdate_ItemIEs_tags_17, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17) + /sizeof(asn_DEF_E2connectionUpdate_ItemIEs_tags_17[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdate_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_ItemIEs_specs_17 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_24[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs__value, choice.E2connectionUpdateRemove_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateRemove_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdateRemove-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionUpdateRemove-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { + sizeof(struct E2connectionUpdateRemove_ItemIEs__value), + offsetof(struct E2connectionUpdateRemove_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionUpdateRemove_ItemIEs__value, present), + sizeof(((struct E2connectionUpdateRemove_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_24, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_24 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_24, + 1, /* Elements count */ + &asn_SPC_value_specs_24 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_21[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_22, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2connectionUpdateRemove_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_23, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateRemove_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_24, + select_E2connectionUpdateRemove_ItemIEs_value_type, + { &asn_OER_memb_value_constr_24, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_21[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 = { + sizeof(struct E2connectionUpdateRemove_ItemIEs), + offsetof(struct E2connectionUpdateRemove_ItemIEs, _asn_ctx), + asn_MAP_E2connectionUpdateRemove_ItemIEs_tag2el_21, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs = { + "E2connectionUpdateRemove-ItemIEs", + "E2connectionUpdateRemove-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21, + sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21) + /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[0]), /* 1 */ + asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21) + /sizeof(asn_DEF_E2connectionUpdateRemove_ItemIEs_tags_21[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateRemove_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_28[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs__value, choice.E2connectionSetupFailed_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionSetupFailed_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionSetupFailed-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2connectionSetupFailed-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { + sizeof(struct E2connectionSetupFailed_ItemIEs__value), + offsetof(struct E2connectionSetupFailed_ItemIEs__value, _asn_ctx), + offsetof(struct E2connectionSetupFailed_ItemIEs__value, present), + sizeof(((struct E2connectionSetupFailed_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_28, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_28 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_28, + 1, /* Elements count */ + &asn_SPC_value_specs_28 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_25[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2connectionSetupFailed_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_27, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionSetupFailed_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_28, + select_E2connectionSetupFailed_ItemIEs_value_type, + { &asn_OER_memb_value_constr_28, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_25[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 = { + sizeof(struct E2connectionSetupFailed_ItemIEs), + offsetof(struct E2connectionSetupFailed_ItemIEs, _asn_ctx), + asn_MAP_E2connectionSetupFailed_ItemIEs_tag2el_25, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs = { + "E2connectionSetupFailed-ItemIEs", + "E2connectionSetupFailed-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25, + sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25) + /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[0]), /* 1 */ + asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25, /* Same as above */ + sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25) + /sizeof(asn_DEF_E2connectionSetupFailed_ItemIEs_tags_25[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionSetupFailed_ItemIEs_25, + 3, /* Elements count */ + &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_32[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, choice.E2nodeComponentConfigAddition_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAddition_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAddition-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAddition-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { + sizeof(struct E2nodeComponentConfigAddition_ItemIEs__value), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigAddition_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_32, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_32 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_32, + 1, /* Elements count */ + &asn_SPC_value_specs_32 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2nodeComponentConfigAddition_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_31, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAddition_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_32, + select_E2nodeComponentConfigAddition_ItemIEs_value_type, + { &asn_OER_memb_value_constr_32, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_29[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 = { + sizeof(struct E2nodeComponentConfigAddition_ItemIEs), + offsetof(struct E2nodeComponentConfigAddition_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigAddition_ItemIEs_tag2el_29, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs = { + "E2nodeComponentConfigAddition-ItemIEs", + "E2nodeComponentConfigAddition-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29, + sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29) + /sizeof(asn_DEF_E2nodeComponentConfigAddition_ItemIEs_tags_29[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_36[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, choice.E2nodeComponentConfigUpdate_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigUpdate_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigUpdate-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdate-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { + sizeof(struct E2nodeComponentConfigUpdate_ItemIEs__value), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigUpdate_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_36, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_36 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_36, + 1, /* Elements count */ + &asn_SPC_value_specs_36 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2nodeComponentConfigUpdate_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_35, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_36, + select_E2nodeComponentConfigUpdate_ItemIEs_value_type, + { &asn_OER_memb_value_constr_36, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_33[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 = { + sizeof(struct E2nodeComponentConfigUpdate_ItemIEs), + offsetof(struct E2nodeComponentConfigUpdate_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdate_ItemIEs_tag2el_33, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs = { + "E2nodeComponentConfigUpdate-ItemIEs", + "E2nodeComponentConfigUpdate-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33, + sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33) + /sizeof(asn_DEF_E2nodeComponentConfigUpdate_ItemIEs_tags_33[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_40[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, choice.E2nodeComponentConfigRemoval_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemoval_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemoval-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemoval-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { + sizeof(struct E2nodeComponentConfigRemoval_ItemIEs__value), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigRemoval_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_40, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_40 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_40, + 1, /* Elements count */ + &asn_SPC_value_specs_40 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2nodeComponentConfigRemoval_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_39, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_40, + select_E2nodeComponentConfigRemoval_ItemIEs_value_type, + { &asn_OER_memb_value_constr_40, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_37[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 = { + sizeof(struct E2nodeComponentConfigRemoval_ItemIEs), + offsetof(struct E2nodeComponentConfigRemoval_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemoval_ItemIEs_tag2el_37, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs = { + "E2nodeComponentConfigRemoval-ItemIEs", + "E2nodeComponentConfigRemoval-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37, + sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37) + /sizeof(asn_DEF_E2nodeComponentConfigRemoval_ItemIEs_tags_37[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_44[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, choice.E2nodeTNLassociationRemoval_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeTNLassociationRemoval_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeTNLassociationRemoval-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeTNLassociationRemoval-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { + sizeof(struct E2nodeTNLassociationRemoval_ItemIEs__value), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs__value, present), + sizeof(((struct E2nodeTNLassociationRemoval_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_44, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_44 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_44, + 1, /* Elements count */ + &asn_SPC_value_specs_44 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2nodeTNLassociationRemoval_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_43, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_44, + select_E2nodeTNLassociationRemoval_ItemIEs_value_type, + { &asn_OER_memb_value_constr_44, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, + 0, 0, /* No default value */ + "value" + }, +}; +static const ber_tlv_tag_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_41[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ +}; +asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 = { + sizeof(struct E2nodeTNLassociationRemoval_ItemIEs), + offsetof(struct E2nodeTNLassociationRemoval_ItemIEs, _asn_ctx), + asn_MAP_E2nodeTNLassociationRemoval_ItemIEs_tag2el_41, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs = { + "E2nodeTNLassociationRemoval-ItemIEs", + "E2nodeTNLassociationRemoval-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41, + sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[0]), /* 1 */ + asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41, /* Same as above */ + sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41) + /sizeof(asn_DEF_E2nodeTNLassociationRemoval_ItemIEs_tags_41[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41, + 3, /* Elements count */ + &asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_48[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, choice.E2nodeComponentConfigAdditionAck_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAdditionAck_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAdditionAck-Item" + }, +}; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigAdditionAck-Item */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { + sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigAdditionAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_48, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ +}; +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_48 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_48, + 1, /* Elements count */ + &asn_SPC_value_specs_48 /* Additional specs */ +}; + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2nodeComponentConfigAdditionAck_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_48, + select_E2nodeComponentConfigAdditionAck_ItemIEs_value_type, + { &asn_OER_memb_value_constr_48, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_oer_constraints_t asn_OER_memb_id_constr_30 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_30 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_31 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_31 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_45[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_32 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_32 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 = { + sizeof(struct E2nodeComponentConfigAdditionAck_ItemIEs), + offsetof(struct E2nodeComponentConfigAdditionAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigAdditionAck_ItemIEs_tag2el_45, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_34 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_34 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs = { + "E2nodeComponentConfigAdditionAck-ItemIEs", + "E2nodeComponentConfigAdditionAck-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45, + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45) + /sizeof(asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs_tags_45[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_35 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_35 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_52[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, choice.E2nodeComponentConfigUpdateAck_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigUpdateAck_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigUpdateAck-Item" + }, }; -static asn_oer_constraints_t asn_OER_memb_value_constr_36 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_36 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigUpdateAck-Item */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_38 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_38 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { + sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigUpdateAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_52, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_39 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_39 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_52 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_52, + 1, /* Elements count */ + &asn_SPC_value_specs_52 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_40 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_40 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2nodeComponentConfigUpdateAck_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_51, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_52, + select_E2nodeComponentConfigUpdateAck_ItemIEs_value_type, + { &asn_OER_memb_value_constr_52, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_oer_constraints_t asn_OER_memb_id_constr_42 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_42 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_43 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_43 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_49[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_44 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_44 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 = { + sizeof(struct E2nodeComponentConfigUpdateAck_ItemIEs), + offsetof(struct E2nodeComponentConfigUpdateAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigUpdateAck_ItemIEs_tag2el_49, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_46 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_46 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs = { + "E2nodeComponentConfigUpdateAck-ItemIEs", + "E2nodeComponentConfigUpdateAck-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49, + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49) + /sizeof(asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs_tags_49[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_47 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_47 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_56[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, choice.E2nodeComponentConfigRemovalAck_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemovalAck_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemovalAck-Item" + }, }; -static asn_oer_constraints_t asn_OER_memb_value_constr_48 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_48 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* E2nodeComponentConfigRemovalAck-Item */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_50 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_50 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { + sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, _asn_ctx), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs__value, present), + sizeof(((struct E2nodeComponentConfigRemovalAck_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_56, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_51 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_51 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_56 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_56, + 1, /* Elements count */ + &asn_SPC_value_specs_56 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_52 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_52 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_E2nodeComponentConfigRemovalAck_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_55, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_56, + select_E2nodeComponentConfigRemovalAck_ItemIEs_value_type, + { &asn_OER_memb_value_constr_56, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_oer_constraints_t asn_OER_memb_id_constr_54 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_54 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_55 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_55 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_53[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_56 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_56 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 = { + sizeof(struct E2nodeComponentConfigRemovalAck_ItemIEs), + offsetof(struct E2nodeComponentConfigRemovalAck_ItemIEs, _asn_ctx), + asn_MAP_E2nodeComponentConfigRemovalAck_ItemIEs_tag2el_53, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_58 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_58 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs = { + "E2nodeComponentConfigRemovalAck-ItemIEs", + "E2nodeComponentConfigRemovalAck-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53, + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[0]), /* 1 */ + asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53, /* Same as above */ + sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53) + /sizeof(asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs_tags_53[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_59 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_59 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_60[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunction_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunction-Item" + }, }; -static asn_oer_constraints_t asn_OER_memb_value_constr_60 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_60 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_62 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_62 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { + sizeof(struct RANfunction_ItemIEs__value), + offsetof(struct RANfunction_ItemIEs__value, _asn_ctx), + offsetof(struct RANfunction_ItemIEs__value, present), + sizeof(((struct RANfunction_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_60, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_63 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_63 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_60 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_60, + 1, /* Elements count */ + &asn_SPC_value_specs_60 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_64 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_64 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_57[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_RANfunction_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_59, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_60, + select_RANfunction_ItemIEs_value_type, + { &asn_OER_memb_value_constr_60, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_oer_constraints_t asn_OER_memb_id_constr_66 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_66 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_57[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_67 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_67 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_57[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_68 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_68 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_57 = { + sizeof(struct RANfunction_ItemIEs), + offsetof(struct RANfunction_ItemIEs, _asn_ctx), + asn_MAP_RANfunction_ItemIEs_tag2el_57, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_70 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_70 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = { + "RANfunction-ItemIEs", + "RANfunction-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RANfunction_ItemIEs_tags_57, + sizeof(asn_DEF_RANfunction_ItemIEs_tags_57) + /sizeof(asn_DEF_RANfunction_ItemIEs_tags_57[0]), /* 1 */ + asn_DEF_RANfunction_ItemIEs_tags_57, /* Same as above */ + sizeof(asn_DEF_RANfunction_ItemIEs_tags_57) + /sizeof(asn_DEF_RANfunction_ItemIEs_tags_57[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANfunction_ItemIEs_57, + 3, /* Elements count */ + &asn_SPC_RANfunction_ItemIEs_specs_57 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_71 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_71 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_64[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctionID_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunctionID-Item" + }, }; -static asn_oer_constraints_t asn_OER_memb_value_constr_72 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_72 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_74 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_74 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { + sizeof(struct RANfunctionID_ItemIEs__value), + offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx), + offsetof(struct RANfunctionID_ItemIEs__value, present), + sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_64, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_75 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_75 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_64 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_64, + 1, /* Elements count */ + &asn_SPC_value_specs_64 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_76 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_76 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_61[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_RANfunctionID_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_63, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_64, + select_RANfunctionID_ItemIEs_value_type, + { &asn_OER_memb_value_constr_64, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_oer_constraints_t asn_OER_memb_id_constr_78 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_78 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_61[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_79 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_79 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_61[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_80 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_80 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_61 = { + sizeof(struct RANfunctionID_ItemIEs), + offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), + asn_MAP_RANfunctionID_ItemIEs_tag2el_61, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_82 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_82 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = { + "RANfunctionID-ItemIEs", + "RANfunctionID-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RANfunctionID_ItemIEs_tags_61, + sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61) + /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61[0]), /* 1 */ + asn_DEF_RANfunctionID_ItemIEs_tags_61, /* Same as above */ + sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61) + /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_61[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANfunctionID_ItemIEs_61, + 3, /* Elements count */ + &asn_SPC_RANfunctionID_ItemIEs_specs_61 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_83 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_83 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_68[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RANfunctionIDcause_Item, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunctionIDcause-Item" + }, }; -static asn_oer_constraints_t asn_OER_memb_value_constr_84 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_84 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_86 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_86 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { + sizeof(struct RANfunctionIDcause_ItemIEs__value), + offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx), + offsetof(struct RANfunctionIDcause_ItemIEs__value, present), + sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present), + asn_MAP_value_tag2el_68, + 1, /* Count of tags in the map */ + 0, 0, + -1 /* Extensions start */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_87 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_87 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_68 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_68, + 1, /* Elements count */ + &asn_SPC_value_specs_68 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_88 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_88 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_65[] = { + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_RANfunctionIDcause_ItemIEs_criticality_type, + { &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_68, + select_RANfunctionIDcause_ItemIEs_value_type, + { &asn_OER_memb_value_constr_68, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_oer_constraints_t asn_OER_memb_id_constr_90 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_90 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_91 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_91 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_65[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_92 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_92 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 = { + sizeof(struct RANfunctionIDcause_ItemIEs), + offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), + asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_65, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_94 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_94 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = { + "RANfunctionIDcause-ItemIEs", + "RANfunctionIDcause-ItemIEs", + &asn_OP_SEQUENCE, + asn_DEF_RANfunctionIDcause_ItemIEs_tags_65, + sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65) + /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[0]), /* 1 */ + asn_DEF_RANfunctionIDcause_ItemIEs_tags_65, /* Same as above */ + sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65) + /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_65[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RANfunctionIDcause_ItemIEs_65, + 3, /* Elements count */ + &asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_95 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_95 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +static asn_TYPE_member_t asn_MBR_value_72[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscriptionDetails), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICsubscriptionDetails, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICsubscriptionDetails" + }, }; -static asn_oer_constraints_t asn_OER_memb_value_constr_96 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_96 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0, 2 }; +static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */ }; -static asn_oer_constraints_t asn_OER_memb_id_constr_98 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_98 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { + sizeof(struct RICsubscriptionRequest_IEs__value), + offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionRequest_IEs__value, present), + sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present), + asn_MAP_value_tag2el_72, + 3, /* Count of tags in the map */ + asn_MAP_value_to_canonical_72, + asn_MAP_value_from_canonical_72, + -1 /* Extensions start */ }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_99 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_99 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static /* Use -fall-defs-global to expose */ +asn_TYPE_descriptor_t asn_DEF_value_72 = { + "value", + "value", + &asn_OP_OPEN_TYPE, + 0, /* No effective tags (pointer) */ + 0, /* No effective tags (count) */ + 0, /* No tags (pointer) */ + 0, /* No tags (count) */ + { 0, 0, OPEN_TYPE_constraint }, + asn_MBR_value_72, + 3, /* Elements count */ + &asn_SPC_value_specs_72 /* Additional specs */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_100 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_100 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ + +asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_69[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_IDE2, + 0, + { &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, + 0, 0, /* No default value */ + "id" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_CriticalityE2, + select_RICsubscriptionRequest_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_71, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, + 0, 0, /* No default value */ + "criticality" + }, + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_value_72, + select_RICsubscriptionRequest_IEs_value_type, + { &asn_OER_memb_value_constr_72, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, + 0, 0, /* No default value */ + "value" + }, }; -static asn_oer_constraints_t asn_OER_memb_id_constr_102 CC_NOTUSED = { - { 2, 1 } /* (0..65535) */, - -1}; -static asn_per_constraints_t asn_PER_memb_id_constr_102 CC_NOTUSED = { - { APC_CONSTRAINED, 16, 16, 0, 65535 } /* (0..65535) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_69[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static asn_oer_constraints_t asn_OER_memb_criticality_constr_103 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_criticality_constr_103 CC_NOTUSED = { - { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_69[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -static asn_oer_constraints_t asn_OER_memb_value_constr_104 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_memb_value_constr_104 CC_NOTUSED = { - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_69 = { + sizeof(struct RICsubscriptionRequest_IEs), + offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), + asn_MAP_RICsubscriptionRequest_IEs_tag2el_69, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + -1, /* First extension addition */ }; -static asn_TYPE_member_t asn_MBR_value_4[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs__value, choice.RICaction_ToBeSetup_Item), +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = { + "RICsubscriptionRequest-IEs", + "RICsubscriptionRequest-IEs", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionRequest_IEs_tags_69, + sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69) + /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69[0]), /* 1 */ + asn_DEF_RICsubscriptionRequest_IEs_tags_69, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69) + /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_69[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscriptionRequest_IEs_69, + 3, /* Elements count */ + &asn_SPC_RICsubscriptionRequest_IEs_specs_69 /* Additional specs */ +}; + +static asn_TYPE_member_t asn_MBR_value_76[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_ToBeSetup_Item, + &asn_DEF_RICrequestID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-ToBeSetup-Item" + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_Admitted_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_Admitted_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-Admitted-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_NotAdmitted_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICaction_NotAdmitted_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICaction-NotAdmitted-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-ToBeSetup-Item */ +static const unsigned asn_MAP_value_to_canonical_76[] = { 1, 0, 2, 3 }; +static const unsigned asn_MAP_value_from_canonical_76[] = { 1, 0, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs__value), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_ToBeSetup_ItemIEs__value, present), - sizeof(((struct RICaction_ToBeSetup_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_4, - 1, /* Count of tags in the map */ - 0, 0, +static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { + sizeof(struct RICsubscriptionResponse_IEs__value), + offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionResponse_IEs__value, present), + sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present), + asn_MAP_value_tag2el_76, + 4, /* Count of tags in the map */ + asn_MAP_value_to_canonical_76, + asn_MAP_value_from_canonical_76, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_4 = { +asn_TYPE_descriptor_t asn_DEF_value_76 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -4341,98 +9168,136 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_4, - 1, /* Elements count */ - &asn_SPC_value_specs_4 /* Additional specs */ + asn_MBR_value_76, + 4, /* Elements count */ + &asn_SPC_value_specs_76 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_ToBeSetup_ItemIEs_1[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, id), +asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_73[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_2, &asn_PER_memb_id_constr_2, memb_id_constraint_1 }, + { &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICaction_ToBeSetup_ItemIEs_criticality_type, - { &asn_OER_memb_criticality_constr_3, &asn_PER_memb_criticality_constr_3, memb_criticality_constraint_1 }, + select_RICsubscriptionResponse_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_75, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_ToBeSetup_ItemIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_4, - select_RICaction_ToBeSetup_ItemIEs_value_type, - { &asn_OER_memb_value_constr_4, &asn_PER_memb_value_constr_4, memb_value_constraint_1 }, + &asn_DEF_value_76, + select_RICsubscriptionResponse_IEs_value_type, + { &asn_OER_memb_value_constr_76, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_73[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_73[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 = { - sizeof(struct RICaction_ToBeSetup_ItemIEs), - offsetof(struct RICaction_ToBeSetup_ItemIEs, _asn_ctx), - asn_MAP_RICaction_ToBeSetup_ItemIEs_tag2el_1, +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_73 = { + sizeof(struct RICsubscriptionResponse_IEs), + offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), + asn_MAP_RICsubscriptionResponse_IEs_tag2el_73, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_ToBeSetup_ItemIEs = { - "RICaction-ToBeSetup-ItemIEs", - "RICaction-ToBeSetup-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = { + "RICsubscriptionResponse-IEs", + "RICsubscriptionResponse-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ - asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1, /* Same as above */ - sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1) - /sizeof(asn_DEF_RICaction_ToBeSetup_ItemIEs_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionResponse_IEs_tags_73, + sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73) + /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73[0]), /* 1 */ + asn_DEF_RICsubscriptionResponse_IEs_tags_73, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73) + /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_73[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_ToBeSetup_ItemIEs_1, + asn_MBR_RICsubscriptionResponse_IEs_73, 3, /* Elements count */ - &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ + &asn_SPC_RICsubscriptionResponse_IEs_specs_73 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_8[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs__value, choice.RICaction_Admitted_Item), +static asn_TYPE_member_t asn_MBR_value_80[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_Admitted_Item, + &asn_DEF_RICrequestID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-Admitted-Item" + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CauseE2), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_CauseE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CauseE2" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnosticsE2), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnosticsE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnosticsE2" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_8[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-Admitted-Item */ +static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_80[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnosticsE2 */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_8 = { - sizeof(struct RICaction_Admitted_ItemIEs__value), - offsetof(struct RICaction_Admitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_Admitted_ItemIEs__value, present), - sizeof(((struct RICaction_Admitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_8, - 1, /* Count of tags in the map */ - 0, 0, +static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { + sizeof(struct RICsubscriptionFailure_IEs__value), + offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionFailure_IEs__value, present), + sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present), + asn_MAP_value_tag2el_80, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_80, + asn_MAP_value_from_canonical_80, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_8 = { +asn_TYPE_descriptor_t asn_DEF_value_80 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -4441,98 +9306,111 @@ asn_TYPE_descriptor_t asn_DEF_value_8 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_8, - 1, /* Elements count */ - &asn_SPC_value_specs_8 /* Additional specs */ + asn_MBR_value_80, + 4, /* Elements count */ + &asn_SPC_value_specs_80 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, id), +asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_77[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_6, &asn_PER_memb_id_constr_6, memb_id_constraint_5 }, + { &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICaction_Admitted_ItemIEs_criticality_type, - { &asn_OER_memb_criticality_constr_7, &asn_PER_memb_criticality_constr_7, memb_criticality_constraint_5 }, + select_RICsubscriptionFailure_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_79, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_Admitted_ItemIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_8, - select_RICaction_Admitted_ItemIEs_value_type, - { &asn_OER_memb_value_constr_8, &asn_PER_memb_value_constr_8, memb_value_constraint_5 }, + &asn_DEF_value_80, + select_RICsubscriptionFailure_IEs_value_type, + { &asn_OER_memb_value_constr_80, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_Admitted_ItemIEs_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_77[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_77[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_Admitted_ItemIEs_specs_5 = { - sizeof(struct RICaction_Admitted_ItemIEs), - offsetof(struct RICaction_Admitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_Admitted_ItemIEs_tag2el_5, +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_77 = { + sizeof(struct RICsubscriptionFailure_IEs), + offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), + asn_MAP_RICsubscriptionFailure_IEs_tag2el_77, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_Admitted_ItemIEs = { - "RICaction-Admitted-ItemIEs", - "RICaction-Admitted-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = { + "RICsubscriptionFailure-IEs", + "RICsubscriptionFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ - asn_DEF_RICaction_Admitted_ItemIEs_tags_5, /* Same as above */ - sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5) - /sizeof(asn_DEF_RICaction_Admitted_ItemIEs_tags_5[0]), /* 1 */ + asn_DEF_RICsubscriptionFailure_IEs_tags_77, + sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77) + /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77[0]), /* 1 */ + asn_DEF_RICsubscriptionFailure_IEs_tags_77, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77) + /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_77[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_Admitted_ItemIEs_5, + asn_MBR_RICsubscriptionFailure_IEs_77, 3, /* Elements count */ - &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ + &asn_SPC_RICsubscriptionFailure_IEs_specs_77 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_12[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs__value, choice.RICaction_NotAdmitted_Item), +static asn_TYPE_member_t asn_MBR_value_84[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICaction_NotAdmitted_Item, + &asn_DEF_RICrequestID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-NotAdmitted-Item" + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunctionID" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_12[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICaction-NotAdmitted-Item */ +static const unsigned asn_MAP_value_to_canonical_84[] = { 1, 0 }; +static const unsigned asn_MAP_value_from_canonical_84[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_12 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs__value), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, _asn_ctx), - offsetof(struct RICaction_NotAdmitted_ItemIEs__value, present), - sizeof(((struct RICaction_NotAdmitted_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_12, - 1, /* Count of tags in the map */ - 0, 0, +static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { + sizeof(struct RICsubscriptionDeleteRequest_IEs__value), + offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present), + sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present), + asn_MAP_value_tag2el_84, + 2, /* Count of tags in the map */ + asn_MAP_value_to_canonical_84, + asn_MAP_value_from_canonical_84, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_12 = { +asn_TYPE_descriptor_t asn_DEF_value_84 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -4541,98 +9419,111 @@ asn_TYPE_descriptor_t asn_DEF_value_12 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_12, - 1, /* Elements count */ - &asn_SPC_value_specs_12 /* Additional specs */ + asn_MBR_value_84, + 2, /* Elements count */ + &asn_SPC_value_specs_84 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, id), +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_81[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_10, &asn_PER_memb_id_constr_10, memb_id_constraint_9 }, + { &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICaction_NotAdmitted_ItemIEs_criticality_type, - { &asn_OER_memb_criticality_constr_11, &asn_PER_memb_criticality_constr_11, memb_criticality_constraint_9 }, + select_RICsubscriptionDeleteRequest_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_83, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICaction_NotAdmitted_ItemIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_12, - select_RICaction_NotAdmitted_ItemIEs_value_type, - { &asn_OER_memb_value_constr_12, &asn_PER_memb_value_constr_12, memb_value_constraint_9 }, + &asn_DEF_value_84, + select_RICsubscriptionDeleteRequest_IEs_value_type, + { &asn_OER_memb_value_constr_84, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_81[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 = { - sizeof(struct RICaction_NotAdmitted_ItemIEs), - offsetof(struct RICaction_NotAdmitted_ItemIEs, _asn_ctx), - asn_MAP_RICaction_NotAdmitted_ItemIEs_tag2el_9, +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81 = { + sizeof(struct RICsubscriptionDeleteRequest_IEs), + offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_81, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs = { - "RICaction-NotAdmitted-ItemIEs", - "RICaction-NotAdmitted-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = { + "RICsubscriptionDeleteRequest-IEs", + "RICsubscriptionDeleteRequest-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ - asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9, /* Same as above */ - sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9) - /sizeof(asn_DEF_RICaction_NotAdmitted_ItemIEs_tags_9[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81, + sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81) + /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_81[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICaction_NotAdmitted_ItemIEs_9, + asn_MBR_RICsubscriptionDeleteRequest_IEs_81, 3, /* Elements count */ - &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_16[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs__value, choice.RANfunction_Item), +static asn_TYPE_member_t asn_MBR_value_88[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RANfunction_Item, + &asn_DEF_RICrequestID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunction-Item" + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunctionID" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_16[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunction-Item */ +static const unsigned asn_MAP_value_to_canonical_88[] = { 1, 0 }; +static const unsigned asn_MAP_value_from_canonical_88[] = { 1, 0 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_16 = { - sizeof(struct RANfunction_ItemIEs__value), - offsetof(struct RANfunction_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunction_ItemIEs__value, present), - sizeof(((struct RANfunction_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_16, - 1, /* Count of tags in the map */ - 0, 0, +static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { + sizeof(struct RICsubscriptionDeleteResponse_IEs__value), + offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present), + sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present), + asn_MAP_value_tag2el_88, + 2, /* Count of tags in the map */ + asn_MAP_value_to_canonical_88, + asn_MAP_value_from_canonical_88, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_16 = { +asn_TYPE_descriptor_t asn_DEF_value_88 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -4641,98 +9532,136 @@ asn_TYPE_descriptor_t asn_DEF_value_16 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_16, - 1, /* Elements count */ - &asn_SPC_value_specs_16 /* Additional specs */ + asn_MBR_value_88, + 2, /* Elements count */ + &asn_SPC_value_specs_88 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, id), +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_85[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_14, &asn_PER_memb_id_constr_14, memb_id_constraint_13 }, + { &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RANfunction_ItemIEs_criticality_type, - { &asn_OER_memb_criticality_constr_15, &asn_PER_memb_criticality_constr_15, memb_criticality_constraint_13 }, + select_RICsubscriptionDeleteResponse_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_87, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunction_ItemIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_16, - select_RANfunction_ItemIEs_value_type, - { &asn_OER_memb_value_constr_16, &asn_PER_memb_value_constr_16, memb_value_constraint_13 }, + &asn_DEF_value_88, + select_RICsubscriptionDeleteResponse_IEs_value_type, + { &asn_OER_memb_value_constr_88, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunction_ItemIEs_tags_13[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunction_ItemIEs_tag2el_13[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_85[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13 = { - sizeof(struct RANfunction_ItemIEs), - offsetof(struct RANfunction_ItemIEs, _asn_ctx), - asn_MAP_RANfunction_ItemIEs_tag2el_13, +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85 = { + sizeof(struct RICsubscriptionDeleteResponse_IEs), + offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_85, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs = { - "RANfunction-ItemIEs", - "RANfunction-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = { + "RICsubscriptionDeleteResponse-IEs", + "RICsubscriptionDeleteResponse-IEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunction_ItemIEs_tags_13, - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ - asn_DEF_RANfunction_ItemIEs_tags_13, /* Same as above */ - sizeof(asn_DEF_RANfunction_ItemIEs_tags_13) - /sizeof(asn_DEF_RANfunction_ItemIEs_tags_13[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85, + sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85) + /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_85[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, + asn_MBR_RICsubscriptionDeleteResponse_IEs_85, 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_20[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs__value, choice.RANfunctionID_Item), +static asn_TYPE_member_t asn_MBR_value_92[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_RICrequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICrequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RANfunctionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RANfunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CauseE2), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_CauseE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CauseE2" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnosticsE2), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RANfunctionID_Item, + &asn_DEF_CriticalityDiagnosticsE2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionID-Item" + "CriticalityDiagnosticsE2" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_20[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionID-Item */ +static const unsigned asn_MAP_value_to_canonical_92[] = { 1, 0, 3, 2 }; +static const unsigned asn_MAP_value_from_canonical_92[] = { 1, 0, 3, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnosticsE2 */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 2, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_20 = { - sizeof(struct RANfunctionID_ItemIEs__value), - offsetof(struct RANfunctionID_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionID_ItemIEs__value, present), - sizeof(((struct RANfunctionID_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_20, - 1, /* Count of tags in the map */ - 0, 0, +static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { + sizeof(struct RICsubscriptionDeleteFailure_IEs__value), + offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present), + sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present), + asn_MAP_value_tag2el_92, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_92, + asn_MAP_value_from_canonical_92, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_20 = { +asn_TYPE_descriptor_t asn_DEF_value_92 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -4741,98 +9670,98 @@ asn_TYPE_descriptor_t asn_DEF_value_20 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_20, - 1, /* Elements count */ - &asn_SPC_value_specs_20 /* Additional specs */ + asn_MBR_value_92, + 4, /* Elements count */ + &asn_SPC_value_specs_92 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, id), +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_89[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_18, &asn_PER_memb_id_constr_18, memb_id_constraint_17 }, + { &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RANfunctionID_ItemIEs_criticality_type, - { &asn_OER_memb_criticality_constr_19, &asn_PER_memb_criticality_constr_19, memb_criticality_constraint_17 }, + select_RICsubscriptionDeleteFailure_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_91, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionID_ItemIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_20, - select_RANfunctionID_ItemIEs_value_type, - { &asn_OER_memb_value_constr_20, &asn_PER_memb_value_constr_20, memb_value_constraint_17 }, + &asn_DEF_value_92, + select_RICsubscriptionDeleteFailure_IEs_value_type, + { &asn_OER_memb_value_constr_92, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunctionID_ItemIEs_tags_17[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionID_ItemIEs_tag2el_17[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_89[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17 = { - sizeof(struct RANfunctionID_ItemIEs), - offsetof(struct RANfunctionID_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionID_ItemIEs_tag2el_17, +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89 = { + sizeof(struct RICsubscriptionDeleteFailure_IEs), + offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_89, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs = { - "RANfunctionID-ItemIEs", - "RANfunctionID-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { + "RICsubscriptionDeleteFailure-IEs", + "RICsubscriptionDeleteFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunctionID_ItemIEs_tags_17, - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ - asn_DEF_RANfunctionID_ItemIEs_tags_17, /* Same as above */ - sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17) - /sizeof(asn_DEF_RANfunctionID_ItemIEs_tags_17[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89, + sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89) + /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_89[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, + asn_MBR_RICsubscriptionDeleteFailure_IEs_89, 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_24[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs__value, choice.RANfunctionIDcause_Item), +static asn_TYPE_member_t asn_MBR_value_96[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs__value, choice.RICsubscription_List_withCause), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RANfunctionIDcause_Item, + &asn_DEF_RICsubscription_List_withCause, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionIDcause-Item" + "RICsubscription-List-withCause" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_24[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionIDcause-Item */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICsubscription-List-withCause */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_24 = { - sizeof(struct RANfunctionIDcause_ItemIEs__value), - offsetof(struct RANfunctionIDcause_ItemIEs__value, _asn_ctx), - offsetof(struct RANfunctionIDcause_ItemIEs__value, present), - sizeof(((struct RANfunctionIDcause_ItemIEs__value *)0)->present), - asn_MAP_value_tag2el_24, +static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { + sizeof(struct RICsubscriptionDeleteRequired_IEs__value), + offsetof(struct RICsubscriptionDeleteRequired_IEs__value, _asn_ctx), + offsetof(struct RICsubscriptionDeleteRequired_IEs__value, present), + sizeof(((struct RICsubscriptionDeleteRequired_IEs__value *)0)->present), + asn_MAP_value_tag2el_96, 1, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_24 = { +asn_TYPE_descriptor_t asn_DEF_value_96 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -4841,74 +9770,74 @@ asn_TYPE_descriptor_t asn_DEF_value_24 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_24, + asn_MBR_value_96, 1, /* Elements count */ - &asn_SPC_value_specs_24 /* Additional specs */ + &asn_SPC_value_specs_96 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[] = { - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, id), +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_93[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_22, &asn_PER_memb_id_constr_22, memb_id_constraint_21 }, + { &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RANfunctionIDcause_ItemIEs_criticality_type, - { &asn_OER_memb_criticality_constr_23, &asn_PER_memb_criticality_constr_23, memb_criticality_constraint_21 }, + select_RICsubscriptionDeleteRequired_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_95, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RANfunctionIDcause_ItemIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_24, - select_RANfunctionIDcause_ItemIEs_value_type, - { &asn_OER_memb_value_constr_24, &asn_PER_memb_value_constr_24, memb_value_constraint_21 }, + &asn_DEF_value_96, + select_RICsubscriptionDeleteRequired_IEs_value_type, + { &asn_OER_memb_value_constr_96, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[] = { +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_93[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 = { - sizeof(struct RANfunctionIDcause_ItemIEs), - offsetof(struct RANfunctionIDcause_ItemIEs, _asn_ctx), - asn_MAP_RANfunctionIDcause_ItemIEs_tag2el_21, +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93 = { + sizeof(struct RICsubscriptionDeleteRequired_IEs), + offsetof(struct RICsubscriptionDeleteRequired_IEs, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequired_IEs_tag2el_93, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs = { - "RANfunctionIDcause-ItemIEs", - "RANfunctionIDcause-ItemIEs", +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs = { + "RICsubscriptionDeleteRequired-IEs", + "RICsubscriptionDeleteRequired-IEs", &asn_OP_SEQUENCE, - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ - asn_DEF_RANfunctionIDcause_ItemIEs_tags_21, /* Same as above */ - sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21) - /sizeof(asn_DEF_RANfunctionIDcause_ItemIEs_tags_21[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93, + sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_IEs_tags_93[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, + asn_MBR_RICsubscriptionDeleteRequired_IEs_93, 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ + &asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_28[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICrequestID), +static asn_TYPE_member_t asn_MBR_value_100[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, &asn_DEF_RICrequestID, @@ -4917,7 +9846,7 @@ static asn_TYPE_member_t asn_MBR_value_28[] = { 0, 0, /* No default value */ "RICrequestID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RANfunctionID), + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RANfunctionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, &asn_DEF_RANfunctionID, @@ -4926,36 +9855,86 @@ static asn_TYPE_member_t asn_MBR_value_28[] = { 0, 0, /* No default value */ "RANfunctionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs__value, choice.RICsubscriptionDetails), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RICsubscriptionDetails, + &asn_DEF_RICactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICsubscriptionDetails" + "RICactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationSN), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_RICindicationSN, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICindicationSN" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationType), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + 0, + &asn_DEF_RICindicationType, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICindicationType" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationHeader), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICindicationHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICindicationHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationMessage), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICindicationMessage, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICindicationMessage" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICcallProcessID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICcallProcessID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICcallProcessID" }, }; -static const unsigned asn_MAP_value_to_canonical_28[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_28[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_28[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RICsubscriptionDetails */ +static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; +static const unsigned asn_MAP_value_from_canonical_100[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 2 }, /* RICindicationHeader */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* RICindicationMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* RICcallProcessID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_28 = { - sizeof(struct RICsubscriptionRequest_IEs__value), - offsetof(struct RICsubscriptionRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionRequest_IEs__value, present), - sizeof(((struct RICsubscriptionRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_28, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_28, - asn_MAP_value_from_canonical_28, +static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { + sizeof(struct RICindication_IEs__value), + offsetof(struct RICindication_IEs__value, _asn_ctx), + offsetof(struct RICindication_IEs__value, present), + sizeof(((struct RICindication_IEs__value *)0)->present), + asn_MAP_value_tag2el_100, + 8, /* Count of tags in the map */ + asn_MAP_value_to_canonical_100, + asn_MAP_value_from_canonical_100, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_28 = { +asn_TYPE_descriptor_t asn_DEF_value_100 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -4964,74 +9943,74 @@ asn_TYPE_descriptor_t asn_DEF_value_28 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_28, - 3, /* Elements count */ - &asn_SPC_value_specs_28 /* Additional specs */ + asn_MBR_value_100, + 8, /* Elements count */ + &asn_SPC_value_specs_100 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, id), +asn_TYPE_member_t asn_MBR_RICindication_IEs_97[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_26, &asn_PER_memb_id_constr_26, memb_id_constraint_25 }, + { &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICsubscriptionRequest_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_27, &asn_PER_memb_criticality_constr_27, memb_criticality_constraint_25 }, + select_RICindication_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_28, - select_RICsubscriptionRequest_IEs_value_type, - { &asn_OER_memb_value_constr_28, &asn_PER_memb_value_constr_28, memb_value_constraint_25 }, + &asn_DEF_value_100, + select_RICindication_IEs_value_type, + { &asn_OER_memb_value_constr_100, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionRequest_IEs_tags_25[] = { +static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_97[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionRequest_IEs_tag2el_25[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_97[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25 = { - sizeof(struct RICsubscriptionRequest_IEs), - offsetof(struct RICsubscriptionRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionRequest_IEs_tag2el_25, +asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_97 = { + sizeof(struct RICindication_IEs), + offsetof(struct RICindication_IEs, _asn_ctx), + asn_MAP_RICindication_IEs_tag2el_97, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs = { - "RICsubscriptionRequest-IEs", - "RICsubscriptionRequest-IEs", +asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = { + "RICindication-IEs", + "RICindication-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionRequest_IEs_tags_25, - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */ - asn_DEF_RICsubscriptionRequest_IEs_tags_25, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25) - /sizeof(asn_DEF_RICsubscriptionRequest_IEs_tags_25[0]), /* 1 */ + asn_DEF_RICindication_IEs_tags_97, + sizeof(asn_DEF_RICindication_IEs_tags_97) + /sizeof(asn_DEF_RICindication_IEs_tags_97[0]), /* 1 */ + asn_DEF_RICindication_IEs_tags_97, /* Same as above */ + sizeof(asn_DEF_RICindication_IEs_tags_97) + /sizeof(asn_DEF_RICindication_IEs_tags_97[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionRequest_IEs_25, + asn_MBR_RICindication_IEs_97, 3, /* Elements count */ - &asn_SPC_RICsubscriptionRequest_IEs_specs_25 /* Additional specs */ + &asn_SPC_RICindication_IEs_specs_97 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_32[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICrequestID), +static asn_TYPE_member_t asn_MBR_value_104[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, &asn_DEF_RICrequestID, @@ -5040,7 +10019,7 @@ static asn_TYPE_member_t asn_MBR_value_32[] = { 0, 0, /* No default value */ "RICrequestID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RANfunctionID), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RANfunctionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, &asn_DEF_RANfunctionID, @@ -5049,46 +10028,66 @@ static asn_TYPE_member_t asn_MBR_value_32[] = { 0, 0, /* No default value */ "RANfunctionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_Admitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcallProcessID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICcallProcessID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICcallProcessID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolHeader), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICcontrolHeader, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICcontrolHeader" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolMessage), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, - &asn_DEF_RICaction_Admitted_List, + &asn_DEF_RICcontrolMessage, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-Admitted-List" + "RICcontrolMessage" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, - &asn_DEF_RICaction_NotAdmitted_List, + &asn_DEF_RICcontrolAckRequest, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" + "RICcontrolAckRequest" }, }; -static const unsigned asn_MAP_value_to_canonical_32[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_32[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_32[] = { +static const unsigned asn_MAP_value_to_canonical_104[] = { 1, 2, 3, 4, 5, 0 }; +static const unsigned asn_MAP_value_from_canonical_104[] = { 5, 0, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-Admitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* RICaction-NotAdmitted-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -2, 0 }, /* RICcontrolMessage */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_32 = { - sizeof(struct RICsubscriptionResponse_IEs__value), - offsetof(struct RICsubscriptionResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionResponse_IEs__value, present), - sizeof(((struct RICsubscriptionResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_32, - 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_32, - asn_MAP_value_from_canonical_32, +static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { + sizeof(struct RICcontrolRequest_IEs__value), + offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx), + offsetof(struct RICcontrolRequest_IEs__value, present), + sizeof(((struct RICcontrolRequest_IEs__value *)0)->present), + asn_MAP_value_tag2el_104, + 6, /* Count of tags in the map */ + asn_MAP_value_to_canonical_104, + asn_MAP_value_from_canonical_104, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_32 = { +asn_TYPE_descriptor_t asn_DEF_value_104 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5097,74 +10096,74 @@ asn_TYPE_descriptor_t asn_DEF_value_32 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_32, - 4, /* Elements count */ - &asn_SPC_value_specs_32 /* Additional specs */ + asn_MBR_value_104, + 6, /* Elements count */ + &asn_SPC_value_specs_104 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, id), +asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_101[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_30, &asn_PER_memb_id_constr_30, memb_id_constraint_29 }, + { &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICsubscriptionResponse_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_31, &asn_PER_memb_criticality_constr_31, memb_criticality_constraint_29 }, + select_RICcontrolRequest_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_103, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_32, - select_RICsubscriptionResponse_IEs_value_type, - { &asn_OER_memb_value_constr_32, &asn_PER_memb_value_constr_32, memb_value_constraint_29 }, + &asn_DEF_value_104, + select_RICcontrolRequest_IEs_value_type, + { &asn_OER_memb_value_constr_104, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionResponse_IEs_tags_29[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_101[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionResponse_IEs_tag2el_29[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_101[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29 = { - sizeof(struct RICsubscriptionResponse_IEs), - offsetof(struct RICsubscriptionResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionResponse_IEs_tag2el_29, +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_101 = { + sizeof(struct RICcontrolRequest_IEs), + offsetof(struct RICcontrolRequest_IEs, _asn_ctx), + asn_MAP_RICcontrolRequest_IEs_tag2el_101, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs = { - "RICsubscriptionResponse-IEs", - "RICsubscriptionResponse-IEs", +asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = { + "RICcontrolRequest-IEs", + "RICcontrolRequest-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionResponse_IEs_tags_29, - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */ - asn_DEF_RICsubscriptionResponse_IEs_tags_29, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29) - /sizeof(asn_DEF_RICsubscriptionResponse_IEs_tags_29[0]), /* 1 */ + asn_DEF_RICcontrolRequest_IEs_tags_101, + sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101) + /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101[0]), /* 1 */ + asn_DEF_RICcontrolRequest_IEs_tags_101, /* Same as above */ + sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101) + /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_101[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionResponse_IEs_29, + asn_MBR_RICcontrolRequest_IEs_101, 3, /* Elements count */ - &asn_SPC_RICsubscriptionResponse_IEs_specs_29 /* Additional specs */ + &asn_SPC_RICcontrolRequest_IEs_specs_101 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_36[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICrequestID), +static asn_TYPE_member_t asn_MBR_value_108[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, &asn_DEF_RICrequestID, @@ -5173,7 +10172,7 @@ static asn_TYPE_member_t asn_MBR_value_36[] = { 0, 0, /* No default value */ "RICrequestID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RANfunctionID), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RANfunctionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, &asn_DEF_RANfunctionID, @@ -5182,46 +10181,46 @@ static asn_TYPE_member_t asn_MBR_value_36[] = { 0, 0, /* No default value */ "RANfunctionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.RICaction_NotAdmitted_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcallProcessID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, - &asn_DEF_RICaction_NotAdmitted_List, + &asn_DEF_RICcallProcessID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICaction-NotAdmitted-List" + "RICcallProcessID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs__value, choice.CriticalityDiagnosticsE2), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 0, - &asn_DEF_CriticalityDiagnosticsE2, + &asn_DEF_RICcontrolOutcome, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "CriticalityDiagnosticsE2" + "RICcontrolOutcome" }, }; -static const unsigned asn_MAP_value_to_canonical_36[] = { 1, 0, 2, 3 }; -static const unsigned asn_MAP_value_from_canonical_36[] = { 1, 0, 2, 3 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_36[] = { +static const unsigned asn_MAP_value_to_canonical_108[] = { 1, 2, 3, 0 }; +static const unsigned asn_MAP_value_from_canonical_108[] = { 3, 0, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_108[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* RICaction-NotAdmitted-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* CriticalityDiagnosticsE2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 0 }, /* RICcontrolOutcome */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_36 = { - sizeof(struct RICsubscriptionFailure_IEs__value), - offsetof(struct RICsubscriptionFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionFailure_IEs__value, present), - sizeof(((struct RICsubscriptionFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_36, +static asn_CHOICE_specifics_t asn_SPC_value_specs_108 = { + sizeof(struct RICcontrolAcknowledge_IEs__value), + offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx), + offsetof(struct RICcontrolAcknowledge_IEs__value, present), + sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present), + asn_MAP_value_tag2el_108, 4, /* Count of tags in the map */ - asn_MAP_value_to_canonical_36, - asn_MAP_value_from_canonical_36, + asn_MAP_value_to_canonical_108, + asn_MAP_value_from_canonical_108, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_36 = { +asn_TYPE_descriptor_t asn_DEF_value_108 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5230,74 +10229,74 @@ asn_TYPE_descriptor_t asn_DEF_value_36 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_36, + asn_MBR_value_108, 4, /* Elements count */ - &asn_SPC_value_specs_36 /* Additional specs */ + &asn_SPC_value_specs_108 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, id), +asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_105[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_34, &asn_PER_memb_id_constr_34, memb_id_constraint_33 }, + { &asn_OER_memb_id_constr_106, &asn_PER_memb_id_constr_106, memb_id_constraint_105 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICsubscriptionFailure_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_35, &asn_PER_memb_criticality_constr_35, memb_criticality_constraint_33 }, + select_RICcontrolAcknowledge_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_107, &asn_PER_memb_criticality_constr_107, memb_criticality_constraint_105 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_36, - select_RICsubscriptionFailure_IEs_value_type, - { &asn_OER_memb_value_constr_36, &asn_PER_memb_value_constr_36, memb_value_constraint_33 }, + &asn_DEF_value_108, + select_RICcontrolAcknowledge_IEs_value_type, + { &asn_OER_memb_value_constr_108, &asn_PER_memb_value_constr_108, memb_value_constraint_105 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionFailure_IEs_tags_33[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_105[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionFailure_IEs_tag2el_33[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_105[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33 = { - sizeof(struct RICsubscriptionFailure_IEs), - offsetof(struct RICsubscriptionFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionFailure_IEs_tag2el_33, +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_105 = { + sizeof(struct RICcontrolAcknowledge_IEs), + offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), + asn_MAP_RICcontrolAcknowledge_IEs_tag2el_105, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs = { - "RICsubscriptionFailure-IEs", - "RICsubscriptionFailure-IEs", +asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = { + "RICcontrolAcknowledge-IEs", + "RICcontrolAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionFailure_IEs_tags_33, - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */ - asn_DEF_RICsubscriptionFailure_IEs_tags_33, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33) - /sizeof(asn_DEF_RICsubscriptionFailure_IEs_tags_33[0]), /* 1 */ + asn_DEF_RICcontrolAcknowledge_IEs_tags_105, + sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105) + /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105[0]), /* 1 */ + asn_DEF_RICcontrolAcknowledge_IEs_tags_105, /* Same as above */ + sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105) + /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_105[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionFailure_IEs_33, + asn_MBR_RICcontrolAcknowledge_IEs_105, 3, /* Elements count */ - &asn_SPC_RICsubscriptionFailure_IEs_specs_33 /* Additional specs */ + &asn_SPC_RICcontrolAcknowledge_IEs_specs_105 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_40[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RICrequestID), +static asn_TYPE_member_t asn_MBR_value_112[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, &asn_DEF_RICrequestID, @@ -5306,7 +10305,7 @@ static asn_TYPE_member_t asn_MBR_value_40[] = { 0, 0, /* No default value */ "RICrequestID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs__value, choice.RANfunctionID), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RANfunctionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, &asn_DEF_RANfunctionID, @@ -5315,26 +10314,61 @@ static asn_TYPE_member_t asn_MBR_value_40[] = { 0, 0, /* No default value */ "RANfunctionID" }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcallProcessID), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICcallProcessID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICcallProcessID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.CauseE2), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_CauseE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CauseE2" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcontrolOutcome), + (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + 0, + &asn_DEF_RICcontrolOutcome, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "RICcontrolOutcome" + }, }; -static const unsigned asn_MAP_value_to_canonical_40[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_40[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_40[] = { +static const unsigned asn_MAP_value_to_canonical_112[] = { 1, 2, 4, 0, 3 }; +static const unsigned asn_MAP_value_from_canonical_112[] = { 3, 0, 1, 4, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_112[] = { { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ + { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_40 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs__value), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteRequest_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_40, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_40, - asn_MAP_value_from_canonical_40, +static asn_CHOICE_specifics_t asn_SPC_value_specs_112 = { + sizeof(struct RICcontrolFailure_IEs__value), + offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx), + offsetof(struct RICcontrolFailure_IEs__value, present), + sizeof(((struct RICcontrolFailure_IEs__value *)0)->present), + asn_MAP_value_tag2el_112, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_112, + asn_MAP_value_from_canonical_112, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_40 = { +asn_TYPE_descriptor_t asn_DEF_value_112 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5343,74 +10377,83 @@ asn_TYPE_descriptor_t asn_DEF_value_40 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_40, - 2, /* Elements count */ - &asn_SPC_value_specs_40 /* Additional specs */ + asn_MBR_value_112, + 5, /* Elements count */ + &asn_SPC_value_specs_112 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, id), +asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_109[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_38, &asn_PER_memb_id_constr_38, memb_id_constraint_37 }, + { &asn_OER_memb_id_constr_110, &asn_PER_memb_id_constr_110, memb_id_constraint_109 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICsubscriptionDeleteRequest_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_39, &asn_PER_memb_criticality_constr_39, memb_criticality_constraint_37 }, + select_RICcontrolFailure_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_111, &asn_PER_memb_criticality_constr_111, memb_criticality_constraint_109 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_40, - select_RICsubscriptionDeleteRequest_IEs_value_type, - { &asn_OER_memb_value_constr_40, &asn_PER_memb_value_constr_40, memb_value_constraint_37 }, + &asn_DEF_value_112, + select_RICcontrolFailure_IEs_value_type, + { &asn_OER_memb_value_constr_112, &asn_PER_memb_value_constr_112, memb_value_constraint_109 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[] = { +static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_109[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_109[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 = { - sizeof(struct RICsubscriptionDeleteRequest_IEs), - offsetof(struct RICsubscriptionDeleteRequest_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteRequest_IEs_tag2el_37, +asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_109 = { + sizeof(struct RICcontrolFailure_IEs), + offsetof(struct RICcontrolFailure_IEs, _asn_ctx), + asn_MAP_RICcontrolFailure_IEs_tag2el_109, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs = { - "RICsubscriptionDeleteRequest-IEs", - "RICsubscriptionDeleteRequest-IEs", +asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = { + "RICcontrolFailure-IEs", + "RICcontrolFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37, - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37) - /sizeof(asn_DEF_RICsubscriptionDeleteRequest_IEs_tags_37[0]), /* 1 */ + asn_DEF_RICcontrolFailure_IEs_tags_109, + sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109) + /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109[0]), /* 1 */ + asn_DEF_RICcontrolFailure_IEs_tags_109, /* Same as above */ + sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109) + /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_109[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteRequest_IEs_37, + asn_MBR_RICcontrolFailure_IEs_109, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37 /* Additional specs */ + &asn_SPC_RICcontrolFailure_IEs_specs_109 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_44[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RICrequestID), +static asn_TYPE_member_t asn_MBR_value_116[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.RICrequestID), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, &asn_DEF_RICrequestID, @@ -5419,7 +10462,7 @@ static asn_TYPE_member_t asn_MBR_value_44[] = { 0, 0, /* No default value */ "RICrequestID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs__value, choice.RANfunctionID), + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.RANfunctionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, &asn_DEF_RANfunctionID, @@ -5428,26 +10471,52 @@ static asn_TYPE_member_t asn_MBR_value_44[] = { 0, 0, /* No default value */ "RANfunctionID" }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.CauseE2), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_CauseE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CauseE2" + }, + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.CriticalityDiagnosticsE2), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_CriticalityDiagnosticsE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CriticalityDiagnosticsE2" + }, }; -static const unsigned asn_MAP_value_to_canonical_44[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_44[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_44[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_44 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs__value), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteResponse_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteResponse_IEs__value *)0)->present), - asn_MAP_value_tag2el_44, - 2, /* Count of tags in the map */ - asn_MAP_value_to_canonical_44, - asn_MAP_value_from_canonical_44, +static const unsigned asn_MAP_value_to_canonical_116[] = { 0, 2, 1, 4, 3 }; +static const unsigned asn_MAP_value_from_canonical_116[] = { 0, 2, 1, 4, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_116[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 1 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 0 }, /* RANfunctionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RICrequestID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* CriticalityDiagnosticsE2 */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 3, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_116 = { + sizeof(struct ErrorIndicationE2_IEs__value), + offsetof(struct ErrorIndicationE2_IEs__value, _asn_ctx), + offsetof(struct ErrorIndicationE2_IEs__value, present), + sizeof(((struct ErrorIndicationE2_IEs__value *)0)->present), + asn_MAP_value_tag2el_116, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_116, + asn_MAP_value_from_canonical_116, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_44 = { +asn_TYPE_descriptor_t asn_DEF_value_116 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5456,135 +10525,134 @@ asn_TYPE_descriptor_t asn_DEF_value_44 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_44, - 2, /* Elements count */ - &asn_SPC_value_specs_44 /* Additional specs */ + asn_MBR_value_116, + 5, /* Elements count */ + &asn_SPC_value_specs_116 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, id), +asn_TYPE_member_t asn_MBR_ErrorIndicationE2_IEs_113[] = { + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_42, &asn_PER_memb_id_constr_42, memb_id_constraint_41 }, + { &asn_OER_memb_id_constr_114, &asn_PER_memb_id_constr_114, memb_id_constraint_113 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICsubscriptionDeleteResponse_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_43, &asn_PER_memb_criticality_constr_43, memb_criticality_constraint_41 }, + select_ErrorIndicationE2_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_115, &asn_PER_memb_criticality_constr_115, memb_criticality_constraint_113 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_44, - select_RICsubscriptionDeleteResponse_IEs_value_type, - { &asn_OER_memb_value_constr_44, &asn_PER_memb_value_constr_44, memb_value_constraint_41 }, + &asn_DEF_value_116, + select_ErrorIndicationE2_IEs_value_type, + { &asn_OER_memb_value_constr_116, &asn_PER_memb_value_constr_116, memb_value_constraint_113 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[] = { +static const ber_tlv_tag_t asn_DEF_ErrorIndicationE2_IEs_tags_113[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41[] = { +static const asn_TYPE_tag2member_t asn_MAP_ErrorIndicationE2_IEs_tag2el_113[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 = { - sizeof(struct RICsubscriptionDeleteResponse_IEs), - offsetof(struct RICsubscriptionDeleteResponse_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteResponse_IEs_tag2el_41, +asn_SEQUENCE_specifics_t asn_SPC_ErrorIndicationE2_IEs_specs_113 = { + sizeof(struct ErrorIndicationE2_IEs), + offsetof(struct ErrorIndicationE2_IEs, _asn_ctx), + asn_MAP_ErrorIndicationE2_IEs_tag2el_113, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs = { - "RICsubscriptionDeleteResponse-IEs", - "RICsubscriptionDeleteResponse-IEs", +asn_TYPE_descriptor_t asn_DEF_ErrorIndicationE2_IEs = { + "ErrorIndicationE2-IEs", + "ErrorIndicationE2-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41, - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41) - /sizeof(asn_DEF_RICsubscriptionDeleteResponse_IEs_tags_41[0]), /* 1 */ + asn_DEF_ErrorIndicationE2_IEs_tags_113, + sizeof(asn_DEF_ErrorIndicationE2_IEs_tags_113) + /sizeof(asn_DEF_ErrorIndicationE2_IEs_tags_113[0]), /* 1 */ + asn_DEF_ErrorIndicationE2_IEs_tags_113, /* Same as above */ + sizeof(asn_DEF_ErrorIndicationE2_IEs_tags_113) + /sizeof(asn_DEF_ErrorIndicationE2_IEs_tags_113[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteResponse_IEs_41, + asn_MBR_ErrorIndicationE2_IEs_113, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41 /* Additional specs */ + &asn_SPC_ErrorIndicationE2_IEs_specs_113 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_48[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), +static asn_TYPE_member_t asn_MBR_value_120[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RICrequestID, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICrequestID" + "TransactionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), + -1 /* Ambiguous tag (CHOICE?) */, 0, - &asn_DEF_RANfunctionID, + &asn_DEF_GlobalE2node_ID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionID" + "GlobalE2node-ID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CauseE2), - -1 /* Ambiguous tag (CHOICE?) */, + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_CauseE2, + &asn_DEF_RANfunctions_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "CauseE2" + "RANfunctions-List" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs__value, choice.CriticalityDiagnosticsE2), + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.E2nodeComponentConfigAddition_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_CriticalityDiagnosticsE2, + &asn_DEF_E2nodeComponentConfigAddition_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "CriticalityDiagnosticsE2" + "E2nodeComponentConfigAddition-List" }, }; -static const unsigned asn_MAP_value_to_canonical_48[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_48[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_48[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnosticsE2 */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ +static const unsigned asn_MAP_value_to_canonical_120[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_120[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_120[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 1 }, /* RANfunctions-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* E2nodeComponentConfigAddition-List */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* ng-eNB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* eNB */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_48 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs__value), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, _asn_ctx), - offsetof(struct RICsubscriptionDeleteFailure_IEs__value, present), - sizeof(((struct RICsubscriptionDeleteFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_48, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_48, - asn_MAP_value_from_canonical_48, +static asn_CHOICE_specifics_t asn_SPC_value_specs_120 = { + sizeof(struct E2setupRequestIEs__value), + offsetof(struct E2setupRequestIEs__value, _asn_ctx), + offsetof(struct E2setupRequestIEs__value, present), + sizeof(((struct E2setupRequestIEs__value *)0)->present), + asn_MAP_value_tag2el_120, + 7, /* Count of tags in the map */ + asn_MAP_value_to_canonical_120, + asn_MAP_value_from_canonical_120, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_48 = { +asn_TYPE_descriptor_t asn_DEF_value_120 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5593,171 +10661,138 @@ asn_TYPE_descriptor_t asn_DEF_value_48 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_48, + asn_MBR_value_120, 4, /* Elements count */ - &asn_SPC_value_specs_48 /* Additional specs */ + &asn_SPC_value_specs_120 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, id), +asn_TYPE_member_t asn_MBR_E2setupRequestIEs_117[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_46, &asn_PER_memb_id_constr_46, memb_id_constraint_45 }, + { &asn_OER_memb_id_constr_118, &asn_PER_memb_id_constr_118, memb_id_constraint_117 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICsubscriptionDeleteFailure_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_47, &asn_PER_memb_criticality_constr_47, memb_criticality_constraint_45 }, + select_E2setupRequestIEs_criticality_type, + { &asn_OER_memb_criticality_constr_119, &asn_PER_memb_criticality_constr_119, memb_criticality_constraint_117 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_48, - select_RICsubscriptionDeleteFailure_IEs_value_type, - { &asn_OER_memb_value_constr_48, &asn_PER_memb_value_constr_48, memb_value_constraint_45 }, + &asn_DEF_value_120, + select_E2setupRequestIEs_value_type, + { &asn_OER_memb_value_constr_120, &asn_PER_memb_value_constr_120, memb_value_constraint_117 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[] = { +static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_117[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_117[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 = { - sizeof(struct RICsubscriptionDeleteFailure_IEs), - offsetof(struct RICsubscriptionDeleteFailure_IEs, _asn_ctx), - asn_MAP_RICsubscriptionDeleteFailure_IEs_tag2el_45, +asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_117 = { + sizeof(struct E2setupRequestIEs), + offsetof(struct E2setupRequestIEs, _asn_ctx), + asn_MAP_E2setupRequestIEs_tag2el_117, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs = { - "RICsubscriptionDeleteFailure-IEs", - "RICsubscriptionDeleteFailure-IEs", +asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs = { + "E2setupRequestIEs", + "E2setupRequestIEs", &asn_OP_SEQUENCE, - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45, - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */ - asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45, /* Same as above */ - sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45) - /sizeof(asn_DEF_RICsubscriptionDeleteFailure_IEs_tags_45[0]), /* 1 */ + asn_DEF_E2setupRequestIEs_tags_117, + sizeof(asn_DEF_E2setupRequestIEs_tags_117) + /sizeof(asn_DEF_E2setupRequestIEs_tags_117[0]), /* 1 */ + asn_DEF_E2setupRequestIEs_tags_117, /* Same as above */ + sizeof(asn_DEF_E2setupRequestIEs_tags_117) + /sizeof(asn_DEF_E2setupRequestIEs_tags_117[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICsubscriptionDeleteFailure_IEs_45, + asn_MBR_E2setupRequestIEs_117, 3, /* Elements count */ - &asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45 /* Additional specs */ + &asn_SPC_E2setupRequestIEs_specs_117 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_52[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICactionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), - 0, - &asn_DEF_RICactionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICactionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationSN), +static asn_TYPE_member_t asn_MBR_value_124[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.TransactionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RICindicationSN, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICindicationSN" + "TransactionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationType), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICindicationType, + &asn_DEF_GlobalRIC_ID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICindicationType" + "GlobalRIC-ID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICindicationHeader, + &asn_DEF_RANfunctionsID_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICindicationHeader" + "RANfunctionsID-List" }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICindicationMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICindicationMessage, + &asn_DEF_RANfunctionsIDcause_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICindicationMessage" + "RANfunctionsIDcause-List" }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.E2nodeComponentConfigAdditionAck_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICcallProcessID, + &asn_DEF_E2nodeComponentConfigAdditionAck_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcallProcessID" + "E2nodeComponentConfigAdditionAck-List" }, }; -static const unsigned asn_MAP_value_to_canonical_52[] = { 1, 2, 3, 5, 6, 7, 4, 0 }; -static const unsigned asn_MAP_value_from_canonical_52[] = { 7, 0, 1, 2, 6, 3, 4, 5 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_52[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 2 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 2, -1, 1 }, /* RICactionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 3, -2, 0 }, /* RICindicationSN */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 5, 0, 2 }, /* RICindicationHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 6, -1, 1 }, /* RICindicationMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 7, -2, 0 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 4, 0, 0 }, /* RICindicationType */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_124[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 3 }, /* GlobalRIC-ID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 2 }, /* RANfunctionsID-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 1 }, /* RANfunctionsIDcause-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -3, 0 } /* E2nodeComponentConfigAdditionAck-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_52 = { - sizeof(struct RICindication_IEs__value), - offsetof(struct RICindication_IEs__value, _asn_ctx), - offsetof(struct RICindication_IEs__value, present), - sizeof(((struct RICindication_IEs__value *)0)->present), - asn_MAP_value_tag2el_52, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_52, - asn_MAP_value_from_canonical_52, +static asn_CHOICE_specifics_t asn_SPC_value_specs_124 = { + sizeof(struct E2setupResponseIEs__value), + offsetof(struct E2setupResponseIEs__value, _asn_ctx), + offsetof(struct E2setupResponseIEs__value, present), + sizeof(((struct E2setupResponseIEs__value *)0)->present), + asn_MAP_value_tag2el_124, + 5, /* Count of tags in the map */ + 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_52 = { +asn_TYPE_descriptor_t asn_DEF_value_124 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5766,151 +10801,146 @@ asn_TYPE_descriptor_t asn_DEF_value_52 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_52, - 8, /* Elements count */ - &asn_SPC_value_specs_52 /* Additional specs */ + asn_MBR_value_124, + 5, /* Elements count */ + &asn_SPC_value_specs_124 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICindication_IEs_49[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, id), +asn_TYPE_member_t asn_MBR_E2setupResponseIEs_121[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_50, &asn_PER_memb_id_constr_50, memb_id_constraint_49 }, + { &asn_OER_memb_id_constr_122, &asn_PER_memb_id_constr_122, memb_id_constraint_121 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICindication_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_51, &asn_PER_memb_criticality_constr_51, memb_criticality_constraint_49 }, + select_E2setupResponseIEs_criticality_type, + { &asn_OER_memb_criticality_constr_123, &asn_PER_memb_criticality_constr_123, memb_criticality_constraint_121 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICindication_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_52, - select_RICindication_IEs_value_type, - { &asn_OER_memb_value_constr_52, &asn_PER_memb_value_constr_52, memb_value_constraint_49 }, + &asn_DEF_value_124, + select_E2setupResponseIEs_value_type, + { &asn_OER_memb_value_constr_124, &asn_PER_memb_value_constr_124, memb_value_constraint_121 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICindication_IEs_tags_49[] = { +static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_121[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICindication_IEs_tag2el_49[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_121[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49 = { - sizeof(struct RICindication_IEs), - offsetof(struct RICindication_IEs, _asn_ctx), - asn_MAP_RICindication_IEs_tag2el_49, +asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_121 = { + sizeof(struct E2setupResponseIEs), + offsetof(struct E2setupResponseIEs, _asn_ctx), + asn_MAP_E2setupResponseIEs_tag2el_121, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICindication_IEs = { - "RICindication-IEs", - "RICindication-IEs", +asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs = { + "E2setupResponseIEs", + "E2setupResponseIEs", &asn_OP_SEQUENCE, - asn_DEF_RICindication_IEs_tags_49, - sizeof(asn_DEF_RICindication_IEs_tags_49) - /sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */ - asn_DEF_RICindication_IEs_tags_49, /* Same as above */ - sizeof(asn_DEF_RICindication_IEs_tags_49) - /sizeof(asn_DEF_RICindication_IEs_tags_49[0]), /* 1 */ + asn_DEF_E2setupResponseIEs_tags_121, + sizeof(asn_DEF_E2setupResponseIEs_tags_121) + /sizeof(asn_DEF_E2setupResponseIEs_tags_121[0]), /* 1 */ + asn_DEF_E2setupResponseIEs_tags_121, /* Same as above */ + sizeof(asn_DEF_E2setupResponseIEs_tags_121) + /sizeof(asn_DEF_E2setupResponseIEs_tags_121[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICindication_IEs_49, + asn_MBR_E2setupResponseIEs_121, 3, /* Elements count */ - &asn_SPC_RICindication_IEs_specs_49 /* Additional specs */ + &asn_SPC_E2setupResponseIEs_specs_121 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_56[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RANfunctionID), +static asn_TYPE_member_t asn_MBR_value_128[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TransactionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RANfunctionID, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionID" + "TransactionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CauseE2), + -1 /* Ambiguous tag (CHOICE?) */, 0, - &asn_DEF_RICcallProcessID, + &asn_DEF_CauseE2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcallProcessID" + "CauseE2" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolHeader), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWaitE2), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, - &asn_DEF_RICcontrolHeader, + &asn_DEF_TimeToWaitE2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcontrolHeader" + "TimeToWaitE2" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolMessage), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnosticsE2), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICcontrolMessage, + &asn_DEF_CriticalityDiagnosticsE2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcontrolMessage" + "CriticalityDiagnosticsE2" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs__value, choice.RICcontrolAckRequest), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TNLinformation), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICcontrolAckRequest, + &asn_DEF_TNLinformation, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcontrolAckRequest" + "TNLinformation" }, }; -static const unsigned asn_MAP_value_to_canonical_56[] = { 1, 2, 3, 4, 5, 0 }; -static const unsigned asn_MAP_value_from_canonical_56[] = { 5, 0, 1, 2, 3, 4 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_56[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 2 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 3, -1, 1 }, /* RICcontrolHeader */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -2, 0 }, /* RICcontrolMessage */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 5, 0, 0 }, /* RICcontrolAckRequest */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ +static const unsigned asn_MAP_value_to_canonical_128[] = { 0, 2, 3, 4, 1 }; +static const unsigned asn_MAP_value_from_canonical_128[] = { 0, 4, 1, 2, 3 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_128[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWaitE2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 1 }, /* CriticalityDiagnosticsE2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -1, 0 }, /* TNLinformation */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_56 = { - sizeof(struct RICcontrolRequest_IEs__value), - offsetof(struct RICcontrolRequest_IEs__value, _asn_ctx), - offsetof(struct RICcontrolRequest_IEs__value, present), - sizeof(((struct RICcontrolRequest_IEs__value *)0)->present), - asn_MAP_value_tag2el_56, - 6, /* Count of tags in the map */ - asn_MAP_value_to_canonical_56, - asn_MAP_value_from_canonical_56, +static asn_CHOICE_specifics_t asn_SPC_value_specs_128 = { + sizeof(struct E2setupFailureIEs__value), + offsetof(struct E2setupFailureIEs__value, _asn_ctx), + offsetof(struct E2setupFailureIEs__value, present), + sizeof(((struct E2setupFailureIEs__value *)0)->present), + asn_MAP_value_tag2el_128, + 10, /* Count of tags in the map */ + asn_MAP_value_to_canonical_128, + asn_MAP_value_from_canonical_128, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_56 = { +asn_TYPE_descriptor_t asn_DEF_value_128 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -5919,141 +10949,118 @@ asn_TYPE_descriptor_t asn_DEF_value_56 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_56, - 6, /* Elements count */ - &asn_SPC_value_specs_56 /* Additional specs */ + asn_MBR_value_128, + 5, /* Elements count */ + &asn_SPC_value_specs_128 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, id), +asn_TYPE_member_t asn_MBR_E2setupFailureIEs_125[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_54, &asn_PER_memb_id_constr_54, memb_id_constraint_53 }, + { &asn_OER_memb_id_constr_126, &asn_PER_memb_id_constr_126, memb_id_constraint_125 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICcontrolRequest_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_55, &asn_PER_memb_criticality_constr_55, memb_criticality_constraint_53 }, + select_E2setupFailureIEs_criticality_type, + { &asn_OER_memb_criticality_constr_127, &asn_PER_memb_criticality_constr_127, memb_criticality_constraint_125 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_56, - select_RICcontrolRequest_IEs_value_type, - { &asn_OER_memb_value_constr_56, &asn_PER_memb_value_constr_56, memb_value_constraint_53 }, + &asn_DEF_value_128, + select_E2setupFailureIEs_value_type, + { &asn_OER_memb_value_constr_128, &asn_PER_memb_value_constr_128, memb_value_constraint_125 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolRequest_IEs_tags_53[] = { +static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_125[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolRequest_IEs_tag2el_53[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_125[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53 = { - sizeof(struct RICcontrolRequest_IEs), - offsetof(struct RICcontrolRequest_IEs, _asn_ctx), - asn_MAP_RICcontrolRequest_IEs_tag2el_53, +asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_125 = { + sizeof(struct E2setupFailureIEs), + offsetof(struct E2setupFailureIEs, _asn_ctx), + asn_MAP_E2setupFailureIEs_tag2el_125, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs = { - "RICcontrolRequest-IEs", - "RICcontrolRequest-IEs", +asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs = { + "E2setupFailureIEs", + "E2setupFailureIEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolRequest_IEs_tags_53, - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */ - asn_DEF_RICcontrolRequest_IEs_tags_53, /* Same as above */ - sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53) - /sizeof(asn_DEF_RICcontrolRequest_IEs_tags_53[0]), /* 1 */ + asn_DEF_E2setupFailureIEs_tags_125, + sizeof(asn_DEF_E2setupFailureIEs_tags_125) + /sizeof(asn_DEF_E2setupFailureIEs_tags_125[0]), /* 1 */ + asn_DEF_E2setupFailureIEs_tags_125, /* Same as above */ + sizeof(asn_DEF_E2setupFailureIEs_tags_125) + /sizeof(asn_DEF_E2setupFailureIEs_tags_125[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolRequest_IEs_53, + asn_MBR_E2setupFailureIEs_125, 3, /* Elements count */ - &asn_SPC_RICcontrolRequest_IEs_specs_53 /* Additional specs */ + &asn_SPC_E2setupFailureIEs_specs_125 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_60[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RANfunctionID), +static asn_TYPE_member_t asn_MBR_value_132[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.TransactionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcallProcessID" + "TransactionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolStatus), - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdate_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICcontrolStatus, + &asn_DEF_E2connectionUpdate_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcontrolStatus" + "E2connectionUpdate-List" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs__value, choice.RICcontrolOutcome), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs__value, choice.E2connectionUpdateRemove_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICcontrolOutcome, + &asn_DEF_E2connectionUpdateRemove_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcontrolOutcome" + "E2connectionUpdateRemove-List" }, }; -static const unsigned asn_MAP_value_to_canonical_60[] = { 1, 2, 4, 3, 0 }; -static const unsigned asn_MAP_value_from_canonical_60[] = { 4, 0, 1, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_60[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 3, 0, 0 }, /* RICcontrolStatus */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RICrequestID */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_132[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* E2connectionUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* E2connectionUpdateRemove-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_60 = { - sizeof(struct RICcontrolAcknowledge_IEs__value), - offsetof(struct RICcontrolAcknowledge_IEs__value, _asn_ctx), - offsetof(struct RICcontrolAcknowledge_IEs__value, present), - sizeof(((struct RICcontrolAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_60, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_60, - asn_MAP_value_from_canonical_60, +static asn_CHOICE_specifics_t asn_SPC_value_specs_132 = { + sizeof(struct E2connectionUpdate_IEs__value), + offsetof(struct E2connectionUpdate_IEs__value, _asn_ctx), + offsetof(struct E2connectionUpdate_IEs__value, present), + sizeof(((struct E2connectionUpdate_IEs__value *)0)->present), + asn_MAP_value_tag2el_132, + 3, /* Count of tags in the map */ + 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_60 = { +asn_TYPE_descriptor_t asn_DEF_value_132 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6062,145 +11069,118 @@ asn_TYPE_descriptor_t asn_DEF_value_60 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_60, - 5, /* Elements count */ - &asn_SPC_value_specs_60 /* Additional specs */ + asn_MBR_value_132, + 3, /* Elements count */ + &asn_SPC_value_specs_132 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, id), +asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_129[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_58, &asn_PER_memb_id_constr_58, memb_id_constraint_57 }, + { &asn_OER_memb_id_constr_130, &asn_PER_memb_id_constr_130, memb_id_constraint_129 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICcontrolAcknowledge_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_59, &asn_PER_memb_criticality_constr_59, memb_criticality_constraint_57 }, + select_E2connectionUpdate_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_131, &asn_PER_memb_criticality_constr_131, memb_criticality_constraint_129 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdate_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_60, - select_RICcontrolAcknowledge_IEs_value_type, - { &asn_OER_memb_value_constr_60, &asn_PER_memb_value_constr_60, memb_value_constraint_57 }, + &asn_DEF_value_132, + select_E2connectionUpdate_IEs_value_type, + { &asn_OER_memb_value_constr_132, &asn_PER_memb_value_constr_132, memb_value_constraint_129 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolAcknowledge_IEs_tags_57[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdate_IEs_tags_129[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdate_IEs_tag2el_129[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57 = { - sizeof(struct RICcontrolAcknowledge_IEs), - offsetof(struct RICcontrolAcknowledge_IEs, _asn_ctx), - asn_MAP_RICcontrolAcknowledge_IEs_tag2el_57, +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_129 = { + sizeof(struct E2connectionUpdate_IEs), + offsetof(struct E2connectionUpdate_IEs, _asn_ctx), + asn_MAP_E2connectionUpdate_IEs_tag2el_129, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs = { - "RICcontrolAcknowledge-IEs", - "RICcontrolAcknowledge-IEs", +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_IEs = { + "E2connectionUpdate-IEs", + "E2connectionUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolAcknowledge_IEs_tags_57, - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */ - asn_DEF_RICcontrolAcknowledge_IEs_tags_57, /* Same as above */ - sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57) - /sizeof(asn_DEF_RICcontrolAcknowledge_IEs_tags_57[0]), /* 1 */ + asn_DEF_E2connectionUpdate_IEs_tags_129, + sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129) + /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129[0]), /* 1 */ + asn_DEF_E2connectionUpdate_IEs_tags_129, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129) + /sizeof(asn_DEF_E2connectionUpdate_IEs_tags_129[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolAcknowledge_IEs_57, + asn_MBR_E2connectionUpdate_IEs_129, 3, /* Elements count */ - &asn_SPC_RICcontrolAcknowledge_IEs_specs_57 /* Additional specs */ + &asn_SPC_E2connectionUpdate_IEs_specs_129 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_64[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), - 0, - &asn_DEF_RICrequestID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RICrequestID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RANfunctionID), +static asn_TYPE_member_t asn_MBR_value_136[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.TransactionID), (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RANfunctionID, - 0, - { 0, 0, 0 }, - 0, 0, /* No default value */ - "RANfunctionID" - }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcallProcessID), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), - 0, - &asn_DEF_RICcallProcessID, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcallProcessID" + "TransactionID" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.CauseE2), - -1 /* Ambiguous tag (CHOICE?) */, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionUpdate_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_CauseE2, + &asn_DEF_E2connectionUpdate_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "CauseE2" + "E2connectionUpdate-List" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs__value, choice.RICcontrolOutcome), - (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs__value, choice.E2connectionSetupFailed_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RICcontrolOutcome, + &asn_DEF_E2connectionSetupFailed_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICcontrolOutcome" + "E2connectionSetupFailed-List" }, }; -static const unsigned asn_MAP_value_to_canonical_64[] = { 1, 2, 4, 0, 3 }; -static const unsigned asn_MAP_value_from_canonical_64[] = { 3, 0, 1, 4, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_64[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 2, 0, 1 }, /* RICcallProcessID */ - { (ASN_TAG_CLASS_UNIVERSAL | (4 << 2)), 4, -1, 0 }, /* RICcontrolOutcome */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 }, /* RICrequestID */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 3, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 3, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 3, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 3, 0, 0 } /* misc */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_136[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* E2connectionUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* E2connectionSetupFailed-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_64 = { - sizeof(struct RICcontrolFailure_IEs__value), - offsetof(struct RICcontrolFailure_IEs__value, _asn_ctx), - offsetof(struct RICcontrolFailure_IEs__value, present), - sizeof(((struct RICcontrolFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_64, - 9, /* Count of tags in the map */ - asn_MAP_value_to_canonical_64, - asn_MAP_value_from_canonical_64, +static asn_CHOICE_specifics_t asn_SPC_value_specs_136 = { + sizeof(struct E2connectionUpdateAck_IEs__value), + offsetof(struct E2connectionUpdateAck_IEs__value, _asn_ctx), + offsetof(struct E2connectionUpdateAck_IEs__value, present), + sizeof(((struct E2connectionUpdateAck_IEs__value *)0)->present), + asn_MAP_value_tag2el_136, + 3, /* Count of tags in the map */ + 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_64 = { +asn_TYPE_descriptor_t asn_DEF_value_136 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6209,101 +11189,101 @@ asn_TYPE_descriptor_t asn_DEF_value_64 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_64, - 5, /* Elements count */ - &asn_SPC_value_specs_64 /* Additional specs */ + asn_MBR_value_136, + 3, /* Elements count */ + &asn_SPC_value_specs_136 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, id), +asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_133[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_62, &asn_PER_memb_id_constr_62, memb_id_constraint_61 }, + { &asn_OER_memb_id_constr_134, &asn_PER_memb_id_constr_134, memb_id_constraint_133 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_RICcontrolFailure_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_63, &asn_PER_memb_criticality_constr_63, memb_criticality_constraint_61 }, + select_E2connectionUpdateAck_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_135, &asn_PER_memb_criticality_constr_135, memb_criticality_constraint_133 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateAck_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_64, - select_RICcontrolFailure_IEs_value_type, - { &asn_OER_memb_value_constr_64, &asn_PER_memb_value_constr_64, memb_value_constraint_61 }, + &asn_DEF_value_136, + select_E2connectionUpdateAck_IEs_value_type, + { &asn_OER_memb_value_constr_136, &asn_PER_memb_value_constr_136, memb_value_constraint_133 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICcontrolFailure_IEs_tags_61[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateAck_IEs_tags_133[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICcontrolFailure_IEs_tag2el_61[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateAck_IEs_tag2el_133[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61 = { - sizeof(struct RICcontrolFailure_IEs), - offsetof(struct RICcontrolFailure_IEs, _asn_ctx), - asn_MAP_RICcontrolFailure_IEs_tag2el_61, +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_133 = { + sizeof(struct E2connectionUpdateAck_IEs), + offsetof(struct E2connectionUpdateAck_IEs, _asn_ctx), + asn_MAP_E2connectionUpdateAck_IEs_tag2el_133, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs = { - "RICcontrolFailure-IEs", - "RICcontrolFailure-IEs", +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAck_IEs = { + "E2connectionUpdateAck-IEs", + "E2connectionUpdateAck-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICcontrolFailure_IEs_tags_61, - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */ - asn_DEF_RICcontrolFailure_IEs_tags_61, /* Same as above */ - sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61) - /sizeof(asn_DEF_RICcontrolFailure_IEs_tags_61[0]), /* 1 */ + asn_DEF_E2connectionUpdateAck_IEs_tags_133, + sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133) + /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133[0]), /* 1 */ + asn_DEF_E2connectionUpdateAck_IEs_tags_133, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133) + /sizeof(asn_DEF_E2connectionUpdateAck_IEs_tags_133[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICcontrolFailure_IEs_61, + asn_MBR_E2connectionUpdateAck_IEs_133, 3, /* Elements count */ - &asn_SPC_RICcontrolFailure_IEs_specs_61 /* Additional specs */ + &asn_SPC_E2connectionUpdateAck_IEs_specs_133 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_68[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.RICrequestID), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), +static asn_TYPE_member_t asn_MBR_value_140[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RICrequestID, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RICrequestID" + "TransactionID" }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.RANfunctionID), - (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.CauseE2), + -1 /* Ambiguous tag (CHOICE?) */, 0, - &asn_DEF_RANfunctionID, + &asn_DEF_CauseE2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionID" + "CauseE2" }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.CauseE2), - -1 /* Ambiguous tag (CHOICE?) */, + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.TimeToWaitE2), + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, - &asn_DEF_CauseE2, + &asn_DEF_TimeToWaitE2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "CauseE2" + "TimeToWaitE2" }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs__value, choice.CriticalityDiagnosticsE2), + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs__value, choice.CriticalityDiagnosticsE2), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, &asn_DEF_CriticalityDiagnosticsE2, @@ -6313,31 +11293,32 @@ static asn_TYPE_member_t asn_MBR_value_68[] = { "CriticalityDiagnosticsE2" }, }; -static const unsigned asn_MAP_value_to_canonical_68[] = { 1, 0, 3, 2 }; -static const unsigned asn_MAP_value_from_canonical_68[] = { 1, 0, 3, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_68[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 1, 0, 0 }, /* RANfunctionID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RICrequestID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 0 }, /* CriticalityDiagnosticsE2 */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 2, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 2, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 2, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 2, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_68 = { - sizeof(struct ErrorIndicationE2_IEs__value), - offsetof(struct ErrorIndicationE2_IEs__value, _asn_ctx), - offsetof(struct ErrorIndicationE2_IEs__value, present), - sizeof(((struct ErrorIndicationE2_IEs__value *)0)->present), - asn_MAP_value_tag2el_68, - 8, /* Count of tags in the map */ - asn_MAP_value_to_canonical_68, - asn_MAP_value_from_canonical_68, +static const unsigned asn_MAP_value_to_canonical_140[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_140[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_140[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWaitE2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnosticsE2 */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_140 = { + sizeof(struct E2connectionUpdateFailure_IEs__value), + offsetof(struct E2connectionUpdateFailure_IEs__value, _asn_ctx), + offsetof(struct E2connectionUpdateFailure_IEs__value, present), + sizeof(((struct E2connectionUpdateFailure_IEs__value *)0)->present), + asn_MAP_value_tag2el_140, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_140, + asn_MAP_value_from_canonical_140, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_68 = { +asn_TYPE_descriptor_t asn_DEF_value_140 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6346,74 +11327,83 @@ asn_TYPE_descriptor_t asn_DEF_value_68 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_68, + asn_MBR_value_140, 4, /* Elements count */ - &asn_SPC_value_specs_68 /* Additional specs */ + &asn_SPC_value_specs_140 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ErrorIndicationE2_IEs_65[] = { - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs, id), +asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_137[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_66, &asn_PER_memb_id_constr_66, memb_id_constraint_65 }, + { &asn_OER_memb_id_constr_138, &asn_PER_memb_id_constr_138, memb_id_constraint_137 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_ErrorIndicationE2_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_67, &asn_PER_memb_criticality_constr_67, memb_criticality_constraint_65 }, + select_E2connectionUpdateFailure_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_139, &asn_PER_memb_criticality_constr_139, memb_criticality_constraint_137 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ErrorIndicationE2_IEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2connectionUpdateFailure_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_68, - select_ErrorIndicationE2_IEs_value_type, - { &asn_OER_memb_value_constr_68, &asn_PER_memb_value_constr_68, memb_value_constraint_65 }, + &asn_DEF_value_140, + select_E2connectionUpdateFailure_IEs_value_type, + { &asn_OER_memb_value_constr_140, &asn_PER_memb_value_constr_140, memb_value_constraint_137 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ErrorIndicationE2_IEs_tags_65[] = { +static const ber_tlv_tag_t asn_DEF_E2connectionUpdateFailure_IEs_tags_137[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ErrorIndicationE2_IEs_tag2el_65[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2connectionUpdateFailure_IEs_tag2el_137[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ErrorIndicationE2_IEs_specs_65 = { - sizeof(struct ErrorIndicationE2_IEs), - offsetof(struct ErrorIndicationE2_IEs, _asn_ctx), - asn_MAP_ErrorIndicationE2_IEs_tag2el_65, +asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_137 = { + sizeof(struct E2connectionUpdateFailure_IEs), + offsetof(struct E2connectionUpdateFailure_IEs, _asn_ctx), + asn_MAP_E2connectionUpdateFailure_IEs_tag2el_137, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_ErrorIndicationE2_IEs = { - "ErrorIndicationE2-IEs", - "ErrorIndicationE2-IEs", +asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure_IEs = { + "E2connectionUpdateFailure-IEs", + "E2connectionUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_ErrorIndicationE2_IEs_tags_65, - sizeof(asn_DEF_ErrorIndicationE2_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndicationE2_IEs_tags_65[0]), /* 1 */ - asn_DEF_ErrorIndicationE2_IEs_tags_65, /* Same as above */ - sizeof(asn_DEF_ErrorIndicationE2_IEs_tags_65) - /sizeof(asn_DEF_ErrorIndicationE2_IEs_tags_65[0]), /* 1 */ + asn_DEF_E2connectionUpdateFailure_IEs_tags_137, + sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137) + /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137[0]), /* 1 */ + asn_DEF_E2connectionUpdateFailure_IEs_tags_137, /* Same as above */ + sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137) + /sizeof(asn_DEF_E2connectionUpdateFailure_IEs_tags_137[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ErrorIndicationE2_IEs_65, + asn_MBR_E2connectionUpdateFailure_IEs_137, 3, /* Elements count */ - &asn_SPC_ErrorIndicationE2_IEs_specs_65 /* Additional specs */ + &asn_SPC_E2connectionUpdateFailure_IEs_specs_137 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_72[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.GlobalE2node_ID), +static asn_TYPE_member_t asn_MBR_value_144[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.GlobalE2node_ID), -1 /* Ambiguous tag (CHOICE?) */, 0, &asn_DEF_GlobalE2node_ID, @@ -6422,38 +11412,69 @@ static asn_TYPE_member_t asn_MBR_value_72[] = { 0, 0, /* No default value */ "GlobalE2node-ID" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs__value, choice.RANfunctions_List), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigAddition_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigAddition_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigAddition-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigUpdate_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigUpdate_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigUpdate-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeComponentConfigRemoval_List), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeComponentConfigRemoval_List, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeComponentConfigRemoval-List" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs__value, choice.E2nodeTNLassociationRemoval_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RANfunctions_List, + &asn_DEF_E2nodeTNLassociationRemoval_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctions-List" - }, -}; -static const unsigned asn_MAP_value_to_canonical_72[] = { 1, 0 }; -static const unsigned asn_MAP_value_from_canonical_72[] = { 1, 0 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_72[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* gNB */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* en-gNB */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* ng-eNB */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 } /* eNB */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_72 = { - sizeof(struct E2setupRequestIEs__value), - offsetof(struct E2setupRequestIEs__value, _asn_ctx), - offsetof(struct E2setupRequestIEs__value, present), - sizeof(((struct E2setupRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_72, - 5, /* Count of tags in the map */ - asn_MAP_value_to_canonical_72, - asn_MAP_value_from_canonical_72, + "E2nodeTNLassociationRemoval-List" + }, +}; +static const unsigned asn_MAP_value_to_canonical_144[] = { 0, 2, 3, 4, 5, 1 }; +static const unsigned asn_MAP_value_from_canonical_144[] = { 0, 5, 1, 2, 3, 4 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_144[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 3 }, /* E2nodeComponentConfigAddition-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -1, 2 }, /* E2nodeComponentConfigUpdate-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -2, 1 }, /* E2nodeComponentConfigRemoval-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -3, 0 }, /* E2nodeTNLassociationRemoval-List */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* gNB */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* en-gNB */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* ng-eNB */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 } /* eNB */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_144 = { + sizeof(struct E2nodeConfigurationUpdate_IEs__value), + offsetof(struct E2nodeConfigurationUpdate_IEs__value, _asn_ctx), + offsetof(struct E2nodeConfigurationUpdate_IEs__value, present), + sizeof(((struct E2nodeConfigurationUpdate_IEs__value *)0)->present), + asn_MAP_value_tag2el_144, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_144, + asn_MAP_value_from_canonical_144, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_72 = { +asn_TYPE_descriptor_t asn_DEF_value_144 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6462,118 +11483,128 @@ asn_TYPE_descriptor_t asn_DEF_value_72 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_72, - 2, /* Elements count */ - &asn_SPC_value_specs_72 /* Additional specs */ + asn_MBR_value_144, + 6, /* Elements count */ + &asn_SPC_value_specs_144 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, id), +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_141[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_70, &asn_PER_memb_id_constr_70, memb_id_constraint_69 }, + { &asn_OER_memb_id_constr_142, &asn_PER_memb_id_constr_142, memb_id_constraint_141 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_E2setupRequestIEs_criticality_type, - { &asn_OER_memb_criticality_constr_71, &asn_PER_memb_criticality_constr_71, memb_criticality_constraint_69 }, + select_E2nodeConfigurationUpdate_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_143, &asn_PER_memb_criticality_constr_143, memb_criticality_constraint_141 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupRequestIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdate_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_72, - select_E2setupRequestIEs_value_type, - { &asn_OER_memb_value_constr_72, &asn_PER_memb_value_constr_72, memb_value_constraint_69 }, + &asn_DEF_value_144, + select_E2nodeConfigurationUpdate_IEs_value_type, + { &asn_OER_memb_value_constr_144, &asn_PER_memb_value_constr_144, memb_value_constraint_141 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupRequestIEs_tags_69[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupRequestIEs_tag2el_69[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_141[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69 = { - sizeof(struct E2setupRequestIEs), - offsetof(struct E2setupRequestIEs, _asn_ctx), - asn_MAP_E2setupRequestIEs_tag2el_69, +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141 = { + sizeof(struct E2nodeConfigurationUpdate_IEs), + offsetof(struct E2nodeConfigurationUpdate_IEs, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdate_IEs_tag2el_141, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs = { - "E2setupRequestIEs", - "E2setupRequestIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs = { + "E2nodeConfigurationUpdate-IEs", + "E2nodeConfigurationUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupRequestIEs_tags_69, - sizeof(asn_DEF_E2setupRequestIEs_tags_69) - /sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */ - asn_DEF_E2setupRequestIEs_tags_69, /* Same as above */ - sizeof(asn_DEF_E2setupRequestIEs_tags_69) - /sizeof(asn_DEF_E2setupRequestIEs_tags_69[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141, + sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141) + /sizeof(asn_DEF_E2nodeConfigurationUpdate_IEs_tags_141[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupRequestIEs_69, + asn_MBR_E2nodeConfigurationUpdate_IEs_141, 3, /* Elements count */ - &asn_SPC_E2setupRequestIEs_specs_69 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_76[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.GlobalRIC_ID), +static asn_TYPE_member_t asn_MBR_value_148[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigAdditionAck_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_GlobalRIC_ID, + &asn_DEF_E2nodeComponentConfigAdditionAck_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "GlobalRIC-ID" + "E2nodeComponentConfigAdditionAck-List" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsID_List), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigUpdateAck_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RANfunctionsID_List, + &asn_DEF_E2nodeComponentConfigUpdateAck_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionsID-List" + "E2nodeComponentConfigUpdateAck-List" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs__value, choice.RANfunctionsIDcause_List), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, choice.E2nodeComponentConfigRemovalAck_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_RANfunctionsIDcause_List, + &asn_DEF_E2nodeComponentConfigRemovalAck_List, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionsIDcause-List" + "E2nodeComponentConfigRemovalAck-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_76[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 2 }, /* GlobalRIC-ID */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 0 } /* RANfunctionsIDcause-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_148[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 2 }, /* E2nodeComponentConfigAdditionAck-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 1 }, /* E2nodeComponentConfigUpdateAck-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -2, 0 } /* E2nodeComponentConfigRemovalAck-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_76 = { - sizeof(struct E2setupResponseIEs__value), - offsetof(struct E2setupResponseIEs__value, _asn_ctx), - offsetof(struct E2setupResponseIEs__value, present), - sizeof(((struct E2setupResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_76, - 3, /* Count of tags in the map */ +static asn_CHOICE_specifics_t asn_SPC_value_specs_148 = { + sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value), + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, _asn_ctx), + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs__value, present), + sizeof(((struct E2nodeConfigurationUpdateAcknowledge_IEs__value *)0)->present), + asn_MAP_value_tag2el_148, + 4, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_76 = { +asn_TYPE_descriptor_t asn_DEF_value_148 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6582,74 +11613,83 @@ asn_TYPE_descriptor_t asn_DEF_value_76 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_76, - 3, /* Elements count */ - &asn_SPC_value_specs_76 /* Additional specs */ + asn_MBR_value_148, + 4, /* Elements count */ + &asn_SPC_value_specs_148 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, id), +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_74, &asn_PER_memb_id_constr_74, memb_id_constraint_73 }, + { &asn_OER_memb_id_constr_146, &asn_PER_memb_id_constr_146, memb_id_constraint_145 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_E2setupResponseIEs_criticality_type, - { &asn_OER_memb_criticality_constr_75, &asn_PER_memb_criticality_constr_75, memb_criticality_constraint_73 }, + select_E2nodeConfigurationUpdateAcknowledge_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_147, &asn_PER_memb_criticality_constr_147, memb_criticality_constraint_145 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupResponseIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_76, - select_E2setupResponseIEs_value_type, - { &asn_OER_memb_value_constr_76, &asn_PER_memb_value_constr_76, memb_value_constraint_73 }, + &asn_DEF_value_148, + select_E2nodeConfigurationUpdateAcknowledge_IEs_value_type, + { &asn_OER_memb_value_constr_148, &asn_PER_memb_value_constr_148, memb_value_constraint_145 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupResponseIEs_tags_73[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupResponseIEs_tag2el_73[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_145[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73 = { - sizeof(struct E2setupResponseIEs), - offsetof(struct E2setupResponseIEs, _asn_ctx), - asn_MAP_E2setupResponseIEs_tag2el_73, +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145 = { + sizeof(struct E2nodeConfigurationUpdateAcknowledge_IEs), + offsetof(struct E2nodeConfigurationUpdateAcknowledge_IEs, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdateAcknowledge_IEs_tag2el_145, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs = { - "E2setupResponseIEs", - "E2setupResponseIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs = { + "E2nodeConfigurationUpdateAcknowledge-IEs", + "E2nodeConfigurationUpdateAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupResponseIEs_tags_73, - sizeof(asn_DEF_E2setupResponseIEs_tags_73) - /sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */ - asn_DEF_E2setupResponseIEs_tags_73, /* Same as above */ - sizeof(asn_DEF_E2setupResponseIEs_tags_73) - /sizeof(asn_DEF_E2setupResponseIEs_tags_73[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145, + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145) + /sizeof(asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs_tags_145[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupResponseIEs_73, + asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145, 3, /* Elements count */ - &asn_SPC_E2setupResponseIEs_specs_73 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_80[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CauseE2), +static asn_TYPE_member_t asn_MBR_value_152[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.CauseE2), -1 /* Ambiguous tag (CHOICE?) */, 0, &asn_DEF_CauseE2, @@ -6658,7 +11698,7 @@ static asn_TYPE_member_t asn_MBR_value_80[] = { 0, 0, /* No default value */ "CauseE2" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.TimeToWaitE2), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.TimeToWaitE2), (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 0, &asn_DEF_TimeToWaitE2, @@ -6667,7 +11707,7 @@ static asn_TYPE_member_t asn_MBR_value_80[] = { 0, 0, /* No default value */ "TimeToWaitE2" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs__value, choice.CriticalityDiagnosticsE2), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, choice.CriticalityDiagnosticsE2), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, &asn_DEF_CriticalityDiagnosticsE2, @@ -6677,30 +11717,32 @@ static asn_TYPE_member_t asn_MBR_value_80[] = { "CriticalityDiagnosticsE2" }, }; -static const unsigned asn_MAP_value_to_canonical_80[] = { 1, 2, 0 }; -static const unsigned asn_MAP_value_from_canonical_80[] = { 2, 0, 1 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_80[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWaitE2 */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, 0, 0 }, /* CriticalityDiagnosticsE2 */ - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_80 = { - sizeof(struct E2setupFailureIEs__value), - offsetof(struct E2setupFailureIEs__value, _asn_ctx), - offsetof(struct E2setupFailureIEs__value, present), - sizeof(((struct E2setupFailureIEs__value *)0)->present), - asn_MAP_value_tag2el_80, - 7, /* Count of tags in the map */ - asn_MAP_value_to_canonical_80, - asn_MAP_value_from_canonical_80, +static const unsigned asn_MAP_value_to_canonical_152[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_152[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_152[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWaitE2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnosticsE2 */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_152 = { + sizeof(struct E2nodeConfigurationUpdateFailure_IEs__value), + offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, _asn_ctx), + offsetof(struct E2nodeConfigurationUpdateFailure_IEs__value, present), + sizeof(((struct E2nodeConfigurationUpdateFailure_IEs__value *)0)->present), + asn_MAP_value_tag2el_152, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_152, + asn_MAP_value_from_canonical_152, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_80 = { +asn_TYPE_descriptor_t asn_DEF_value_152 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6709,73 +11751,82 @@ asn_TYPE_descriptor_t asn_DEF_value_80 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_80, - 3, /* Elements count */ - &asn_SPC_value_specs_80 /* Additional specs */ + asn_MBR_value_152, + 4, /* Elements count */ + &asn_SPC_value_specs_152 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[] = { - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, id), +asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149[] = { + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_78, &asn_PER_memb_id_constr_78, memb_id_constraint_77 }, + { &asn_OER_memb_id_constr_150, &asn_PER_memb_id_constr_150, memb_id_constraint_149 }, 0, 0, /* No default value */ "id" }, - { ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, criticality), + { ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, criticality), (ASN_TAG_CLASS_CONTEXT | (1 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, - select_E2setupFailureIEs_criticality_type, - { &asn_OER_memb_criticality_constr_79, &asn_PER_memb_criticality_constr_79, memb_criticality_constraint_77 }, + select_E2nodeConfigurationUpdateFailure_IEs_criticality_type, + { &asn_OER_memb_criticality_constr_151, &asn_PER_memb_criticality_constr_151, memb_criticality_constraint_149 }, 0, 0, /* No default value */ "criticality" }, - { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2setupFailureIEs, value), + { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct E2nodeConfigurationUpdateFailure_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_80, - select_E2setupFailureIEs_value_type, - { &asn_OER_memb_value_constr_80, &asn_PER_memb_value_constr_80, memb_value_constraint_77 }, + &asn_DEF_value_152, + select_E2nodeConfigurationUpdateFailure_IEs_value_type, + { &asn_OER_memb_value_constr_152, &asn_PER_memb_value_constr_152, memb_value_constraint_149 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_E2setupFailureIEs_tags_77[] = { +static const ber_tlv_tag_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_E2setupFailureIEs_tag2el_77[] = { +static const asn_TYPE_tag2member_t asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_149[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77 = { - sizeof(struct E2setupFailureIEs), - offsetof(struct E2setupFailureIEs, _asn_ctx), - asn_MAP_E2setupFailureIEs_tag2el_77, +asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149 = { + sizeof(struct E2nodeConfigurationUpdateFailure_IEs), + offsetof(struct E2nodeConfigurationUpdateFailure_IEs, _asn_ctx), + asn_MAP_E2nodeConfigurationUpdateFailure_IEs_tag2el_149, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ }; -asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs = { - "E2setupFailureIEs", - "E2setupFailureIEs", +asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs = { + "E2nodeConfigurationUpdateFailure-IEs", + "E2nodeConfigurationUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_E2setupFailureIEs_tags_77, - sizeof(asn_DEF_E2setupFailureIEs_tags_77) - /sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */ - asn_DEF_E2setupFailureIEs_tags_77, /* Same as above */ - sizeof(asn_DEF_E2setupFailureIEs_tags_77) - /sizeof(asn_DEF_E2setupFailureIEs_tags_77[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149, + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[0]), /* 1 */ + asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149, /* Same as above */ + sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149) + /sizeof(asn_DEF_E2nodeConfigurationUpdateFailure_IEs_tags_149[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_E2setupFailureIEs_77, + asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149, 3, /* Elements count */ - &asn_SPC_E2setupFailureIEs_specs_77 /* Additional specs */ + &asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_84[] = { +static asn_TYPE_member_t asn_MBR_value_156[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs__value, choice.CauseE2), -1 /* Ambiguous tag (CHOICE?) */, 0, @@ -6786,25 +11837,27 @@ static asn_TYPE_member_t asn_MBR_value_84[] = { "CauseE2" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_84[] = { - { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequest */ - { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 0, 0, 0 }, /* ricService */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 0, 0, 0 }, /* transport */ - { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 0, 0, 0 }, /* protocol */ - { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 0, 0, 0 } /* misc */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_156[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_84 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_156 = { sizeof(struct ResetRequestIEs__value), offsetof(struct ResetRequestIEs__value, _asn_ctx), offsetof(struct ResetRequestIEs__value, present), sizeof(((struct ResetRequestIEs__value *)0)->present), - asn_MAP_value_tag2el_84, - 5, /* Count of tags in the map */ + asn_MAP_value_tag2el_156, + 7, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_84 = { +asn_TYPE_descriptor_t asn_DEF_value_156 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6813,18 +11866,18 @@ asn_TYPE_descriptor_t asn_DEF_value_84 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_84, - 1, /* Elements count */ - &asn_SPC_value_specs_84 /* Additional specs */ + asn_MBR_value_156, + 2, /* Elements count */ + &asn_SPC_value_specs_156 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[] = { +asn_TYPE_member_t asn_MBR_ResetRequestIEs_153[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_82, &asn_PER_memb_id_constr_82, memb_id_constraint_81 }, + { &asn_OER_memb_id_constr_154, &asn_PER_memb_id_constr_154, memb_id_constraint_153 }, 0, 0, /* No default value */ "id" }, @@ -6833,32 +11886,32 @@ asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, select_ResetRequestIEs_criticality_type, - { &asn_OER_memb_criticality_constr_83, &asn_PER_memb_criticality_constr_83, memb_criticality_constraint_81 }, + { &asn_OER_memb_criticality_constr_155, &asn_PER_memb_criticality_constr_155, memb_criticality_constraint_153 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetRequestIEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_84, + &asn_DEF_value_156, select_ResetRequestIEs_value_type, - { &asn_OER_memb_value_constr_84, &asn_PER_memb_value_constr_84, memb_value_constraint_81 }, + { &asn_OER_memb_value_constr_156, &asn_PER_memb_value_constr_156, memb_value_constraint_153 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_81[] = { +static const ber_tlv_tag_t asn_DEF_ResetRequestIEs_tags_153[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_81[] = { +static const asn_TYPE_tag2member_t asn_MAP_ResetRequestIEs_tag2el_153[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81 = { +asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_153 = { sizeof(struct ResetRequestIEs), offsetof(struct ResetRequestIEs, _asn_ctx), - asn_MAP_ResetRequestIEs_tag2el_81, + asn_MAP_ResetRequestIEs_tag2el_153, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ @@ -6867,19 +11920,28 @@ asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs = { "ResetRequestIEs", "ResetRequestIEs", &asn_OP_SEQUENCE, - asn_DEF_ResetRequestIEs_tags_81, - sizeof(asn_DEF_ResetRequestIEs_tags_81) - /sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */ - asn_DEF_ResetRequestIEs_tags_81, /* Same as above */ - sizeof(asn_DEF_ResetRequestIEs_tags_81) - /sizeof(asn_DEF_ResetRequestIEs_tags_81[0]), /* 1 */ + asn_DEF_ResetRequestIEs_tags_153, + sizeof(asn_DEF_ResetRequestIEs_tags_153) + /sizeof(asn_DEF_ResetRequestIEs_tags_153[0]), /* 1 */ + asn_DEF_ResetRequestIEs_tags_153, /* Same as above */ + sizeof(asn_DEF_ResetRequestIEs_tags_153) + /sizeof(asn_DEF_ResetRequestIEs_tags_153[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetRequestIEs_81, + asn_MBR_ResetRequestIEs_153, 3, /* Elements count */ - &asn_SPC_ResetRequestIEs_specs_81 /* Additional specs */ + &asn_SPC_ResetRequestIEs_specs_153 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_88[] = { +static asn_TYPE_member_t asn_MBR_value_160[] = { + { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs__value, choice.CriticalityDiagnosticsE2), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6890,21 +11952,22 @@ static asn_TYPE_member_t asn_MBR_value_88[] = { "CriticalityDiagnosticsE2" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_88[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* CriticalityDiagnosticsE2 */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_160[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* CriticalityDiagnosticsE2 */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_88 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_160 = { sizeof(struct ResetResponseIEs__value), offsetof(struct ResetResponseIEs__value, _asn_ctx), offsetof(struct ResetResponseIEs__value, present), sizeof(((struct ResetResponseIEs__value *)0)->present), - asn_MAP_value_tag2el_88, - 1, /* Count of tags in the map */ + asn_MAP_value_tag2el_160, + 2, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_88 = { +asn_TYPE_descriptor_t asn_DEF_value_160 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -6913,18 +11976,18 @@ asn_TYPE_descriptor_t asn_DEF_value_88 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_88, - 1, /* Elements count */ - &asn_SPC_value_specs_88 /* Additional specs */ + asn_MBR_value_160, + 2, /* Elements count */ + &asn_SPC_value_specs_160 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[] = { +asn_TYPE_member_t asn_MBR_ResetResponseIEs_157[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_86, &asn_PER_memb_id_constr_86, memb_id_constraint_85 }, + { &asn_OER_memb_id_constr_158, &asn_PER_memb_id_constr_158, memb_id_constraint_157 }, 0, 0, /* No default value */ "id" }, @@ -6933,32 +11996,32 @@ asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, select_ResetResponseIEs_criticality_type, - { &asn_OER_memb_criticality_constr_87, &asn_PER_memb_criticality_constr_87, memb_criticality_constraint_85 }, + { &asn_OER_memb_criticality_constr_159, &asn_PER_memb_criticality_constr_159, memb_criticality_constraint_157 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct ResetResponseIEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_88, + &asn_DEF_value_160, select_ResetResponseIEs_value_type, - { &asn_OER_memb_value_constr_88, &asn_PER_memb_value_constr_88, memb_value_constraint_85 }, + { &asn_OER_memb_value_constr_160, &asn_PER_memb_value_constr_160, memb_value_constraint_157 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_85[] = { +static const ber_tlv_tag_t asn_DEF_ResetResponseIEs_tags_157[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_85[] = { +static const asn_TYPE_tag2member_t asn_MAP_ResetResponseIEs_tag2el_157[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85 = { +asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_157 = { sizeof(struct ResetResponseIEs), offsetof(struct ResetResponseIEs, _asn_ctx), - asn_MAP_ResetResponseIEs_tag2el_85, + asn_MAP_ResetResponseIEs_tag2el_157, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ @@ -6967,19 +12030,28 @@ asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs = { "ResetResponseIEs", "ResetResponseIEs", &asn_OP_SEQUENCE, - asn_DEF_ResetResponseIEs_tags_85, - sizeof(asn_DEF_ResetResponseIEs_tags_85) - /sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */ - asn_DEF_ResetResponseIEs_tags_85, /* Same as above */ - sizeof(asn_DEF_ResetResponseIEs_tags_85) - /sizeof(asn_DEF_ResetResponseIEs_tags_85[0]), /* 1 */ + asn_DEF_ResetResponseIEs_tags_157, + sizeof(asn_DEF_ResetResponseIEs_tags_157) + /sizeof(asn_DEF_ResetResponseIEs_tags_157[0]), /* 1 */ + asn_DEF_ResetResponseIEs_tags_157, /* Same as above */ + sizeof(asn_DEF_ResetResponseIEs_tags_157) + /sizeof(asn_DEF_ResetResponseIEs_tags_157[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_ResetResponseIEs_85, + asn_MBR_ResetResponseIEs_157, 3, /* Elements count */ - &asn_SPC_ResetResponseIEs_specs_85 /* Additional specs */ + &asn_SPC_ResetResponseIEs_specs_157 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_92[] = { +static asn_TYPE_member_t asn_MBR_value_164[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs__value, choice.RANfunctions_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -6999,22 +12071,23 @@ static asn_TYPE_member_t asn_MBR_value_92[] = { "RANfunctionsID-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_92[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctions-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsID-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_164[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RANfunctions-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RANfunctionsID-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_92 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_164 = { sizeof(struct RICserviceUpdate_IEs__value), offsetof(struct RICserviceUpdate_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdate_IEs__value, present), sizeof(((struct RICserviceUpdate_IEs__value *)0)->present), - asn_MAP_value_tag2el_92, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_164, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_92 = { +asn_TYPE_descriptor_t asn_DEF_value_164 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7023,18 +12096,18 @@ asn_TYPE_descriptor_t asn_DEF_value_92 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_92, - 2, /* Elements count */ - &asn_SPC_value_specs_92 /* Additional specs */ + asn_MBR_value_164, + 3, /* Elements count */ + &asn_SPC_value_specs_164 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_161[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_90, &asn_PER_memb_id_constr_90, memb_id_constraint_89 }, + { &asn_OER_memb_id_constr_162, &asn_PER_memb_id_constr_162, memb_id_constraint_161 }, 0, 0, /* No default value */ "id" }, @@ -7043,32 +12116,32 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, select_RICserviceUpdate_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_91, &asn_PER_memb_criticality_constr_91, memb_criticality_constraint_89 }, + { &asn_OER_memb_criticality_constr_163, &asn_PER_memb_criticality_constr_163, memb_criticality_constraint_161 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_92, + &asn_DEF_value_164, select_RICserviceUpdate_IEs_value_type, - { &asn_OER_memb_value_constr_92, &asn_PER_memb_value_constr_92, memb_value_constraint_89 }, + { &asn_OER_memb_value_constr_164, &asn_PER_memb_value_constr_164, memb_value_constraint_161 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_89[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdate_IEs_tags_161[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_89[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdate_IEs_tag2el_161[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_161 = { sizeof(struct RICserviceUpdate_IEs), offsetof(struct RICserviceUpdate_IEs, _asn_ctx), - asn_MAP_RICserviceUpdate_IEs_tag2el_89, + asn_MAP_RICserviceUpdate_IEs_tag2el_161, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ @@ -7077,19 +12150,28 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs = { "RICserviceUpdate-IEs", "RICserviceUpdate-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdate_IEs_tags_89, - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */ - asn_DEF_RICserviceUpdate_IEs_tags_89, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89) - /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_89[0]), /* 1 */ + asn_DEF_RICserviceUpdate_IEs_tags_161, + sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161) + /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161[0]), /* 1 */ + asn_DEF_RICserviceUpdate_IEs_tags_161, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161) + /sizeof(asn_DEF_RICserviceUpdate_IEs_tags_161[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdate_IEs_89, + asn_MBR_RICserviceUpdate_IEs_161, 3, /* Elements count */ - &asn_SPC_RICserviceUpdate_IEs_specs_89 /* Additional specs */ + &asn_SPC_RICserviceUpdate_IEs_specs_161 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_96[] = { +static asn_TYPE_member_t asn_MBR_value_168[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs__value, choice.RANfunctionsID_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7109,22 +12191,23 @@ static asn_TYPE_member_t asn_MBR_value_96[] = { "RANfunctionsIDcause-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_96[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsID-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 0 } /* RANfunctionsIDcause-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_168[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 1 }, /* RANfunctionsID-List */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* RANfunctionsIDcause-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_96 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_168 = { sizeof(struct RICserviceUpdateAcknowledge_IEs__value), offsetof(struct RICserviceUpdateAcknowledge_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdateAcknowledge_IEs__value, present), sizeof(((struct RICserviceUpdateAcknowledge_IEs__value *)0)->present), - asn_MAP_value_tag2el_96, - 2, /* Count of tags in the map */ + asn_MAP_value_tag2el_168, + 3, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_96 = { +asn_TYPE_descriptor_t asn_DEF_value_168 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7133,18 +12216,18 @@ asn_TYPE_descriptor_t asn_DEF_value_96 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_96, - 2, /* Elements count */ - &asn_SPC_value_specs_96 /* Additional specs */ + asn_MBR_value_168, + 3, /* Elements count */ + &asn_SPC_value_specs_168 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_165[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_94, &asn_PER_memb_id_constr_94, memb_id_constraint_93 }, + { &asn_OER_memb_id_constr_166, &asn_PER_memb_id_constr_166, memb_id_constraint_165 }, 0, 0, /* No default value */ "id" }, @@ -7153,32 +12236,32 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, select_RICserviceUpdateAcknowledge_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_95, &asn_PER_memb_criticality_constr_95, memb_criticality_constraint_93 }, + { &asn_OER_memb_criticality_constr_167, &asn_PER_memb_criticality_constr_167, memb_criticality_constraint_165 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_96, + &asn_DEF_value_168, select_RICserviceUpdateAcknowledge_IEs_value_type, - { &asn_OER_memb_value_constr_96, &asn_PER_memb_value_constr_96, memb_value_constraint_93 }, + { &asn_OER_memb_value_constr_168, &asn_PER_memb_value_constr_168, memb_value_constraint_165 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_165[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165 = { sizeof(struct RICserviceUpdateAcknowledge_IEs), offsetof(struct RICserviceUpdateAcknowledge_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_93, + asn_MAP_RICserviceUpdateAcknowledge_IEs_tag2el_165, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ @@ -7187,27 +12270,36 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs = { "RICserviceUpdateAcknowledge-IEs", "RICserviceUpdateAcknowledge-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93, - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */ - asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93) - /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_93[0]), /* 1 */ + asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165, + sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[0]), /* 1 */ + asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165) + /sizeof(asn_DEF_RICserviceUpdateAcknowledge_IEs_tags_165[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateAcknowledge_IEs_93, + asn_MBR_RICserviceUpdateAcknowledge_IEs_165, 3, /* Elements count */ - &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93 /* Additional specs */ + &asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_100[] = { - { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.RANfunctionsIDcause_List), - (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), +static asn_TYPE_member_t asn_MBR_value_172[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, - &asn_DEF_RANfunctionsIDcause_List, + &asn_DEF_TransactionID, 0, { 0, 0, 0 }, 0, 0, /* No default value */ - "RANfunctionsIDcause-List" + "TransactionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.CauseE2), + -1 /* Ambiguous tag (CHOICE?) */, + 0, + &asn_DEF_CauseE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "CauseE2" }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs__value, choice.TimeToWaitE2), (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), @@ -7228,26 +12320,32 @@ static asn_TYPE_member_t asn_MBR_value_100[] = { "CriticalityDiagnosticsE2" }, }; -static const unsigned asn_MAP_value_to_canonical_100[] = { 1, 0, 2 }; -static const unsigned asn_MAP_value_from_canonical_100[] = { 1, 0, 2 }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_100[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 1, 0, 0 }, /* TimeToWaitE2 */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 1 }, /* RANfunctionsIDcause-List */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -1, 0 } /* CriticalityDiagnosticsE2 */ -}; -static asn_CHOICE_specifics_t asn_SPC_value_specs_100 = { +static const unsigned asn_MAP_value_to_canonical_172[] = { 0, 2, 3, 1 }; +static const unsigned asn_MAP_value_from_canonical_172[] = { 0, 3, 1, 2 }; +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_172[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)), 2, 0, 0 }, /* TimeToWaitE2 */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, 0, 0 }, /* CriticalityDiagnosticsE2 */ + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 1, 0, 0 }, /* ricRequest */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ricService */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 1, 0, 0 }, /* e2Node */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 1, 0, 0 }, /* transport */ + { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 1, 0, 0 }, /* protocol */ + { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 1, 0, 0 } /* misc */ +}; +static asn_CHOICE_specifics_t asn_SPC_value_specs_172 = { sizeof(struct RICserviceUpdateFailure_IEs__value), offsetof(struct RICserviceUpdateFailure_IEs__value, _asn_ctx), offsetof(struct RICserviceUpdateFailure_IEs__value, present), sizeof(((struct RICserviceUpdateFailure_IEs__value *)0)->present), - asn_MAP_value_tag2el_100, - 3, /* Count of tags in the map */ - asn_MAP_value_to_canonical_100, - asn_MAP_value_from_canonical_100, + asn_MAP_value_tag2el_172, + 9, /* Count of tags in the map */ + asn_MAP_value_to_canonical_172, + asn_MAP_value_from_canonical_172, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_100 = { +asn_TYPE_descriptor_t asn_DEF_value_172 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7256,18 +12354,18 @@ asn_TYPE_descriptor_t asn_DEF_value_100 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_100, - 3, /* Elements count */ - &asn_SPC_value_specs_100 /* Additional specs */ + asn_MBR_value_172, + 4, /* Elements count */ + &asn_SPC_value_specs_172 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[] = { +asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_169[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_98, &asn_PER_memb_id_constr_98, memb_id_constraint_97 }, + { &asn_OER_memb_id_constr_170, &asn_PER_memb_id_constr_170, memb_id_constraint_169 }, 0, 0, /* No default value */ "id" }, @@ -7276,32 +12374,32 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, select_RICserviceUpdateFailure_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_99, &asn_PER_memb_criticality_constr_99, memb_criticality_constraint_97 }, + { &asn_OER_memb_criticality_constr_171, &asn_PER_memb_criticality_constr_171, memb_criticality_constraint_169 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_100, + &asn_DEF_value_172, select_RICserviceUpdateFailure_IEs_value_type, - { &asn_OER_memb_value_constr_100, &asn_PER_memb_value_constr_100, memb_value_constraint_97 }, + { &asn_OER_memb_value_constr_172, &asn_PER_memb_value_constr_172, memb_value_constraint_169 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_97[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceUpdateFailure_IEs_tags_169[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICserviceUpdateFailure_IEs_tag2el_169[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_169 = { sizeof(struct RICserviceUpdateFailure_IEs), offsetof(struct RICserviceUpdateFailure_IEs, _asn_ctx), - asn_MAP_RICserviceUpdateFailure_IEs_tag2el_97, + asn_MAP_RICserviceUpdateFailure_IEs_tag2el_169, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ @@ -7310,19 +12408,28 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs = { "RICserviceUpdateFailure-IEs", "RICserviceUpdateFailure-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceUpdateFailure_IEs_tags_97, - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */ - asn_DEF_RICserviceUpdateFailure_IEs_tags_97, /* Same as above */ - sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97) - /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_97[0]), /* 1 */ + asn_DEF_RICserviceUpdateFailure_IEs_tags_169, + sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169) + /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169[0]), /* 1 */ + asn_DEF_RICserviceUpdateFailure_IEs_tags_169, /* Same as above */ + sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169) + /sizeof(asn_DEF_RICserviceUpdateFailure_IEs_tags_169[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceUpdateFailure_IEs_97, + asn_MBR_RICserviceUpdateFailure_IEs_169, 3, /* Elements count */ - &asn_SPC_RICserviceUpdateFailure_IEs_specs_97 /* Additional specs */ + &asn_SPC_RICserviceUpdateFailure_IEs_specs_169 /* Additional specs */ }; -static asn_TYPE_member_t asn_MBR_value_104[] = { +static asn_TYPE_member_t asn_MBR_value_176[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.TransactionID), + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), + 0, + &asn_DEF_TransactionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "TransactionID" + }, { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs__value, choice.RANfunctionsID_List), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -7333,21 +12440,22 @@ static asn_TYPE_member_t asn_MBR_value_104[] = { "RANfunctionsID-List" }, }; -static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_104[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 0 } /* RANfunctionsID-List */ +static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_176[] = { + { (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)), 0, 0, 0 }, /* TransactionID */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, 0, 0 } /* RANfunctionsID-List */ }; -static asn_CHOICE_specifics_t asn_SPC_value_specs_104 = { +static asn_CHOICE_specifics_t asn_SPC_value_specs_176 = { sizeof(struct RICserviceQuery_IEs__value), offsetof(struct RICserviceQuery_IEs__value, _asn_ctx), offsetof(struct RICserviceQuery_IEs__value, present), sizeof(((struct RICserviceQuery_IEs__value *)0)->present), - asn_MAP_value_tag2el_104, - 1, /* Count of tags in the map */ + asn_MAP_value_tag2el_176, + 2, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; static /* Use -fall-defs-global to expose */ -asn_TYPE_descriptor_t asn_DEF_value_104 = { +asn_TYPE_descriptor_t asn_DEF_value_176 = { "value", "value", &asn_OP_OPEN_TYPE, @@ -7356,18 +12464,18 @@ asn_TYPE_descriptor_t asn_DEF_value_104 = { 0, /* No tags (pointer) */ 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, - asn_MBR_value_104, - 1, /* Elements count */ - &asn_SPC_value_specs_104 /* Additional specs */ + asn_MBR_value_176, + 2, /* Elements count */ + &asn_SPC_value_specs_176 /* Additional specs */ }; -asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[] = { +asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_173[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, id), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ &asn_DEF_ProtocolIE_IDE2, 0, - { &asn_OER_memb_id_constr_102, &asn_PER_memb_id_constr_102, memb_id_constraint_101 }, + { &asn_OER_memb_id_constr_174, &asn_PER_memb_id_constr_174, memb_id_constraint_173 }, 0, 0, /* No default value */ "id" }, @@ -7376,32 +12484,32 @@ asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[] = { -1, /* IMPLICIT tag at current level */ &asn_DEF_CriticalityE2, select_RICserviceQuery_IEs_criticality_type, - { &asn_OER_memb_criticality_constr_103, &asn_PER_memb_criticality_constr_103, memb_criticality_constraint_101 }, + { &asn_OER_memb_criticality_constr_175, &asn_PER_memb_criticality_constr_175, memb_criticality_constraint_173 }, 0, 0, /* No default value */ "criticality" }, { ATF_OPEN_TYPE | ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery_IEs, value), (ASN_TAG_CLASS_CONTEXT | (2 << 2)), +1, /* EXPLICIT tag at current level */ - &asn_DEF_value_104, + &asn_DEF_value_176, select_RICserviceQuery_IEs_value_type, - { &asn_OER_memb_value_constr_104, &asn_PER_memb_value_constr_104, memb_value_constraint_101 }, + { &asn_OER_memb_value_constr_176, &asn_PER_memb_value_constr_176, memb_value_constraint_173 }, 0, 0, /* No default value */ "value" }, }; -static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_101[] = { +static const ber_tlv_tag_t asn_DEF_RICserviceQuery_IEs_tags_173[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_101[] = { +static const asn_TYPE_tag2member_t asn_MAP_RICserviceQuery_IEs_tag2el_173[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* id */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* criticality */ { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* value */ }; -asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101 = { +asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_173 = { sizeof(struct RICserviceQuery_IEs), offsetof(struct RICserviceQuery_IEs, _asn_ctx), - asn_MAP_RICserviceQuery_IEs_tag2el_101, + asn_MAP_RICserviceQuery_IEs_tag2el_173, 3, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ -1, /* First extension addition */ @@ -7410,15 +12518,15 @@ asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs = { "RICserviceQuery-IEs", "RICserviceQuery-IEs", &asn_OP_SEQUENCE, - asn_DEF_RICserviceQuery_IEs_tags_101, - sizeof(asn_DEF_RICserviceQuery_IEs_tags_101) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */ - asn_DEF_RICserviceQuery_IEs_tags_101, /* Same as above */ - sizeof(asn_DEF_RICserviceQuery_IEs_tags_101) - /sizeof(asn_DEF_RICserviceQuery_IEs_tags_101[0]), /* 1 */ + asn_DEF_RICserviceQuery_IEs_tags_173, + sizeof(asn_DEF_RICserviceQuery_IEs_tags_173) + /sizeof(asn_DEF_RICserviceQuery_IEs_tags_173[0]), /* 1 */ + asn_DEF_RICserviceQuery_IEs_tags_173, /* Same as above */ + sizeof(asn_DEF_RICserviceQuery_IEs_tags_173) + /sizeof(asn_DEF_RICserviceQuery_IEs_tags_173[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RICserviceQuery_IEs_101, + asn_MBR_RICserviceQuery_IEs_173, 3, /* Elements count */ - &asn_SPC_RICserviceQuery_IEs_specs_101 /* Additional specs */ + &asn_SPC_RICserviceQuery_IEs_specs_173 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/ProtocolIE-FieldE2.h b/src/codec_utils/E2AP/ProtocolIE-FieldE2.h index dd6583ec3..bf8e76952 100644 --- a/src/codec_utils/E2AP/ProtocolIE-FieldE2.h +++ b/src/codec_utils/E2AP/ProtocolIE-FieldE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_FieldE2_H_ @@ -23,6 +23,17 @@ #include #include "RICaction-Admitted-Item.h" #include "RICaction-NotAdmitted-Item.h" +#include "RICsubscription-withCause-Item.h" +#include "E2connectionUpdate-Item.h" +#include "E2connectionUpdateRemove-Item.h" +#include "E2connectionSetupFailed-Item.h" +#include "E2nodeComponentConfigAddition-Item.h" +#include "E2nodeComponentConfigUpdate-Item.h" +#include "E2nodeComponentConfigRemoval-Item.h" +#include "E2nodeTNLassociationRemoval-Item.h" +#include "E2nodeComponentConfigAdditionAck-Item.h" +#include "E2nodeComponentConfigUpdateAck-Item.h" +#include "E2nodeComponentConfigRemovalAck-Item.h" #include "RANfunction-Item.h" #include "RANfunctionID-Item.h" #include "RANfunctionIDcause-Item.h" @@ -31,8 +42,9 @@ #include "RICsubscriptionDetails.h" #include "RICaction-Admitted-List.h" #include "RICaction-NotAdmitted-List.h" -#include "CriticalityDiagnosticsE2.h" #include "CauseE2.h" +#include "CriticalityDiagnosticsE2.h" +#include "RICsubscription-List-withCause.h" #include "RICactionID.h" #include "RICindicationSN.h" #include "RICindicationType.h" @@ -42,14 +54,25 @@ #include "RICcontrolHeader.h" #include "RICcontrolMessage.h" #include "RICcontrolAckRequest.h" -#include "RICcontrolStatus.h" #include "RICcontrolOutcome.h" +#include "TransactionID.h" #include "GlobalE2node-ID.h" #include "RANfunctions-List.h" +#include "E2nodeComponentConfigAddition-List.h" #include "GlobalRIC-ID.h" #include "RANfunctionsID-List.h" #include "RANfunctionsIDcause-List.h" +#include "E2nodeComponentConfigAdditionAck-List.h" #include "TimeToWaitE2.h" +#include "TNLinformation.h" +#include "E2connectionUpdate-List.h" +#include "E2connectionUpdateRemove-List.h" +#include "E2connectionSetupFailed-List.h" +#include "E2nodeComponentConfigUpdate-List.h" +#include "E2nodeComponentConfigRemoval-List.h" +#include "E2nodeTNLassociationRemoval-List.h" +#include "E2nodeComponentConfigUpdateAck-List.h" +#include "E2nodeComponentConfigRemovalAck-List.h" #ifdef __cplusplus extern "C" { @@ -68,6 +91,50 @@ typedef enum RICaction_NotAdmitted_ItemIEs__value_PR { RICaction_NotAdmitted_ItemIEs__value_PR_NOTHING, /* No components present */ RICaction_NotAdmitted_ItemIEs__value_PR_RICaction_NotAdmitted_Item } RICaction_NotAdmitted_ItemIEs__value_PR; +typedef enum RICsubscription_withCause_ItemIEs__value_PR { + RICsubscription_withCause_ItemIEs__value_PR_NOTHING, /* No components present */ + RICsubscription_withCause_ItemIEs__value_PR_RICsubscription_withCause_Item +} RICsubscription_withCause_ItemIEs__value_PR; +typedef enum E2connectionUpdate_ItemIEs__value_PR { + E2connectionUpdate_ItemIEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdate_ItemIEs__value_PR_E2connectionUpdate_Item +} E2connectionUpdate_ItemIEs__value_PR; +typedef enum E2connectionUpdateRemove_ItemIEs__value_PR { + E2connectionUpdateRemove_ItemIEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdateRemove_ItemIEs__value_PR_E2connectionUpdateRemove_Item +} E2connectionUpdateRemove_ItemIEs__value_PR; +typedef enum E2connectionSetupFailed_ItemIEs__value_PR { + E2connectionSetupFailed_ItemIEs__value_PR_NOTHING, /* No components present */ + E2connectionSetupFailed_ItemIEs__value_PR_E2connectionSetupFailed_Item +} E2connectionSetupFailed_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigAddition_ItemIEs__value_PR { + E2nodeComponentConfigAddition_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigAddition_ItemIEs__value_PR_E2nodeComponentConfigAddition_Item +} E2nodeComponentConfigAddition_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigUpdate_ItemIEs__value_PR { + E2nodeComponentConfigUpdate_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigUpdate_ItemIEs__value_PR_E2nodeComponentConfigUpdate_Item +} E2nodeComponentConfigUpdate_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigRemoval_ItemIEs__value_PR { + E2nodeComponentConfigRemoval_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigRemoval_ItemIEs__value_PR_E2nodeComponentConfigRemoval_Item +} E2nodeComponentConfigRemoval_ItemIEs__value_PR; +typedef enum E2nodeTNLassociationRemoval_ItemIEs__value_PR { + E2nodeTNLassociationRemoval_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeTNLassociationRemoval_ItemIEs__value_PR_E2nodeTNLassociationRemoval_Item +} E2nodeTNLassociationRemoval_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigAdditionAck_ItemIEs__value_PR { + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_E2nodeComponentConfigAdditionAck_Item +} E2nodeComponentConfigAdditionAck_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigUpdateAck_ItemIEs__value_PR { + E2nodeComponentConfigUpdateAck_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigUpdateAck_ItemIEs__value_PR_E2nodeComponentConfigUpdateAck_Item +} E2nodeComponentConfigUpdateAck_ItemIEs__value_PR; +typedef enum E2nodeComponentConfigRemovalAck_ItemIEs__value_PR { + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR_NOTHING, /* No components present */ + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR_E2nodeComponentConfigRemovalAck_Item +} E2nodeComponentConfigRemovalAck_ItemIEs__value_PR; typedef enum RANfunction_ItemIEs__value_PR { RANfunction_ItemIEs__value_PR_NOTHING, /* No components present */ RANfunction_ItemIEs__value_PR_RANfunction_Item @@ -97,7 +164,7 @@ typedef enum RICsubscriptionFailure_IEs__value_PR { RICsubscriptionFailure_IEs__value_PR_NOTHING, /* No components present */ RICsubscriptionFailure_IEs__value_PR_RICrequestID, RICsubscriptionFailure_IEs__value_PR_RANfunctionID, - RICsubscriptionFailure_IEs__value_PR_RICaction_NotAdmitted_List, + RICsubscriptionFailure_IEs__value_PR_CauseE2, RICsubscriptionFailure_IEs__value_PR_CriticalityDiagnosticsE2 } RICsubscriptionFailure_IEs__value_PR; typedef enum RICsubscriptionDeleteRequest_IEs__value_PR { @@ -117,6 +184,10 @@ typedef enum RICsubscriptionDeleteFailure_IEs__value_PR { RICsubscriptionDeleteFailure_IEs__value_PR_CauseE2, RICsubscriptionDeleteFailure_IEs__value_PR_CriticalityDiagnosticsE2 } RICsubscriptionDeleteFailure_IEs__value_PR; +typedef enum RICsubscriptionDeleteRequired_IEs__value_PR { + RICsubscriptionDeleteRequired_IEs__value_PR_NOTHING, /* No components present */ + RICsubscriptionDeleteRequired_IEs__value_PR_RICsubscription_List_withCause +} RICsubscriptionDeleteRequired_IEs__value_PR; typedef enum RICindication_IEs__value_PR { RICindication_IEs__value_PR_NOTHING, /* No components present */ RICindication_IEs__value_PR_RICrequestID, @@ -142,7 +213,6 @@ typedef enum RICcontrolAcknowledge_IEs__value_PR { RICcontrolAcknowledge_IEs__value_PR_RICrequestID, RICcontrolAcknowledge_IEs__value_PR_RANfunctionID, RICcontrolAcknowledge_IEs__value_PR_RICcallProcessID, - RICcontrolAcknowledge_IEs__value_PR_RICcontrolStatus, RICcontrolAcknowledge_IEs__value_PR_RICcontrolOutcome } RICcontrolAcknowledge_IEs__value_PR; typedef enum RICcontrolFailure_IEs__value_PR { @@ -155,6 +225,7 @@ typedef enum RICcontrolFailure_IEs__value_PR { } RICcontrolFailure_IEs__value_PR; typedef enum ErrorIndicationE2_IEs__value_PR { ErrorIndicationE2_IEs__value_PR_NOTHING, /* No components present */ + ErrorIndicationE2_IEs__value_PR_TransactionID, ErrorIndicationE2_IEs__value_PR_RICrequestID, ErrorIndicationE2_IEs__value_PR_RANfunctionID, ErrorIndicationE2_IEs__value_PR_CauseE2, @@ -162,47 +233,101 @@ typedef enum ErrorIndicationE2_IEs__value_PR { } ErrorIndicationE2_IEs__value_PR; typedef enum E2setupRequestIEs__value_PR { E2setupRequestIEs__value_PR_NOTHING, /* No components present */ + E2setupRequestIEs__value_PR_TransactionID, E2setupRequestIEs__value_PR_GlobalE2node_ID, - E2setupRequestIEs__value_PR_RANfunctions_List + E2setupRequestIEs__value_PR_RANfunctions_List, + E2setupRequestIEs__value_PR_E2nodeComponentConfigAddition_List } E2setupRequestIEs__value_PR; typedef enum E2setupResponseIEs__value_PR { E2setupResponseIEs__value_PR_NOTHING, /* No components present */ + E2setupResponseIEs__value_PR_TransactionID, E2setupResponseIEs__value_PR_GlobalRIC_ID, E2setupResponseIEs__value_PR_RANfunctionsID_List, - E2setupResponseIEs__value_PR_RANfunctionsIDcause_List + E2setupResponseIEs__value_PR_RANfunctionsIDcause_List, + E2setupResponseIEs__value_PR_E2nodeComponentConfigAdditionAck_List } E2setupResponseIEs__value_PR; typedef enum E2setupFailureIEs__value_PR { E2setupFailureIEs__value_PR_NOTHING, /* No components present */ + E2setupFailureIEs__value_PR_TransactionID, E2setupFailureIEs__value_PR_CauseE2, E2setupFailureIEs__value_PR_TimeToWaitE2, - E2setupFailureIEs__value_PR_CriticalityDiagnosticsE2 + E2setupFailureIEs__value_PR_CriticalityDiagnosticsE2, + E2setupFailureIEs__value_PR_TNLinformation } E2setupFailureIEs__value_PR; +typedef enum E2connectionUpdate_IEs__value_PR { + E2connectionUpdate_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdate_IEs__value_PR_TransactionID, + E2connectionUpdate_IEs__value_PR_E2connectionUpdate_List, + E2connectionUpdate_IEs__value_PR_E2connectionUpdateRemove_List +} E2connectionUpdate_IEs__value_PR; +typedef enum E2connectionUpdateAck_IEs__value_PR { + E2connectionUpdateAck_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdateAck_IEs__value_PR_TransactionID, + E2connectionUpdateAck_IEs__value_PR_E2connectionUpdate_List, + E2connectionUpdateAck_IEs__value_PR_E2connectionSetupFailed_List +} E2connectionUpdateAck_IEs__value_PR; +typedef enum E2connectionUpdateFailure_IEs__value_PR { + E2connectionUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ + E2connectionUpdateFailure_IEs__value_PR_TransactionID, + E2connectionUpdateFailure_IEs__value_PR_CauseE2, + E2connectionUpdateFailure_IEs__value_PR_TimeToWaitE2, + E2connectionUpdateFailure_IEs__value_PR_CriticalityDiagnosticsE2 +} E2connectionUpdateFailure_IEs__value_PR; +typedef enum E2nodeConfigurationUpdate_IEs__value_PR { + E2nodeConfigurationUpdate_IEs__value_PR_NOTHING, /* No components present */ + E2nodeConfigurationUpdate_IEs__value_PR_TransactionID, + E2nodeConfigurationUpdate_IEs__value_PR_GlobalE2node_ID, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigAddition_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigUpdate_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeComponentConfigRemoval_List, + E2nodeConfigurationUpdate_IEs__value_PR_E2nodeTNLassociationRemoval_List +} E2nodeConfigurationUpdate_IEs__value_PR; +typedef enum E2nodeConfigurationUpdateAcknowledge_IEs__value_PR { + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_TransactionID, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigAdditionAck_List, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigUpdateAck_List, + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_E2nodeComponentConfigRemovalAck_List +} E2nodeConfigurationUpdateAcknowledge_IEs__value_PR; +typedef enum E2nodeConfigurationUpdateFailure_IEs__value_PR { + E2nodeConfigurationUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ + E2nodeConfigurationUpdateFailure_IEs__value_PR_TransactionID, + E2nodeConfigurationUpdateFailure_IEs__value_PR_CauseE2, + E2nodeConfigurationUpdateFailure_IEs__value_PR_TimeToWaitE2, + E2nodeConfigurationUpdateFailure_IEs__value_PR_CriticalityDiagnosticsE2 +} E2nodeConfigurationUpdateFailure_IEs__value_PR; typedef enum ResetRequestIEs__value_PR { ResetRequestIEs__value_PR_NOTHING, /* No components present */ + ResetRequestIEs__value_PR_TransactionID, ResetRequestIEs__value_PR_CauseE2 } ResetRequestIEs__value_PR; typedef enum ResetResponseIEs__value_PR { ResetResponseIEs__value_PR_NOTHING, /* No components present */ + ResetResponseIEs__value_PR_TransactionID, ResetResponseIEs__value_PR_CriticalityDiagnosticsE2 } ResetResponseIEs__value_PR; typedef enum RICserviceUpdate_IEs__value_PR { RICserviceUpdate_IEs__value_PR_NOTHING, /* No components present */ + RICserviceUpdate_IEs__value_PR_TransactionID, RICserviceUpdate_IEs__value_PR_RANfunctions_List, RICserviceUpdate_IEs__value_PR_RANfunctionsID_List } RICserviceUpdate_IEs__value_PR; typedef enum RICserviceUpdateAcknowledge_IEs__value_PR { RICserviceUpdateAcknowledge_IEs__value_PR_NOTHING, /* No components present */ + RICserviceUpdateAcknowledge_IEs__value_PR_TransactionID, RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsID_List, RICserviceUpdateAcknowledge_IEs__value_PR_RANfunctionsIDcause_List } RICserviceUpdateAcknowledge_IEs__value_PR; typedef enum RICserviceUpdateFailure_IEs__value_PR { RICserviceUpdateFailure_IEs__value_PR_NOTHING, /* No components present */ - RICserviceUpdateFailure_IEs__value_PR_RANfunctionsIDcause_List, + RICserviceUpdateFailure_IEs__value_PR_TransactionID, + RICserviceUpdateFailure_IEs__value_PR_CauseE2, RICserviceUpdateFailure_IEs__value_PR_TimeToWaitE2, RICserviceUpdateFailure_IEs__value_PR_CriticalityDiagnosticsE2 } RICserviceUpdateFailure_IEs__value_PR; typedef enum RICserviceQuery_IEs__value_PR { RICserviceQuery_IEs__value_PR_NOTHING, /* No components present */ + RICserviceQuery_IEs__value_PR_TransactionID, RICserviceQuery_IEs__value_PR_RANfunctionsID_List } RICserviceQuery_IEs__value_PR; @@ -255,6 +380,182 @@ typedef struct RICaction_NotAdmitted_ItemIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } RICaction_NotAdmitted_ItemIEs_t; +typedef struct RICsubscription_withCause_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct RICsubscription_withCause_ItemIEs__value { + RICsubscription_withCause_ItemIEs__value_PR present; + union RICsubscription_withCause_ItemIEs__value_u { + RICsubscription_withCause_Item_t RICsubscription_withCause_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_withCause_ItemIEs_t; +typedef struct E2connectionUpdate_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2connectionUpdate_ItemIEs__value { + E2connectionUpdate_ItemIEs__value_PR present; + union E2connectionUpdate_ItemIEs__value_u { + E2connectionUpdate_Item_t E2connectionUpdate_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdate_ItemIEs_t; +typedef struct E2connectionUpdateRemove_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2connectionUpdateRemove_ItemIEs__value { + E2connectionUpdateRemove_ItemIEs__value_PR present; + union E2connectionUpdateRemove_ItemIEs__value_u { + E2connectionUpdateRemove_Item_t E2connectionUpdateRemove_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdateRemove_ItemIEs_t; +typedef struct E2connectionSetupFailed_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2connectionSetupFailed_ItemIEs__value { + E2connectionSetupFailed_ItemIEs__value_PR present; + union E2connectionSetupFailed_ItemIEs__value_u { + E2connectionSetupFailed_Item_t E2connectionSetupFailed_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionSetupFailed_ItemIEs_t; +typedef struct E2nodeComponentConfigAddition_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeComponentConfigAddition_ItemIEs__value { + E2nodeComponentConfigAddition_ItemIEs__value_PR present; + union E2nodeComponentConfigAddition_ItemIEs__value_u { + E2nodeComponentConfigAddition_Item_t E2nodeComponentConfigAddition_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAddition_ItemIEs_t; +typedef struct E2nodeComponentConfigUpdate_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeComponentConfigUpdate_ItemIEs__value { + E2nodeComponentConfigUpdate_ItemIEs__value_PR present; + union E2nodeComponentConfigUpdate_ItemIEs__value_u { + E2nodeComponentConfigUpdate_Item_t E2nodeComponentConfigUpdate_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigUpdate_ItemIEs_t; +typedef struct E2nodeComponentConfigRemoval_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeComponentConfigRemoval_ItemIEs__value { + E2nodeComponentConfigRemoval_ItemIEs__value_PR present; + union E2nodeComponentConfigRemoval_ItemIEs__value_u { + E2nodeComponentConfigRemoval_Item_t E2nodeComponentConfigRemoval_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemoval_ItemIEs_t; +typedef struct E2nodeTNLassociationRemoval_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeTNLassociationRemoval_ItemIEs__value { + E2nodeTNLassociationRemoval_ItemIEs__value_PR present; + union E2nodeTNLassociationRemoval_ItemIEs__value_u { + E2nodeTNLassociationRemoval_Item_t E2nodeTNLassociationRemoval_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeTNLassociationRemoval_ItemIEs_t; +typedef struct E2nodeComponentConfigAdditionAck_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeComponentConfigAdditionAck_ItemIEs__value { + E2nodeComponentConfigAdditionAck_ItemIEs__value_PR present; + union E2nodeComponentConfigAdditionAck_ItemIEs__value_u { + E2nodeComponentConfigAdditionAck_Item_t E2nodeComponentConfigAdditionAck_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigAdditionAck_ItemIEs_t; +typedef struct E2nodeComponentConfigUpdateAck_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeComponentConfigUpdateAck_ItemIEs__value { + E2nodeComponentConfigUpdateAck_ItemIEs__value_PR present; + union E2nodeComponentConfigUpdateAck_ItemIEs__value_u { + E2nodeComponentConfigUpdateAck_Item_t E2nodeComponentConfigUpdateAck_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigUpdateAck_ItemIEs_t; +typedef struct E2nodeComponentConfigRemovalAck_ItemIEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeComponentConfigRemovalAck_ItemIEs__value { + E2nodeComponentConfigRemovalAck_ItemIEs__value_PR present; + union E2nodeComponentConfigRemovalAck_ItemIEs__value_u { + E2nodeComponentConfigRemovalAck_Item_t E2nodeComponentConfigRemovalAck_Item; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeComponentConfigRemovalAck_ItemIEs_t; typedef struct RANfunction_ItemIEs { ProtocolIE_IDE2_t id; CriticalityE2_t criticality; @@ -348,7 +649,7 @@ typedef struct RICsubscriptionFailure_IEs { union RICsubscriptionFailure_IEs__value_u { RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; - RICaction_NotAdmitted_List_t RICaction_NotAdmitted_List; + CauseE2_t CauseE2; CriticalityDiagnosticsE2_t CriticalityDiagnosticsE2; } choice; @@ -412,6 +713,22 @@ typedef struct RICsubscriptionDeleteFailure_IEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } RICsubscriptionDeleteFailure_IEs_t; +typedef struct RICsubscriptionDeleteRequired_IEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct RICsubscriptionDeleteRequired_IEs__value { + RICsubscriptionDeleteRequired_IEs__value_PR present; + union RICsubscriptionDeleteRequired_IEs__value_u { + RICsubscription_List_withCause_t RICsubscription_List_withCause; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteRequired_IEs_t; typedef struct RICindication_IEs { ProtocolIE_IDE2_t id; CriticalityE2_t criticality; @@ -465,7 +782,6 @@ typedef struct RICcontrolAcknowledge_IEs { RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; RICcallProcessID_t RICcallProcessID; - RICcontrolStatus_t RICcontrolStatus; RICcontrolOutcome_t RICcontrolOutcome; } choice; @@ -502,6 +818,7 @@ typedef struct ErrorIndicationE2_IEs { struct ErrorIndicationE2_IEs__value { ErrorIndicationE2_IEs__value_PR present; union ErrorIndicationE2_IEs__value_u { + TransactionID_t TransactionID; RICrequestID_t RICrequestID; RANfunctionID_t RANfunctionID; CauseE2_t CauseE2; @@ -521,8 +838,10 @@ typedef struct E2setupRequestIEs { struct E2setupRequestIEs__value { E2setupRequestIEs__value_PR present; union E2setupRequestIEs__value_u { + TransactionID_t TransactionID; GlobalE2node_ID_t GlobalE2node_ID; RANfunctions_List_t RANfunctions_List; + E2nodeComponentConfigAddition_List_t E2nodeComponentConfigAddition_List; } choice; /* Context for parsing across buffer boundaries */ @@ -538,9 +857,11 @@ typedef struct E2setupResponseIEs { struct E2setupResponseIEs__value { E2setupResponseIEs__value_PR present; union E2setupResponseIEs__value_u { + TransactionID_t TransactionID; GlobalRIC_ID_t GlobalRIC_ID; RANfunctionsID_List_t RANfunctionsID_List; RANfunctionsIDcause_List_t RANfunctionsIDcause_List; + E2nodeComponentConfigAdditionAck_List_t E2nodeComponentConfigAdditionAck_List; } choice; /* Context for parsing across buffer boundaries */ @@ -556,9 +877,11 @@ typedef struct E2setupFailureIEs { struct E2setupFailureIEs__value { E2setupFailureIEs__value_PR present; union E2setupFailureIEs__value_u { + TransactionID_t TransactionID; CauseE2_t CauseE2; TimeToWaitE2_t TimeToWaitE2; CriticalityDiagnosticsE2_t CriticalityDiagnosticsE2; + TNLinformation_t TNLinformation; } choice; /* Context for parsing across buffer boundaries */ @@ -568,12 +891,127 @@ typedef struct E2setupFailureIEs { /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; } E2setupFailureIEs_t; +typedef struct E2connectionUpdate_IEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2connectionUpdate_IEs__value { + E2connectionUpdate_IEs__value_PR present; + union E2connectionUpdate_IEs__value_u { + TransactionID_t TransactionID; + E2connectionUpdate_List_t E2connectionUpdate_List; + E2connectionUpdateRemove_List_t E2connectionUpdateRemove_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdate_IEs_t; +typedef struct E2connectionUpdateAck_IEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2connectionUpdateAck_IEs__value { + E2connectionUpdateAck_IEs__value_PR present; + union E2connectionUpdateAck_IEs__value_u { + TransactionID_t TransactionID; + E2connectionUpdate_List_t E2connectionUpdate_List; + E2connectionSetupFailed_List_t E2connectionSetupFailed_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdateAck_IEs_t; +typedef struct E2connectionUpdateFailure_IEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2connectionUpdateFailure_IEs__value { + E2connectionUpdateFailure_IEs__value_PR present; + union E2connectionUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; + CauseE2_t CauseE2; + TimeToWaitE2_t TimeToWaitE2; + CriticalityDiagnosticsE2_t CriticalityDiagnosticsE2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2connectionUpdateFailure_IEs_t; +typedef struct E2nodeConfigurationUpdate_IEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeConfigurationUpdate_IEs__value { + E2nodeConfigurationUpdate_IEs__value_PR present; + union E2nodeConfigurationUpdate_IEs__value_u { + TransactionID_t TransactionID; + GlobalE2node_ID_t GlobalE2node_ID; + E2nodeComponentConfigAddition_List_t E2nodeComponentConfigAddition_List; + E2nodeComponentConfigUpdate_List_t E2nodeComponentConfigUpdate_List; + E2nodeComponentConfigRemoval_List_t E2nodeComponentConfigRemoval_List; + E2nodeTNLassociationRemoval_List_t E2nodeTNLassociationRemoval_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeConfigurationUpdate_IEs_t; +typedef struct E2nodeConfigurationUpdateAcknowledge_IEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeConfigurationUpdateAcknowledge_IEs__value { + E2nodeConfigurationUpdateAcknowledge_IEs__value_PR present; + union E2nodeConfigurationUpdateAcknowledge_IEs__value_u { + TransactionID_t TransactionID; + E2nodeComponentConfigAdditionAck_List_t E2nodeComponentConfigAdditionAck_List; + E2nodeComponentConfigUpdateAck_List_t E2nodeComponentConfigUpdateAck_List; + E2nodeComponentConfigRemovalAck_List_t E2nodeComponentConfigRemovalAck_List; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeConfigurationUpdateAcknowledge_IEs_t; +typedef struct E2nodeConfigurationUpdateFailure_IEs { + ProtocolIE_IDE2_t id; + CriticalityE2_t criticality; + struct E2nodeConfigurationUpdateFailure_IEs__value { + E2nodeConfigurationUpdateFailure_IEs__value_PR present; + union E2nodeConfigurationUpdateFailure_IEs__value_u { + TransactionID_t TransactionID; + CauseE2_t CauseE2; + TimeToWaitE2_t TimeToWaitE2; + CriticalityDiagnosticsE2_t CriticalityDiagnosticsE2; + } choice; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; + } value; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} E2nodeConfigurationUpdateFailure_IEs_t; typedef struct ResetRequestIEs { ProtocolIE_IDE2_t id; CriticalityE2_t criticality; struct ResetRequestIEs__value { ResetRequestIEs__value_PR present; union ResetRequestIEs__value_u { + TransactionID_t TransactionID; CauseE2_t CauseE2; } choice; @@ -590,6 +1028,7 @@ typedef struct ResetResponseIEs { struct ResetResponseIEs__value { ResetResponseIEs__value_PR present; union ResetResponseIEs__value_u { + TransactionID_t TransactionID; CriticalityDiagnosticsE2_t CriticalityDiagnosticsE2; } choice; @@ -606,6 +1045,7 @@ typedef struct RICserviceUpdate_IEs { struct RICserviceUpdate_IEs__value { RICserviceUpdate_IEs__value_PR present; union RICserviceUpdate_IEs__value_u { + TransactionID_t TransactionID; RANfunctions_List_t RANfunctions_List; RANfunctionsID_List_t RANfunctionsID_List; } choice; @@ -623,6 +1063,7 @@ typedef struct RICserviceUpdateAcknowledge_IEs { struct RICserviceUpdateAcknowledge_IEs__value { RICserviceUpdateAcknowledge_IEs__value_PR present; union RICserviceUpdateAcknowledge_IEs__value_u { + TransactionID_t TransactionID; RANfunctionsID_List_t RANfunctionsID_List; RANfunctionsIDcause_List_t RANfunctionsIDcause_List; } choice; @@ -640,7 +1081,8 @@ typedef struct RICserviceUpdateFailure_IEs { struct RICserviceUpdateFailure_IEs__value { RICserviceUpdateFailure_IEs__value_PR present; union RICserviceUpdateFailure_IEs__value_u { - RANfunctionsIDcause_List_t RANfunctionsIDcause_List; + TransactionID_t TransactionID; + CauseE2_t CauseE2; TimeToWaitE2_t TimeToWaitE2; CriticalityDiagnosticsE2_t CriticalityDiagnosticsE2; } choice; @@ -658,6 +1100,7 @@ typedef struct RICserviceQuery_IEs { struct RICserviceQuery_IEs__value { RICserviceQuery_IEs__value_PR present; union RICserviceQuery_IEs__value_u { + TransactionID_t TransactionID; RANfunctionsID_List_t RANfunctionsID_List; } choice; @@ -679,75 +1122,129 @@ extern asn_TYPE_member_t asn_MBR_RICaction_Admitted_ItemIEs_5[3]; extern asn_TYPE_descriptor_t asn_DEF_RICaction_NotAdmitted_ItemIEs; extern asn_SEQUENCE_specifics_t asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9; extern asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_ItemIEs_9[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_ItemIEs_specs_13; +extern asn_TYPE_member_t asn_MBR_RICsubscription_withCause_ItemIEs_13[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_ItemIEs_specs_17; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_ItemIEs_17[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateRemove_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateRemove_ItemIEs_21[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionSetupFailed_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25; +extern asn_TYPE_member_t asn_MBR_E2connectionSetupFailed_ItemIEs_25[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAddition_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdate_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeTNLassociationRemoval_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41; +extern asn_TYPE_member_t asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigAdditionAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigUpdateAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeComponentConfigRemovalAck_ItemIEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53; +extern asn_TYPE_member_t asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunction_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_13; -extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_13[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunction_ItemIEs_specs_57; +extern asn_TYPE_member_t asn_MBR_RANfunction_ItemIEs_57[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunctionID_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_17; -extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_17[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionID_ItemIEs_specs_61; +extern asn_TYPE_member_t asn_MBR_RANfunctionID_ItemIEs_61[3]; extern asn_TYPE_descriptor_t asn_DEF_RANfunctionIDcause_ItemIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_21; -extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_21[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RANfunctionIDcause_ItemIEs_specs_65; +extern asn_TYPE_member_t asn_MBR_RANfunctionIDcause_ItemIEs_65[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_25; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_25[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionRequest_IEs_specs_69; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_IEs_69[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_29; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_29[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionResponse_IEs_specs_73; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_IEs_73[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_33; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_33[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionFailure_IEs_specs_77; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_IEs_77[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_37; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_37[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequest_IEs_specs_81; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_IEs_81[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteResponse_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_41; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_41[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteResponse_IEs_specs_85; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_IEs_85[3]; extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_45; -extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_45[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteFailure_IEs_specs_89; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_IEs_89[3]; +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_IEs_specs_93; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_IEs_93[3]; extern asn_TYPE_descriptor_t asn_DEF_RICindication_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_49; -extern asn_TYPE_member_t asn_MBR_RICindication_IEs_49[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICindication_IEs_specs_97; +extern asn_TYPE_member_t asn_MBR_RICindication_IEs_97[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolRequest_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_53; -extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_53[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolRequest_IEs_specs_101; +extern asn_TYPE_member_t asn_MBR_RICcontrolRequest_IEs_101[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_57; -extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_57[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolAcknowledge_IEs_specs_105; +extern asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_IEs_105[3]; extern asn_TYPE_descriptor_t asn_DEF_RICcontrolFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_61; -extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_61[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICcontrolFailure_IEs_specs_109; +extern asn_TYPE_member_t asn_MBR_RICcontrolFailure_IEs_109[3]; extern asn_TYPE_descriptor_t asn_DEF_ErrorIndicationE2_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndicationE2_IEs_specs_65; -extern asn_TYPE_member_t asn_MBR_ErrorIndicationE2_IEs_65[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ErrorIndicationE2_IEs_specs_113; +extern asn_TYPE_member_t asn_MBR_ErrorIndicationE2_IEs_113[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_69; -extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_69[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupRequestIEs_specs_117; +extern asn_TYPE_member_t asn_MBR_E2setupRequestIEs_117[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_73; -extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_73[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupResponseIEs_specs_121; +extern asn_TYPE_member_t asn_MBR_E2setupResponseIEs_121[3]; extern asn_TYPE_descriptor_t asn_DEF_E2setupFailureIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_77; -extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_77[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_E2setupFailureIEs_specs_125; +extern asn_TYPE_member_t asn_MBR_E2setupFailureIEs_125[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdate_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdate_IEs_specs_129; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdate_IEs_129[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateAck_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateAck_IEs_specs_133; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateAck_IEs_133[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2connectionUpdateFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2connectionUpdateFailure_IEs_specs_137; +extern asn_TYPE_member_t asn_MBR_E2connectionUpdateFailure_IEs_137[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdate_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdate_IEs_specs_141; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdate_IEs_141[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateAcknowledge_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateAcknowledge_IEs_specs_145; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateAcknowledge_IEs_145[3]; +extern asn_TYPE_descriptor_t asn_DEF_E2nodeConfigurationUpdateFailure_IEs; +extern asn_SEQUENCE_specifics_t asn_SPC_E2nodeConfigurationUpdateFailure_IEs_specs_149; +extern asn_TYPE_member_t asn_MBR_E2nodeConfigurationUpdateFailure_IEs_149[3]; extern asn_TYPE_descriptor_t asn_DEF_ResetRequestIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_81; -extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_81[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetRequestIEs_specs_153; +extern asn_TYPE_member_t asn_MBR_ResetRequestIEs_153[3]; extern asn_TYPE_descriptor_t asn_DEF_ResetResponseIEs; -extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_85; -extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_85[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_ResetResponseIEs_specs_157; +extern asn_TYPE_member_t asn_MBR_ResetResponseIEs_157[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdate_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_89; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_89[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdate_IEs_specs_161; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdate_IEs_161[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateAcknowledge_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_93; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_93[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateAcknowledge_IEs_specs_165; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_IEs_165[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceUpdateFailure_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_97; -extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_97[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceUpdateFailure_IEs_specs_169; +extern asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_IEs_169[3]; extern asn_TYPE_descriptor_t asn_DEF_RICserviceQuery_IEs; -extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_101; -extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_101[3]; +extern asn_SEQUENCE_specifics_t asn_SPC_RICserviceQuery_IEs_specs_173; +extern asn_TYPE_member_t asn_MBR_RICserviceQuery_IEs_173[3]; #ifdef __cplusplus } diff --git a/src/codec_utils/E2AP/ProtocolIE-FieldPairE2.c b/src/codec_utils/E2AP/ProtocolIE-FieldPairE2.c index 97f27971e..f2a145eca 100644 --- a/src/codec_utils/E2AP/ProtocolIE-FieldPairE2.c +++ b/src/codec_utils/E2AP/ProtocolIE-FieldPairE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProtocolIE-FieldPairE2.h" diff --git a/src/codec_utils/E2AP/ProtocolIE-FieldPairE2.h b/src/codec_utils/E2AP/ProtocolIE-FieldPairE2.h index bc44c61cd..dc84e692e 100644 --- a/src/codec_utils/E2AP/ProtocolIE-FieldPairE2.h +++ b/src/codec_utils/E2AP/ProtocolIE-FieldPairE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_FieldPairE2_H_ diff --git a/src/codec_utils/E2AP/ProtocolIE-IDE2.c b/src/codec_utils/E2AP/ProtocolIE-IDE2.c index 7e14d9a1e..d8c786bfb 100644 --- a/src/codec_utils/E2AP/ProtocolIE-IDE2.c +++ b/src/codec_utils/E2AP/ProtocolIE-IDE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProtocolIE-IDE2.h" diff --git a/src/codec_utils/E2AP/ProtocolIE-IDE2.h b/src/codec_utils/E2AP/ProtocolIE-IDE2.h index 467b6eb2a..94127f87c 100644 --- a/src/codec_utils/E2AP/ProtocolIE-IDE2.h +++ b/src/codec_utils/E2AP/ProtocolIE-IDE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_IDE2_H_ @@ -69,6 +69,33 @@ per_type_encoder_f ProtocolIE_IDE2_encode_aper; #define ProtocolIE_IDE2_id_RICsubscriptionDetails ((ProtocolIE_IDE2_t)30) #define ProtocolIE_IDE2_id_TimeToWaitE2 ((ProtocolIE_IDE2_t)31) #define ProtocolIE_IDE2_id_RICcontrolOutcome ((ProtocolIE_IDE2_t)32) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigUpdate ((ProtocolIE_IDE2_t)33) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigUpdate_Item ((ProtocolIE_IDE2_t)34) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigUpdateAck ((ProtocolIE_IDE2_t)35) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigUpdateAck_Item ((ProtocolIE_IDE2_t)36) +#define ProtocolIE_IDE2_id_E2connectionSetup ((ProtocolIE_IDE2_t)39) +#define ProtocolIE_IDE2_id_E2connectionSetupFailed ((ProtocolIE_IDE2_t)40) +#define ProtocolIE_IDE2_id_E2connectionSetupFailed_Item ((ProtocolIE_IDE2_t)41) +#define ProtocolIE_IDE2_id_E2connectionFailed_Item ((ProtocolIE_IDE2_t)42) +#define ProtocolIE_IDE2_id_E2connectionUpdate_Item ((ProtocolIE_IDE2_t)43) +#define ProtocolIE_IDE2_id_E2connectionUpdateAdd ((ProtocolIE_IDE2_t)44) +#define ProtocolIE_IDE2_id_E2connectionUpdateModify ((ProtocolIE_IDE2_t)45) +#define ProtocolIE_IDE2_id_E2connectionUpdateRemove ((ProtocolIE_IDE2_t)46) +#define ProtocolIE_IDE2_id_E2connectionUpdateRemove_Item ((ProtocolIE_IDE2_t)47) +#define ProtocolIE_IDE2_id_TNLinformation ((ProtocolIE_IDE2_t)48) +#define ProtocolIE_IDE2_id_TransactionID ((ProtocolIE_IDE2_t)49) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigAddition ((ProtocolIE_IDE2_t)50) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigAddition_Item ((ProtocolIE_IDE2_t)51) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigAdditionAck ((ProtocolIE_IDE2_t)52) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigAdditionAck_Item ((ProtocolIE_IDE2_t)53) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigRemoval ((ProtocolIE_IDE2_t)54) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigRemoval_Item ((ProtocolIE_IDE2_t)55) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigRemovalAck ((ProtocolIE_IDE2_t)56) +#define ProtocolIE_IDE2_id_E2nodeComponentConfigRemovalAck_Item ((ProtocolIE_IDE2_t)57) +#define ProtocolIE_IDE2_id_E2nodeTNLassociationRemoval ((ProtocolIE_IDE2_t)58) +#define ProtocolIE_IDE2_id_E2nodeTNLassociationRemoval_Item ((ProtocolIE_IDE2_t)59) +#define ProtocolIE_IDE2_id_RICsubscriptionToBeRemoved ((ProtocolIE_IDE2_t)50) +#define ProtocolIE_IDE2_id_RICsubscription_withCause_Item ((ProtocolIE_IDE2_t)51) #ifdef __cplusplus } diff --git a/src/codec_utils/E2AP/ProtocolIE-SingleContainerE2.c b/src/codec_utils/E2AP/ProtocolIE-SingleContainerE2.c index e5f3df3fe..3c1a2072d 100644 --- a/src/codec_utils/E2AP/ProtocolIE-SingleContainerE2.c +++ b/src/codec_utils/E2AP/ProtocolIE-SingleContainerE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ProtocolIE-SingleContainerE2.h" @@ -19,6 +19,50 @@ * This type is implemented using RICaction_NotAdmitted_ItemIEs, * so here we adjust the DEF accordingly. */ +/* + * This type is implemented using RICsubscription_withCause_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2connectionUpdate_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2connectionUpdateRemove_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2connectionSetupFailed_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeComponentConfigAddition_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeComponentConfigUpdate_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeComponentConfigRemoval_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeTNLassociationRemoval_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeComponentConfigAdditionAck_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeComponentConfigUpdateAck_ItemIEs, + * so here we adjust the DEF accordingly. + */ +/* + * This type is implemented using E2nodeComponentConfigRemovalAck_ItemIEs, + * so here we adjust the DEF accordingly. + */ /* * This type is implemented using RANfunction_ItemIEs, * so here we adjust the DEF accordingly. @@ -31,117 +75,326 @@ * This type is implemented using RANfunctionIDcause_ItemIEs, * so here we adjust the DEF accordingly. */ -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1410P0_tags_1[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P0_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P0 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P0 = { "ProtocolIE-SingleContainerE2", "ProtocolIE-SingleContainerE2", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainerE2_1410P0_tags_1, - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P0_tags_1[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainerE2_1410P0_tags_1, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P0_tags_1) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P0_tags_1, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P0_tags_1[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P0_tags_1, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P0_tags_1) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P0_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_ToBeSetup_ItemIEs_1, 3, /* Elements count */ &asn_SPC_RICaction_ToBeSetup_ItemIEs_specs_1 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1410P1_tags_2[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P1_tags_2[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P1 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P1 = { "ProtocolIE-SingleContainerE2", "ProtocolIE-SingleContainerE2", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainerE2_1410P1_tags_2, - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P1_tags_2[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainerE2_1410P1_tags_2, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P1_tags_2) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P1_tags_2, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P1_tags_2[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P1_tags_2, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P1_tags_2) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P1_tags_2[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_Admitted_ItemIEs_5, 3, /* Elements count */ &asn_SPC_RICaction_Admitted_ItemIEs_specs_5 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1410P2_tags_3[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P2_tags_3[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P2 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P2 = { "ProtocolIE-SingleContainerE2", "ProtocolIE-SingleContainerE2", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainerE2_1410P2_tags_3, - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P2_tags_3[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainerE2_1410P2_tags_3, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P2_tags_3) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P2_tags_3, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P2_tags_3[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P2_tags_3, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P2_tags_3) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P2_tags_3[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RICaction_NotAdmitted_ItemIEs_9, 3, /* Elements count */ &asn_SPC_RICaction_NotAdmitted_ItemIEs_specs_9 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1410P3_tags_4[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P3_tags_4[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P3 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P3_tags_4, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P3_tags_4, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P3_tags_4) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P3_tags_4[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_ItemIEs_13, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_ItemIEs_specs_13 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P4_tags_5[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P4 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P4_tags_5, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P4_tags_5, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P4_tags_5) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P4_tags_5[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdate_ItemIEs_17, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdate_ItemIEs_specs_17 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P5_tags_6[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P5 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P5_tags_6, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P5_tags_6, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P5_tags_6) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P5_tags_6[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionUpdateRemove_ItemIEs_21, + 3, /* Elements count */ + &asn_SPC_E2connectionUpdateRemove_ItemIEs_specs_21 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P6_tags_7[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P6 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P6_tags_7, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P6_tags_7[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P6_tags_7, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P6_tags_7) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P6_tags_7[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2connectionSetupFailed_ItemIEs_25, + 3, /* Elements count */ + &asn_SPC_E2connectionSetupFailed_ItemIEs_specs_25 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P7_tags_8[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P7 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P7_tags_8, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P7_tags_8[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P7_tags_8, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P7_tags_8) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P7_tags_8[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAddition_ItemIEs_29, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAddition_ItemIEs_specs_29 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P8_tags_9[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P8 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P8_tags_9, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P8_tags_9[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P8_tags_9, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P8_tags_9) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P8_tags_9[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigUpdate_ItemIEs_33, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdate_ItemIEs_specs_33 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P9_tags_10[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P9 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P9_tags_10, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P9_tags_10[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P9_tags_10, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P9_tags_10) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P9_tags_10[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemoval_ItemIEs_37, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemoval_ItemIEs_specs_37 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P10_tags_11[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P10 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P10_tags_11, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P10_tags_11[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P10_tags_11, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P10_tags_11) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P10_tags_11[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeTNLassociationRemoval_ItemIEs_41, + 3, /* Elements count */ + &asn_SPC_E2nodeTNLassociationRemoval_ItemIEs_specs_41 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P11_tags_12[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P11 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P11_tags_12, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P11_tags_12[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P11_tags_12, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P11_tags_12) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P11_tags_12[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigAdditionAck_ItemIEs_45, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigAdditionAck_ItemIEs_specs_45 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P12_tags_13[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P12 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P12_tags_13, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P12_tags_13[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P12_tags_13, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P12_tags_13) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P12_tags_13[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigUpdateAck_ItemIEs_49, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigUpdateAck_ItemIEs_specs_49 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P13_tags_14[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P13 = { + "ProtocolIE-SingleContainerE2", + "ProtocolIE-SingleContainerE2", + &asn_OP_SEQUENCE, + asn_DEF_ProtocolIE_SingleContainerE2_1928P13_tags_14, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P13_tags_14[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P13_tags_14, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P13_tags_14) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P13_tags_14[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_E2nodeComponentConfigRemovalAck_ItemIEs_53, + 3, /* Elements count */ + &asn_SPC_E2nodeComponentConfigRemovalAck_ItemIEs_specs_53 /* Additional specs */ +}; + +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P14_tags_15[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P3 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P14 = { "ProtocolIE-SingleContainerE2", "ProtocolIE-SingleContainerE2", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainerE2_1410P3_tags_4, - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P3_tags_4[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainerE2_1410P3_tags_4, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P3_tags_4) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P3_tags_4[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P14_tags_15, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P14_tags_15[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P14_tags_15, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P14_tags_15) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P14_tags_15[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunction_ItemIEs_13, + asn_MBR_RANfunction_ItemIEs_57, 3, /* Elements count */ - &asn_SPC_RANfunction_ItemIEs_specs_13 /* Additional specs */ + &asn_SPC_RANfunction_ItemIEs_specs_57 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1410P4_tags_5[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P15_tags_16[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P4 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P15 = { "ProtocolIE-SingleContainerE2", "ProtocolIE-SingleContainerE2", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainerE2_1410P4_tags_5, - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P4_tags_5[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainerE2_1410P4_tags_5, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P4_tags_5) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P4_tags_5[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P15_tags_16, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P15_tags_16[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P15_tags_16, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P15_tags_16) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P15_tags_16[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionID_ItemIEs_17, + asn_MBR_RANfunctionID_ItemIEs_61, 3, /* Elements count */ - &asn_SPC_RANfunctionID_ItemIEs_specs_17 /* Additional specs */ + &asn_SPC_RANfunctionID_ItemIEs_specs_61 /* Additional specs */ }; -static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1410P5_tags_6[] = { +static const ber_tlv_tag_t asn_DEF_ProtocolIE_SingleContainerE2_1928P16_tags_17[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) }; -asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P5 = { +asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P16 = { "ProtocolIE-SingleContainerE2", "ProtocolIE-SingleContainerE2", &asn_OP_SEQUENCE, - asn_DEF_ProtocolIE_SingleContainerE2_1410P5_tags_6, - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P5_tags_6[0]), /* 1 */ - asn_DEF_ProtocolIE_SingleContainerE2_1410P5_tags_6, /* Same as above */ - sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P5_tags_6) - /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1410P5_tags_6[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P16_tags_17, + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P16_tags_17[0]), /* 1 */ + asn_DEF_ProtocolIE_SingleContainerE2_1928P16_tags_17, /* Same as above */ + sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P16_tags_17) + /sizeof(asn_DEF_ProtocolIE_SingleContainerE2_1928P16_tags_17[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, - asn_MBR_RANfunctionIDcause_ItemIEs_21, + asn_MBR_RANfunctionIDcause_ItemIEs_65, 3, /* Elements count */ - &asn_SPC_RANfunctionIDcause_ItemIEs_specs_21 /* Additional specs */ + &asn_SPC_RANfunctionIDcause_ItemIEs_specs_65 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/ProtocolIE-SingleContainerE2.h b/src/codec_utils/E2AP/ProtocolIE-SingleContainerE2.h index 8ce37aa60..85e8e169e 100644 --- a/src/codec_utils/E2AP/ProtocolIE-SingleContainerE2.h +++ b/src/codec_utils/E2AP/ProtocolIE-SingleContainerE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-Containers" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ProtocolIE_SingleContainerE2_H_ @@ -19,98 +19,263 @@ extern "C" { #endif /* ProtocolIE-SingleContainerE2 */ -typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainerE2_1410P0_t; -typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainerE2_1410P1_t; -typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainerE2_1410P2_t; -typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainerE2_1410P3_t; -typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainerE2_1410P4_t; -typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainerE2_1410P5_t; +typedef RICaction_ToBeSetup_ItemIEs_t ProtocolIE_SingleContainerE2_1928P0_t; +typedef RICaction_Admitted_ItemIEs_t ProtocolIE_SingleContainerE2_1928P1_t; +typedef RICaction_NotAdmitted_ItemIEs_t ProtocolIE_SingleContainerE2_1928P2_t; +typedef RICsubscription_withCause_ItemIEs_t ProtocolIE_SingleContainerE2_1928P3_t; +typedef E2connectionUpdate_ItemIEs_t ProtocolIE_SingleContainerE2_1928P4_t; +typedef E2connectionUpdateRemove_ItemIEs_t ProtocolIE_SingleContainerE2_1928P5_t; +typedef E2connectionSetupFailed_ItemIEs_t ProtocolIE_SingleContainerE2_1928P6_t; +typedef E2nodeComponentConfigAddition_ItemIEs_t ProtocolIE_SingleContainerE2_1928P7_t; +typedef E2nodeComponentConfigUpdate_ItemIEs_t ProtocolIE_SingleContainerE2_1928P8_t; +typedef E2nodeComponentConfigRemoval_ItemIEs_t ProtocolIE_SingleContainerE2_1928P9_t; +typedef E2nodeTNLassociationRemoval_ItemIEs_t ProtocolIE_SingleContainerE2_1928P10_t; +typedef E2nodeComponentConfigAdditionAck_ItemIEs_t ProtocolIE_SingleContainerE2_1928P11_t; +typedef E2nodeComponentConfigUpdateAck_ItemIEs_t ProtocolIE_SingleContainerE2_1928P12_t; +typedef E2nodeComponentConfigRemovalAck_ItemIEs_t ProtocolIE_SingleContainerE2_1928P13_t; +typedef RANfunction_ItemIEs_t ProtocolIE_SingleContainerE2_1928P14_t; +typedef RANfunctionID_ItemIEs_t ProtocolIE_SingleContainerE2_1928P15_t; +typedef RANfunctionIDcause_ItemIEs_t ProtocolIE_SingleContainerE2_1928P16_t; /* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P0; -asn_struct_free_f ProtocolIE_SingleContainerE2_1410P0_free; -asn_struct_print_f ProtocolIE_SingleContainerE2_1410P0_print; -asn_constr_check_f ProtocolIE_SingleContainerE2_1410P0_constraint; -ber_type_decoder_f ProtocolIE_SingleContainerE2_1410P0_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainerE2_1410P0_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainerE2_1410P0_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainerE2_1410P0_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainerE2_1410P0_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainerE2_1410P0_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P0_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P0_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P0_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P0_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P1; -asn_struct_free_f ProtocolIE_SingleContainerE2_1410P1_free; -asn_struct_print_f ProtocolIE_SingleContainerE2_1410P1_print; -asn_constr_check_f ProtocolIE_SingleContainerE2_1410P1_constraint; -ber_type_decoder_f ProtocolIE_SingleContainerE2_1410P1_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainerE2_1410P1_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainerE2_1410P1_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainerE2_1410P1_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainerE2_1410P1_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainerE2_1410P1_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P1_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P1_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P1_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P1_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P2; -asn_struct_free_f ProtocolIE_SingleContainerE2_1410P2_free; -asn_struct_print_f ProtocolIE_SingleContainerE2_1410P2_print; -asn_constr_check_f ProtocolIE_SingleContainerE2_1410P2_constraint; -ber_type_decoder_f ProtocolIE_SingleContainerE2_1410P2_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainerE2_1410P2_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainerE2_1410P2_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainerE2_1410P2_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainerE2_1410P2_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainerE2_1410P2_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P2_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P2_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P2_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P2_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P3; -asn_struct_free_f ProtocolIE_SingleContainerE2_1410P3_free; -asn_struct_print_f ProtocolIE_SingleContainerE2_1410P3_print; -asn_constr_check_f ProtocolIE_SingleContainerE2_1410P3_constraint; -ber_type_decoder_f ProtocolIE_SingleContainerE2_1410P3_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainerE2_1410P3_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainerE2_1410P3_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainerE2_1410P3_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainerE2_1410P3_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainerE2_1410P3_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P3_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P3_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P3_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P3_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P4; -asn_struct_free_f ProtocolIE_SingleContainerE2_1410P4_free; -asn_struct_print_f ProtocolIE_SingleContainerE2_1410P4_print; -asn_constr_check_f ProtocolIE_SingleContainerE2_1410P4_constraint; -ber_type_decoder_f ProtocolIE_SingleContainerE2_1410P4_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainerE2_1410P4_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainerE2_1410P4_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainerE2_1410P4_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainerE2_1410P4_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainerE2_1410P4_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P4_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P4_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P4_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P4_encode_aper; -extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1410P5; -asn_struct_free_f ProtocolIE_SingleContainerE2_1410P5_free; -asn_struct_print_f ProtocolIE_SingleContainerE2_1410P5_print; -asn_constr_check_f ProtocolIE_SingleContainerE2_1410P5_constraint; -ber_type_decoder_f ProtocolIE_SingleContainerE2_1410P5_decode_ber; -der_type_encoder_f ProtocolIE_SingleContainerE2_1410P5_encode_der; -xer_type_decoder_f ProtocolIE_SingleContainerE2_1410P5_decode_xer; -xer_type_encoder_f ProtocolIE_SingleContainerE2_1410P5_encode_xer; -oer_type_decoder_f ProtocolIE_SingleContainerE2_1410P5_decode_oer; -oer_type_encoder_f ProtocolIE_SingleContainerE2_1410P5_encode_oer; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P5_decode_uper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P5_encode_uper; -per_type_decoder_f ProtocolIE_SingleContainerE2_1410P5_decode_aper; -per_type_encoder_f ProtocolIE_SingleContainerE2_1410P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P0; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P0_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P0_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P0_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P0_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P0_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P0_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P0_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P0_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P0_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P0_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P0_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P0_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P0_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P1; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P1_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P1_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P1_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P1_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P1_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P1_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P1_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P1_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P1_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P1_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P1_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P1_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P1_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P2; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P2_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P2_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P2_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P2_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P2_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P2_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P2_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P2_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P2_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P2_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P2_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P2_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P2_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P3; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P3_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P3_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P3_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P3_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P3_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P3_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P3_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P3_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P3_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P3_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P3_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P3_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P3_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P4; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P4_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P4_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P4_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P4_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P4_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P4_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P4_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P4_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P4_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P4_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P4_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P4_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P4_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P5; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P5_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P5_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P5_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P5_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P5_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P5_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P5_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P5_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P5_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P5_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P5_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P5_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P5_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P6; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P6_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P6_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P6_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P6_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P6_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P6_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P6_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P6_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P6_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P6_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P6_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P6_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P6_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P7; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P7_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P7_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P7_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P7_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P7_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P7_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P7_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P7_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P7_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P7_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P7_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P7_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P7_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P8; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P8_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P8_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P8_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P8_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P8_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P8_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P8_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P8_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P8_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P8_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P8_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P8_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P8_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P9; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P9_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P9_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P9_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P9_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P9_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P9_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P9_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P9_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P9_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P9_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P9_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P9_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P9_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P10; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P10_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P10_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P10_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P10_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P10_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P10_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P10_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P10_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P10_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P10_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P10_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P10_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P10_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P11; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P11_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P11_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P11_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P11_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P11_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P11_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P11_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P11_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P11_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P11_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P11_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P11_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P11_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P12; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P12_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P12_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P12_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P12_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P12_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P12_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P12_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P12_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P12_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P12_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P12_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P12_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P12_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P13; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P13_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P13_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P13_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P13_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P13_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P13_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P13_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P13_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P13_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P13_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P13_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P13_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P13_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P14; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P14_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P14_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P14_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P14_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P14_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P14_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P14_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P14_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P14_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P14_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P14_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P14_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P14_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P15; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P15_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P15_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P15_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P15_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P15_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P15_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P15_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P15_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P15_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P15_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P15_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P15_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P15_encode_aper; +extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_SingleContainerE2_1928P16; +asn_struct_free_f ProtocolIE_SingleContainerE2_1928P16_free; +asn_struct_print_f ProtocolIE_SingleContainerE2_1928P16_print; +asn_constr_check_f ProtocolIE_SingleContainerE2_1928P16_constraint; +ber_type_decoder_f ProtocolIE_SingleContainerE2_1928P16_decode_ber; +der_type_encoder_f ProtocolIE_SingleContainerE2_1928P16_encode_der; +xer_type_decoder_f ProtocolIE_SingleContainerE2_1928P16_decode_xer; +xer_type_encoder_f ProtocolIE_SingleContainerE2_1928P16_encode_xer; +oer_type_decoder_f ProtocolIE_SingleContainerE2_1928P16_decode_oer; +oer_type_encoder_f ProtocolIE_SingleContainerE2_1928P16_encode_oer; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P16_decode_uper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P16_encode_uper; +per_type_decoder_f ProtocolIE_SingleContainerE2_1928P16_decode_aper; +per_type_encoder_f ProtocolIE_SingleContainerE2_1928P16_encode_aper; #ifdef __cplusplus } diff --git a/src/codec_utils/E2AP/RANfunction-Item.c b/src/codec_utils/E2AP/RANfunction-Item.c index bf53aca18..0b0e55e93 100644 --- a/src/codec_utils/E2AP/RANfunction-Item.c +++ b/src/codec_utils/E2AP/RANfunction-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunction-Item.h" @@ -35,6 +35,15 @@ static asn_TYPE_member_t asn_MBR_RANfunction_Item_1[] = { 0, 0, /* No default value */ "ranFunctionRevision" }, + { ATF_NOFLAGS, 0, offsetof(struct RANfunction_Item, ranFunctionOID), + (ASN_TAG_CLASS_CONTEXT | (3 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionOID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranFunctionOID" + }, }; static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) @@ -42,15 +51,16 @@ static const ber_tlv_tag_t asn_DEF_RANfunction_Item_tags_1[] = { static const asn_TYPE_tag2member_t asn_MAP_RANfunction_Item_tag2el_1[] = { { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ranFunctionID */ { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionDefinition */ - { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* ranFunctionRevision */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ranFunctionRevision */ + { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* ranFunctionOID */ }; static asn_SEQUENCE_specifics_t asn_SPC_RANfunction_Item_specs_1 = { sizeof(struct RANfunction_Item), offsetof(struct RANfunction_Item, _asn_ctx), asn_MAP_RANfunction_Item_tag2el_1, - 3, /* Count of tags in the map */ + 4, /* Count of tags in the map */ 0, 0, 0, /* Optional elements (not needed) */ - 3, /* First extension addition */ + 4, /* First extension addition */ }; asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { "RANfunction-Item", @@ -64,7 +74,7 @@ asn_TYPE_descriptor_t asn_DEF_RANfunction_Item = { /sizeof(asn_DEF_RANfunction_Item_tags_1[0]), /* 1 */ { 0, 0, SEQUENCE_constraint }, asn_MBR_RANfunction_Item_1, - 3, /* Elements count */ + 4, /* Elements count */ &asn_SPC_RANfunction_Item_specs_1 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/RANfunction-Item.h b/src/codec_utils/E2AP/RANfunction-Item.h index 5e2eb14c8..c653e9973 100644 --- a/src/codec_utils/E2AP/RANfunction-Item.h +++ b/src/codec_utils/E2AP/RANfunction-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunction_Item_H_ @@ -15,6 +15,7 @@ #include "RANfunctionID.h" #include "RANfunctionDefinition.h" #include "RANfunctionRevision.h" +#include "RANfunctionOID.h" #include #ifdef __cplusplus @@ -26,6 +27,7 @@ typedef struct RANfunction_Item { RANfunctionID_t ranFunctionID; RANfunctionDefinition_t ranFunctionDefinition; RANfunctionRevision_t ranFunctionRevision; + RANfunctionOID_t ranFunctionOID; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RANfunctionDefinition.c b/src/codec_utils/E2AP/RANfunctionDefinition.c index bc0a7ccef..91b034adc 100644 --- a/src/codec_utils/E2AP/RANfunctionDefinition.c +++ b/src/codec_utils/E2AP/RANfunctionDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunctionDefinition.h" diff --git a/src/codec_utils/E2AP/RANfunctionDefinition.h b/src/codec_utils/E2AP/RANfunctionDefinition.h index 2329fe6ca..09046460d 100644 --- a/src/codec_utils/E2AP/RANfunctionDefinition.h +++ b/src/codec_utils/E2AP/RANfunctionDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunctionDefinition_H_ diff --git a/src/codec_utils/E2AP/RANfunctionID-Item.c b/src/codec_utils/E2AP/RANfunctionID-Item.c index 53bea0aa4..f21ad371c 100644 --- a/src/codec_utils/E2AP/RANfunctionID-Item.c +++ b/src/codec_utils/E2AP/RANfunctionID-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunctionID-Item.h" diff --git a/src/codec_utils/E2AP/RANfunctionID-Item.h b/src/codec_utils/E2AP/RANfunctionID-Item.h index a787c712f..4b656054d 100644 --- a/src/codec_utils/E2AP/RANfunctionID-Item.h +++ b/src/codec_utils/E2AP/RANfunctionID-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunctionID_Item_H_ diff --git a/src/codec_utils/E2AP/RANfunctionID.c b/src/codec_utils/E2AP/RANfunctionID.c index dc77a8213..92ee6e6a5 100644 --- a/src/codec_utils/E2AP/RANfunctionID.c +++ b/src/codec_utils/E2AP/RANfunctionID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunctionID.h" diff --git a/src/codec_utils/E2AP/RANfunctionID.h b/src/codec_utils/E2AP/RANfunctionID.h index 3e1c08e43..a895ac273 100644 --- a/src/codec_utils/E2AP/RANfunctionID.h +++ b/src/codec_utils/E2AP/RANfunctionID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunctionID_H_ diff --git a/src/codec_utils/E2AP/RANfunctionIDcause-Item.c b/src/codec_utils/E2AP/RANfunctionIDcause-Item.c index 64c6782ae..6d8e65f96 100644 --- a/src/codec_utils/E2AP/RANfunctionIDcause-Item.c +++ b/src/codec_utils/E2AP/RANfunctionIDcause-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunctionIDcause-Item.h" diff --git a/src/codec_utils/E2AP/RANfunctionIDcause-Item.h b/src/codec_utils/E2AP/RANfunctionIDcause-Item.h index f967404be..00c727488 100644 --- a/src/codec_utils/E2AP/RANfunctionIDcause-Item.h +++ b/src/codec_utils/E2AP/RANfunctionIDcause-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunctionIDcause_Item_H_ diff --git a/src/codec_utils/E2AP/RANfunctionOID.c b/src/codec_utils/E2AP/RANfunctionOID.c new file mode 100644 index 000000000..a7ec4cc0b --- /dev/null +++ b/src/codec_utils/E2AP/RANfunctionOID.c @@ -0,0 +1,109 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RANfunctionOID.h" + +static const int permitted_alphabet_table_1[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */ + 1, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 6, 7, 8, 9, /* . '() +,-./ */ +10,11,12,13,14,15,16,17,18,19,20, 0, 0,21, 0,22, /* 0123456789: = ? */ + 0,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37, /* ABCDEFGHIJKLMNO */ +38,39,40,41,42,43,44,45,46,47,48, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ */ + 0,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63, /* abcdefghijklmno */ +64,65,66,67,68,69,70,71,72,73,74, 0, 0, 0, 0, 0, /* pqrstuvwxyz */ +}; +static const int permitted_alphabet_code2value_1[74] = { +32,39,40,41,43,44,45,46,47,48,49,50,51,52,53,54, +55,56,57,58,61,63,65,66,67,68,69,70,71,72,73,74, +75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90, +97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112, +113,114,115,116,117,118,119,120,121,122,}; + + +static int check_permitted_alphabet_1(const void *sptr) { + const int *table = permitted_alphabet_table_1; + /* The underlying type is PrintableString */ + const PrintableString_t *st = (const PrintableString_t *)sptr; + const uint8_t *ch = st->buf; + const uint8_t *end = ch + st->size; + + for(; ch < end; ch++) { + uint8_t cv = *ch; + if(!table[cv]) return -1; + } + return 0; +} + +int +RANfunctionOID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const PrintableString_t *st = (const PrintableString_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + size = st->size; + + if((size >= 1 && size <= 1000) + && !check_permitted_alphabet_1(st)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int asn_PER_MAP_RANfunctionOID_1_v2c(unsigned int value) { + if(value >= sizeof(permitted_alphabet_table_1)/sizeof(permitted_alphabet_table_1[0])) + return -1; + return permitted_alphabet_table_1[value] - 1; +} +static int asn_PER_MAP_RANfunctionOID_1_c2v(unsigned int code) { + if(code >= sizeof(permitted_alphabet_code2value_1)/sizeof(permitted_alphabet_code2value_1[0])) + return -1; + return permitted_alphabet_code2value_1[code]; +} +/* + * This type is implemented using PrintableString, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_RANfunctionOID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +asn_per_constraints_t asn_PER_type_RANfunctionOID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED, 7, 7, 32, 122 } /* (32..122) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 10, 10, 1, 1000 } /* (SIZE(1..1000,...)) */, + asn_PER_MAP_RANfunctionOID_1_v2c, /* Value to PER code map */ + asn_PER_MAP_RANfunctionOID_1_c2v /* PER code to value map */ +}; +static const ber_tlv_tag_t asn_DEF_RANfunctionOID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (19 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_RANfunctionOID = { + "RANfunctionOID", + "RANfunctionOID", + &asn_OP_PrintableString, + asn_DEF_RANfunctionOID_tags_1, + sizeof(asn_DEF_RANfunctionOID_tags_1) + /sizeof(asn_DEF_RANfunctionOID_tags_1[0]), /* 1 */ + asn_DEF_RANfunctionOID_tags_1, /* Same as above */ + sizeof(asn_DEF_RANfunctionOID_tags_1) + /sizeof(asn_DEF_RANfunctionOID_tags_1[0]), /* 1 */ + { &asn_OER_type_RANfunctionOID_constr_1, &asn_PER_type_RANfunctionOID_constr_1, RANfunctionOID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/E2AP/RANfunctionOID.h b/src/codec_utils/E2AP/RANfunctionOID.h new file mode 100644 index 000000000..d1554a0db --- /dev/null +++ b/src/codec_utils/E2AP/RANfunctionOID.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RANfunctionOID_H_ +#define _RANfunctionOID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RANfunctionOID */ +typedef PrintableString_t RANfunctionOID_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_RANfunctionOID_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_RANfunctionOID; +asn_struct_free_f RANfunctionOID_free; +asn_struct_print_f RANfunctionOID_print; +asn_constr_check_f RANfunctionOID_constraint; +ber_type_decoder_f RANfunctionOID_decode_ber; +der_type_encoder_f RANfunctionOID_encode_der; +xer_type_decoder_f RANfunctionOID_decode_xer; +xer_type_encoder_f RANfunctionOID_encode_xer; +oer_type_decoder_f RANfunctionOID_decode_oer; +oer_type_encoder_f RANfunctionOID_encode_oer; +per_type_decoder_f RANfunctionOID_decode_uper; +per_type_encoder_f RANfunctionOID_encode_uper; +per_type_decoder_f RANfunctionOID_decode_aper; +per_type_encoder_f RANfunctionOID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _RANfunctionOID_H_ */ +#include diff --git a/src/codec_utils/E2AP/RANfunctionRevision.c b/src/codec_utils/E2AP/RANfunctionRevision.c index 46215d699..2f96ac629 100644 --- a/src/codec_utils/E2AP/RANfunctionRevision.c +++ b/src/codec_utils/E2AP/RANfunctionRevision.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunctionRevision.h" diff --git a/src/codec_utils/E2AP/RANfunctionRevision.h b/src/codec_utils/E2AP/RANfunctionRevision.h index f31677084..9ddcf2a27 100644 --- a/src/codec_utils/E2AP/RANfunctionRevision.h +++ b/src/codec_utils/E2AP/RANfunctionRevision.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunctionRevision_H_ diff --git a/src/codec_utils/E2AP/RANfunctions-List.c b/src/codec_utils/E2AP/RANfunctions-List.c index 6414f6c93..16b12b713 100644 --- a/src/codec_utils/E2AP/RANfunctions-List.c +++ b/src/codec_utils/E2AP/RANfunctions-List.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunctions-List.h" @@ -10,17 +10,17 @@ #include "ProtocolIE-SingleContainerE2.h" static asn_oer_constraints_t asn_OER_type_RANfunctions_List_constr_1 CC_NOTUSED = { { 0, 0 }, - -1 /* (SIZE(0..256)) */}; + -1 /* (SIZE(1..256)) */}; static asn_per_constraints_t asn_PER_type_RANfunctions_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; static asn_TYPE_member_t asn_MBR_RANfunctions_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainerE2_1410P3, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P14, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RANfunctions-List.h b/src/codec_utils/E2AP/RANfunctions-List.h index e90722b42..6c87fc44d 100644 --- a/src/codec_utils/E2AP/RANfunctions-List.h +++ b/src/codec_utils/E2AP/RANfunctions-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunctions_List_H_ @@ -10,7 +10,6 @@ #include -//#include "ProtocolIE_SingleContainerE2.h" /* Including external dependencies */ #include @@ -25,7 +24,7 @@ struct ProtocolIE_SingleContainerE2; /* RANfunctions-List */ typedef struct RANfunctions_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2_1410P3_t) list; + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/src/codec_utils/E2AP/RANfunctionsID-List.c b/src/codec_utils/E2AP/RANfunctionsID-List.c index 5d3f1262d..4de9e626e 100644 --- a/src/codec_utils/E2AP/RANfunctionsID-List.c +++ b/src/codec_utils/E2AP/RANfunctionsID-List.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunctionsID-List.h" @@ -10,17 +10,17 @@ #include "ProtocolIE-SingleContainerE2.h" static asn_oer_constraints_t asn_OER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { { 0, 0 }, - -1 /* (SIZE(0..256)) */}; + -1 /* (SIZE(1..256)) */}; static asn_per_constraints_t asn_PER_type_RANfunctionsID_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; static asn_TYPE_member_t asn_MBR_RANfunctionsID_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainerE2_1410P4, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P15, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RANfunctionsID-List.h b/src/codec_utils/E2AP/RANfunctionsID-List.h index 381c4f424..dfc5caaf9 100644 --- a/src/codec_utils/E2AP/RANfunctionsID-List.h +++ b/src/codec_utils/E2AP/RANfunctionsID-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunctionsID_List_H_ @@ -24,7 +24,7 @@ struct ProtocolIE_SingleContainerE2; /* RANfunctionsID-List */ typedef struct RANfunctionsID_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2_1410P4_t) list; + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/src/codec_utils/E2AP/RANfunctionsIDcause-List.c b/src/codec_utils/E2AP/RANfunctionsIDcause-List.c index a0bf56eb7..10f24401f 100644 --- a/src/codec_utils/E2AP/RANfunctionsIDcause-List.c +++ b/src/codec_utils/E2AP/RANfunctionsIDcause-List.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RANfunctionsIDcause-List.h" @@ -10,17 +10,17 @@ #include "ProtocolIE-SingleContainerE2.h" static asn_oer_constraints_t asn_OER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { { 0, 0 }, - -1 /* (SIZE(0..256)) */}; + -1 /* (SIZE(1..256)) */}; static asn_per_constraints_t asn_PER_type_RANfunctionsIDcause_List_constr_1 CC_NOTUSED = { { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - { APC_CONSTRAINED, 9, 9, 0, 256 } /* (SIZE(0..256)) */, + { APC_CONSTRAINED, 8, 8, 1, 256 } /* (SIZE(1..256)) */, 0, 0 /* No PER value map */ }; static asn_TYPE_member_t asn_MBR_RANfunctionsIDcause_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainerE2_1410P5, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P16, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RANfunctionsIDcause-List.h b/src/codec_utils/E2AP/RANfunctionsIDcause-List.h index 02de48210..e2c4d3136 100644 --- a/src/codec_utils/E2AP/RANfunctionsIDcause-List.h +++ b/src/codec_utils/E2AP/RANfunctionsIDcause-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RANfunctionsIDcause_List_H_ @@ -24,7 +24,7 @@ struct ProtocolIE_SingleContainerE2; /* RANfunctionsIDcause-List */ typedef struct RANfunctionsIDcause_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2_1410P5_t) list; + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/src/codec_utils/E2AP/RICaction-Admitted-Item.c b/src/codec_utils/E2AP/RICaction-Admitted-Item.c index 7d22606f6..479179010 100644 --- a/src/codec_utils/E2AP/RICaction-Admitted-Item.c +++ b/src/codec_utils/E2AP/RICaction-Admitted-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICaction-Admitted-Item.h" diff --git a/src/codec_utils/E2AP/RICaction-Admitted-Item.h b/src/codec_utils/E2AP/RICaction-Admitted-Item.h index ce84e2983..7b46df3ee 100644 --- a/src/codec_utils/E2AP/RICaction-Admitted-Item.h +++ b/src/codec_utils/E2AP/RICaction-Admitted-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICaction_Admitted_Item_H_ diff --git a/src/codec_utils/E2AP/RICaction-Admitted-List.c b/src/codec_utils/E2AP/RICaction-Admitted-List.c index 4b47c173f..a46aca3c5 100644 --- a/src/codec_utils/E2AP/RICaction-Admitted-List.c +++ b/src/codec_utils/E2AP/RICaction-Admitted-List.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICaction-Admitted-List.h" @@ -20,7 +20,7 @@ static asn_TYPE_member_t asn_MBR_RICaction_Admitted_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainerE2_1410P1, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P1, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICaction-Admitted-List.h b/src/codec_utils/E2AP/RICaction-Admitted-List.h index 858d6abf5..33e916d2d 100644 --- a/src/codec_utils/E2AP/RICaction-Admitted-List.h +++ b/src/codec_utils/E2AP/RICaction-Admitted-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICaction_Admitted_List_H_ @@ -24,7 +24,7 @@ struct ProtocolIE_SingleContainerE2; /* RICaction-Admitted-List */ typedef struct RICaction_Admitted_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2_1410P1_t) list; + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/src/codec_utils/E2AP/RICaction-NotAdmitted-Item.c b/src/codec_utils/E2AP/RICaction-NotAdmitted-Item.c index 376f43d78..a3b897409 100644 --- a/src/codec_utils/E2AP/RICaction-NotAdmitted-Item.c +++ b/src/codec_utils/E2AP/RICaction-NotAdmitted-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICaction-NotAdmitted-Item.h" diff --git a/src/codec_utils/E2AP/RICaction-NotAdmitted-Item.h b/src/codec_utils/E2AP/RICaction-NotAdmitted-Item.h index 7c43e7f8e..49157b928 100644 --- a/src/codec_utils/E2AP/RICaction-NotAdmitted-Item.h +++ b/src/codec_utils/E2AP/RICaction-NotAdmitted-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICaction_NotAdmitted_Item_H_ diff --git a/src/codec_utils/E2AP/RICaction-NotAdmitted-List.c b/src/codec_utils/E2AP/RICaction-NotAdmitted-List.c index c5f3ba4b3..3168deb3d 100644 --- a/src/codec_utils/E2AP/RICaction-NotAdmitted-List.c +++ b/src/codec_utils/E2AP/RICaction-NotAdmitted-List.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICaction-NotAdmitted-List.h" @@ -20,7 +20,7 @@ static asn_TYPE_member_t asn_MBR_RICaction_NotAdmitted_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainerE2_1410P2, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICaction-NotAdmitted-List.h b/src/codec_utils/E2AP/RICaction-NotAdmitted-List.h index 3b146f644..d5369cf15 100644 --- a/src/codec_utils/E2AP/RICaction-NotAdmitted-List.h +++ b/src/codec_utils/E2AP/RICaction-NotAdmitted-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICaction_NotAdmitted_List_H_ diff --git a/src/codec_utils/E2AP/RICaction-ToBeSetup-Item.c b/src/codec_utils/E2AP/RICaction-ToBeSetup-Item.c index cecdcd423..a10aad8d8 100644 --- a/src/codec_utils/E2AP/RICaction-ToBeSetup-Item.c +++ b/src/codec_utils/E2AP/RICaction-ToBeSetup-Item.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICaction-ToBeSetup-Item.h" diff --git a/src/codec_utils/E2AP/RICaction-ToBeSetup-Item.h b/src/codec_utils/E2AP/RICaction-ToBeSetup-Item.h index 5003dcf72..193d457cc 100644 --- a/src/codec_utils/E2AP/RICaction-ToBeSetup-Item.h +++ b/src/codec_utils/E2AP/RICaction-ToBeSetup-Item.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICaction_ToBeSetup_Item_H_ diff --git a/src/codec_utils/E2AP/RICactionDefinition.c b/src/codec_utils/E2AP/RICactionDefinition.c index c8600b3c3..b09e68793 100644 --- a/src/codec_utils/E2AP/RICactionDefinition.c +++ b/src/codec_utils/E2AP/RICactionDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICactionDefinition.h" diff --git a/src/codec_utils/E2AP/RICactionDefinition.h b/src/codec_utils/E2AP/RICactionDefinition.h index 9822a347b..a3b629f29 100644 --- a/src/codec_utils/E2AP/RICactionDefinition.h +++ b/src/codec_utils/E2AP/RICactionDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICactionDefinition_H_ diff --git a/src/codec_utils/E2AP/RICactionID.c b/src/codec_utils/E2AP/RICactionID.c index 25b71fefa..5768a9ebd 100644 --- a/src/codec_utils/E2AP/RICactionID.c +++ b/src/codec_utils/E2AP/RICactionID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICactionID.h" diff --git a/src/codec_utils/E2AP/RICactionID.h b/src/codec_utils/E2AP/RICactionID.h index b058d8e39..cdf3c55cd 100644 --- a/src/codec_utils/E2AP/RICactionID.h +++ b/src/codec_utils/E2AP/RICactionID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICactionID_H_ diff --git a/src/codec_utils/E2AP/RICactionType.c b/src/codec_utils/E2AP/RICactionType.c index f4cb0cf43..29cce429a 100644 --- a/src/codec_utils/E2AP/RICactionType.c +++ b/src/codec_utils/E2AP/RICactionType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICactionType.h" diff --git a/src/codec_utils/E2AP/RICactionType.h b/src/codec_utils/E2AP/RICactionType.h index 89f402fa1..d414950e9 100644 --- a/src/codec_utils/E2AP/RICactionType.h +++ b/src/codec_utils/E2AP/RICactionType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICactionType_H_ diff --git a/src/codec_utils/E2AP/RICactions-ToBeSetup-List.c b/src/codec_utils/E2AP/RICactions-ToBeSetup-List.c index 2439ca781..9f11efb7e 100644 --- a/src/codec_utils/E2AP/RICactions-ToBeSetup-List.c +++ b/src/codec_utils/E2AP/RICactions-ToBeSetup-List.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICactions-ToBeSetup-List.h" @@ -20,7 +20,7 @@ asn_TYPE_member_t asn_MBR_RICactions_ToBeSetup_List_1[] = { { ATF_POINTER, 0, 0, (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, - &asn_DEF_ProtocolIE_SingleContainerE2_1410P0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P0, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICactions-ToBeSetup-List.h b/src/codec_utils/E2AP/RICactions-ToBeSetup-List.h index 6ece2f122..7bedaf0d6 100644 --- a/src/codec_utils/E2AP/RICactions-ToBeSetup-List.h +++ b/src/codec_utils/E2AP/RICactions-ToBeSetup-List.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICactions_ToBeSetup_List_H_ @@ -24,7 +24,7 @@ struct ProtocolIE_SingleContainerE2; /* RICactions-ToBeSetup-List */ typedef struct RICactions_ToBeSetup_List { - A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2_1410P0_t) list; + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; /* Context for parsing across buffer boundaries */ asn_struct_ctx_t _asn_ctx; diff --git a/src/codec_utils/E2AP/RICcallProcessID.c b/src/codec_utils/E2AP/RICcallProcessID.c index b1caab37d..7dd785623 100644 --- a/src/codec_utils/E2AP/RICcallProcessID.c +++ b/src/codec_utils/E2AP/RICcallProcessID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICcallProcessID.h" diff --git a/src/codec_utils/E2AP/RICcallProcessID.h b/src/codec_utils/E2AP/RICcallProcessID.h index 8d06076a5..bd674670c 100644 --- a/src/codec_utils/E2AP/RICcallProcessID.h +++ b/src/codec_utils/E2AP/RICcallProcessID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICcallProcessID_H_ diff --git a/src/codec_utils/E2AP/RICcontrolAckRequest.c b/src/codec_utils/E2AP/RICcontrolAckRequest.c index 8ef27b7c9..75a25f23a 100644 --- a/src/codec_utils/E2AP/RICcontrolAckRequest.c +++ b/src/codec_utils/E2AP/RICcontrolAckRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICcontrolAckRequest.h" @@ -15,27 +15,25 @@ static asn_oer_constraints_t asn_OER_type_RICcontrolAckRequest_constr_1 CC_NOTUS { 0, 0 }, -1}; static asn_per_constraints_t asn_PER_type_RICcontrolAckRequest_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolAckRequest_value2enum_1[] = { { 0, 5, "noAck" }, - { 1, 3, "ack" }, - { 2, 4, "nAck" } + { 1, 3, "ack" } /* This list is extensible */ }; static const unsigned int asn_MAP_RICcontrolAckRequest_enum2value_1[] = { 1, /* ack(1) */ - 2, /* nAck(2) */ 0 /* noAck(0) */ /* This list is extensible */ }; static const asn_INTEGER_specifics_t asn_SPC_RICcontrolAckRequest_specs_1 = { asn_MAP_RICcontrolAckRequest_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_RICcontrolAckRequest_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ + 2, /* Number of elements in the maps */ + 3, /* Extensions before this member */ 1, /* Strict enumeration */ 0, /* Native long size */ 0 diff --git a/src/codec_utils/E2AP/RICcontrolAckRequest.h b/src/codec_utils/E2AP/RICcontrolAckRequest.h index 73ef88a0b..2e09cc6bd 100644 --- a/src/codec_utils/E2AP/RICcontrolAckRequest.h +++ b/src/codec_utils/E2AP/RICcontrolAckRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICcontrolAckRequest_H_ @@ -21,8 +21,7 @@ extern "C" { /* Dependencies */ typedef enum RICcontrolAckRequest { RICcontrolAckRequest_noAck = 0, - RICcontrolAckRequest_ack = 1, - RICcontrolAckRequest_nAck = 2 + RICcontrolAckRequest_ack = 1 /* * Enumeration is extensible */ diff --git a/src/codec_utils/E2AP/RICcontrolAcknowledge.c b/src/codec_utils/E2AP/RICcontrolAcknowledge.c index a4cb659cb..833161299 100644 --- a/src/codec_utils/E2AP/RICcontrolAcknowledge.c +++ b/src/codec_utils/E2AP/RICcontrolAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICcontrolAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P8, + &asn_DEF_ProtocolIE_ContainerE2_1925P9, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICcontrolAcknowledge.h b/src/codec_utils/E2AP/RICcontrolAcknowledge.h index a288d3563..9aa0f5879 100644 --- a/src/codec_utils/E2AP/RICcontrolAcknowledge.h +++ b/src/codec_utils/E2AP/RICcontrolAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICcontrolAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolAcknowledge */ typedef struct RICcontrolAcknowledge { - ProtocolIE_ContainerE2_1407P8_t protocolIEs; + ProtocolIE_ContainerE2_1925P9_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICcontrolFailure.c b/src/codec_utils/E2AP/RICcontrolFailure.c index ee6affe82..1894837e3 100644 --- a/src/codec_utils/E2AP/RICcontrolFailure.c +++ b/src/codec_utils/E2AP/RICcontrolFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICcontrolFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P9, + &asn_DEF_ProtocolIE_ContainerE2_1925P10, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICcontrolFailure.h b/src/codec_utils/E2AP/RICcontrolFailure.h index 5659bb6c5..d5021adb5 100644 --- a/src/codec_utils/E2AP/RICcontrolFailure.h +++ b/src/codec_utils/E2AP/RICcontrolFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICcontrolFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolFailure */ typedef struct RICcontrolFailure { - ProtocolIE_ContainerE2_1407P9_t protocolIEs; + ProtocolIE_ContainerE2_1925P10_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICcontrolHeader.c b/src/codec_utils/E2AP/RICcontrolHeader.c index 01449fe2e..1d494a108 100644 --- a/src/codec_utils/E2AP/RICcontrolHeader.c +++ b/src/codec_utils/E2AP/RICcontrolHeader.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICcontrolHeader.h" diff --git a/src/codec_utils/E2AP/RICcontrolHeader.h b/src/codec_utils/E2AP/RICcontrolHeader.h index f73fd59ef..d92848ed1 100644 --- a/src/codec_utils/E2AP/RICcontrolHeader.h +++ b/src/codec_utils/E2AP/RICcontrolHeader.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICcontrolHeader_H_ diff --git a/src/codec_utils/E2AP/RICcontrolMessage.c b/src/codec_utils/E2AP/RICcontrolMessage.c index f073a04bb..66b9284e3 100644 --- a/src/codec_utils/E2AP/RICcontrolMessage.c +++ b/src/codec_utils/E2AP/RICcontrolMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICcontrolMessage.h" diff --git a/src/codec_utils/E2AP/RICcontrolMessage.h b/src/codec_utils/E2AP/RICcontrolMessage.h index 05d608e8b..9e08158a9 100644 --- a/src/codec_utils/E2AP/RICcontrolMessage.h +++ b/src/codec_utils/E2AP/RICcontrolMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICcontrolMessage_H_ diff --git a/src/codec_utils/E2AP/RICcontrolOutcome.c b/src/codec_utils/E2AP/RICcontrolOutcome.c index 388a53500..2277604cd 100644 --- a/src/codec_utils/E2AP/RICcontrolOutcome.c +++ b/src/codec_utils/E2AP/RICcontrolOutcome.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICcontrolOutcome.h" diff --git a/src/codec_utils/E2AP/RICcontrolOutcome.h b/src/codec_utils/E2AP/RICcontrolOutcome.h index 92396ceb0..86c2e3f9f 100644 --- a/src/codec_utils/E2AP/RICcontrolOutcome.h +++ b/src/codec_utils/E2AP/RICcontrolOutcome.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICcontrolOutcome_H_ diff --git a/src/codec_utils/E2AP/RICcontrolRequest.c b/src/codec_utils/E2AP/RICcontrolRequest.c index f326e050d..ca7dd42c5 100644 --- a/src/codec_utils/E2AP/RICcontrolRequest.c +++ b/src/codec_utils/E2AP/RICcontrolRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICcontrolRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICcontrolRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICcontrolRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P7, + &asn_DEF_ProtocolIE_ContainerE2_1925P8, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICcontrolRequest.h b/src/codec_utils/E2AP/RICcontrolRequest.h index 9f35b5d9e..36cdc54a4 100644 --- a/src/codec_utils/E2AP/RICcontrolRequest.h +++ b/src/codec_utils/E2AP/RICcontrolRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICcontrolRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICcontrolRequest */ typedef struct RICcontrolRequest { - ProtocolIE_ContainerE2_1407P7_t protocolIEs; + ProtocolIE_ContainerE2_1925P8_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICcontrolStatus.c b/src/codec_utils/E2AP/RICcontrolStatus.c deleted file mode 100644 index 73e3356c6..000000000 --- a/src/codec_utils/E2AP/RICcontrolStatus.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#include "RICcontrolStatus.h" - -/* - * This type is implemented using NativeEnumerated, - * so here we adjust the DEF accordingly. - */ -static asn_oer_constraints_t asn_OER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { - { 0, 0 }, - -1}; -static asn_per_constraints_t asn_PER_type_RICcontrolStatus_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, - { APC_UNCONSTRAINED, -1, -1, 0, 0 }, - 0, 0 /* No PER value map */ -}; -static const asn_INTEGER_enum_map_t asn_MAP_RICcontrolStatus_value2enum_1[] = { - { 0, 7, "success" }, - { 1, 8, "rejected" }, - { 2, 6, "failed" } - /* This list is extensible */ -}; -static const unsigned int asn_MAP_RICcontrolStatus_enum2value_1[] = { - 2, /* failed(2) */ - 1, /* rejected(1) */ - 0 /* success(0) */ - /* This list is extensible */ -}; -static const asn_INTEGER_specifics_t asn_SPC_RICcontrolStatus_specs_1 = { - asn_MAP_RICcontrolStatus_value2enum_1, /* "tag" => N; sorted by tag */ - asn_MAP_RICcontrolStatus_enum2value_1, /* N => "tag"; sorted by N */ - 3, /* Number of elements in the maps */ - 4, /* Extensions before this member */ - 1, /* Strict enumeration */ - 0, /* Native long size */ - 0 -}; -static const ber_tlv_tag_t asn_DEF_RICcontrolStatus_tags_1[] = { - (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) -}; -asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus = { - "RICcontrolStatus", - "RICcontrolStatus", - &asn_OP_NativeEnumerated, - asn_DEF_RICcontrolStatus_tags_1, - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - asn_DEF_RICcontrolStatus_tags_1, /* Same as above */ - sizeof(asn_DEF_RICcontrolStatus_tags_1) - /sizeof(asn_DEF_RICcontrolStatus_tags_1[0]), /* 1 */ - { &asn_OER_type_RICcontrolStatus_constr_1, &asn_PER_type_RICcontrolStatus_constr_1, NativeEnumerated_constraint }, - 0, 0, /* Defined elsewhere */ - &asn_SPC_RICcontrolStatus_specs_1 /* Additional specs */ -}; - diff --git a/src/codec_utils/E2AP/RICcontrolStatus.h b/src/codec_utils/E2AP/RICcontrolStatus.h deleted file mode 100644 index 95711c697..000000000 --- a/src/codec_utils/E2AP/RICcontrolStatus.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` - */ - -#ifndef _RICcontrolStatus_H_ -#define _RICcontrolStatus_H_ - - -#include - -/* Including external dependencies */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Dependencies */ -typedef enum RICcontrolStatus { - RICcontrolStatus_success = 0, - RICcontrolStatus_rejected = 1, - RICcontrolStatus_failed = 2 - /* - * Enumeration is extensible - */ -} e_RICcontrolStatus; - -/* RICcontrolStatus */ -typedef long RICcontrolStatus_t; - -/* Implementation */ -extern asn_TYPE_descriptor_t asn_DEF_RICcontrolStatus; -asn_struct_free_f RICcontrolStatus_free; -asn_struct_print_f RICcontrolStatus_print; -asn_constr_check_f RICcontrolStatus_constraint; -ber_type_decoder_f RICcontrolStatus_decode_ber; -der_type_encoder_f RICcontrolStatus_encode_der; -xer_type_decoder_f RICcontrolStatus_decode_xer; -xer_type_encoder_f RICcontrolStatus_encode_xer; -oer_type_decoder_f RICcontrolStatus_decode_oer; -oer_type_encoder_f RICcontrolStatus_encode_oer; -per_type_decoder_f RICcontrolStatus_decode_uper; -per_type_encoder_f RICcontrolStatus_encode_uper; -per_type_decoder_f RICcontrolStatus_decode_aper; -per_type_encoder_f RICcontrolStatus_encode_aper; - -#ifdef __cplusplus -} -#endif - -#endif /* _RICcontrolStatus_H_ */ -#include diff --git a/src/codec_utils/E2AP/RICeventTriggerDefinition.c b/src/codec_utils/E2AP/RICeventTriggerDefinition.c index f4eb284cf..e6f29fba3 100644 --- a/src/codec_utils/E2AP/RICeventTriggerDefinition.c +++ b/src/codec_utils/E2AP/RICeventTriggerDefinition.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICeventTriggerDefinition.h" diff --git a/src/codec_utils/E2AP/RICeventTriggerDefinition.h b/src/codec_utils/E2AP/RICeventTriggerDefinition.h index 635908cc8..61accb3b2 100644 --- a/src/codec_utils/E2AP/RICeventTriggerDefinition.h +++ b/src/codec_utils/E2AP/RICeventTriggerDefinition.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICeventTriggerDefinition_H_ diff --git a/src/codec_utils/E2AP/RICindication.c b/src/codec_utils/E2AP/RICindication.c index 10376a879..a01e7fc28 100644 --- a/src/codec_utils/E2AP/RICindication.c +++ b/src/codec_utils/E2AP/RICindication.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICindication.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICindication_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICindication, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P6, + &asn_DEF_ProtocolIE_ContainerE2_1925P7, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICindication.h b/src/codec_utils/E2AP/RICindication.h index d4d170a71..da2e8224d 100644 --- a/src/codec_utils/E2AP/RICindication.h +++ b/src/codec_utils/E2AP/RICindication.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICindication_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICindication */ typedef struct RICindication { - ProtocolIE_ContainerE2_1407P6_t protocolIEs; + ProtocolIE_ContainerE2_1925P7_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICindicationHeader.c b/src/codec_utils/E2AP/RICindicationHeader.c index feed94e7a..e39302893 100644 --- a/src/codec_utils/E2AP/RICindicationHeader.c +++ b/src/codec_utils/E2AP/RICindicationHeader.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICindicationHeader.h" diff --git a/src/codec_utils/E2AP/RICindicationHeader.h b/src/codec_utils/E2AP/RICindicationHeader.h index 1164809fc..3a56561a7 100644 --- a/src/codec_utils/E2AP/RICindicationHeader.h +++ b/src/codec_utils/E2AP/RICindicationHeader.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICindicationHeader_H_ diff --git a/src/codec_utils/E2AP/RICindicationMessage.c b/src/codec_utils/E2AP/RICindicationMessage.c index e9c74dc3b..59e21afae 100644 --- a/src/codec_utils/E2AP/RICindicationMessage.c +++ b/src/codec_utils/E2AP/RICindicationMessage.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICindicationMessage.h" diff --git a/src/codec_utils/E2AP/RICindicationMessage.h b/src/codec_utils/E2AP/RICindicationMessage.h index 82e7608b3..a11b880a1 100644 --- a/src/codec_utils/E2AP/RICindicationMessage.h +++ b/src/codec_utils/E2AP/RICindicationMessage.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICindicationMessage_H_ diff --git a/src/codec_utils/E2AP/RICindicationSN.c b/src/codec_utils/E2AP/RICindicationSN.c index 8afca171e..13370df18 100644 --- a/src/codec_utils/E2AP/RICindicationSN.c +++ b/src/codec_utils/E2AP/RICindicationSN.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICindicationSN.h" diff --git a/src/codec_utils/E2AP/RICindicationSN.h b/src/codec_utils/E2AP/RICindicationSN.h index 1c7167293..a596a5c7d 100644 --- a/src/codec_utils/E2AP/RICindicationSN.h +++ b/src/codec_utils/E2AP/RICindicationSN.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICindicationSN_H_ diff --git a/src/codec_utils/E2AP/RICindicationType.c b/src/codec_utils/E2AP/RICindicationType.c index a00907e95..36c5a21ec 100644 --- a/src/codec_utils/E2AP/RICindicationType.c +++ b/src/codec_utils/E2AP/RICindicationType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICindicationType.h" diff --git a/src/codec_utils/E2AP/RICindicationType.h b/src/codec_utils/E2AP/RICindicationType.h index 23614b934..d263b2fc7 100644 --- a/src/codec_utils/E2AP/RICindicationType.h +++ b/src/codec_utils/E2AP/RICindicationType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICindicationType_H_ diff --git a/src/codec_utils/E2AP/RICrequestID.c b/src/codec_utils/E2AP/RICrequestID.c index 2e34c8da4..3cfd0705f 100644 --- a/src/codec_utils/E2AP/RICrequestID.c +++ b/src/codec_utils/E2AP/RICrequestID.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICrequestID.h" diff --git a/src/codec_utils/E2AP/RICrequestID.h b/src/codec_utils/E2AP/RICrequestID.h index 2114a7c9a..a9b4b6b9d 100644 --- a/src/codec_utils/E2AP/RICrequestID.h +++ b/src/codec_utils/E2AP/RICrequestID.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICrequestID_H_ diff --git a/src/codec_utils/E2AP/RICserviceQuery.c b/src/codec_utils/E2AP/RICserviceQuery.c index 6cdf79711..6a8c6f358 100644 --- a/src/codec_utils/E2AP/RICserviceQuery.c +++ b/src/codec_utils/E2AP/RICserviceQuery.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICserviceQuery.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceQuery_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceQuery, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P19, + &asn_DEF_ProtocolIE_ContainerE2_1925P26, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICserviceQuery.h b/src/codec_utils/E2AP/RICserviceQuery.h index 454412976..600092786 100644 --- a/src/codec_utils/E2AP/RICserviceQuery.h +++ b/src/codec_utils/E2AP/RICserviceQuery.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICserviceQuery_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceQuery */ typedef struct RICserviceQuery { - ProtocolIE_ContainerE2_1407P19_t protocolIEs; + ProtocolIE_ContainerE2_1925P26_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICserviceUpdate.c b/src/codec_utils/E2AP/RICserviceUpdate.c index 34224756c..4b935d246 100644 --- a/src/codec_utils/E2AP/RICserviceUpdate.c +++ b/src/codec_utils/E2AP/RICserviceUpdate.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICserviceUpdate.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdate_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdate, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P16, + &asn_DEF_ProtocolIE_ContainerE2_1925P23, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICserviceUpdate.h b/src/codec_utils/E2AP/RICserviceUpdate.h index a817b3d25..9faf61881 100644 --- a/src/codec_utils/E2AP/RICserviceUpdate.h +++ b/src/codec_utils/E2AP/RICserviceUpdate.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICserviceUpdate_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdate */ typedef struct RICserviceUpdate { - ProtocolIE_ContainerE2_1407P16_t protocolIEs; + ProtocolIE_ContainerE2_1925P23_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICserviceUpdateAcknowledge.c b/src/codec_utils/E2AP/RICserviceUpdateAcknowledge.c index debb9463f..edf8b2b00 100644 --- a/src/codec_utils/E2AP/RICserviceUpdateAcknowledge.c +++ b/src/codec_utils/E2AP/RICserviceUpdateAcknowledge.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICserviceUpdateAcknowledge.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdateAcknowledge_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateAcknowledge, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P17, + &asn_DEF_ProtocolIE_ContainerE2_1925P24, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICserviceUpdateAcknowledge.h b/src/codec_utils/E2AP/RICserviceUpdateAcknowledge.h index b6927a00f..b99e83518 100644 --- a/src/codec_utils/E2AP/RICserviceUpdateAcknowledge.h +++ b/src/codec_utils/E2AP/RICserviceUpdateAcknowledge.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICserviceUpdateAcknowledge_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdateAcknowledge */ typedef struct RICserviceUpdateAcknowledge { - ProtocolIE_ContainerE2_1407P17_t protocolIEs; + ProtocolIE_ContainerE2_1925P24_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICserviceUpdateFailure.c b/src/codec_utils/E2AP/RICserviceUpdateFailure.c index cef1a5ef3..51d79d98f 100644 --- a/src/codec_utils/E2AP/RICserviceUpdateFailure.c +++ b/src/codec_utils/E2AP/RICserviceUpdateFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICserviceUpdateFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICserviceUpdateFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICserviceUpdateFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P18, + &asn_DEF_ProtocolIE_ContainerE2_1925P25, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICserviceUpdateFailure.h b/src/codec_utils/E2AP/RICserviceUpdateFailure.h index 9b636392f..fa834eeae 100644 --- a/src/codec_utils/E2AP/RICserviceUpdateFailure.h +++ b/src/codec_utils/E2AP/RICserviceUpdateFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICserviceUpdateFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICserviceUpdateFailure */ typedef struct RICserviceUpdateFailure { - ProtocolIE_ContainerE2_1407P18_t protocolIEs; + ProtocolIE_ContainerE2_1925P25_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICsubscription-List-withCause.c b/src/codec_utils/E2AP/RICsubscription-List-withCause.c new file mode 100644 index 000000000..a72a0f8fd --- /dev/null +++ b/src/codec_utils/E2AP/RICsubscription-List-withCause.c @@ -0,0 +1,53 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RICsubscription-List-withCause.h" + +#include "ProtocolIE-SingleContainerE2.h" +static asn_oer_constraints_t asn_OER_type_RICsubscription_List_withCause_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(1..4294967295)) */}; +static asn_per_constraints_t asn_PER_type_RICsubscription_List_withCause_constr_1 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 32, -1, 1, 4294967295 } /* (SIZE(1..4294967295)) */, + 0, 0 /* No PER value map */ +}; +static asn_TYPE_member_t asn_MBR_RICsubscription_List_withCause_1[] = { + { ATF_POINTER, 0, 0, + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_ProtocolIE_SingleContainerE2_1928P3, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscription_List_withCause_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static asn_SET_OF_specifics_t asn_SPC_RICsubscription_List_withCause_specs_1 = { + sizeof(struct RICsubscription_List_withCause), + offsetof(struct RICsubscription_List_withCause, _asn_ctx), + 0, /* XER encoding is XMLDelimitedItemList */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscription_List_withCause = { + "RICsubscription-List-withCause", + "RICsubscription-List-withCause", + &asn_OP_SEQUENCE_OF, + asn_DEF_RICsubscription_List_withCause_tags_1, + sizeof(asn_DEF_RICsubscription_List_withCause_tags_1) + /sizeof(asn_DEF_RICsubscription_List_withCause_tags_1[0]), /* 1 */ + asn_DEF_RICsubscription_List_withCause_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscription_List_withCause_tags_1) + /sizeof(asn_DEF_RICsubscription_List_withCause_tags_1[0]), /* 1 */ + { &asn_OER_type_RICsubscription_List_withCause_constr_1, &asn_PER_type_RICsubscription_List_withCause_constr_1, SEQUENCE_OF_constraint }, + asn_MBR_RICsubscription_List_withCause_1, + 1, /* Single element */ + &asn_SPC_RICsubscription_List_withCause_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/RICsubscription-List-withCause.h b/src/codec_utils/E2AP/RICsubscription-List-withCause.h new file mode 100644 index 000000000..972f1e781 --- /dev/null +++ b/src/codec_utils/E2AP/RICsubscription-List-withCause.h @@ -0,0 +1,41 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RICsubscription_List_withCause_H_ +#define _RICsubscription_List_withCause_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Forward declarations */ +struct ProtocolIE_SingleContainerE2; + +/* RICsubscription-List-withCause */ +typedef struct RICsubscription_List_withCause { + A_SEQUENCE_OF(struct ProtocolIE_SingleContainerE2) list; + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_List_withCause_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_List_withCause; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscription_List_withCause_H_ */ +#include diff --git a/src/codec_utils/E2AP/RICsubscription-withCause-Item.c b/src/codec_utils/E2AP/RICsubscription-withCause-Item.c new file mode 100644 index 000000000..5d5230c79 --- /dev/null +++ b/src/codec_utils/E2AP/RICsubscription-withCause-Item.c @@ -0,0 +1,70 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RICsubscription-withCause-Item.h" + +static asn_TYPE_member_t asn_MBR_RICsubscription_withCause_Item_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, ricRequestID), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RICrequestID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ricRequestID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, ranFunctionID), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_RANfunctionID, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "ranFunctionID" + }, + { ATF_NOFLAGS, 0, offsetof(struct RICsubscription_withCause_Item, cause), + (ASN_TAG_CLASS_CONTEXT | (2 << 2)), + +1, /* EXPLICIT tag at current level */ + &asn_DEF_CauseE2, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "cause" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscription_withCause_Item_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscription_withCause_Item_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* ricRequestID */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* ranFunctionID */ + { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* cause */ +}; +static asn_SEQUENCE_specifics_t asn_SPC_RICsubscription_withCause_Item_specs_1 = { + sizeof(struct RICsubscription_withCause_Item), + offsetof(struct RICsubscription_withCause_Item, _asn_ctx), + asn_MAP_RICsubscription_withCause_Item_tag2el_1, + 3, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 3, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_Item = { + "RICsubscription-withCause-Item", + "RICsubscription-withCause-Item", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscription_withCause_Item_tags_1, + sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1) + /sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1[0]), /* 1 */ + asn_DEF_RICsubscription_withCause_Item_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1) + /sizeof(asn_DEF_RICsubscription_withCause_Item_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscription_withCause_Item_1, + 3, /* Elements count */ + &asn_SPC_RICsubscription_withCause_Item_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/RICsubscription-withCause-Item.h b/src/codec_utils/E2AP/RICsubscription-withCause-Item.h new file mode 100644 index 000000000..e464ea713 --- /dev/null +++ b/src/codec_utils/E2AP/RICsubscription-withCause-Item.h @@ -0,0 +1,46 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RICsubscription_withCause_Item_H_ +#define _RICsubscription_withCause_Item_H_ + + +#include + +/* Including external dependencies */ +#include "RICrequestID.h" +#include "RANfunctionID.h" +#include "CauseE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscription-withCause-Item */ +typedef struct RICsubscription_withCause_Item { + RICrequestID_t ricRequestID; + RANfunctionID_t ranFunctionID; + CauseE2_t cause; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscription_withCause_Item_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscription_withCause_Item; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscription_withCause_Item_H_ */ +#include diff --git a/src/codec_utils/E2AP/RICsubscriptionDeleteFailure.c b/src/codec_utils/E2AP/RICsubscriptionDeleteFailure.c index 41752ec2b..84379a277 100644 --- a/src/codec_utils/E2AP/RICsubscriptionDeleteFailure.c +++ b/src/codec_utils/E2AP/RICsubscriptionDeleteFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubscriptionDeleteFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P5, + &asn_DEF_ProtocolIE_ContainerE2_1925P5, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICsubscriptionDeleteFailure.h b/src/codec_utils/E2AP/RICsubscriptionDeleteFailure.h index 407f66d77..2fb1151f9 100644 --- a/src/codec_utils/E2AP/RICsubscriptionDeleteFailure.h +++ b/src/codec_utils/E2AP/RICsubscriptionDeleteFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionDeleteFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteFailure */ typedef struct RICsubscriptionDeleteFailure { - ProtocolIE_ContainerE2_1407P5_t protocolIEs; + ProtocolIE_ContainerE2_1925P5_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICsubscriptionDeleteRequest.c b/src/codec_utils/E2AP/RICsubscriptionDeleteRequest.c index baf2f2770..b6afa9843 100644 --- a/src/codec_utils/E2AP/RICsubscriptionDeleteRequest.c +++ b/src/codec_utils/E2AP/RICsubscriptionDeleteRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubscriptionDeleteRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P3, + &asn_DEF_ProtocolIE_ContainerE2_1925P3, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICsubscriptionDeleteRequest.h b/src/codec_utils/E2AP/RICsubscriptionDeleteRequest.h index ec2aaf0a1..73fb5804c 100644 --- a/src/codec_utils/E2AP/RICsubscriptionDeleteRequest.h +++ b/src/codec_utils/E2AP/RICsubscriptionDeleteRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionDeleteRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteRequest */ typedef struct RICsubscriptionDeleteRequest { - ProtocolIE_ContainerE2_1407P3_t protocolIEs; + ProtocolIE_ContainerE2_1925P3_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICsubscriptionDeleteRequired.c b/src/codec_utils/E2AP/RICsubscriptionDeleteRequired.c new file mode 100644 index 000000000..65eac1122 --- /dev/null +++ b/src/codec_utils/E2AP/RICsubscriptionDeleteRequired.c @@ -0,0 +1,50 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "RICsubscriptionDeleteRequired.h" + +asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteRequired, protocolIEs), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_ProtocolIE_ContainerE2_1925P6, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "protocolIEs" + }, +}; +static const ber_tlv_tag_t asn_DEF_RICsubscriptionDeleteRequired_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_RICsubscriptionDeleteRequired_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* protocolIEs */ +}; +asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_specs_1 = { + sizeof(struct RICsubscriptionDeleteRequired), + offsetof(struct RICsubscriptionDeleteRequired, _asn_ctx), + asn_MAP_RICsubscriptionDeleteRequired_tag2el_1, + 1, /* Count of tags in the map */ + 0, 0, 0, /* Optional elements (not needed) */ + 1, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired = { + "RICsubscriptionDeleteRequired", + "RICsubscriptionDeleteRequired", + &asn_OP_SEQUENCE, + asn_DEF_RICsubscriptionDeleteRequired_tags_1, + sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1[0]), /* 1 */ + asn_DEF_RICsubscriptionDeleteRequired_tags_1, /* Same as above */ + sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1) + /sizeof(asn_DEF_RICsubscriptionDeleteRequired_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_RICsubscriptionDeleteRequired_1, + 1, /* Elements count */ + &asn_SPC_RICsubscriptionDeleteRequired_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/RICsubscriptionDeleteRequired.h b/src/codec_utils/E2AP/RICsubscriptionDeleteRequired.h new file mode 100644 index 000000000..dd85a8341 --- /dev/null +++ b/src/codec_utils/E2AP/RICsubscriptionDeleteRequired.h @@ -0,0 +1,44 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-PDU-Contents" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _RICsubscriptionDeleteRequired_H_ +#define _RICsubscriptionDeleteRequired_H_ + + +#include + +/* Including external dependencies */ +#include "ProtocolIE-ContainerE2.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* RICsubscriptionDeleteRequired */ +typedef struct RICsubscriptionDeleteRequired { + ProtocolIE_ContainerE2_1925P6_t protocolIEs; + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} RICsubscriptionDeleteRequired_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_RICsubscriptionDeleteRequired; +extern asn_SEQUENCE_specifics_t asn_SPC_RICsubscriptionDeleteRequired_specs_1; +extern asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteRequired_1[1]; + +#ifdef __cplusplus +} +#endif + +#endif /* _RICsubscriptionDeleteRequired_H_ */ +#include diff --git a/src/codec_utils/E2AP/RICsubscriptionDeleteResponse.c b/src/codec_utils/E2AP/RICsubscriptionDeleteResponse.c index 187e8baeb..77983da34 100644 --- a/src/codec_utils/E2AP/RICsubscriptionDeleteResponse.c +++ b/src/codec_utils/E2AP/RICsubscriptionDeleteResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubscriptionDeleteResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionDeleteResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionDeleteResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P4, + &asn_DEF_ProtocolIE_ContainerE2_1925P4, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICsubscriptionDeleteResponse.h b/src/codec_utils/E2AP/RICsubscriptionDeleteResponse.h index a601a4332..f532cd18a 100644 --- a/src/codec_utils/E2AP/RICsubscriptionDeleteResponse.h +++ b/src/codec_utils/E2AP/RICsubscriptionDeleteResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionDeleteResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionDeleteResponse */ typedef struct RICsubscriptionDeleteResponse { - ProtocolIE_ContainerE2_1407P4_t protocolIEs; + ProtocolIE_ContainerE2_1925P4_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICsubscriptionDetails.c b/src/codec_utils/E2AP/RICsubscriptionDetails.c index 064be1ad0..f2f07f0d6 100644 --- a/src/codec_utils/E2AP/RICsubscriptionDetails.c +++ b/src/codec_utils/E2AP/RICsubscriptionDetails.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubscriptionDetails.h" diff --git a/src/codec_utils/E2AP/RICsubscriptionDetails.h b/src/codec_utils/E2AP/RICsubscriptionDetails.h index e25d8662c..f194410b0 100644 --- a/src/codec_utils/E2AP/RICsubscriptionDetails.h +++ b/src/codec_utils/E2AP/RICsubscriptionDetails.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionDetails_H_ diff --git a/src/codec_utils/E2AP/RICsubscriptionFailure.c b/src/codec_utils/E2AP/RICsubscriptionFailure.c index 141a5a1f7..ddc7f22fc 100644 --- a/src/codec_utils/E2AP/RICsubscriptionFailure.c +++ b/src/codec_utils/E2AP/RICsubscriptionFailure.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubscriptionFailure.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionFailure_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionFailure, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P2, + &asn_DEF_ProtocolIE_ContainerE2_1925P2, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICsubscriptionFailure.h b/src/codec_utils/E2AP/RICsubscriptionFailure.h index a0ba284bd..1f64a6842 100644 --- a/src/codec_utils/E2AP/RICsubscriptionFailure.h +++ b/src/codec_utils/E2AP/RICsubscriptionFailure.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionFailure_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionFailure */ typedef struct RICsubscriptionFailure { - ProtocolIE_ContainerE2_1407P2_t protocolIEs; + ProtocolIE_ContainerE2_1925P2_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICsubscriptionRequest.c b/src/codec_utils/E2AP/RICsubscriptionRequest.c index 5a9a020ad..e2c422409 100644 --- a/src/codec_utils/E2AP/RICsubscriptionRequest.c +++ b/src/codec_utils/E2AP/RICsubscriptionRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubscriptionRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P0, + &asn_DEF_ProtocolIE_ContainerE2_1925P0, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICsubscriptionRequest.h b/src/codec_utils/E2AP/RICsubscriptionRequest.h index c92e05ed9..5610bbade 100644 --- a/src/codec_utils/E2AP/RICsubscriptionRequest.h +++ b/src/codec_utils/E2AP/RICsubscriptionRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionRequest */ typedef struct RICsubscriptionRequest { - ProtocolIE_ContainerE2_1407P0_t protocolIEs; + ProtocolIE_ContainerE2_1925P0_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICsubscriptionResponse.c b/src/codec_utils/E2AP/RICsubscriptionResponse.c index 0ac75b23e..a4826afce 100644 --- a/src/codec_utils/E2AP/RICsubscriptionResponse.c +++ b/src/codec_utils/E2AP/RICsubscriptionResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubscriptionResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_RICsubscriptionResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct RICsubscriptionResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P1, + &asn_DEF_ProtocolIE_ContainerE2_1925P1, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/RICsubscriptionResponse.h b/src/codec_utils/E2AP/RICsubscriptionResponse.h index 0fbcff36f..ff2b33821 100644 --- a/src/codec_utils/E2AP/RICsubscriptionResponse.h +++ b/src/codec_utils/E2AP/RICsubscriptionResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubscriptionResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* RICsubscriptionResponse */ typedef struct RICsubscriptionResponse { - ProtocolIE_ContainerE2_1407P1_t protocolIEs; + ProtocolIE_ContainerE2_1925P1_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/RICsubsequentAction.c b/src/codec_utils/E2AP/RICsubsequentAction.c index e6f899506..3219869bc 100644 --- a/src/codec_utils/E2AP/RICsubsequentAction.c +++ b/src/codec_utils/E2AP/RICsubsequentAction.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubsequentAction.h" diff --git a/src/codec_utils/E2AP/RICsubsequentAction.h b/src/codec_utils/E2AP/RICsubsequentAction.h index 1496df33f..9b5dd7364 100644 --- a/src/codec_utils/E2AP/RICsubsequentAction.h +++ b/src/codec_utils/E2AP/RICsubsequentAction.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubsequentAction_H_ diff --git a/src/codec_utils/E2AP/RICsubsequentActionType.c b/src/codec_utils/E2AP/RICsubsequentActionType.c index 050b1b55d..b72108e54 100644 --- a/src/codec_utils/E2AP/RICsubsequentActionType.c +++ b/src/codec_utils/E2AP/RICsubsequentActionType.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICsubsequentActionType.h" diff --git a/src/codec_utils/E2AP/RICsubsequentActionType.h b/src/codec_utils/E2AP/RICsubsequentActionType.h index c41df0acc..2561e5442 100644 --- a/src/codec_utils/E2AP/RICsubsequentActionType.h +++ b/src/codec_utils/E2AP/RICsubsequentActionType.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICsubsequentActionType_H_ diff --git a/src/codec_utils/E2AP/RICtimeToWait.c b/src/codec_utils/E2AP/RICtimeToWait.c index 488974f8b..1c6c29bcf 100644 --- a/src/codec_utils/E2AP/RICtimeToWait.c +++ b/src/codec_utils/E2AP/RICtimeToWait.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "RICtimeToWait.h" @@ -15,57 +15,55 @@ static asn_oer_constraints_t asn_OER_type_RICtimeToWait_constr_1 CC_NOTUSED = { { 0, 0 }, -1}; asn_per_constraints_t asn_PER_type_RICtimeToWait_constr_1 CC_NOTUSED = { - { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 17 } /* (0..17,...) */, + { APC_CONSTRAINED | APC_EXTENSIBLE, 5, 5, 0, 16 } /* (0..16,...) */, { APC_UNCONSTRAINED, -1, -1, 0, 0 }, 0, 0 /* No PER value map */ }; static const asn_INTEGER_enum_map_t asn_MAP_RICtimeToWait_value2enum_1[] = { - { 0, 4, "zero" }, - { 1, 4, "w1ms" }, - { 2, 4, "w2ms" }, - { 3, 4, "w5ms" }, - { 4, 5, "w10ms" }, - { 5, 5, "w20ms" }, - { 6, 5, "w30ms" }, - { 7, 5, "w40ms" }, - { 8, 5, "w50ms" }, - { 9, 6, "w100ms" }, - { 10, 6, "w200ms" }, - { 11, 6, "w500ms" }, - { 12, 3, "w1s" }, - { 13, 3, "w2s" }, - { 14, 3, "w5s" }, - { 15, 4, "w10s" }, - { 16, 4, "w20s" }, - { 17, 4, "w60s" } + { 0, 4, "w1ms" }, + { 1, 4, "w2ms" }, + { 2, 4, "w5ms" }, + { 3, 5, "w10ms" }, + { 4, 5, "w20ms" }, + { 5, 5, "w30ms" }, + { 6, 5, "w40ms" }, + { 7, 5, "w50ms" }, + { 8, 6, "w100ms" }, + { 9, 6, "w200ms" }, + { 10, 6, "w500ms" }, + { 11, 3, "w1s" }, + { 12, 3, "w2s" }, + { 13, 3, "w5s" }, + { 14, 4, "w10s" }, + { 15, 4, "w20s" }, + { 16, 4, "w60s" } /* This list is extensible */ }; static const unsigned int asn_MAP_RICtimeToWait_enum2value_1[] = { - 9, /* w100ms(9) */ - 4, /* w10ms(4) */ - 15, /* w10s(15) */ - 1, /* w1ms(1) */ - 12, /* w1s(12) */ - 10, /* w200ms(10) */ - 5, /* w20ms(5) */ - 16, /* w20s(16) */ - 2, /* w2ms(2) */ - 13, /* w2s(13) */ - 6, /* w30ms(6) */ - 7, /* w40ms(7) */ - 11, /* w500ms(11) */ - 8, /* w50ms(8) */ - 3, /* w5ms(3) */ - 14, /* w5s(14) */ - 17, /* w60s(17) */ - 0 /* zero(0) */ + 8, /* w100ms(8) */ + 3, /* w10ms(3) */ + 14, /* w10s(14) */ + 0, /* w1ms(0) */ + 11, /* w1s(11) */ + 9, /* w200ms(9) */ + 4, /* w20ms(4) */ + 15, /* w20s(15) */ + 1, /* w2ms(1) */ + 12, /* w2s(12) */ + 5, /* w30ms(5) */ + 6, /* w40ms(6) */ + 10, /* w500ms(10) */ + 7, /* w50ms(7) */ + 2, /* w5ms(2) */ + 13, /* w5s(13) */ + 16 /* w60s(16) */ /* This list is extensible */ }; const asn_INTEGER_specifics_t asn_SPC_RICtimeToWait_specs_1 = { asn_MAP_RICtimeToWait_value2enum_1, /* "tag" => N; sorted by tag */ asn_MAP_RICtimeToWait_enum2value_1, /* N => "tag"; sorted by N */ - 18, /* Number of elements in the maps */ - 19, /* Extensions before this member */ + 17, /* Number of elements in the maps */ + 18, /* Extensions before this member */ 1, /* Strict enumeration */ 0, /* Native long size */ 0 diff --git a/src/codec_utils/E2AP/RICtimeToWait.h b/src/codec_utils/E2AP/RICtimeToWait.h index a4d0a71ef..0db92bc15 100644 --- a/src/codec_utils/E2AP/RICtimeToWait.h +++ b/src/codec_utils/E2AP/RICtimeToWait.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _RICtimeToWait_H_ @@ -20,24 +20,23 @@ extern "C" { /* Dependencies */ typedef enum RICtimeToWait { - RICtimeToWait_zero = 0, - RICtimeToWait_w1ms = 1, - RICtimeToWait_w2ms = 2, - RICtimeToWait_w5ms = 3, - RICtimeToWait_w10ms = 4, - RICtimeToWait_w20ms = 5, - RICtimeToWait_w30ms = 6, - RICtimeToWait_w40ms = 7, - RICtimeToWait_w50ms = 8, - RICtimeToWait_w100ms = 9, - RICtimeToWait_w200ms = 10, - RICtimeToWait_w500ms = 11, - RICtimeToWait_w1s = 12, - RICtimeToWait_w2s = 13, - RICtimeToWait_w5s = 14, - RICtimeToWait_w10s = 15, - RICtimeToWait_w20s = 16, - RICtimeToWait_w60s = 17 + RICtimeToWait_w1ms = 0, + RICtimeToWait_w2ms = 1, + RICtimeToWait_w5ms = 2, + RICtimeToWait_w10ms = 3, + RICtimeToWait_w20ms = 4, + RICtimeToWait_w30ms = 5, + RICtimeToWait_w40ms = 6, + RICtimeToWait_w50ms = 7, + RICtimeToWait_w100ms = 8, + RICtimeToWait_w200ms = 9, + RICtimeToWait_w500ms = 10, + RICtimeToWait_w1s = 11, + RICtimeToWait_w2s = 12, + RICtimeToWait_w5s = 13, + RICtimeToWait_w10s = 14, + RICtimeToWait_w20s = 15, + RICtimeToWait_w60s = 16 /* * Enumeration is extensible */ diff --git a/src/codec_utils/E2AP/ResetRequest.c b/src/codec_utils/E2AP/ResetRequest.c index 2793af7f4..14e9657e6 100644 --- a/src/codec_utils/E2AP/ResetRequest.c +++ b/src/codec_utils/E2AP/ResetRequest.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ResetRequest.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ResetRequest_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetRequest, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P14, + &asn_DEF_ProtocolIE_ContainerE2_1925P21, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/ResetRequest.h b/src/codec_utils/E2AP/ResetRequest.h index bc7f37093..74fd0f689 100644 --- a/src/codec_utils/E2AP/ResetRequest.h +++ b/src/codec_utils/E2AP/ResetRequest.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ResetRequest_H_ @@ -21,7 +21,7 @@ extern "C" { /* ResetRequest */ typedef struct ResetRequest { - ProtocolIE_ContainerE2_1407P14_t protocolIEs; + ProtocolIE_ContainerE2_1925P21_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/ResetResponse.c b/src/codec_utils/E2AP/ResetResponse.c index e92274917..3c2f5eb70 100644 --- a/src/codec_utils/E2AP/ResetResponse.c +++ b/src/codec_utils/E2AP/ResetResponse.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "ResetResponse.h" @@ -11,7 +11,7 @@ asn_TYPE_member_t asn_MBR_ResetResponse_1[] = { { ATF_NOFLAGS, 0, offsetof(struct ResetResponse, protocolIEs), (ASN_TAG_CLASS_CONTEXT | (0 << 2)), -1, /* IMPLICIT tag at current level */ - &asn_DEF_ProtocolIE_ContainerE2_1407P15, + &asn_DEF_ProtocolIE_ContainerE2_1925P22, 0, { 0, 0, 0 }, 0, 0, /* No default value */ diff --git a/src/codec_utils/E2AP/ResetResponse.h b/src/codec_utils/E2AP/ResetResponse.h index 668029db0..452f39c73 100644 --- a/src/codec_utils/E2AP/ResetResponse.h +++ b/src/codec_utils/E2AP/ResetResponse.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Contents" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _ResetResponse_H_ @@ -21,7 +21,7 @@ extern "C" { /* ResetResponse */ typedef struct ResetResponse { - ProtocolIE_ContainerE2_1407P15_t protocolIEs; + ProtocolIE_ContainerE2_1925P22_t protocolIEs; /* * This type is extensible, * possible extensions are below. diff --git a/src/codec_utils/E2AP/SuccessfulOutcomeE2.c b/src/codec_utils/E2AP/SuccessfulOutcomeE2.c index af0051874..ebb587bc5 100644 --- a/src/codec_utils/E2AP/SuccessfulOutcomeE2.c +++ b/src/codec_utils/E2AP/SuccessfulOutcomeE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "SuccessfulOutcomeE2.h" @@ -17,14 +17,20 @@ static const long asn_VAL_4_id_RICcontrol = 4; static const long asn_VAL_4_reject = 0; static const long asn_VAL_5_id_E2setup = 1; static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; +static const long asn_VAL_6_id_E2nodeConfigurationUpdate = 10; static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndicationE2 = 2; +static const long asn_VAL_7_id_E2connectionUpdate = 11; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_Reset = 3; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_RICindication = 5; static const long asn_VAL_9_ignore = 1; +static const long asn_VAL_10_id_RICserviceQuery = 6; +static const long asn_VAL_10_ignore = 1; +static const long asn_VAL_11_id_ErrorIndicationE2 = 2; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -51,29 +57,44 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2setupFailure }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_5_id_E2setup }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_5_reject }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, + { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_6_id_E2nodeConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_6_reject }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_E2connectionUpdate }, + { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, + { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2connectionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_7_id_E2connectionUpdate }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_7_reject }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_ResetRequest }, { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_ResetResponse }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_6_reject }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_8_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_8_reject }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICindication }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_7_ignore }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_9_id_RICindication }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_9_ignore }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICserviceQuery }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_8_ignore }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_10_id_RICserviceQuery }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_10_ignore }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_ErrorIndicationE2 }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_9_id_ErrorIndicationE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_9_ignore } + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_11_id_ErrorIndicationE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_11_ignore }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcomeE2", }, + { "&UnsuccessfulOutcomeE2", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -262,6 +283,24 @@ static asn_TYPE_member_t asn_MBR_value_4[] = { 0, 0, /* No default value */ "E2setupResponse" }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2__value, choice.E2nodeConfigurationUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdateAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeConfigurationUpdateAcknowledge" + }, + { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2__value, choice.E2connectionUpdateAcknowledge), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateAcknowledge, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdateAcknowledge" + }, { ATF_NOFLAGS, 0, offsetof(struct SuccessfulOutcomeE2__value, choice.ResetResponse), (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, @@ -273,12 +312,14 @@ static asn_TYPE_member_t asn_MBR_value_4[] = { }, }; static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 5 }, /* RICsubscriptionResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 4 }, /* RICsubscriptionDeleteResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 3 }, /* RICserviceUpdateAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 2 }, /* RICcontrolAcknowledge */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 1 }, /* E2setupResponse */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 0 } /* ResetResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 7 }, /* RICsubscriptionResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 6 }, /* RICsubscriptionDeleteResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 5 }, /* RICserviceUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 4 }, /* RICcontrolAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 3 }, /* E2setupResponse */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 2 }, /* E2nodeConfigurationUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 1 }, /* E2connectionUpdateAcknowledge */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 7, -7, 0 } /* ResetResponse */ }; static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { sizeof(struct SuccessfulOutcomeE2__value), @@ -286,7 +327,7 @@ static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { offsetof(struct SuccessfulOutcomeE2__value, present), sizeof(((struct SuccessfulOutcomeE2__value *)0)->present), asn_MAP_value_tag2el_4, - 6, /* Count of tags in the map */ + 8, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; @@ -301,7 +342,7 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, asn_MBR_value_4, - 6, /* Elements count */ + 8, /* Elements count */ &asn_SPC_value_specs_4 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/SuccessfulOutcomeE2.h b/src/codec_utils/E2AP/SuccessfulOutcomeE2.h index 4c408523c..ab73886cc 100644 --- a/src/codec_utils/E2AP/SuccessfulOutcomeE2.h +++ b/src/codec_utils/E2AP/SuccessfulOutcomeE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _SuccessfulOutcomeE2_H_ @@ -31,11 +31,18 @@ #include "E2setupRequest.h" #include "E2setupResponse.h" #include "E2setupFailure.h" +#include "E2nodeConfigurationUpdate.h" +#include "E2nodeConfigurationUpdateAcknowledge.h" +#include "E2nodeConfigurationUpdateFailure.h" +#include "E2connectionUpdate.h" +#include "E2connectionUpdateAcknowledge.h" +#include "E2connectionUpdateFailure.h" #include "ResetRequest.h" #include "ResetResponse.h" #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndicationE2.h" +#include "RICsubscriptionDeleteRequired.h" #include #include #include @@ -52,6 +59,8 @@ typedef enum SuccessfulOutcomeE2__value_PR { SuccessfulOutcomeE2__value_PR_RICserviceUpdateAcknowledge, SuccessfulOutcomeE2__value_PR_RICcontrolAcknowledge, SuccessfulOutcomeE2__value_PR_E2setupResponse, + SuccessfulOutcomeE2__value_PR_E2nodeConfigurationUpdateAcknowledge, + SuccessfulOutcomeE2__value_PR_E2connectionUpdateAcknowledge, SuccessfulOutcomeE2__value_PR_ResetResponse } SuccessfulOutcomeE2__value_PR; @@ -67,6 +76,8 @@ typedef struct SuccessfulOutcomeE2 { RICserviceUpdateAcknowledge_t RICserviceUpdateAcknowledge; RICcontrolAcknowledge_t RICcontrolAcknowledge; E2setupResponse_t E2setupResponse; + E2nodeConfigurationUpdateAcknowledge_t E2nodeConfigurationUpdateAcknowledge; + E2connectionUpdateAcknowledge_t E2connectionUpdateAcknowledge; ResetResponse_t ResetResponse; } choice; diff --git a/src/codec_utils/E2AP/TNLinformation.c b/src/codec_utils/E2AP/TNLinformation.c new file mode 100644 index 000000000..1d3949a0a --- /dev/null +++ b/src/codec_utils/E2AP/TNLinformation.c @@ -0,0 +1,140 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TNLinformation.h" + +static int +memb_tnlAddress_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size >= 1 && size <= 160)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static int +memb_tnlPort_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + const BIT_STRING_t *st = (const BIT_STRING_t *)sptr; + size_t size; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + if(st->size > 0) { + /* Size in bits */ + size = 8 * st->size - (st->bits_unused & 0x07); + } else { + size = 0; + } + + if((size == 16)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +static asn_oer_constraints_t asn_OER_memb_tnlAddress_constr_2 CC_NOTUSED = { + { 0, 0 }, + -1 /* (SIZE(0..MAX)) */}; +static asn_per_constraints_t asn_PER_memb_tnlAddress_constr_2 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 1, 160 } /* (SIZE(1..160,...)) */, + 0, 0 /* No PER value map */ +}; +static asn_oer_constraints_t asn_OER_memb_tnlPort_constr_3 CC_NOTUSED = { + { 0, 0 }, + 16 /* (SIZE(16..16)) */}; +static asn_per_constraints_t asn_PER_memb_tnlPort_constr_3 CC_NOTUSED = { + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + { APC_CONSTRAINED, 0, 0, 16, 16 } /* (SIZE(16..16)) */, + 0, 0 /* No PER value map */ +}; +asn_TYPE_member_t asn_MBR_TNLinformation_1[] = { + { ATF_NOFLAGS, 0, offsetof(struct TNLinformation, tnlAddress), + (ASN_TAG_CLASS_CONTEXT | (0 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_tnlAddress_constr_2, &asn_PER_memb_tnlAddress_constr_2, memb_tnlAddress_constraint_1 }, + 0, 0, /* No default value */ + "tnlAddress" + }, + { ATF_POINTER, 1, offsetof(struct TNLinformation, tnlPort), + (ASN_TAG_CLASS_CONTEXT | (1 << 2)), + -1, /* IMPLICIT tag at current level */ + &asn_DEF_BIT_STRING, + 0, + { &asn_OER_memb_tnlPort_constr_3, &asn_PER_memb_tnlPort_constr_3, memb_tnlPort_constraint_1 }, + 0, 0, /* No default value */ + "tnlPort" + }, +}; +static const int asn_MAP_TNLinformation_oms_1[] = { 1 }; +static const ber_tlv_tag_t asn_DEF_TNLinformation_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)) +}; +static const asn_TYPE_tag2member_t asn_MAP_TNLinformation_tag2el_1[] = { + { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* tnlAddress */ + { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* tnlPort */ +}; +asn_SEQUENCE_specifics_t asn_SPC_TNLinformation_specs_1 = { + sizeof(struct TNLinformation), + offsetof(struct TNLinformation, _asn_ctx), + asn_MAP_TNLinformation_tag2el_1, + 2, /* Count of tags in the map */ + asn_MAP_TNLinformation_oms_1, /* Optional members */ + 1, 0, /* Root/Additions */ + 2, /* First extension addition */ +}; +asn_TYPE_descriptor_t asn_DEF_TNLinformation = { + "TNLinformation", + "TNLinformation", + &asn_OP_SEQUENCE, + asn_DEF_TNLinformation_tags_1, + sizeof(asn_DEF_TNLinformation_tags_1) + /sizeof(asn_DEF_TNLinformation_tags_1[0]), /* 1 */ + asn_DEF_TNLinformation_tags_1, /* Same as above */ + sizeof(asn_DEF_TNLinformation_tags_1) + /sizeof(asn_DEF_TNLinformation_tags_1[0]), /* 1 */ + { 0, 0, SEQUENCE_constraint }, + asn_MBR_TNLinformation_1, + 2, /* Elements count */ + &asn_SPC_TNLinformation_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/TNLinformation.h b/src/codec_utils/E2AP/TNLinformation.h new file mode 100644 index 000000000..63a109906 --- /dev/null +++ b/src/codec_utils/E2AP/TNLinformation.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TNLinformation_H_ +#define _TNLinformation_H_ + + +#include + +/* Including external dependencies */ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TNLinformation */ +typedef struct TNLinformation { + BIT_STRING_t tnlAddress; + BIT_STRING_t *tnlPort; /* OPTIONAL */ + /* + * This type is extensible, + * possible extensions are below. + */ + + /* Context for parsing across buffer boundaries */ + asn_struct_ctx_t _asn_ctx; +} TNLinformation_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TNLinformation; +extern asn_SEQUENCE_specifics_t asn_SPC_TNLinformation_specs_1; +extern asn_TYPE_member_t asn_MBR_TNLinformation_1[2]; + +#ifdef __cplusplus +} +#endif + +#endif /* _TNLinformation_H_ */ +#include diff --git a/src/codec_utils/E2AP/TNLusage.c b/src/codec_utils/E2AP/TNLusage.c new file mode 100644 index 000000000..7f647fbb3 --- /dev/null +++ b/src/codec_utils/E2AP/TNLusage.c @@ -0,0 +1,60 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TNLusage.h" + +/* + * This type is implemented using NativeEnumerated, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TNLusage_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +asn_per_constraints_t asn_PER_type_TNLusage_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const asn_INTEGER_enum_map_t asn_MAP_TNLusage_value2enum_1[] = { + { 0, 11, "ric-service" }, + { 1, 16, "support-function" }, + { 2, 4, "both" } + /* This list is extensible */ +}; +static const unsigned int asn_MAP_TNLusage_enum2value_1[] = { + 2, /* both(2) */ + 0, /* ric-service(0) */ + 1 /* support-function(1) */ + /* This list is extensible */ +}; +const asn_INTEGER_specifics_t asn_SPC_TNLusage_specs_1 = { + asn_MAP_TNLusage_value2enum_1, /* "tag" => N; sorted by tag */ + asn_MAP_TNLusage_enum2value_1, /* N => "tag"; sorted by N */ + 3, /* Number of elements in the maps */ + 4, /* Extensions before this member */ + 1, /* Strict enumeration */ + 0, /* Native long size */ + 0 +}; +static const ber_tlv_tag_t asn_DEF_TNLusage_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TNLusage = { + "TNLusage", + "TNLusage", + &asn_OP_NativeEnumerated, + asn_DEF_TNLusage_tags_1, + sizeof(asn_DEF_TNLusage_tags_1) + /sizeof(asn_DEF_TNLusage_tags_1[0]), /* 1 */ + asn_DEF_TNLusage_tags_1, /* Same as above */ + sizeof(asn_DEF_TNLusage_tags_1) + /sizeof(asn_DEF_TNLusage_tags_1[0]), /* 1 */ + { &asn_OER_type_TNLusage_constr_1, &asn_PER_type_TNLusage_constr_1, NativeEnumerated_constraint }, + 0, 0, /* Defined elsewhere */ + &asn_SPC_TNLusage_specs_1 /* Additional specs */ +}; + diff --git a/src/codec_utils/E2AP/TNLusage.h b/src/codec_utils/E2AP/TNLusage.h new file mode 100644 index 000000000..820b5c458 --- /dev/null +++ b/src/codec_utils/E2AP/TNLusage.h @@ -0,0 +1,57 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TNLusage_H_ +#define _TNLusage_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Dependencies */ +typedef enum TNLusage { + TNLusage_ric_service = 0, + TNLusage_support_function = 1, + TNLusage_both = 2 + /* + * Enumeration is extensible + */ +} e_TNLusage; + +/* TNLusage */ +typedef long TNLusage_t; + +/* Implementation */ +extern asn_per_constraints_t asn_PER_type_TNLusage_constr_1; +extern asn_TYPE_descriptor_t asn_DEF_TNLusage; +extern const asn_INTEGER_specifics_t asn_SPC_TNLusage_specs_1; +asn_struct_free_f TNLusage_free; +asn_struct_print_f TNLusage_print; +asn_constr_check_f TNLusage_constraint; +ber_type_decoder_f TNLusage_decode_ber; +der_type_encoder_f TNLusage_encode_der; +xer_type_decoder_f TNLusage_decode_xer; +xer_type_encoder_f TNLusage_encode_xer; +oer_type_decoder_f TNLusage_decode_oer; +oer_type_encoder_f TNLusage_encode_oer; +per_type_decoder_f TNLusage_decode_uper; +per_type_encoder_f TNLusage_encode_uper; +per_type_decoder_f TNLusage_decode_aper; +per_type_encoder_f TNLusage_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TNLusage_H_ */ +#include diff --git a/src/codec_utils/E2AP/TimeToWaitE2.c b/src/codec_utils/E2AP/TimeToWaitE2.c index 2bccde668..8da2b6ad4 100644 --- a/src/codec_utils/E2AP/TimeToWaitE2.c +++ b/src/codec_utils/E2AP/TimeToWaitE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "TimeToWaitE2.h" diff --git a/src/codec_utils/E2AP/TimeToWaitE2.h b/src/codec_utils/E2AP/TimeToWaitE2.h index 94fd8ed91..b7c4cc509 100644 --- a/src/codec_utils/E2AP/TimeToWaitE2.h +++ b/src/codec_utils/E2AP/TimeToWaitE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _TimeToWaitE2_H_ diff --git a/src/codec_utils/E2AP/TransactionID.c b/src/codec_utils/E2AP/TransactionID.c new file mode 100644 index 000000000..44c194791 --- /dev/null +++ b/src/codec_utils/E2AP/TransactionID.c @@ -0,0 +1,64 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#include "TransactionID.h" + +int +TransactionID_constraint(const asn_TYPE_descriptor_t *td, const void *sptr, + asn_app_constraint_failed_f *ctfailcb, void *app_key) { + long value; + + if(!sptr) { + ASN__CTFAIL(app_key, td, sptr, + "%s: value not given (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } + + value = *(const long *)sptr; + + if((value >= 0 && value <= 255)) { + /* Constraint check succeeded */ + return 0; + } else { + ASN__CTFAIL(app_key, td, sptr, + "%s: constraint failed (%s:%d)", + td->name, __FILE__, __LINE__); + return -1; + } +} + +/* + * This type is implemented using NativeInteger, + * so here we adjust the DEF accordingly. + */ +static asn_oer_constraints_t asn_OER_type_TransactionID_constr_1 CC_NOTUSED = { + { 0, 0 }, + -1}; +static asn_per_constraints_t asn_PER_type_TransactionID_constr_1 CC_NOTUSED = { + { APC_CONSTRAINED | APC_EXTENSIBLE, 8, 8, 0, 255 } /* (0..255,...) */, + { APC_UNCONSTRAINED, -1, -1, 0, 0 }, + 0, 0 /* No PER value map */ +}; +static const ber_tlv_tag_t asn_DEF_TransactionID_tags_1[] = { + (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)) +}; +asn_TYPE_descriptor_t asn_DEF_TransactionID = { + "TransactionID", + "TransactionID", + &asn_OP_NativeInteger, + asn_DEF_TransactionID_tags_1, + sizeof(asn_DEF_TransactionID_tags_1) + /sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */ + asn_DEF_TransactionID_tags_1, /* Same as above */ + sizeof(asn_DEF_TransactionID_tags_1) + /sizeof(asn_DEF_TransactionID_tags_1[0]), /* 1 */ + { &asn_OER_type_TransactionID_constr_1, &asn_PER_type_TransactionID_constr_1, TransactionID_constraint }, + 0, 0, /* No members */ + 0 /* No specifics */ +}; + diff --git a/src/codec_utils/E2AP/TransactionID.h b/src/codec_utils/E2AP/TransactionID.h new file mode 100644 index 000000000..2f6cabf66 --- /dev/null +++ b/src/codec_utils/E2AP/TransactionID.h @@ -0,0 +1,45 @@ +/* + * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) + * From ASN.1 module "E2AP-IEs" + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + */ + +#ifndef _TransactionID_H_ +#define _TransactionID_H_ + + +#include + +/* Including external dependencies */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* TransactionID */ +typedef long TransactionID_t; + +/* Implementation */ +extern asn_TYPE_descriptor_t asn_DEF_TransactionID; +asn_struct_free_f TransactionID_free; +asn_struct_print_f TransactionID_print; +asn_constr_check_f TransactionID_constraint; +ber_type_decoder_f TransactionID_decode_ber; +der_type_encoder_f TransactionID_encode_der; +xer_type_decoder_f TransactionID_decode_xer; +xer_type_encoder_f TransactionID_encode_xer; +oer_type_decoder_f TransactionID_decode_oer; +oer_type_encoder_f TransactionID_encode_oer; +per_type_decoder_f TransactionID_decode_uper; +per_type_encoder_f TransactionID_encode_uper; +per_type_decoder_f TransactionID_decode_aper; +per_type_encoder_f TransactionID_encode_aper; + +#ifdef __cplusplus +} +#endif + +#endif /* _TransactionID_H_ */ +#include diff --git a/src/codec_utils/E2AP/TriggeringMessageE2.c b/src/codec_utils/E2AP/TriggeringMessageE2.c index 38485887e..91f2f4b54 100644 --- a/src/codec_utils/E2AP/TriggeringMessageE2.c +++ b/src/codec_utils/E2AP/TriggeringMessageE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "TriggeringMessageE2.h" diff --git a/src/codec_utils/E2AP/TriggeringMessageE2.h b/src/codec_utils/E2AP/TriggeringMessageE2.h index f480dee65..ab7471251 100644 --- a/src/codec_utils/E2AP/TriggeringMessageE2.h +++ b/src/codec_utils/E2AP/TriggeringMessageE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-CommonDataTypes" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _TriggeringMessageE2_H_ diff --git a/src/codec_utils/E2AP/TypeOfErrorE2.c b/src/codec_utils/E2AP/TypeOfErrorE2.c index d1d30e909..1b76fa222 100644 --- a/src/codec_utils/E2AP/TypeOfErrorE2.c +++ b/src/codec_utils/E2AP/TypeOfErrorE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "TypeOfErrorE2.h" diff --git a/src/codec_utils/E2AP/TypeOfErrorE2.h b/src/codec_utils/E2AP/TypeOfErrorE2.h index 57508d5ea..82d6f9d19 100644 --- a/src/codec_utils/E2AP/TypeOfErrorE2.h +++ b/src/codec_utils/E2AP/TypeOfErrorE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-IEs" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _TypeOfErrorE2_H_ diff --git a/src/codec_utils/E2AP/UnsuccessfulOutcomeE2.c b/src/codec_utils/E2AP/UnsuccessfulOutcomeE2.c index a394f12c1..ba89f1a61 100644 --- a/src/codec_utils/E2AP/UnsuccessfulOutcomeE2.c +++ b/src/codec_utils/E2AP/UnsuccessfulOutcomeE2.c @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #include "UnsuccessfulOutcomeE2.h" @@ -17,14 +17,20 @@ static const long asn_VAL_4_id_RICcontrol = 4; static const long asn_VAL_4_reject = 0; static const long asn_VAL_5_id_E2setup = 1; static const long asn_VAL_5_reject = 0; -static const long asn_VAL_6_id_Reset = 3; +static const long asn_VAL_6_id_E2nodeConfigurationUpdate = 10; static const long asn_VAL_6_reject = 0; -static const long asn_VAL_7_id_RICindication = 5; -static const long asn_VAL_7_ignore = 1; -static const long asn_VAL_8_id_RICserviceQuery = 6; -static const long asn_VAL_8_ignore = 1; -static const long asn_VAL_9_id_ErrorIndicationE2 = 2; +static const long asn_VAL_7_id_E2connectionUpdate = 11; +static const long asn_VAL_7_reject = 0; +static const long asn_VAL_8_id_Reset = 3; +static const long asn_VAL_8_reject = 0; +static const long asn_VAL_9_id_RICindication = 5; static const long asn_VAL_9_ignore = 1; +static const long asn_VAL_10_id_RICserviceQuery = 6; +static const long asn_VAL_10_ignore = 1; +static const long asn_VAL_11_id_ErrorIndicationE2 = 2; +static const long asn_VAL_11_ignore = 1; +static const long asn_VAL_12_id_RICsubscriptionDeleteRequired = 12; +static const long asn_VAL_12_ignore = 1; static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICsubscriptionRequest }, { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_RICsubscriptionResponse }, @@ -51,29 +57,44 @@ static const asn_ioc_cell_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows[] = { { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2setupFailure }, { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_5_id_E2setup }, { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_5_reject }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdate }, + { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdateAcknowledge }, + { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2nodeConfigurationUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_6_id_E2nodeConfigurationUpdate }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_6_reject }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_E2connectionUpdate }, + { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_E2connectionUpdateAcknowledge }, + { "&UnsuccessfulOutcomeE2", aioc__type, &asn_DEF_E2connectionUpdateFailure }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_7_id_E2connectionUpdate }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_7_reject }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_ResetRequest }, { "&SuccessfulOutcomeE2", aioc__type, &asn_DEF_ResetResponse }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_6_id_Reset }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_6_reject }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_8_id_Reset }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_8_reject }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICindication }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_7_id_RICindication }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_7_ignore }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_9_id_RICindication }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_9_ignore }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICserviceQuery }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_8_id_RICserviceQuery }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_8_ignore }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_10_id_RICserviceQuery }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_10_ignore }, { "&InitiatingMessageE2", aioc__type, &asn_DEF_ErrorIndicationE2 }, { "&SuccessfulOutcomeE2", }, { "&UnsuccessfulOutcomeE2", }, - { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_9_id_ErrorIndicationE2 }, - { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_9_ignore } + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_11_id_ErrorIndicationE2 }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_11_ignore }, + { "&InitiatingMessageE2", aioc__type, &asn_DEF_RICsubscriptionDeleteRequired }, + { "&SuccessfulOutcomeE2", }, + { "&UnsuccessfulOutcomeE2", }, + { "&procedureCode", aioc__value, &asn_DEF_ProcedureCodeE2, &asn_VAL_12_id_RICsubscriptionDeleteRequired }, + { "&criticality", aioc__value, &asn_DEF_CriticalityE2, &asn_VAL_12_ignore } }; static const asn_ioc_set_t asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1[] = { - { 9, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } + { 12, 5, asn_IOS_E2AP_ELEMENTARY_PROCEDURES_1_rows } }; static int memb_procedureCode_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr, @@ -262,13 +283,33 @@ static asn_TYPE_member_t asn_MBR_value_4[] = { 0, 0, /* No default value */ "E2setupFailure" }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2__value, choice.E2nodeConfigurationUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2nodeConfigurationUpdateFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2nodeConfigurationUpdateFailure" + }, + { ATF_NOFLAGS, 0, offsetof(struct UnsuccessfulOutcomeE2__value, choice.E2connectionUpdateFailure), + (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), + 0, + &asn_DEF_E2connectionUpdateFailure, + 0, + { 0, 0, 0 }, + 0, 0, /* No default value */ + "E2connectionUpdateFailure" + }, }; static const asn_TYPE_tag2member_t asn_MAP_value_tag2el_4[] = { - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 4 }, /* RICsubscriptionFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 3 }, /* RICsubscriptionDeleteFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 2 }, /* RICserviceUpdateFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 1 }, /* RICcontrolFailure */ - { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 0 } /* E2setupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 0, 0, 6 }, /* RICsubscriptionFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 1, -1, 5 }, /* RICsubscriptionDeleteFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 2, -2, 4 }, /* RICserviceUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 3, -3, 3 }, /* RICcontrolFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 4, -4, 2 }, /* E2setupFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 5, -5, 1 }, /* E2nodeConfigurationUpdateFailure */ + { (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)), 6, -6, 0 } /* E2connectionUpdateFailure */ }; static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { sizeof(struct UnsuccessfulOutcomeE2__value), @@ -276,7 +317,7 @@ static asn_CHOICE_specifics_t asn_SPC_value_specs_4 = { offsetof(struct UnsuccessfulOutcomeE2__value, present), sizeof(((struct UnsuccessfulOutcomeE2__value *)0)->present), asn_MAP_value_tag2el_4, - 5, /* Count of tags in the map */ + 7, /* Count of tags in the map */ 0, 0, -1 /* Extensions start */ }; @@ -291,7 +332,7 @@ asn_TYPE_descriptor_t asn_DEF_value_4 = { 0, /* No tags (count) */ { 0, 0, OPEN_TYPE_constraint }, asn_MBR_value_4, - 5, /* Elements count */ + 7, /* Elements count */ &asn_SPC_value_specs_4 /* Additional specs */ }; diff --git a/src/codec_utils/E2AP/UnsuccessfulOutcomeE2.h b/src/codec_utils/E2AP/UnsuccessfulOutcomeE2.h index b437ded74..54976804b 100644 --- a/src/codec_utils/E2AP/UnsuccessfulOutcomeE2.h +++ b/src/codec_utils/E2AP/UnsuccessfulOutcomeE2.h @@ -1,8 +1,8 @@ /* * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) * From ASN.1 module "E2AP-PDU-Descriptions" - * found in "E2AP.asn1" - * `asn1c -D ./out -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` + * found in "2022_E2AP.asn1" + * `asn1c -D ./E2AP/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example` */ #ifndef _UnsuccessfulOutcomeE2_H_ @@ -31,11 +31,18 @@ #include "E2setupRequest.h" #include "E2setupResponse.h" #include "E2setupFailure.h" +#include "E2nodeConfigurationUpdate.h" +#include "E2nodeConfigurationUpdateAcknowledge.h" +#include "E2nodeConfigurationUpdateFailure.h" +#include "E2connectionUpdate.h" +#include "E2connectionUpdateAcknowledge.h" +#include "E2connectionUpdateFailure.h" #include "ResetRequest.h" #include "ResetResponse.h" #include "RICindication.h" #include "RICserviceQuery.h" #include "ErrorIndicationE2.h" +#include "RICsubscriptionDeleteRequired.h" #include #include #include @@ -51,7 +58,9 @@ typedef enum UnsuccessfulOutcomeE2__value_PR { UnsuccessfulOutcomeE2__value_PR_RICsubscriptionDeleteFailure, UnsuccessfulOutcomeE2__value_PR_RICserviceUpdateFailure, UnsuccessfulOutcomeE2__value_PR_RICcontrolFailure, - UnsuccessfulOutcomeE2__value_PR_E2setupFailure + UnsuccessfulOutcomeE2__value_PR_E2setupFailure, + UnsuccessfulOutcomeE2__value_PR_E2nodeConfigurationUpdateFailure, + UnsuccessfulOutcomeE2__value_PR_E2connectionUpdateFailure } UnsuccessfulOutcomeE2__value_PR; /* UnsuccessfulOutcomeE2 */ @@ -66,6 +75,8 @@ typedef struct UnsuccessfulOutcomeE2 { RICserviceUpdateFailure_t RICserviceUpdateFailure; RICcontrolFailure_t RICcontrolFailure; E2setupFailure_t E2setupFailure; + E2nodeConfigurationUpdateFailure_t E2nodeConfigurationUpdateFailure; + E2connectionUpdateFailure_t E2connectionUpdateFailure; } choice; /* Context for parsing across buffer boundaries */ diff --git a/src/codec_utils/E2AP/asn_constant.h b/src/codec_utils/E2AP/asn_constant.h deleted file mode 100644 index a6f348cc3..000000000 --- a/src/codec_utils/E2AP/asn_constant.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) - */ - -#ifndef _ASN_CONSTANT_H -#define _ASN_CONSTANT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define maxProtocolIEs (65535) -#define maxnoofErrors (256) -#define maxofRANfunctionID (256) -#define maxofRICactionID (16) - - -#ifdef __cplusplus -} -#endif - -#endif /* _ASN_CONSTANT_H */ diff --git a/src/codec_utils/common/asn_constant.h b/src/codec_utils/common/asn_constant.h index a0247a0aa..bdba18b3a 100644 --- a/src/codec_utils/common/asn_constant.h +++ b/src/codec_utils/common/asn_constant.h @@ -9,6 +9,13 @@ extern "C" { #endif +#define maxProtocolIEs (65535) +#define maxnoofErrors (256) +#define maxofE2nodeComponents (1024) +#define maxofRANfunctionID (256) +#define maxofRICactionID (16) +#define maxofTNLA (32) +#define maxofRICrequestID (4294967295) #define maxSIB (32) #define maxNrofPhysicalResourceBlocks (275) #define maxNrofPhysicalResourceBlocks_1 (274) diff --git a/src/cu_stub/cu_f1ap_msg_hdl.c b/src/cu_stub/cu_f1ap_msg_hdl.c index b4cc5c106..07fdaa734 100644 --- a/src/cu_stub/cu_f1ap_msg_hdl.c +++ b/src/cu_stub/cu_f1ap_msg_hdl.c @@ -19,13 +19,14 @@ /* This file contains F1AP message handler functions */ #include "common_def.h" #include "OCTET_STRING.h" -#include "BIT_STRING.h" -#include "odu_common_codec.h" #include "cu_stub_sctp.h" +#include "cu_stub_egtp.h" #include "cu_f1ap_msg_hdl.h" -#include "legtp.h" -/*header files needed for Ue Context Setup */ -#include +#include "cu_stub.h" + +#include "BIT_STRING.h" +#include "odu_common_codec.h" +#include "ProtocolIE-Field.h" #include "ProtocolExtensionField.h" #include "ProtocolIE-SingleContainer.h" #include "F1AP-PDU.h" @@ -92,6 +93,18 @@ #include "UPTransportLayerInformation.h" #include "GTPTunnel.h" #include "QoSInformation.h" +#include "Cells-to-be-Activated-List.h" +#include "DL-CCCH-Message.h" +#include "SRB-ToAddModList.h" +#include "SRB-ToAddMod.h" +#include "RRCSetup-IEs.h" +#include "RRCSetup.h" +#include "DL-DCCH-Message.h" +#include "RRCReconfiguration-IEs.h" +#include "RRCReconfiguration.h" +#include "DRB-ToAddModList.h" +#include "DRB-ToAddMod.h" +#include "SDAP-Config.h" /* MACRO for CUtoDURRCInformation */ #define CELL_GRP_ID 1 @@ -206,7 +219,7 @@ * RFAILED - failure * * ****************************************************************/ -S16 SendF1APMsg(Region region, Pool pool) +S16 SendF1APMsg(Region region, Pool pool, uint32_t duId) { Buffer *mBuf = NULLP; @@ -216,7 +229,7 @@ S16 SendF1APMsg(Region region, Pool pool) { ODU_PRINT_MSG(mBuf, 0,0); - if(sctpSend(mBuf) != ROK) + if(sctpSend(duId, mBuf) != ROK) { DU_LOG("\nERROR --> F1AP : SCTP Send failed"); ODU_PUT_MSG_BUF(mBuf); @@ -283,7 +296,7 @@ S16 BuildNrCellId(BIT_STRING_t *nrcell) * RFAILED - failure * * ****************************************************************/ -S16 BuildAndSendF1SetupRsp(BIT_STRING_t *nrcellId) +uint8_t BuildAndSendF1SetupRsp(uint32_t duId, BIT_STRING_t *nrcellId) { uint8_t idx,ieIdx; uint8_t elementCnt,cellCnt; @@ -363,7 +376,7 @@ S16 BuildAndSendF1SetupRsp(BIT_STRING_t *nrcellId) f1SetupRsp->protocolIEs.list.array[idx]->value.present = \ F1SetupResponseIEs__value_PR_GNB_CU_Name; cuName = &f1SetupRsp->protocolIEs.list.array[idx]->value.choice.GNB_CU_Name; - cuName->size = sizeof(cuCfgParams.cuName); + cuName->size = sizeof(cuCb.cuCfgParams.cuName); CU_ALLOC(cuName->buf, sizeof(cuName->size)); if(cuName->buf == NULLP) @@ -380,7 +393,7 @@ S16 BuildAndSendF1SetupRsp(BIT_STRING_t *nrcellId) CU_FREE(f1apMsg, sizeof(F1AP_PDU_t)); return RFAILED; } - strcpy((char*)cuName->buf, (char*)cuCfgParams.cuName); + strcpy((char*)cuName->buf, (char*)cuCb.cuCfgParams.cuName); /*Cells to be activated list*/ idx++; @@ -467,7 +480,7 @@ S16 BuildAndSendF1SetupRsp(BIT_STRING_t *nrcellId) CU_FREE(f1apMsg, sizeof(F1AP_PDU_t)); return RFAILED; } - buildPlmnId(cuCfgParams.plmn , cellToActivate->list.array[0]->value.choice.\ + buildPlmnId(cuCb.cuCfgParams.plmn , cellToActivate->list.array[0]->value.choice.\ Cells_to_be_Activated_List_Item.nRCGI.pLMN_Identity.buf); cellToActivate->list.array[0]->value.choice.Cells_to_be_Activated_List_Item.\ nRCGI.nRCellIdentity.size = 5; @@ -529,7 +542,7 @@ S16 BuildAndSendF1SetupRsp(BIT_STRING_t *nrcellId) } /* Need to check RRC Version */ - rrcVer->latest_RRC_Version.buf[0] = cuCfgParams.rrcVersion.rrcVer; + rrcVer->latest_RRC_Version.buf[0] = cuCb.cuCfgParams.rrcVersion.rrcVer; rrcVer->latest_RRC_Version.bits_unused = 5; //TODO: pick from cuCfgParam. If not present, add it CU_ALLOC(rrcVer->iE_Extensions,sizeof(ProtocolExtensionContainer_4624P81_t)); if(rrcVer->iE_Extensions == NULLP) @@ -663,7 +676,7 @@ S16 BuildAndSendF1SetupRsp(BIT_STRING_t *nrcellId) } /* Sending msg */ - if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL) != ROK) + if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL, duId) != ROK) { DU_LOG("\nERROR --> F1AP : Sending F1 Setup Response failed"); return RFAILED; @@ -690,7 +703,7 @@ S16 BuildAndSendF1SetupRsp(BIT_STRING_t *nrcellId) * * ****************************************************************/ -S16 BuildAndSendDUUpdateAck() +uint8_t BuildAndSendDUUpdateAck(uint32_t duId) { uint8_t idx; uint8_t elementCnt; @@ -790,7 +803,8 @@ S16 BuildAndSendDUUpdateAck() } /* Sending msg */ - if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL) != ROK) + /* TODO : Hardcoding DU ID to 1 for messages other than F1 Setup Response. This will be made generic in future gerrit */ + if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL, duId) != ROK) { DU_LOG("\nERROR --> F1AP : Sending GNB-DU Config Update Ack failed"); return RFAILED; @@ -799,6 +813,7 @@ S16 BuildAndSendDUUpdateAck() return ROK; }/* End of BuildAndSendDUUpdateAck*/ + /******************************************************************* * * @brief deallocating the memory of F1reset msg @@ -869,15 +884,15 @@ uint8_t BuildAndSendF1ResetReq() CU_ALLOC(f1apMsg, sizeof(F1AP_PDU_t)); if(f1apMsg == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for the BuildAndSendF1ResetReq's F1AP-PDU failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for the BuildAndSendF1ResetReq's F1AP-PDU failed"); + break; } f1apMsg->present = F1AP_PDU_PR_initiatingMessage; CU_ALLOC(f1apMsg->choice.initiatingMessage, sizeof(InitiatingMessage_t)); if(f1apMsg->choice.initiatingMessage == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for BuildAndSendF1ResetReq failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for BuildAndSendF1ResetReq failed"); + break; } f1apMsg->choice.initiatingMessage->procedureCode = ProcedureCode_id_Reset; f1apMsg->choice.initiatingMessage->criticality = Criticality_reject; @@ -893,17 +908,17 @@ uint8_t BuildAndSendF1ResetReq() CU_ALLOC(f1ResetMsg->protocolIEs.list.array,f1ResetMsg->protocolIEs.list.size); if(f1ResetMsg->protocolIEs.list.array == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation failed for BuildAndSendF1ResetReq"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation failed for BuildAndSendF1ResetReq"); + break; } for(idx=0; idxprotocolIEs.list.array[idx],sizeof(ResetIEs_t)); - if(f1ResetMsg->protocolIEs.list.array[idx] == NULLP) - { - DU_LOG("\nERROR --> F1AP : Memory allocation failed for BuildAndSendF1ResetReq msg array"); - break; - } + CU_ALLOC(f1ResetMsg->protocolIEs.list.array[idx],sizeof(ResetIEs_t)); + if(f1ResetMsg->protocolIEs.list.array[idx] == NULLP) + { + DU_LOG("\nERROR --> F1AP : Memory allocation failed for BuildAndSendF1ResetReq msg array"); + break; + } } /*TransactionID*/ @@ -935,28 +950,29 @@ uint8_t BuildAndSendF1ResetReq() memset(encBuf, 0, ENC_BUF_MAX_LEN); encBufSize = 0; encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf,\ - encBuf); + encBuf); /* Encode results */ if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG("\nERROR --> F1AP : Could not encode F1Reset structure (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); - break; + DU_LOG("\nERROR --> F1AP : Could not encode F1Reset structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; } else { - DU_LOG("\nDEBUG --> F1AP : Created APER encoded buffer for F1Reset\n"); - for(idx=0; idx< encBufSize; idx++) - { - DU_LOG("%x",encBuf[idx]); - } + DU_LOG("\nDEBUG --> F1AP : Created APER encoded buffer for F1Reset\n"); + for(idx=0; idx< encBufSize; idx++) + { + DU_LOG("%x",encBuf[idx]); + } } - if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL) != ROK) + /* TODO : Hardcoding DU ID to 1 for messages other than F1 Setup Response. This will be made generic in future gerrit */ + if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL, DU_ID) != ROK) { - DU_LOG("\nERROR --> F1AP : Sending F1 Reset request failed"); - break; + DU_LOG("\nERROR --> F1AP : Sending F1 Reset request failed"); + break; } ret = ROK; @@ -1037,22 +1053,22 @@ uint8_t fillSrbCfg(uint8_t srbId, SRB_ToAddModList_t *bearerCfg) * * ****************************************************************/ -uint8_t fillMasterCellGroup(uint8_t ueId, OCTET_STRING_t *masterCellGroup) +uint8_t fillMasterCellGroup(CuUeCb *ueCb, OCTET_STRING_t *masterCellGroup) { uint8_t ret = ROK; masterCellGroup->buf = NULLP; - if(ueCb[ueId-1].f1apMsgDb.duToCuContainer.buf) + if(ueCb->f1apMsgDb.duToCuContainer.buf) { - masterCellGroup->size = ueCb[ueId-1].f1apMsgDb.duToCuContainer.size; + masterCellGroup->size = ueCb->f1apMsgDb.duToCuContainer.size; CU_ALLOC(masterCellGroup->buf, masterCellGroup->size); if(masterCellGroup->buf != NULLP) { - memcpy(masterCellGroup->buf, ueCb[ueId-1].f1apMsgDb.duToCuContainer.buf,\ - masterCellGroup->size); + memcpy(masterCellGroup->buf, ueCb->f1apMsgDb.duToCuContainer.buf, masterCellGroup->size); } else { - ret = RFAILED; + DU_LOG( "\nERROR --> F1AP : Master Cell Group buffer is NULL"); + ret = RFAILED; } } else @@ -1079,7 +1095,7 @@ uint8_t fillMasterCellGroup(uint8_t ueId, OCTET_STRING_t *masterCellGroup) * * ****************************************************************/ -uint8_t fillRRCSetupIE(uint8_t ueId, RRCSetup_IEs_t *rrcSetupIE) +uint8_t fillRRCSetupIE(CuUeCb *ueCb, RRCSetup_IEs_t *rrcSetupIE) { uint8_t ret = ROK; if(rrcSetupIE) @@ -1087,16 +1103,16 @@ uint8_t fillRRCSetupIE(uint8_t ueId, RRCSetup_IEs_t *rrcSetupIE) CU_ALLOC(rrcSetupIE->radioBearerConfig.srb_ToAddModList, sizeof(SRB_ToAddModList_t)); if(rrcSetupIE->radioBearerConfig.srb_ToAddModList != NULLP) { - ret = fillSrbCfg(SRB1, rrcSetupIE->radioBearerConfig.srb_ToAddModList); + ret = fillSrbCfg(SRB1, rrcSetupIE->radioBearerConfig.srb_ToAddModList); } if(ret == ROK) { - ret = fillMasterCellGroup(ueId, &rrcSetupIE->masterCellGroup); + ret = fillMasterCellGroup(ueCb, &rrcSetupIE->masterCellGroup); } else { - CU_FREE(rrcSetupIE->radioBearerConfig.srb_ToAddModList, sizeof(SRB_ToAddModList_t)); - ret = RFAILED; + CU_FREE(rrcSetupIE->radioBearerConfig.srb_ToAddModList, sizeof(SRB_ToAddModList_t)); + ret = RFAILED; } } return ret; @@ -1119,12 +1135,12 @@ uint8_t fillRRCSetupIE(uint8_t ueId, RRCSetup_IEs_t *rrcSetupIE) * * ****************************************************************/ -uint8_t fillDlCcchRrcMsg(uint8_t ueId, RRCContainer_t *rrcContainer) +uint8_t fillDlCcchRrcMsg(CuUeCb *ueCb, RRCContainer_t *rrcContainer) { uint8_t ret = ROK; uint16_t idx2; DL_CCCH_Message_t dl_CCCH_Msg; - asn_enc_rval_t encRetVal; + asn_enc_rval_t encRetVal; if(rrcContainer != NULLP) { @@ -1138,16 +1154,15 @@ uint8_t fillDlCcchRrcMsg(uint8_t ueId, RRCContainer_t *rrcContainer) if(dl_CCCH_Msg.message.choice.c1->choice.rrcSetup != NULLP) { dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->rrc_TransactionIdentifier = 0; - dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->criticalExtensions.\ - present = RRCSetup__criticalExtensions_PR_rrcSetup; + dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->criticalExtensions.present = \ + RRCSetup__criticalExtensions_PR_rrcSetup; + /* Fill RRC Setup IE */ - CU_ALLOC(dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->\ - criticalExtensions.choice.rrcSetup, sizeof(RRCSetup_IEs_t)); - if(dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->\ - criticalExtensions.choice.rrcSetup != NULLP) + CU_ALLOC(dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup, \ + sizeof(RRCSetup_IEs_t)); + if(dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup != NULLP) { - ret = fillRRCSetupIE(ueId, dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->\ - criticalExtensions.choice.rrcSetup); + ret = fillRRCSetupIE(ueCb, dl_CCCH_Msg.message.choice.c1->choice.rrcSetup->criticalExtensions.choice.rrcSetup); if(ret == ROK) { @@ -1545,16 +1560,16 @@ uint8_t fillDlDcchRrcMsg(RRCContainer_t *rrcContainer) * * ****************************************************************/ -uint8_t BuildDLRRCContainer(uint8_t ueId, uint8_t rrcMsgType, RRCContainer_t *rrcContainer) +uint8_t BuildDLRRCContainer(CuUeCb *ueCb, uint8_t rrcMsgType, RRCContainer_t *rrcContainer) { uint8_t ret, bufLen; ret =ROK; if(rrcMsgType == RRC_SETUP) { - ret = fillDlCcchRrcMsg(ueId, rrcContainer); + ret = fillDlCcchRrcMsg(ueCb, rrcContainer); if(ret == RFAILED) - DU_LOG("\nERROR --> F1AP: Failed to fill DL-CCCH Msg at RRC SETUP"); + DU_LOG("\nERROR --> F1AP: Failed to fill DL-CCCH Msg at RRC SETUP"); } else if(rrcMsgType == REGISTRATION_ACCEPT) { @@ -1565,40 +1580,89 @@ uint8_t BuildDLRRCContainer(uint8_t ueId, uint8_t rrcMsgType, RRCContainer_t *rr CU_ALLOC(rrcContainer->buf, rrcContainer->size); if(rrcContainer->buf != NULLP) { - memset(rrcContainer->buf, 0, bufLen); - memcpy(rrcContainer->buf, buf, bufLen); + memset(rrcContainer->buf, 0, bufLen); + memcpy(rrcContainer->buf, buf, bufLen); + } + else + { + DU_LOG("\nERROR --> F1AP : Memory allocation failure for RRC Container buffer"); + ret = RFAILED; } } else if(rrcMsgType == RRC_RECONFIG) { /*Hardcoded RRC Container from reference logs*/ char buf[196]= { - 0x00, 0x04, 0x00, 0xaa, 0x80, 0x40, 0x9a, 0x05, 0x20, 0x00, 0x05, 0xeb, 0xc0, 0x51, 0x50, 0x00, - 0x03, 0x00, 0x03, 0xf7, 0x56, 0xec, 0x7f, 0x08, 0x42, 0x10, 0x80, 0x00, 0x10, 0x21, 0x47, 0x84, - 0xd1, 0x00, 0x00, 0x00, 0x02, 0x81, 0x5d, 0x10, 0x0a, 0xc2, 0x44, 0x40, 0x2b, 0xb2, 0x07, 0x41, - 0x87, 0xa8, 0x02, 0xc7, 0x00, 0x88, 0x05, 0x76, 0x40, 0xe8, 0x30, 0xf5, 0x40, 0x4c, 0x00, 0x10, - 0x02, 0x00, 0xa5, 0x83, 0xe0, 0x60, 0x02, 0x10, 0x72, 0x01, 0x0c, 0xa0, 0xa0, 0xd8, 0x00, 0x00, - 0x00, 0x01, 0x0f, 0x02, 0x3c, 0x01, 0x80, 0x10, 0x82, 0xb0, 0x40, 0x00, 0x00, 0x02, 0x1e, 0x04, - 0x78, 0x07, 0x00, 0x21, 0x05, 0x61, 0x00, 0x00, 0x00, 0x04, 0x3c, 0x08, 0xf0, 0x16, 0x00, 0x42, - 0x0a, 0xc3, 0x00, 0x00, 0x00, 0x08, 0x78, 0x11, 0xe0, 0x3c, 0x00, 0x84, 0x14, 0x00, 0x07, 0xe5, - 0xc0, 0xa0, 0xd8, 0x42, 0x20, 0x02, 0x80, 0xa0, 0x02, 0x24, 0x47, 0xa0, 0x20, 0x27, 0xa1, 0x22, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x41, 0x20, 0xc0, 0x80, 0x00, 0x20, 0x80, - 0x00, 0x25, 0x20, 0xa0, 0x38, 0x00, 0x00, 0x00, 0x44, 0xa2, 0x82, 0x69, 0xee, 0x0c, 0xad, 0xca, - 0x4c, 0x2c, 0x8d, 0x2e, 0x6f, 0x2e, 0x69, 0x2d, 0xce, 0x8c, 0xae, 0x4d, 0xcc, 0xae, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00}; + 0x00, 0x04, 0x00, 0xaa, 0x80, 0x40, 0x9a, 0x05, 0x20, 0x00, 0x05, 0xeb, 0xc0, 0x51, 0x50, 0x00, + 0x03, 0x00, 0x03, 0xf7, 0x56, 0xec, 0x7f, 0x08, 0x42, 0x10, 0x80, 0x00, 0x10, 0x21, 0x47, 0x84, + 0xd1, 0x00, 0x00, 0x00, 0x02, 0x81, 0x5d, 0x10, 0x0a, 0xc2, 0x44, 0x40, 0x2b, 0xb2, 0x07, 0x41, + 0x87, 0xa8, 0x02, 0xc7, 0x00, 0x88, 0x05, 0x76, 0x40, 0xe8, 0x30, 0xf5, 0x40, 0x4c, 0x00, 0x10, + 0x02, 0x00, 0xa5, 0x83, 0xe0, 0x60, 0x02, 0x10, 0x72, 0x01, 0x0c, 0xa0, 0xa0, 0xd8, 0x00, 0x00, + 0x00, 0x01, 0x0f, 0x02, 0x3c, 0x01, 0x80, 0x10, 0x82, 0xb0, 0x40, 0x00, 0x00, 0x02, 0x1e, 0x04, + 0x78, 0x07, 0x00, 0x21, 0x05, 0x61, 0x00, 0x00, 0x00, 0x04, 0x3c, 0x08, 0xf0, 0x16, 0x00, 0x42, + 0x0a, 0xc3, 0x00, 0x00, 0x00, 0x08, 0x78, 0x11, 0xe0, 0x3c, 0x00, 0x84, 0x14, 0x00, 0x07, 0xe5, + 0xc0, 0xa0, 0xd8, 0x42, 0x20, 0x02, 0x80, 0xa0, 0x02, 0x24, 0x47, 0xa0, 0x20, 0x27, 0xa1, 0x22, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x24, 0x41, 0x20, 0xc0, 0x80, 0x00, 0x20, 0x80, + 0x00, 0x25, 0x20, 0xa0, 0x38, 0x00, 0x00, 0x00, 0x44, 0xa2, 0x82, 0x69, 0xee, 0x0c, 0xad, 0xca, + 0x4c, 0x2c, 0x8d, 0x2e, 0x6f, 0x2e, 0x69, 0x2d, 0xce, 0x8c, 0xae, 0x4d, 0xcc, 0xae, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00}; bufLen =196; rrcContainer->size = bufLen; CU_ALLOC(rrcContainer->buf, rrcContainer->size); if(rrcContainer->buf != NULLP) { - memset(rrcContainer->buf, 0, bufLen); - memcpy(rrcContainer->buf, buf, bufLen); + memset(rrcContainer->buf, 0, bufLen); + memcpy(rrcContainer->buf, buf, bufLen); + } + else + { + DU_LOG("\nERROR --> F1AP : Memory allocation failure for RRC Container buffer"); + ret = RFAILED; } } return ret; } +/******************************************************************* + * + * @brief Frees the DLRRCMessageTransfer + * + * @details + * + * Function : freeDlRrcMessageTransfer + * + * Functionality: Frees the DLRRCMessageTransfer + * + * @params[in] + * + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +void freeDlRrcMessageTransfer(F1AP_PDU_t *f1apMsg) +{ + uint8_t idx=0; + DLRRCMessageTransfer_t *dlRRCMsg = NULLP; + + if(f1apMsg) + { + dlRRCMsg = &f1apMsg->choice.initiatingMessage->value.choice.DLRRCMessageTransfer; + if(dlRRCMsg->protocolIEs.list.array) + { + idx = 3; + CU_FREE(dlRRCMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, \ + dlRRCMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.size); + for(idx=0; idxprotocolIEs.list.count; idx++) + { + CU_FREE(dlRRCMsg->protocolIEs.list.array[idx], sizeof(DLRRCMessageTransferIEs_t)); + } + CU_FREE(dlRRCMsg->protocolIEs.list.array, dlRRCMsg->protocolIEs.list.size); + } + CU_FREE(f1apMsg, sizeof(F1AP_PDU_t)); + } +} + /******************************************************************* * * @brief Builds and sends the DLRRCMessageTransfer @@ -1616,7 +1680,7 @@ uint8_t BuildDLRRCContainer(uint8_t ueId, uint8_t rrcMsgType, RRCContainer_t *rr * RFAILED - failure * * ****************************************************************/ -uint8_t BuildAndSendDLRRCMessageTransfer(uint8_t ueId, uint8_t srbId, uint8_t rrcMsgType) +uint8_t BuildAndSendDLRRCMessageTransfer(uint32_t duId, CuUeCb *ueCb, uint8_t srbId, uint8_t rrcMsgType) { uint8_t elementCnt = 0; uint8_t ieId; @@ -1635,8 +1699,7 @@ uint8_t BuildAndSendDLRRCMessageTransfer(uint8_t ueId, uint8_t srbId, uint8_t rr } f1apMsg->present = F1AP_PDU_PR_initiatingMessage; - CU_ALLOC(f1apMsg->choice.initiatingMessage, - sizeof(InitiatingMessage_t)); + CU_ALLOC(f1apMsg->choice.initiatingMessage, sizeof(InitiatingMessage_t)); if(f1apMsg->choice.initiatingMessage == NULLP) { DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); @@ -1668,52 +1731,44 @@ uint8_t BuildAndSendDLRRCMessageTransfer(uint8_t ueId, uint8_t srbId, uint8_t rr CU_ALLOC(dlRRCMsg->protocolIEs.list.array[idx], sizeof(DLRRCMessageTransferIEs_t)); if(dlRRCMsg->protocolIEs.list.array[idx] == NULLP) { - for(ieId=0; ieIdprotocolIEs.list.array[ieId],\ - sizeof(DLRRCMessageTransferIEs_t)); - } - CU_FREE(dlRRCMsg->protocolIEs.list.array,\ - dlRRCMsg->protocolIEs.list.size); - CU_FREE(f1apMsg->choice.initiatingMessage,\ - sizeof(InitiatingMessage_t)); - CU_FREE(f1apMsg,sizeof(F1AP_PDU_t)); - return RFAILED; + for(ieId=0; ieIdprotocolIEs.list.array[ieId], sizeof(DLRRCMessageTransferIEs_t)); + } + CU_FREE(dlRRCMsg->protocolIEs.list.array, dlRRCMsg->protocolIEs.list.size); + CU_FREE(f1apMsg->choice.initiatingMessage, sizeof(InitiatingMessage_t)); + CU_FREE(f1apMsg,sizeof(F1AP_PDU_t)); + return RFAILED; } } /* GNB CU UE F1AP ID */ idx = 0; dlRRCMsg->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID; - dlRRCMsg->protocolIEs.list.array[idx]->criticality = Criticality_reject; - dlRRCMsg->protocolIEs.list.array[idx]->value.present = \ - DLRRCMessageTransferIEs__value_PR_GNB_CU_UE_F1AP_ID; - dlRRCMsg->protocolIEs.list.array[idx]->value.choice.GNB_CU_UE_F1AP_ID = ueId; + dlRRCMsg->protocolIEs.list.array[idx]->criticality = Criticality_reject; + dlRRCMsg->protocolIEs.list.array[idx]->value.present = DLRRCMessageTransferIEs__value_PR_GNB_CU_UE_F1AP_ID; + dlRRCMsg->protocolIEs.list.array[idx]->value.choice.GNB_CU_UE_F1AP_ID = ueCb->gnbCuUeF1apId; /* GNB DU UE F1AP ID */ idx++; - dlRRCMsg->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID; - dlRRCMsg->protocolIEs.list.array[idx]->criticality = Criticality_reject; - dlRRCMsg->protocolIEs.list.array[idx]->value.present = \ - DLRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID; - dlRRCMsg->protocolIEs.list.array[idx]->value.choice.GNB_DU_UE_F1AP_ID = ueId; + dlRRCMsg->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID; + dlRRCMsg->protocolIEs.list.array[idx]->criticality = Criticality_reject; + dlRRCMsg->protocolIEs.list.array[idx]->value.present = DLRRCMessageTransferIEs__value_PR_GNB_DU_UE_F1AP_ID; + dlRRCMsg->protocolIEs.list.array[idx]->value.choice.GNB_DU_UE_F1AP_ID = ueCb->gnbDuUeF1apId;; /* SRBID */ idx++; dlRRCMsg->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_SRBID; - dlRRCMsg->protocolIEs.list.array[idx]->criticality = Criticality_reject; - dlRRCMsg->protocolIEs.list.array[idx]->value.present = \ - DLRRCMessageTransferIEs__value_PR_SRBID; + dlRRCMsg->protocolIEs.list.array[idx]->criticality = Criticality_reject; + dlRRCMsg->protocolIEs.list.array[idx]->value.present = DLRRCMessageTransferIEs__value_PR_SRBID; dlRRCMsg->protocolIEs.list.array[idx]->value.choice.SRBID = srbId; /* RRCContainer */ idx++; dlRRCMsg->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_RRCContainer; - dlRRCMsg->protocolIEs.list.array[idx]->criticality = Criticality_reject; - dlRRCMsg->protocolIEs.list.array[idx]->value.present = \ - DLRRCMessageTransferIEs__value_PR_RRCContainer; - BuildDLRRCContainer(ueId, rrcMsgType, &dlRRCMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer); + dlRRCMsg->protocolIEs.list.array[idx]->criticality = Criticality_reject; + dlRRCMsg->protocolIEs.list.array[idx]->value.present = DLRRCMessageTransferIEs__value_PR_RRCContainer; + BuildDLRRCContainer(ueCb, rrcMsgType, &dlRRCMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer); xer_fprint(stdout, &asn_DEF_F1AP_PDU, f1apMsg); @@ -1721,12 +1776,12 @@ uint8_t BuildAndSendDLRRCMessageTransfer(uint8_t ueId, uint8_t srbId, uint8_t rr memset(encBuf, 0, ENC_BUF_MAX_LEN); encBufSize = 0; encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf,\ - encBuf); + encBuf); /* Encode results */ if(encRetVal.encoded == ENCODE_FAIL) { DU_LOG( "\nERROR --> F1AP : Could not encode DL RRC Message Transfer structure (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); return RFAILED; } else @@ -1734,17 +1789,17 @@ uint8_t BuildAndSendDLRRCMessageTransfer(uint8_t ueId, uint8_t srbId, uint8_t rr DU_LOG("\nDEBUG --> F1AP : Created APER encoded buffer for DL RRC Message transfer\n"); for(int i=0; i< encBufSize; i++) { - DU_LOG("%x",encBuf[i]); + DU_LOG("%x",encBuf[i]); } } /* Sending msg */ - if(SendF1APMsg(CU_APP_MEM_REG,CU_POOL) != ROK) + if(SendF1APMsg(CU_APP_MEM_REG,CU_POOL, duId) != ROK) { DU_LOG("\nERROR --> F1AP : Sending DL RRC Message Transfer Failed"); return RFAILED; } - + freeDlRrcMessageTransfer(f1apMsg); return ROK; }/* End of BuildAndSendDLRRCMessageTransfer */ @@ -1766,10 +1821,10 @@ uint8_t BuildAndSendDLRRCMessageTransfer(uint8_t ueId, uint8_t srbId, uint8_t rr * * ****************************************************************/ -uint8_t setDlRRCMsgType(uint8_t ueId) +uint8_t setDlRRCMsgType(CuUeCb *ueCb) { uint8_t rrcMsgType = 0; - switch(ueCb[ueId -1].f1apMsgDb.dlRrcMsgCount) + switch(ueCb->f1apMsgDb.dlRrcMsgCount) { case RRC_SETUP: rrcMsgType = RRC_SETUP; @@ -1812,13 +1867,19 @@ uint8_t setDlRRCMsgType(uint8_t ueId) * * ****************************************************************/ -uint8_t procInitULRRCMsg(F1AP_PDU_t *f1apMsg) +uint8_t procInitULRRCMsg(uint32_t duId, F1AP_PDU_t *f1apMsg) { uint8_t idx, rrcMsgType, gnbDuUeF1apId; uint8_t ret =ROK; + uint32_t nrCellId, crnti; + DuDb *duDb; + CuCellCb *cellCb; + CuUeCb *ueCb; InitialULRRCMessageTransfer_t *initULRRCMsg = NULLP; + DU_LOG("\nINFO --> F1AP : filling the required values in DB in procInitULRRCMsg"); + duDb = getDuDb(duId); initULRRCMsg = &f1apMsg->choice.initiatingMessage->value.choice.InitialULRRCMessageTransfer; for(idx=0; idx < initULRRCMsg->protocolIEs.list.count; idx++) @@ -1828,29 +1889,48 @@ uint8_t procInitULRRCMsg(F1AP_PDU_t *f1apMsg) case ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID: gnbDuUeF1apId = initULRRCMsg->protocolIEs.list.array[idx]->value.choice.GNB_DU_UE_F1AP_ID; break; + case ProtocolIE_ID_id_NRCGI: + nrCellId = initULRRCMsg->protocolIEs.list.array[idx]->value.choice.NRCGI.nRCellIdentity.buf[4] >> + initULRRCMsg->protocolIEs.list.array[idx]->value.choice.NRCGI.nRCellIdentity.bits_unused; + cellCb = getCellCb(duDb, nrCellId); + if(cellCb == NULLP) + return RFAILED; break; + case ProtocolIE_ID_id_C_RNTI: + crnti = initULRRCMsg->protocolIEs.list.array[idx]->value.choice.C_RNTI; + if(duDb->ueCb[gnbDuUeF1apId-1].gnbDuUeF1apId == 0) + { + ueCb = &duDb->ueCb[gnbDuUeF1apId-1]; + memset(ueCb, 0, sizeof(CuUeCb)); + ueCb->cellCb = cellCb; + ueCb->crnti = crnti; + ueCb->gnbDuUeF1apId = gnbDuUeF1apId; + ueCb->gnbCuUeF1apId = ++cuCb.gnbCuUeF1apIdGenerator; + (duDb->numUe)++; + + cellCb->ueCb[cellCb->numUe] = ueCb; + cellCb->numUe++; + } break; + case ProtocolIE_ID_id_RRCContainer: break; + case ProtocolIE_ID_id_DUtoCURRCContainer: { - if((initULRRCMsg->protocolIEs.list.array[idx]->value.choice\ - .DUtoCURRCContainer.size > 0) && (initULRRCMsg->protocolIEs\ - .list.array[idx]->value.choice.DUtoCURRCContainer.buf != NULLP)) + if((initULRRCMsg->protocolIEs.list.array[idx]->value.choice.DUtoCURRCContainer.size > 0) && \ + (initULRRCMsg->protocolIEs.list.array[idx]->value.choice.DUtoCURRCContainer.buf != NULLP)) { DU_LOG("\nINFO --> Received Du to Cu RRC Container "); - ueCb[gnbDuUeF1apId-1].ueId = gnbDuUeF1apId; - ueCb[gnbDuUeF1apId-1].f1apMsgDb.duToCuContainer.size = initULRRCMsg->protocolIEs\ - .list.array[idx]->value.choice.DUtoCURRCContainer.size; - CU_ALLOC(ueCb[gnbDuUeF1apId-1].f1apMsgDb.duToCuContainer.buf, \ - ueCb[gnbDuUeF1apId-1].f1apMsgDb.duToCuContainer.size); - if(ueCb[gnbDuUeF1apId-1].f1apMsgDb.duToCuContainer.buf != NULLP) + ueCb->f1apMsgDb.duToCuContainer.size = initULRRCMsg->protocolIEs.list.array[idx]->value.choice.DUtoCURRCContainer.size; + CU_ALLOC(ueCb->f1apMsgDb.duToCuContainer.buf, ueCb->f1apMsgDb.duToCuContainer.size); + if(ueCb->f1apMsgDb.duToCuContainer.buf != NULLP) { - memcpy(ueCb[gnbDuUeF1apId-1].f1apMsgDb.duToCuContainer.buf, initULRRCMsg->protocolIEs\ - .list.array[idx]->value.choice.DUtoCURRCContainer.buf, ueCb[gnbDuUeF1apId-1].f1apMsgDb\ - .duToCuContainer.size); + memcpy(ueCb->f1apMsgDb.duToCuContainer.buf, \ + initULRRCMsg->protocolIEs.list.array[idx]->value.choice.DUtoCURRCContainer.buf, \ + ueCb->f1apMsgDb.duToCuContainer.size); } } else @@ -1860,16 +1940,18 @@ uint8_t procInitULRRCMsg(F1AP_PDU_t *f1apMsg) } break; } + default: DU_LOG("\nERROR --> Invalid Event %ld", initULRRCMsg->protocolIEs.list.array[idx]->id); break; } } + if(ret == ROK) { - ueCb[gnbDuUeF1apId-1].f1apMsgDb.dlRrcMsgCount++; - rrcMsgType = setDlRRCMsgType(gnbDuUeF1apId); - ret = BuildAndSendDLRRCMessageTransfer(gnbDuUeF1apId, SRB0, rrcMsgType); + ueCb->f1apMsgDb.dlRrcMsgCount++; + rrcMsgType = setDlRRCMsgType(ueCb); + ret = BuildAndSendDLRRCMessageTransfer(duId, ueCb, SRB0, rrcMsgType); } return ret; } @@ -1889,12 +1971,13 @@ uint8_t procInitULRRCMsg(F1AP_PDU_t *f1apMsg) * RFAILED - failure * * ****************************************************************/ -uint8_t BuildNrcgi(NRCGI_t *nrcgi) +uint8_t BuildNrcgi(NRCGI_t *nrcgi, uint32_t nrCellId) { uint8_t ret; uint8_t unused_bits = 4; uint8_t byteSize = 5; - uint8_t val = 16; + uint8_t val = nrCellId << unused_bits; + /* Allocate Buffer Memory */ nrcgi->pLMN_Identity.size = 3 * sizeof(uint8_t); CU_ALLOC(nrcgi->pLMN_Identity.buf, nrcgi->pLMN_Identity.size); @@ -1902,7 +1985,7 @@ uint8_t BuildNrcgi(NRCGI_t *nrcgi) { return RFAILED; } - ret = buildPlmnId(cuCfgParams.plmn , nrcgi->pLMN_Identity.buf); + ret = buildPlmnId(cuCb.cuCfgParams.plmn , nrcgi->pLMN_Identity.buf); if(ret != ROK) { @@ -1934,7 +2017,7 @@ uint8_t BuildNrcgi(NRCGI_t *nrcgi) * RFAILED - failure * * ****************************************************************/ -uint8_t BuildSplCellList(SCell_ToBeSetup_List_t *spCellLst) +uint8_t BuildSplCellList(CuUeCb *ueCb, SCell_ToBeSetup_List_t *spCellLst) { uint8_t cellCnt; uint8_t idx; @@ -1958,10 +2041,10 @@ uint8_t BuildSplCellList(SCell_ToBeSetup_List_t *spCellLst) idx = 0; spCellLst->list.array[idx]->id = ProtocolIE_ID_id_SCell_ToBeSetup_Item; spCellLst->list.array[idx]->criticality = Criticality_ignore; - spCellLst->list.array[idx]->value.present =\ - SCell_ToBeSetup_ItemIEs__value_PR_SCell_ToBeSetup_Item; + spCellLst->list.array[idx]->value.present = SCell_ToBeSetup_ItemIEs__value_PR_SCell_ToBeSetup_Item; + /* Special Cell ID -NRCGI */ - ret = BuildNrcgi(&spCellLst->list.array[idx]->value.choice.SCell_ToBeSetup_Item.sCell_ID); + ret = BuildNrcgi(&spCellLst->list.array[idx]->value.choice.SCell_ToBeSetup_Item.sCell_ID, ueCb->cellCb->nrCellId); if(ret != ROK) { return RFAILED; @@ -1991,6 +2074,7 @@ uint8_t BuildSRBSetup(SRBs_ToBeSetup_List_t *srbSet) { uint8_t idx; uint8_t srbCnt; + srbCnt = 1; srbSet->list.count = srbCnt; srbSet->list.size = srbCnt*sizeof(SRBs_ToBeSetup_ItemIEs_t *); @@ -1999,6 +2083,7 @@ uint8_t BuildSRBSetup(SRBs_ToBeSetup_List_t *srbSet) { return RFAILED; } + for(idx=0; idxlist.array[idx],sizeof(SRBs_ToBeSetup_ItemIEs_t)); @@ -2007,11 +2092,11 @@ uint8_t BuildSRBSetup(SRBs_ToBeSetup_List_t *srbSet) return RFAILED; } } + idx = 0; srbSet->list.array[idx]->id = ProtocolIE_ID_id_SRBs_ToBeSetup_Item; srbSet->list.array[idx]->criticality = Criticality_ignore; - srbSet->list.array[idx]->value.present = \ - SRBs_ToBeSetup_ItemIEs__value_PR_SRBs_ToBeSetup_Item; + srbSet->list.array[idx]->value.present = SRBs_ToBeSetup_ItemIEs__value_PR_SRBs_ToBeSetup_Item; srbSet->list.array[idx]->value.choice.SRBs_ToBeSetup_Item.sRBID = 2; return ROK; }/* End of BuildSRBSetup*/ @@ -2311,7 +2396,7 @@ uint8_t BuildULTnlInfo(ULUPTNLInformation_ToBeSetup_List_t *ulInfo) ulInfo->list.array[idx]->uLUPTNLInformation.choice.gTPTunnel->\ gTP_TEID.buf[2] = 0; ulInfo->list.array[idx]->uLUPTNLInformation.choice.gTPTunnel->\ - gTP_TEID.buf[3] = cuCfgParams.egtpParams.currTunnelId++; + gTP_TEID.buf[3] = cuCb.cuCfgParams.egtpParams.currTunnelId++; return ROK; }/*End of BuildULTnlInfo*/ @@ -2387,7 +2472,7 @@ uint8_t BuildDRBSetup(DRBs_ToBeSetup_List_t *drbSet) } /*SNSSAI*/ BuildSNSSAIret = BuildSNSSAI(&drbSetItem->qoSInformation.choice.\ - choice_extension->value.choice.DRB_Information.sNSSAI, cuCfgParams.snssaiList[0]); + choice_extension->value.choice.DRB_Information.sNSSAI, cuCb.snssaiList[0]); if(BuildSNSSAIret != ROK) { DU_LOG("\nERROR --> F1AP : Failed to build SNSSAI Info in BuildDRBSetup"); @@ -4694,8 +4779,8 @@ uint8_t BuildTagConfig(struct TAG_Config *tagConfig) CU_ALLOC(tagList->list.array[idx], sizeof(struct TAG)); if(!tagList->list.array[idx]) { - DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildTagConfig"); - return RFAILED; + DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildTagConfig"); + return RFAILED; } } @@ -4819,8 +4904,8 @@ uint8_t BuildSchedulingReqConfig(struct SchedulingRequestConfig *schedulingReque CU_ALLOC(schReqList->list.array[idx], sizeof(struct SchedulingRequestToAddMod)); if(!schReqList->list.array[idx]) { - DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildSchedulingReqConfig"); - return RFAILED; + DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildSchedulingReqConfig"); + return RFAILED; } } @@ -5908,13 +5993,13 @@ uint8_t fillCellGrpCfg(CellGroupConfig_t *cellGrp) CU_ALLOC(cellGrpCfg.rlc_BearerToAddModList, sizeof(struct CellGroupConfigRrc__rlc_BearerToAddModList)); if(!cellGrpCfg.rlc_BearerToAddModList) { - DU_LOG("\nERROR --> F1AP : Memory allocation failure in CellGrpConfig"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation failure in CellGrpConfig"); + break; } if(BuildRlcBearerToAddModList(cellGrpCfg.rlc_BearerToAddModList) != ROK) { - DU_LOG("\nERROR --> F1AP : fillCellGrpCfg failed"); - break; + DU_LOG("\nERROR --> F1AP : fillCellGrpCfg failed"); + break; } cellGrpCfg.rlc_BearerToReleaseList = NULLP; @@ -5922,40 +6007,39 @@ uint8_t fillCellGrpCfg(CellGroupConfig_t *cellGrp) CU_ALLOC(cellGrpCfg.mac_CellGroupConfig, sizeof(MAC_CellGroupConfig_t)); if(!cellGrpCfg.mac_CellGroupConfig) { - DU_LOG("\nERROR --> F1AP : Memory allocation failure in fillCellGrpCfg"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation failure in fillCellGrpCfg"); + break; } if(BuildMacCellGrpCfg(cellGrpCfg.mac_CellGroupConfig) != ROK) { - DU_LOG("\nERROR --> F1AP : BuildMacCellGrpCfg failed"); - break; + DU_LOG("\nERROR --> F1AP : BuildMacCellGrpCfg failed"); + break; } - cellGrpCfg.physicalCellGroupConfig = NULLP; CU_ALLOC(cellGrpCfg.physicalCellGroupConfig, sizeof(PhysicalCellGroupConfig_t)); if(!cellGrpCfg.physicalCellGroupConfig) { - DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildDuToCuRrcContainer"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildDuToCuRrcContainer"); + break; } if(BuildPhyCellGrpCfg(cellGrpCfg.physicalCellGroupConfig) != ROK) { - DU_LOG("\nERROR --> F1AP : BuildPhyCellGrpCfg failed"); - break; + DU_LOG("\nERROR --> F1AP : BuildPhyCellGrpCfg failed"); + break; } cellGrpCfg.spCellConfig = NULLP; CU_ALLOC(cellGrpCfg.spCellConfig, sizeof(SpCellConfig_t)); if(!cellGrpCfg.spCellConfig) { - DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildDuToCuRrcContainer"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation failure in BuildDuToCuRrcContainer"); + break; } if(BuildSpCellCfg(cellGrpCfg.spCellConfig) != ROK) { - DU_LOG("\nERROR --> F1AP : BuildSpCellCfg failed"); - break; + DU_LOG("\nERROR --> F1AP : BuildSpCellCfg failed"); + break; } cellGrpCfg.sCellToAddModList = NULLP; @@ -5970,32 +6054,32 @@ uint8_t fillCellGrpCfg(CellGroupConfig_t *cellGrp) /* Encode results */ if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG( "\nERROR --> F1AP : Could not encode DuToCuRrcContainer (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); - break; + DU_LOG( "\nERROR --> F1AP : Could not encode DuToCuRrcContainer (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; } else { - DU_LOG("\nDEBUG --> F1AP : Created APER encodedbuffer for DuToCuRrcContainer\n"); - for(int i=0; i< encBufSize; i++) - { - DU_LOG("%x",encBuf[i]); - } + DU_LOG("\nDEBUG --> F1AP : Created APER encodedbuffer for DuToCuRrcContainer\n"); + for(int i=0; i< encBufSize; i++) + { + DU_LOG("%x",encBuf[i]); + } } cellGrp->size = encBufSize; CU_ALLOC(cellGrp->buf, cellGrp->size); if(!cellGrp->buf) { - DU_LOG("\nERROR --> F1AP : Memory allocation failed in BuildDuToCuRrcContainer"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation failed in BuildDuToCuRrcContainer"); + break; } memcpy(cellGrp->buf, encBuf, cellGrp->size); ret = ROK; break; } FreeMemCellGrpCfg(&cellGrpCfg); - return ROK; + return ret; } /******************************************************************* @@ -6388,8 +6472,8 @@ uint8_t fillUeCapRatContList(UE_CapabilityRAT_ContainerList_t *ueCapablityListBu if(!ueCapablityList.list.array) { DU_LOG("\nERROR --> Memory allocation failed in fillUeCapRatContList"); - ret = RFAILED; - break; + ret = RFAILED; + break; } for(idx=0; idx Memory allocation failed in fillUeCapRatContList"); + DU_LOG("\nERROR --> Memory allocation failed in fillUeCapRatContList"); ret = RFAILED; - break; + break; } } idx = 0; @@ -6411,13 +6495,13 @@ uint8_t fillUeCapRatContList(UE_CapabilityRAT_ContainerList_t *ueCapablityListBu cmMemset((uint8_t *)encBuf, 0, ENC_BUF_MAX_LEN); encBufSize = 0; encRetVal = aper_encode(&asn_DEF_UE_CapabilityRAT_ContainerListRRC, 0, \ - &ueCapablityList, PrepFinalEncBuf, encBuf); + &ueCapablityList, PrepFinalEncBuf, encBuf); /* Encode results */ if(encRetVal.encoded == ENCODE_FAIL) { DU_LOG( "\nERROR --> F1AP : Could not encode UE Capability RAT Container (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); break; } else @@ -6428,7 +6512,7 @@ uint8_t fillUeCapRatContList(UE_CapabilityRAT_ContainerList_t *ueCapablityListBu DU_LOG("%x",encBuf[i]); } } - + ueCapablityListBuf->size = encBufSize; CU_ALLOC(ueCapablityListBuf->buf, ueCapablityListBuf->size); if(!ueCapablityListBuf->buf) @@ -6487,24 +6571,25 @@ uint8_t fillCuToDuContainer(CUtoDURRCInformation_t *rrcMsg) if(rrcMsg->iE_Extensions->list.array == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for CUtoDURRCInformation_ExtIEs failed"); - ret = RFAILED; + DU_LOG("\nERROR --> F1AP : Memory allocation for CUtoDURRCInformation_ExtIEs failed"); + ret = RFAILED; } for(idx=0; idxiE_Extensions->list.array[idx], sizeof(CUtoDURRCInformation_ExtIEs_t)); - if(rrcMsg->iE_Extensions->list.array[idx] == NULLP) - { - ret = RFAILED; - } + CU_ALLOC(rrcMsg->iE_Extensions->list.array[idx], sizeof(CUtoDURRCInformation_ExtIEs_t)); + if(rrcMsg->iE_Extensions->list.array[idx] == NULLP) + { + DU_LOG("\nERROR --> F1AP : Memory allocation for array elements failed"); + ret = RFAILED; + } } idx = 0; /* Filling CellGroupConfig_t IE */ rrcMsg->iE_Extensions->list.array[idx]->id = ProtocolIE_ID_id_CellGroupConfig; rrcMsg->iE_Extensions->list.array[idx]->criticality = Criticality_ignore; rrcMsg->iE_Extensions->list.array[idx]->extensionValue.present =\ - CUtoDURRCInformation_ExtIEs__extensionValue_PR_CellGroupConfig; + CUtoDURRCInformation_ExtIEs__extensionValue_PR_CellGroupConfig; ret = fillCellGrpCfg(&rrcMsg->iE_Extensions->list.array[idx]->extensionValue.choice.CellGroupConfig); } return ret; @@ -6591,8 +6676,7 @@ void FreeCuToDuInfo(CUtoDURRCInformation_t *rrcMsg) * RFAILED - failure * * ****************************************************************/ -uint8_t BuildAndSendUeContextSetupReq(uint8_t cuUeF1apId, uint8_t duUeF1apId, \ - uint16_t rrcContLen, uint8_t *rrcContainer) +uint8_t BuildAndSendUeContextSetupReq(uint32_t duId, CuUeCb *ueCb, uint16_t rrcContLen, uint8_t *rrcContainer) { uint8_t Nrcgiret; uint8_t SplCellListret; @@ -6613,194 +6697,169 @@ uint8_t BuildAndSendUeContextSetupReq(uint8_t cuUeF1apId, uint8_t duUeF1apId, \ CU_ALLOC(f1apMsg, sizeof(F1AP_PDU_t)); if(f1apMsg == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); + break; } f1apMsg->present = F1AP_PDU_PR_initiatingMessage; CU_ALLOC(f1apMsg->choice.initiatingMessage, sizeof(InitiatingMessage_t)); if(f1apMsg->choice.initiatingMessage == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); + break; } - f1apMsg->choice.initiatingMessage->procedureCode = \ - ProcedureCode_id_UEContextSetup; + f1apMsg->choice.initiatingMessage->procedureCode = ProcedureCode_id_UEContextSetup; f1apMsg->choice.initiatingMessage->criticality = Criticality_reject; - f1apMsg->choice.initiatingMessage->value.present = \ - InitiatingMessage__value_PR_UEContextSetupRequest; - ueSetReq = - &f1apMsg->choice.initiatingMessage->value.choice.UEContextSetupRequest; + f1apMsg->choice.initiatingMessage->value.present = InitiatingMessage__value_PR_UEContextSetupRequest; + + ueSetReq = &f1apMsg->choice.initiatingMessage->value.choice.UEContextSetupRequest; elementCnt = 12; ueSetReq->protocolIEs.list.count = elementCnt; - ueSetReq->protocolIEs.list.size = \ - elementCnt * sizeof(UEContextSetupRequestIEs_t *); + ueSetReq->protocolIEs.list.size = elementCnt * sizeof(UEContextSetupRequestIEs_t *); /* Initialize the UESetup members */ CU_ALLOC(ueSetReq->protocolIEs.list.array,ueSetReq->protocolIEs.list.size); if(ueSetReq->protocolIEs.list.array == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for UE Context SetupRequest failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for UE Context SetupRequest failed"); + break; } for(idx1=0; idx1protocolIEs.list.array[idx1],sizeof(UEContextSetupRequestIEs_t)); - if(ueSetReq->protocolIEs.list.array[idx1] == NULLP) - { - break; - } + CU_ALLOC(ueSetReq->protocolIEs.list.array[idx1],sizeof(UEContextSetupRequestIEs_t)); + if(ueSetReq->protocolIEs.list.array[idx1] == NULLP) + { + break; + } } idx = 0; /*GNB CU UE F1AP ID*/ - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_GNB_CU_UE_F1AP_ID; - ueSetReq->protocolIEs.list.array[idx]->value.choice.GNB_CU_UE_F1AP_ID = cuUeF1apId; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_GNB_CU_UE_F1AP_ID; + ueSetReq->protocolIEs.list.array[idx]->value.choice.GNB_CU_UE_F1AP_ID = ueCb->gnbCuUeF1apId; /*GNB DU UE F1AP ID*/ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_ignore; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_GNB_DU_UE_F1AP_ID; - ueSetReq->protocolIEs.list.array[idx]->value.choice.GNB_DU_UE_F1AP_ID = duUeF1apId; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_GNB_DU_UE_F1AP_ID; + ueSetReq->protocolIEs.list.array[idx]->value.choice.GNB_DU_UE_F1AP_ID = ueCb->gnbDuUeF1apId; /*Special Cell ID*/ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_SpCell_ID; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_SpCell_ID; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_NRCGI; - Nrcgiret = BuildNrcgi(&ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI); + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_NRCGI; + Nrcgiret = BuildNrcgi(&ueSetReq->protocolIEs.list.array[idx]->value.choice.NRCGI, ueCb->cellCb->nrCellId); if(Nrcgiret != ROK) { - break; + break; } /*Served Cell Index*/ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_ServCellIndex; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_ServCellIndex; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_ServCellIndex; - ueSetReq->protocolIEs.list.array[idx]->value.choice.ServCellIndex = \ - CELL_INDEX; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_ServCellIndex; + ueSetReq->protocolIEs.list.array[idx]->value.choice.ServCellIndex = CELL_INDEX; /*CellULConfigured*/ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_SpCellULConfigured; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_SpCellULConfigured; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_ignore; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_CellULConfigured; - ueSetReq->protocolIEs.list.array[idx]->value.choice.CellULConfigured = \ - CellULConfigured_none; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_CellULConfigured; + ueSetReq->protocolIEs.list.array[idx]->value.choice.CellULConfigured = CellULConfigured_none; /*CUtoDURRCContainer*/ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_CUtoDURRCInformation; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_CUtoDURRCInformation; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_CUtoDURRCInformation; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_CUtoDURRCInformation; if(fillCuToDuContainer(&ueSetReq->protocolIEs.list.array[idx]->value.choice.CUtoDURRCInformation)) { - break; + break; } /*Special Cells to be SetupList*/ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_SCell_ToBeSetup_List; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_SCell_ToBeSetup_List; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_ignore; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_SCell_ToBeSetup_List; - SplCellListret = BuildSplCellList(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SCell_ToBeSetup_List); + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_SCell_ToBeSetup_List; + SplCellListret = BuildSplCellList(ueCb, &ueSetReq->protocolIEs.list.array[idx]->value.choice.SCell_ToBeSetup_List); if(SplCellListret != ROK) { - break; + break; } + /*SRBs To Be Setup List*/ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_SRBs_ToBeSetup_List; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_SRBs_ToBeSetup_List; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_SRBs_ToBeSetup_List; - SrbSetupret = BuildSRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SRBs_ToBeSetup_List); + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_SRBs_ToBeSetup_List; + SrbSetupret = BuildSRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.SRBs_ToBeSetup_List); if(SrbSetupret != ROK) { - break; + break; } + /*DRBs to Be Setup List*/ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_DRBs_ToBeSetup_List; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_DRBs_ToBeSetup_List; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_DRBs_ToBeSetup_List; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_DRBs_ToBeSetup_List; ret1 = BuildDRBSetup(&ueSetReq->protocolIEs.list.array[idx]->value.choice.DRBs_ToBeSetup_List); if(ret1 != ROK) { - break; + break; } /* RRC Container for security mode */ idx++; ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_RRCContainer; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_reject; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_RRCContainer; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_RRCContainer; + char secModeBuf[9]={0x00, 0x02, 0x22, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00}; bufLen =9; ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.size = bufLen; CU_ALLOC(ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, - ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.size); + ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.size); if(!ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf) { - DU_LOG("\nERROR --> F1AP : Memory allocation for BuildAndSendUeContextSetupReq failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for BuildAndSendUeContextSetupReq failed"); + break; } memset(ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, 0, bufLen); memcpy(ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, secModeBuf, bufLen); /* RRC delivery status request */ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_RRCDeliveryStatusRequest; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_RRCDeliveryStatusRequest; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_ignore; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_RRCDeliveryStatusRequest; - ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCDeliveryStatusRequest = \ - RRCDeliveryStatusRequest_true; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_RRCDeliveryStatusRequest; + ueSetReq->protocolIEs.list.array[idx]->value.choice.RRCDeliveryStatusRequest = RRCDeliveryStatusRequest_true; /* Bit Rate hardcoded as in reference logs */ idx++; - ueSetReq->protocolIEs.list.array[idx]->id = \ - ProtocolIE_ID_id_GNB_DU_UE_AMBR_UL; + ueSetReq->protocolIEs.list.array[idx]->id = ProtocolIE_ID_id_GNB_DU_UE_AMBR_UL; ueSetReq->protocolIEs.list.array[idx]->criticality = Criticality_ignore; - ueSetReq->protocolIEs.list.array[idx]->value.present = \ - UEContextSetupRequestIEs__value_PR_BitRate; + ueSetReq->protocolIEs.list.array[idx]->value.present = UEContextSetupRequestIEs__value_PR_BitRate; + char bitRateBuf[4]= {0x3B, 0x37, 0xF4, 0xCD}; bufLen = 4; ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.size = bufLen; CU_ALLOC(ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.buf,\ - ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.size); + ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.size); if(!ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.buf) { - DU_LOG("\nERROR --> F1AP : Failed to allocate memory for Bit Rate in BuildAndSendUeContextSetupReq()"); - break; + DU_LOG("\nERROR --> F1AP : Failed to allocate memory for Bit Rate in BuildAndSendUeContextSetupReq()"); + break; } memset(ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.buf, 0, bufLen); memcpy(ueSetReq->protocolIEs.list.array[idx]->value.choice.BitRate.buf, bitRateBuf, bufLen); @@ -6810,29 +6869,29 @@ uint8_t BuildAndSendUeContextSetupReq(uint8_t cuUeF1apId, uint8_t duUeF1apId, \ /* Encode the F1SetupRequest type as APER */ memset(encBuf, 0, ENC_BUF_MAX_LEN); encBufSize = 0; - encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf,\ - encBuf); + encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf, encBuf); + /* Encode results */ if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG( "\nERROR --> F1AP : Could not encode UE Context Setup Request structure (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); - break; + DU_LOG( "\nERROR --> F1AP : Could not encode UE Context Setup Request structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; } else { - DU_LOG("\nDEBUG --> F1AP : Created APER encodedbuffer for UE Context Setup Request\n"); - for(int i=0; i< encBufSize; i++) - { - DU_LOG("%x",encBuf[i]); - } + DU_LOG("\nDEBUG --> F1AP : Created APER encodedbuffer for UE Context Setup Request\n"); + for(int i=0; i< encBufSize; i++) + { + DU_LOG("%x",encBuf[i]); + } } /* Sending msg */ - if(SendF1APMsg(CU_APP_MEM_REG,CU_POOL) != ROK) + if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL, duId) != ROK) { - DU_LOG("\nERROR --> F1AP : Sending UE Context Setup Request Failed"); - break; + DU_LOG("\nERROR --> F1AP : Sending UE Context Setup Request Failed"); + break; } ret = ROK; break; @@ -6979,10 +7038,14 @@ uint8_t procDrbSetupList(DRBs_Setup_List_t *drbSetupList) * RFAILED - failure * * ****************************************************************/ -uint8_t procUeContextSetupResponse(F1AP_PDU_t *f1apMsg) +uint8_t procUeContextSetupResponse(uint32_t duId, F1AP_PDU_t *f1apMsg) { uint8_t idx, duUeF1apId; + DuDb *duDb; + CuUeCb *ueCb; UEContextSetupResponse_t *ueCtxtSetupRsp = NULLP; + + duDb = getDuDb(duId); ueCtxtSetupRsp = &f1apMsg->choice.successfulOutcome->value.choice.UEContextSetupResponse; for(idx=0; idx < ueCtxtSetupRsp->protocolIEs.list.count; idx++) @@ -6992,6 +7055,7 @@ uint8_t procUeContextSetupResponse(F1AP_PDU_t *f1apMsg) case ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID: { duUeF1apId = ueCtxtSetupRsp->protocolIEs.list.array[idx]->value.choice.GNB_DU_UE_F1AP_ID; + ueCb = &duDb->ueCb[duUeF1apId-1]; break; } case ProtocolIE_ID_id_DRBs_Setup_List: @@ -7003,7 +7067,7 @@ uint8_t procUeContextSetupResponse(F1AP_PDU_t *f1apMsg) } } } - ueCb[duUeF1apId-1].f1apMsgDb.dlRrcMsgCount++; /* keeping DL RRC Msg Count */ + ueCb->f1apMsgDb.dlRrcMsgCount++; /* keeping DL RRC Msg Count */ return ROK; } @@ -7023,83 +7087,87 @@ uint8_t procUeContextSetupResponse(F1AP_PDU_t *f1apMsg) * * ****************************************************************/ -uint8_t procUlRrcMsg(F1AP_PDU_t *f1apMsg) +uint8_t procUlRrcMsg(uint32_t duId, F1AP_PDU_t *f1apMsg) { uint8_t idx, ret, srbId, rrcMsgType; uint8_t cuUeF1apId, duUeF1apId; uint8_t *rrcContainer = NULLP; uint16_t rrcContLen; + DuDb *duDb; + CuUeCb *ueCb; ULRRCMessageTransfer_t *ulRrcMsg = NULLP; ret = ROK; + duDb = getDuDb(duId); ulRrcMsg = &f1apMsg->choice.initiatingMessage->value.choice.ULRRCMessageTransfer; for(idx=0; idx < ulRrcMsg->protocolIEs.list.count; idx++) { switch(ulRrcMsg->protocolIEs.list.array[idx]->id) { - case ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID: - { - cuUeF1apId = ulRrcMsg->protocolIEs.list.array[idx]->value.choice.GNB_CU_UE_F1AP_ID; - break; - } - case ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID: - { - duUeF1apId = ulRrcMsg->protocolIEs.list.array[idx]->value.choice.GNB_DU_UE_F1AP_ID; - break; - } - case ProtocolIE_ID_id_SRBID: - srbId = ulRrcMsg->protocolIEs.list.array[idx]->value.choice.SRBID; - break; - case ProtocolIE_ID_id_RRCContainer: - { - rrcContLen = ulRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.size; - CU_ALLOC(rrcContainer, rrcContLen) - if(!rrcContainer) - { - DU_LOG("\nERROR --> F1AP : Failed to allocated memory in procUlRrcMsg"); - return RFAILED; - } - memcpy(rrcContainer, ulRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf,\ - rrcContLen); - break; - } + case ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID: + { + cuUeF1apId = ulRrcMsg->protocolIEs.list.array[idx]->value.choice.GNB_CU_UE_F1AP_ID; + break; + } + case ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID: + { + duUeF1apId = ulRrcMsg->protocolIEs.list.array[idx]->value.choice.GNB_DU_UE_F1AP_ID; + break; + } + case ProtocolIE_ID_id_SRBID: + srbId = ulRrcMsg->protocolIEs.list.array[idx]->value.choice.SRBID; + break; - default: - DU_LOG("\nERROR --> F1AP : Invalid Event %ld", ulRrcMsg->protocolIEs.list.array[idx]->id); - break; + case ProtocolIE_ID_id_RRCContainer: + { + rrcContLen = ulRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.size; + CU_ALLOC(rrcContainer, rrcContLen); + if(!rrcContainer) + { + DU_LOG("\nERROR --> F1AP : Failed to allocated memory in procUlRrcMsg"); + return RFAILED; + } + memcpy(rrcContainer, ulRrcMsg->protocolIEs.list.array[idx]->value.choice.RRCContainer.buf, rrcContLen); + break; + } + + default: + DU_LOG("\nERROR --> F1AP : Invalid Event %ld", ulRrcMsg->protocolIEs.list.array[idx]->id); + break; } } + if(srbId == 1) { - ueCb[duUeF1apId-1].f1apMsgDb.dlRrcMsgCount++; - rrcMsgType = setDlRRCMsgType(duUeF1apId); + ueCb = &duDb->ueCb[duUeF1apId-1]; + ueCb->f1apMsgDb.dlRrcMsgCount++; + rrcMsgType = setDlRRCMsgType(ueCb); if(rrcMsgType == REGISTRATION_ACCEPT) { DU_LOG("\nINFO --> F1AP: Sending DL RRC MSG for RRC Registration Accept"); - ret = BuildAndSendDLRRCMessageTransfer(duUeF1apId, srbId, rrcMsgType); + ret = BuildAndSendDLRRCMessageTransfer(duId, ueCb, srbId, rrcMsgType); } if(rrcMsgType == UE_CONTEXT_SETUP_REQ) { - DU_LOG("\nINFO --> F1AP: Sending Ue Context Setup Req"); - ret = BuildAndSendUeContextSetupReq(cuUeF1apId, duUeF1apId,\ - rrcContLen, rrcContainer); + DU_LOG("\nINFO --> F1AP: Sending Ue Context Setup Req"); + ret = BuildAndSendUeContextSetupReq(duId, ueCb, rrcContLen, rrcContainer); } if(rrcMsgType == SECURITY_MODE_COMPLETE) { /* To trigger the DL RRC Msg for RRC Reconfig */ - ueCb[duUeF1apId-1].f1apMsgDb.dlRrcMsgCount++; - rrcMsgType = setDlRRCMsgType(duUeF1apId); + ueCb->f1apMsgDb.dlRrcMsgCount++; + rrcMsgType = setDlRRCMsgType(ueCb); if(rrcMsgType == RRC_RECONFIG) { DU_LOG("\nINFO --> F1AP: Sending DL RRC MSG for RRC Reconfig"); - BuildAndSendDLRRCMessageTransfer(duUeF1apId, srbId, rrcMsgType); + BuildAndSendDLRRCMessageTransfer(duId, ueCb, srbId, rrcMsgType); } } if(rrcMsgType == UE_CONTEXT_MOD_REQ) { DU_LOG("\nINFO --> F1AP: Sending UE Context Modification Request"); - BuildAndSendUeContextModificationReq(duUeF1apId); + BuildAndSendUeContextModificationReq(duId, ueCb); } } return ret; @@ -7179,8 +7247,8 @@ uint8_t BuildAndSendF1ResetAck() CU_ALLOC(f1apMsg, sizeof(F1AP_PDU_t)); if(f1apMsg == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); + break; } f1apMsg->present = F1AP_PDU_PR_successfulOutcome; @@ -7188,8 +7256,8 @@ uint8_t BuildAndSendF1ResetAck() CU_ALLOC(f1apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcome_t)); if(f1apMsg->choice.successfulOutcome == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed"); + break; } f1apMsg->choice.successfulOutcome->procedureCode = ProcedureCode_id_Reset; @@ -7205,17 +7273,17 @@ uint8_t BuildAndSendF1ResetAck() CU_ALLOC(f1ResetAck->protocolIEs.list.array, f1ResetAck->protocolIEs.list.size ); if(f1ResetAck->protocolIEs.list.array == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for F1ResetAckIEs failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for F1ResetAckIEs failed"); + break; } for(idx=0; idxprotocolIEs.list.array[idx], sizeof(ResetAcknowledgeIEs_t)); - if(f1ResetAck->protocolIEs.list.array[idx] == NULLP) - { - break; - } + CU_ALLOC(f1ResetAck->protocolIEs.list.array[idx], sizeof(ResetAcknowledgeIEs_t)); + if(f1ResetAck->protocolIEs.list.array[idx] == NULLP) + { + break; + } } /*TransactionID*/ idx = 0; @@ -7234,23 +7302,25 @@ uint8_t BuildAndSendF1ResetAck() /* Check encode results */ if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG("\nERROR --> F1AP : Could not encode F1ResetAck structure (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); - break; + DU_LOG("\nERROR --> F1AP : Could not encode F1ResetAck structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; } else { - DU_LOG("\nDEBUG --> F1AP : Created APER encodedbuffer for F1ResetAck \n"); - for(int i=0; i< encBufSize; i++) - { - DU_LOG("%x",encBuf[i]); - } + DU_LOG("\nDEBUG --> F1AP : Created APER encodedbuffer for F1ResetAck \n"); + for(int i=0; i< encBufSize; i++) + { + DU_LOG("%x",encBuf[i]); + } } + /* Sending msg */ - if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL) != ROK) + /* TODO : Hardcoding DU ID to 1 for messages other than F1 Setup Response. This will be made generic in future gerrit */ + if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL, DU_ID) != ROK) { - DU_LOG("\nERROR --> F1AP : Sending F1 Reset Response failed"); - break; + DU_LOG("\nERROR --> F1AP : Sending F1 Reset Response failed"); + break; } ret = ROK; @@ -7260,6 +7330,7 @@ uint8_t BuildAndSendF1ResetAck() FreeF1ResetAck(f1apMsg); return ret; } + void FreeUlTnlInfoforDrb2(ULUPTNLInformation_ToBeSetup_List_t *ulInfo) { uint8_t arrIdx =0; @@ -7437,7 +7508,7 @@ uint8_t BuildUlTnlInfoforSetupMod(uint8_t ueId, uint8_t drbId, ULUPTNLInformatio else { ulInfo->list.array[arrIdx]->uLUPTNLInformation.choice.gTPTunnel->\ - gTP_TEID.buf[3] = cuCfgParams.egtpParams.currTunnelId++; + gTP_TEID.buf[3] = cuCb.cuCfgParams.egtpParams.currTunnelId++; } return ROK; }/*End of BuildULTnlInfo*/ @@ -7602,7 +7673,7 @@ uint8_t FillDrbItemToSetupMod(uint8_t ueId, uint8_t arrIdx, DRBs_ToBeSetupMod_It /*SNSSAI*/ ret = BuildSNSSAI(&drbItem->qoSInformation.choice.\ - choice_extension->value.choice.DRB_Information.sNSSAI, cuCfgParams.snssaiList[1]); + choice_extension->value.choice.DRB_Information.sNSSAI, cuCb.snssaiList[1]); if(ret != ROK) { DU_LOG("\nERROR --> F1AP : BuildSNSSAI failed"); @@ -7837,7 +7908,7 @@ uint8_t FillDrbToBeModItem(uint8_t ueId, uint8_t arrIdx, DRBs_ToBeModified_Item_ /*SNSSAI*/ ret = BuildSNSSAI(&drbItem->qoSInformation->choice.\ - choice_extension->value.choice.DRB_Information.sNSSAI,cuCfgParams.snssaiList[0]); + choice_extension->value.choice.DRB_Information.sNSSAI, cuCb.snssaiList[0]); if(ret != ROK) { DU_LOG("\nERROR --> F1AP : BuildSNSSAI failed"); @@ -8134,6 +8205,7 @@ void FreeUeContextModicationRequest(F1AP_PDU_t *f1apMsg) CU_FREE(f1apMsg, sizeof(F1AP_PDU_t)); } } + /******************************************************************* * * @brief Builds the Ue Context Modification Req @@ -8150,11 +8222,12 @@ void FreeUeContextModicationRequest(F1AP_PDU_t *f1apMsg) * RFAILED - failure * * ****************************************************************/ -uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId) +uint8_t BuildAndSendUeContextModificationReq(uint32_t duId, void *cuUeCb) { uint8_t ieIdx = 0; uint8_t elementCnt = 0; uint8_t ret = RFAILED; + CuUeCb *ueCb = (CuUeCb *)cuUeCb; F1AP_PDU_t *f1apMsg = NULLP; UEContextModificationRequest_t *ueContextModifyReq = NULLP; @@ -8166,8 +8239,8 @@ uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId) CU_ALLOC(f1apMsg, sizeof(F1AP_PDU_t)); if(f1apMsg == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed Ue context modification"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed Ue context modification"); + break; } f1apMsg->present = F1AP_PDU_PR_initiatingMessage; @@ -8175,8 +8248,8 @@ uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId) CU_ALLOC(f1apMsg->choice.initiatingMessage, sizeof(InitiatingMessage_t)); if(f1apMsg->choice.initiatingMessage == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed Ue context modification"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for F1AP-PDU failed Ue context modification"); + break; } f1apMsg->choice.initiatingMessage->procedureCode = ProcedureCode_id_UEContextModification; f1apMsg->choice.initiatingMessage->criticality = Criticality_reject; @@ -8192,18 +8265,18 @@ uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId) CU_ALLOC(ueContextModifyReq->protocolIEs.list.array, ueContextModifyReq->protocolIEs.list.size); if(ueContextModifyReq->protocolIEs.list.array == NULLP) { - DU_LOG("\nERROR --> F1AP : Memory allocation for UE context modifcation Request failed"); - break; + DU_LOG("\nERROR --> F1AP : Memory allocation for UE context modifcation Request failed"); + break; } for(ieIdx=0 ; ieIdxprotocolIEs.list.array[ieIdx], sizeof(UEContextModificationRequest_t)); - if(ueContextModifyReq->protocolIEs.list.array[ieIdx] == NULLP) - { - DU_LOG("\nERROR --> F1AP : Memory allocation for UE context modifcation Request failed"); - break; - } + CU_ALLOC(ueContextModifyReq->protocolIEs.list.array[ieIdx], sizeof(UEContextModificationRequest_t)); + if(ueContextModifyReq->protocolIEs.list.array[ieIdx] == NULLP) + { + DU_LOG("\nERROR --> F1AP : Memory allocation for UE context modifcation Request failed"); + break; + } } @@ -8212,35 +8285,35 @@ uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId) ueContextModifyReq->protocolIEs.list.array[ieIdx]->criticality = Criticality_reject; ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.present = \ UEContextModificationRequestIEs__value_PR_GNB_CU_UE_F1AP_ID; - ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.choice.GNB_CU_UE_F1AP_ID = ueId; + ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.choice.GNB_CU_UE_F1AP_ID = ueCb->gnbCuUeF1apId; ieIdx++; ueContextModifyReq->protocolIEs.list.array[ieIdx]->id = ProtocolIE_ID_id_gNB_DU_UE_F1AP_ID; ueContextModifyReq->protocolIEs.list.array[ieIdx]->criticality = Criticality_reject; ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.present=\ UEContextModificationRequestIEs__value_PR_GNB_DU_UE_F1AP_ID; - ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.choice.GNB_DU_UE_F1AP_ID = ueId; + ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.choice.GNB_DU_UE_F1AP_ID = ueCb->gnbDuUeF1apId; /* DRB to be setup list */ ieIdx++; ueContextModifyReq->protocolIEs.list.array[ieIdx]->id = ProtocolIE_ID_id_DRBs_ToBeSetupMod_List; ueContextModifyReq->protocolIEs.list.array[ieIdx]->criticality = Criticality_reject; ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.present =\ - UEContextModificationRequestIEs__value_PR_DRBs_ToBeSetupMod_List; - ret = BuildDrbToBeSetupList(ueId, &(ueContextModifyReq->protocolIEs.list.array[ieIdx]->\ - value.choice.DRBs_ToBeSetupMod_List)); + UEContextModificationRequestIEs__value_PR_DRBs_ToBeSetupMod_List; + ret = BuildDrbToBeSetupList(ueCb->gnbCuUeF1apId, &(ueContextModifyReq->protocolIEs.list.array[ieIdx]->\ + value.choice.DRBs_ToBeSetupMod_List)); /* DRB to be modified list */ ieIdx++; ueContextModifyReq->protocolIEs.list.array[ieIdx]->id = ProtocolIE_ID_id_DRBs_ToBeModified_List; ueContextModifyReq->protocolIEs.list.array[ieIdx]->criticality = Criticality_reject; ueContextModifyReq->protocolIEs.list.array[ieIdx]->value.present =\ - UEContextModificationRequestIEs__value_PR_DRBs_ToBeModified_List; - ret = BuildDrbToBeModifiedList(ueId, &(ueContextModifyReq->protocolIEs.list.array[ieIdx]->\ - value.choice.DRBs_ToBeModified_List)); + UEContextModificationRequestIEs__value_PR_DRBs_ToBeModified_List; + ret = BuildDrbToBeModifiedList(ueCb->gnbCuUeF1apId, &(ueContextModifyReq->protocolIEs.list.array[ieIdx]->\ + value.choice.DRBs_ToBeModified_List)); /* TODO: DRB to be release list */ - + if(ret != ROK) { break; @@ -8250,29 +8323,29 @@ uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId) /* Encode the F1SetupRequest type as APER */ memset(encBuf, 0, ENC_BUF_MAX_LEN); encBufSize = 0; - encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf,\ - encBuf); + encRetVal = aper_encode(&asn_DEF_F1AP_PDU, 0, f1apMsg, PrepFinalEncBuf, encBuf); /* Encode results */ if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG("\nERROR --> F1AP : Could not encode ueContextModifyReq structure (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); - break; + DU_LOG("\nERROR --> F1AP : Could not encode ueContextModifyReq structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; } else { - DU_LOG("\nDEBUG --> F1AP : Created APER encodedbuffer for ueContextModifyReq\n"); - for(ieIdx=0; ieIdx< encBufSize; ieIdx++) - { - DU_LOG("%x",encBuf[ieIdx]); - } + DU_LOG("\nDEBUG --> F1AP : Created APER encodedbuffer for ueContextModifyReq\n"); + for(ieIdx=0; ieIdx< encBufSize; ieIdx++) + { + DU_LOG("%x",encBuf[ieIdx]); + } } - if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL) != ROK) + /* TODO : Hardcoding DU ID to 1 for messages other than F1 Setup Response. This will be made generic in future gerrit */ + if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL, duId) != ROK) { - DU_LOG("\nERROR --> F1AP : Sending Ue context modification request failed"); - break; + DU_LOG("\nERROR --> F1AP : Sending Ue context modification request failed"); + break; } ret = ROK; @@ -8282,8 +8355,9 @@ uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId) FreeUeContextModicationRequest(f1apMsg); return ret; } + /*****************************************************************i -* + * * @brief Free memory allocated for UE Context Release Command * * @details @@ -8336,7 +8410,7 @@ void FreeUeContextReleaseCommand(F1AP_PDU_t *f1apMsg) * RFAILED - failure * * ****************************************************************/ -uint8_t BuildAndSendUeContextReleaseCommand(uint8_t cuUeF1apId, uint8_t duUeF1apId) +uint8_t BuildAndSendUeContextReleaseCommand(uint32_t duId, uint8_t cuUeF1apId, uint8_t duUeF1apId) { bool memAllocFailed = false; uint8_t ieIdx = 0,elementCnt = 0, ret = RFAILED, bufLen=0; @@ -8462,7 +8536,8 @@ uint8_t BuildAndSendUeContextReleaseCommand(uint8_t cuUeF1apId, uint8_t duUeF1ap } } - if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL) != ROK) + /* TODO : Hardcoding DU ID to 1 for messages other than F1 Setup Response. This will be made generic in future gerrit */ + if(SendF1APMsg(CU_APP_MEM_REG, CU_POOL, duId) != ROK) { DU_LOG("\nERROR --> F1AP : Sending Ue context Release Command failed"); break; @@ -8491,7 +8566,7 @@ uint8_t BuildAndSendUeContextReleaseCommand(uint8_t cuUeF1apId, uint8_t duUeF1ap * RFAILED - failure * * ****************************************************************/ -uint8_t procUeContextReleaseReq(F1AP_PDU_t *f1apMsg) +uint8_t procUeContextReleaseReq(uint32_t duId, F1AP_PDU_t *f1apMsg) { uint8_t ieIdx=0, duUeF1apId=0,cuUeF1apId=0; @@ -8516,7 +8591,8 @@ uint8_t procUeContextReleaseReq(F1AP_PDU_t *f1apMsg) break; } } - if(BuildAndSendUeContextReleaseCommand(cuUeF1apId, duUeF1apId) != ROK) + + if(BuildAndSendUeContextReleaseCommand(duId, cuUeF1apId, duUeF1apId) != ROK) { DU_LOG("\nERROR --> F1AP : procUeContextReleaseReq(): Failed to build Ue Context Release Command "); return RFAILED; @@ -8539,10 +8615,13 @@ uint8_t procUeContextReleaseReq(F1AP_PDU_t *f1apMsg) * RFAILED - failure * * ****************************************************************/ -uint8_t procGnbDuUpdate(F1AP_PDU_t *f1apMsg) +uint8_t procGnbDuUpdate(uint32_t duId, F1AP_PDU_t *f1apMsg) { bool cellToBeDelete = false; uint8_t ieIdx = 0, ueIdx = 0; + uint16_t cellId; + DuDb *duDb; + CuCellCb *cellCb; GNBDUConfigurationUpdate_t *duCfgUpdate = NULLP; duCfgUpdate = &f1apMsg->choice.initiatingMessage->value.choice.GNBDUConfigurationUpdate; @@ -8556,6 +8635,11 @@ uint8_t procGnbDuUpdate(F1AP_PDU_t *f1apMsg) break; case ProtocolIE_ID_id_Served_Cells_To_Delete_List: { + struct Served_Cells_To_Delete_ItemIEs *deleteItemIe = \ + (struct Served_Cells_To_Delete_ItemIEs *)duCfgUpdate->protocolIEs.list.array[ieIdx]->value.choice.\ + Served_Cells_To_Delete_List.list.array[0]; + cellId = deleteItemIe->value.choice.Served_Cells_To_Delete_Item.oldNRCGI.nRCellIdentity.buf[4] >>\ + deleteItemIe->value.choice.Served_Cells_To_Delete_Item.oldNRCGI.nRCellIdentity.bits_unused; cellToBeDelete = true; break; } @@ -8563,7 +8647,7 @@ uint8_t procGnbDuUpdate(F1AP_PDU_t *f1apMsg) break; } } - if(BuildAndSendDUUpdateAck() != ROK) + if(BuildAndSendDUUpdateAck(duId) != ROK) { DU_LOG("ERROR --> F1AP : Failed to build and send DUUpdateAck"); return RFAILED; @@ -8584,10 +8668,12 @@ uint8_t procGnbDuUpdate(F1AP_PDU_t *f1apMsg) #endif if(cellToBeDelete == true) { - for(ueIdx = 0; ueIdx < MAX_NUM_UE; ueIdx++) + duDb = getDuDb(duId); + cellCb = getCellCb(duDb, cellId); + for(ueIdx = 0; ueIdx < cellCb->numUe; ueIdx++) { - CU_FREE(ueCb[ueIdx].f1apMsgDb.duToCuContainer.buf, ueCb[ueIdx].f1apMsgDb.duToCuContainer.size); - memset(&ueCb[ueIdx], 0, sizeof(UeCb)); + CU_FREE(cellCb->ueCb[ueIdx]->f1apMsgDb.duToCuContainer.buf, cellCb->ueCb[ueIdx]->f1apMsgDb.duToCuContainer.size); + memset(cellCb->ueCb[ueIdx], 0, sizeof(CuUeCb)); } } @@ -8618,25 +8704,25 @@ uint8_t buildSliceList(SliceSupportList_t *sliceSupportList) { if(sliceSupportList->list.array) { - cuCfgParams.numSnssaiSupported = sliceSupportList->list.count; + cuCb.numSnssaiSupported = sliceSupportList->list.count; for(sliceListIdx=0; sliceListIdxlist.count; sliceListIdx++) { if(sliceSupportList->list.array[sliceListIdx]) { - CU_ALLOC(cuCfgParams.snssaiList[sliceListIdx], sizeof(Snssai)); - if(cuCfgParams.snssaiList[sliceListIdx] == NULLP) + CU_ALLOC(cuCb.snssaiList[sliceListIdx], sizeof(Snssai)); + if(cuCb.snssaiList[sliceListIdx] == NULLP) { DU_LOG("\nERROR --> CU_STUB: buildSliceList(): Memory allocation failed"); return RFAILED; } if(sliceSupportList->list.array[sliceListIdx]->sNSSAI.sST.buf) { - memcpy(&cuCfgParams.snssaiList[sliceListIdx]->sst, sliceSupportList->list.array[sliceListIdx]->\ + memcpy(&cuCb.snssaiList[sliceListIdx]->sst, sliceSupportList->list.array[sliceListIdx]->\ sNSSAI.sST.buf, sliceSupportList->list.array[sliceListIdx]->sNSSAI.sST.size); } if(sliceSupportList->list.array[sliceListIdx]->sNSSAI.sD->size) { - memcpy(&cuCfgParams.snssaiList[sliceListIdx]->sd,\ + memcpy(&cuCb.snssaiList[sliceListIdx]->sd,\ sliceSupportList->list.array[sliceListIdx]->sNSSAI.sD->buf,\ sliceSupportList->list.array[sliceListIdx]->sNSSAI.sD->size); } @@ -8809,9 +8895,12 @@ uint8_t procUeContextModificationResponse(F1AP_PDU_t *f1apMsg) * RFAILED - failure * * ****************************************************************/ -void procF1SetupReq(F1AP_PDU_t *f1apMsg) +void procF1SetupReq(uint32_t *destDuId, F1AP_PDU_t *f1apMsg) { - uint8_t ieIdx = 0, plmnidx=0, ret=ROK; + uint8_t ieIdx = 0, plmnidx=0, duIdx = 0, ret=ROK, cellIdx = 0; + uint32_t duId, cellId; + DuDb *duDb = NULLP; + CuCellCb *cellCb = NULLP; BIT_STRING_t nrcellIdentity; F1SetupRequest_t *f1SetupReq = NULLP; GNB_DU_Served_Cells_Item_t *srvCellItem = NULLP; @@ -8822,6 +8911,27 @@ void procF1SetupReq(F1AP_PDU_t *f1apMsg) { switch(f1SetupReq->protocolIEs.list.array[ieIdx]->id) { + case ProtocolIE_ID_id_gNB_DU_ID: + { + duId = f1SetupReq->protocolIEs.list.array[ieIdx]->value.choice.GNB_DU_ID.buf[0]; + duDb = getDuDb(duId); + if(duDb == NULLP) + { + duDb = &cuCb.duInfo[cuCb.numDu]; + memset(duDb, 0, sizeof(DuDb)); + duDb->duId = duId; + cuCb.numDu++; + *destDuId = duId; + } + else + return; + break; + } + case ProtocolIE_ID_id_gNB_DU_Name: + { + strcpy((char *)duDb->duName, (char*)f1SetupReq->protocolIEs.list.array[ieIdx]->value.choice.GNB_DU_Name.buf); + break; + } case ProtocolIE_ID_id_gNB_DU_Served_Cells_List: { duServedCell = &f1SetupReq->protocolIEs.list.array[ieIdx]->value.choice.GNB_DU_Served_Cells_List; @@ -8838,6 +8948,16 @@ void procF1SetupReq(F1AP_PDU_t *f1apMsg) srvCellItem = &duServedCell->list.array[plmnidx]->value.choice.GNB_DU_Served_Cells_Item; ret = procServedCellPlmnList(&srvCellItem->served_Cell_Information.servedPLMNs); memcpy(&nrcellIdentity, &srvCellItem->served_Cell_Information.nRCGI.nRCellIdentity, sizeof(BIT_STRING_t)); + + cellId = nrcellIdentity.buf[4] >> nrcellIdentity.bits_unused; + cellCb = getCellCb(duDb, cellId); + if(cellCb == NULLP) + { + cellCb = &duDb->cellCb[duDb->numCells]; + memset(cellCb, 0, sizeof(CuCellCb)); + cellCb->nrCellId = cellId; + duDb->numCells++; + } } } } @@ -8848,7 +8968,7 @@ void procF1SetupReq(F1AP_PDU_t *f1apMsg) } if(ret == ROK) { - BuildAndSendF1SetupRsp(&nrcellIdentity); + BuildAndSendF1SetupRsp(duId, &nrcellIdentity); } else { @@ -8873,7 +8993,7 @@ void procF1SetupReq(F1AP_PDU_t *f1apMsg) * RFAILED - failure * * ****************************************************************/ -void F1APMsgHdlr(Buffer *mBuf) +void F1APMsgHdlr(uint32_t *duId, Buffer *mBuf) { int i; char *recvBuf; @@ -8938,26 +9058,26 @@ void F1APMsgHdlr(Buffer *mBuf) case InitiatingMessage__value_PR_F1SetupRequest: { DU_LOG("\nINFO --> F1AP : F1 setup request received"); - procF1SetupReq(f1apMsg); + procF1SetupReq(duId, f1apMsg); break; } case InitiatingMessage__value_PR_GNBDUConfigurationUpdate: { DU_LOG("\nINFO --> F1AP : GNB-DU config update received"); - procGnbDuUpdate(f1apMsg); + procGnbDuUpdate(*duId, f1apMsg); break; } case InitiatingMessage__value_PR_InitialULRRCMessageTransfer: { DU_LOG("\nINFO --> F1AP : Received InitialULRRCMessageTransfer"); - procInitULRRCMsg(f1apMsg); + procInitULRRCMsg(*duId, f1apMsg); break; } case InitiatingMessage__value_PR_ULRRCMessageTransfer: { DU_LOG("\nINFO --> F1AP : Received ULRRCMessageTransfer"); - procUlRrcMsg(f1apMsg); + procUlRrcMsg(*duId, f1apMsg); break; } @@ -8969,7 +9089,7 @@ void F1APMsgHdlr(Buffer *mBuf) case InitiatingMessage__value_PR_UEContextReleaseRequest: { DU_LOG("\nINFO --> F1AP : Received UE Context Release Request"); - procUeContextReleaseReq(f1apMsg); + procUeContextReleaseReq(*duId, f1apMsg); break; } default: @@ -8994,7 +9114,7 @@ void F1APMsgHdlr(Buffer *mBuf) case SuccessfulOutcome__value_PR_UEContextSetupResponse: { DU_LOG("\nINFO --> F1AP : UE ContextSetupResponse received"); - procUeContextSetupResponse(f1apMsg); + procUeContextSetupResponse(*duId, f1apMsg); break; } case SuccessfulOutcome__value_PR_UEContextModificationResponse: diff --git a/src/cu_stub/cu_f1ap_msg_hdl.h b/src/cu_stub/cu_f1ap_msg_hdl.h index 8eb0cb59b..a14f9e022 100644 --- a/src/cu_stub/cu_f1ap_msg_hdl.h +++ b/src/cu_stub/cu_f1ap_msg_hdl.h @@ -17,26 +17,6 @@ *******************************************************************************/ /* This file contains all F1AP message handler related functionality */ -#include -#include -#include -#include "ProtocolExtensionField.h" -#include "F1AP-PDU.h" -#include "Cells-to-be-Activated-List.h" -#include "DL-CCCH-Message.h" -#include "SRB-ToAddModList.h" -#include "SRB-ToAddMod.h" -#include "RRCSetup-IEs.h" -#include "RRCSetup.h" -#include "DL-DCCH-Message.h" -#include "RRCReconfiguration-IEs.h" -#include "RRCReconfiguration.h" -#include "DRB-ToAddModList.h" -#include "DRB-ToAddMod.h" -#include "SDAP-Config.h" -#include "du_log.h" -#include "cu_stub.h" - #define ENCODE_FAIL -1 #define TRANS_ID 1 #define RRC_SIZE 1 @@ -77,24 +57,15 @@ #define UE_CONTEXT_MOD_REQ 7 #define NUM_QOS_EXT 1 - typedef struct f1apDb { uint8_t dlRrcMsgCount; OCTET_STRING_t duToCuContainer; }F1apMsgDb; -typedef struct ueInfo -{ - uint8_t ueId; - F1apMsgDb f1apMsgDb; -}UeCb; - -UeCb ueCb[MAX_NUM_UE]; - -void F1APMsgHdlr(Buffer *mBuf); -uint8_t BuildAndSendUeContextModificationReq(uint8_t ueId); -uint8_t BuildAndSendUeContextReleaseCommand(uint8_t cuUeF1apId, uint8_t duUeF1apId); +void F1APMsgHdlr(uint32_t *destDuId, Buffer *mBuf); +uint8_t BuildAndSendUeContextModificationReq(uint32_t duId, void *ueCb); +uint8_t BuildAndSendUeContextReleaseCommand(uint32_t duId, uint8_t cuUeF1apId, uint8_t duUeF1apId); uint8_t BuildAndSendF1ResetReq(); /********************************************************************** End of file diff --git a/src/cu_stub/cu_stub.c b/src/cu_stub/cu_stub.c index 50ec5fc01..11b7a4e75 100644 --- a/src/cu_stub/cu_stub.c +++ b/src/cu_stub/cu_stub.c @@ -18,47 +18,74 @@ /* This functions contains main() for cu_app */ #include "common_def.h" -#include "cu_stub.h" #include "cu_stub_sctp.h" #include "cu_stub_egtp.h" -#include "du_log.h" +#include "OCTET_STRING.h" +#include "cu_f1ap_msg_hdl.h" +#include "cu_stub.h" #ifdef O1_ENABLE #include "CmInterface.h" #endif -#define CU_ID 1 -#define CU_NAME "ORAN_OAM_CU" - -#define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001" -#define CU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011" - -#ifndef O1_ENABLE - -#define DU_IP_V4_ADDR "192.168.130.81" -#define CU_IP_V4_ADDR "192.168.130.82" -#define DU_PORT 38472 -#define CU_PORT 38472 - -#endif - -#define DU_EGTP_PORT 39001 -#define CU_EGTP_PORT 39002 -#define RRC_VER 0 -#define EXT_RRC_VER 5 -#define PLMN_MCC0 3 -#define PLMN_MCC1 1 -#define PLMN_MCC2 1 -#define PLMN_MNC0 4 -#define PLMN_MNC1 8 -#define PLMN_MNC2 0 #ifdef O1_ENABLE - extern StartupConfig g_cfg; - #endif +/******************************************************************* + * + * @brief Fetches pointer to DU Database + * + * @details + * + * Function : getDuDb + * + * Functionality: + * Searches and returns pointer to DU structure based on DU Id + * + * @params[in] DU Id + * @return Pointer to DU Db + * + ******************************************************************/ +DuDb* getDuDb(uint32_t duId) +{ + uint8_t duIdx; + for(duIdx=0; duIdx < cuCb.numDu; duIdx++) + { + if(cuCb.duInfo[duIdx].duId == duId) + return (&cuCb.duInfo[duIdx]); + } + return NULLP; +} + +/******************************************************************* + * + * @brief Fetches pointer to Cell Cb + * + * @details + * + * Function : getCellCb + * + * Functionality: + * Searches for a cell within a DU based on NR cell Id + * Returns pointer to this cell Cb structure + * + * @params[in] Pointer to DU Db + * NR Cell ID + * @return Pointer to cell Cb + * + ******************************************************************/ +CuCellCb* getCellCb(DuDb *duDb, uint32_t cellId) +{ + uint8_t cellIdx; + for(cellIdx=0; cellIdx < duDb->numCells; cellIdx++) + { + if(duDb->cellCb[cellIdx].nrCellId == cellId) + return &(duDb->cellCb[cellIdx]); + } + return NULLP; +} /******************************************************************* * @@ -160,10 +187,14 @@ uint8_t tst() void readCuCfg() { + uint8_t *numDu; uint32_t ipv4_du, ipv4_cu; DU_LOG("\nDEBUG --> CU_STUB : Reading CU configurations"); + cuCb.cuCfgParams.cuId = CU_ID; + strcpy(cuCb.cuCfgParams.cuName, CU_NAME); + #ifdef O1_ENABLE if( getStartupConfigForStub(&g_cfg) != ROK ) { @@ -175,49 +206,54 @@ void readCuCfg() cmInetAddr((S8*)g_cfg.DU_IPV4_Addr, &ipv4_du); cmInetAddr((S8*)g_cfg.CU_IPV4_Addr, &ipv4_cu); - cuCfgParams.sctpParams.duPort = g_cfg.DU_Port; - cuCfgParams.sctpParams.cuPort = g_cfg.CU_Port; + cuCb.cuCfgParams.sctpParams.duPort = g_cfg.DU_Port; + cuCb.cuCfgParams.sctpParams.cuPort = g_cfg.CU_Port; #else - cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du); - cmInetAddr((S8*)CU_IP_V4_ADDR, &ipv4_cu); - cuCfgParams.sctpParams.duPort = DU_PORT; - cuCfgParams.sctpParams.cuPort = CU_PORT; -#endif - - cuCfgParams.cuId = CU_ID; - strcpy(cuCfgParams.cuName, CU_NAME); - - /* DU IP Address and Port*/ - cuCfgParams.sctpParams.duIpAddr.ipV4Addr = ipv4_du; - cuCfgParams.sctpParams.duIpAddr.ipV6Pres = false; + cuCb.cuCfgParams.sctpParams.numDu = 0; + numDu = &cuCb.cuCfgParams.sctpParams.numDu; + while(*numDu < MAX_DU_SUPPORTED) + { + /* DU IP Address and Port*/ + memset(&ipv4_du, 0, sizeof(uint32_t)); + cmInetAddr((S8*)DU_IP_V4_ADDR[*numDu], &ipv4_du); + cuCb.cuCfgParams.sctpParams.sctpAssoc[*numDu].duIpAddr.ipV4Addr = ipv4_du; + cuCb.cuCfgParams.sctpParams.sctpAssoc[*numDu].duIpAddr.ipV6Pres = false; + cuCb.cuCfgParams.sctpParams.sctpAssoc[*numDu].duPort = DU_SCTP_PORT[*numDu]; + + /* CU IP Address and Port*/ + memset(&ipv4_du, 0, sizeof(uint32_t)); + cmInetAddr((S8*)CU_IP_V4_ADDR, &ipv4_cu); + cuCb.cuCfgParams.sctpParams.sctpAssoc[*numDu].cuIpAddr.ipV4Addr = ipv4_cu; + cuCb.cuCfgParams.sctpParams.sctpAssoc[*numDu].cuIpAddr.ipV6Pres = false; + cuCb.cuCfgParams.sctpParams.sctpAssoc[*numDu].cuPort = CU_SCTP_PORT_TO_DU[*numDu]; + (*numDu)++; + } - /* CU IP Address and Port*/ - cuCfgParams.sctpParams.cuIpAddr.ipV4Addr = ipv4_cu; - cuCfgParams.sctpParams.cuIpAddr.ipV6Pres = false; +#endif /*PLMN*/ - cuCfgParams.plmn.mcc[0] = PLMN_MCC0; - cuCfgParams.plmn.mcc[1] = PLMN_MCC1; - cuCfgParams.plmn.mcc[2] = PLMN_MCC2; - cuCfgParams.plmn.mnc[0] = PLMN_MNC0; - cuCfgParams.plmn.mnc[1] = PLMN_MNC1; - cuCfgParams.plmn.mnc[2] = PLMN_MNC2; + cuCb.cuCfgParams.plmn.mcc[0] = PLMN_MCC0; + cuCb.cuCfgParams.plmn.mcc[1] = PLMN_MCC1; + cuCb.cuCfgParams.plmn.mcc[2] = PLMN_MCC2; + cuCb.cuCfgParams.plmn.mnc[0] = PLMN_MNC0; + cuCb.cuCfgParams.plmn.mnc[1] = PLMN_MNC1; + cuCb.cuCfgParams.plmn.mnc[2] = PLMN_MNC2; /*RRC Version*/ - cuCfgParams.rrcVersion.rrcVer = RRC_VER; - cuCfgParams.rrcVersion.extRrcVer = EXT_RRC_VER; + cuCb.cuCfgParams.rrcVersion.rrcVer = RRC_VER; + cuCb.cuCfgParams.rrcVersion.extRrcVer = EXT_RRC_VER; /* EGTP Parameters */ - cuCfgParams.egtpParams.localIp.ipV4Pres = TRUE; - cuCfgParams.egtpParams.localIp.ipV4Addr = ipv4_cu; - cuCfgParams.egtpParams.localPort = CU_EGTP_PORT; - cuCfgParams.egtpParams.destIp.ipV4Pres = TRUE; - cuCfgParams.egtpParams.destIp.ipV4Addr = ipv4_du; - cuCfgParams.egtpParams.destPort = DU_EGTP_PORT; - cuCfgParams.egtpParams.minTunnelId = MIN_TEID; - cuCfgParams.egtpParams.currTunnelId = cuCfgParams.egtpParams.minTunnelId; - cuCfgParams.egtpParams.maxTunnelId = MAX_TEID; + cuCb.cuCfgParams.egtpParams.localIp.ipV4Pres = TRUE; + cuCb.cuCfgParams.egtpParams.localIp.ipV4Addr = ipv4_cu; + cuCb.cuCfgParams.egtpParams.localPort = CU_EGTP_PORT; + cuCb.cuCfgParams.egtpParams.destIp.ipV4Pres = TRUE; + cuCb.cuCfgParams.egtpParams.destIp.ipV4Addr = ipv4_du; + cuCb.cuCfgParams.egtpParams.destPort = DU_EGTP_PORT; + cuCb.cuCfgParams.egtpParams.minTunnelId = MIN_TEID; + cuCb.cuCfgParams.egtpParams.currTunnelId = cuCb.cuCfgParams.egtpParams.minTunnelId; + cuCb.cuCfgParams.egtpParams.maxTunnelId = MAX_TEID; } /* End of readCuCfg */ diff --git a/src/cu_stub/cu_stub.h b/src/cu_stub/cu_stub.h index 2bfaabfce..2918614b1 100644 --- a/src/cu_stub/cu_stub.h +++ b/src/cu_stub/cu_stub.h @@ -19,18 +19,38 @@ #ifndef __CU_MGR_MAIN_H__ #define __CU_MGR_MAIN_H__ -#define MAX_IPV6_LEN 16 +#define CU_ID 1 +#define CU_NAME "ORAN_OAM_CU" + +#define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001" +#define CU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011" + +#ifndef O1_ENABLE +#define DU_IP_V4_ADDR (char*[]){"192.168.130.81", "192.168.130.83"} +#define DU_SCTP_PORT (int[]){38472, 38473} + +#define CU_IP_V4_ADDR "192.168.130.82" +#define CU_SCTP_PORT_TO_DU (int[]){38472, 38473} +#endif + +#define DU_EGTP_PORT 39001 +#define CU_EGTP_PORT 39002 +#define RRC_VER 0 +#define EXT_RRC_VER 5 +#define PLMN_MCC0 3 +#define PLMN_MCC1 1 +#define PLMN_MCC2 1 +#define PLMN_MNC0 4 +#define PLMN_MNC1 8 +#define PLMN_MNC2 0 + #define CU_DU_NAME_LEN_MAX 30 /* Max length of CU/DU name string */ #define CU_APP_MEM_REG 1 #define CU_POOL 1 -#define MAX_DU_PORT 2 -#define DU_PORT 38472 + #define MAX_NUM_OF_SLICE 1024 /* As per the spec 38.473, maxnoofSliceItems = 1024*/ -/*VALID Tunnel ID*/ -#define MIN_TEID 1 /*[Spec 29.281,Sec 5.1]: All Zero TEIDs are never assigned for setting up GTP-U Tunnel*/ -#define MAX_TEID MAX_NUM_DRB * MAX_NUM_UE /*[Spec 29.281]: Max limit is not mentioned but as per GTP-U Header Format, TEID occupies 4 octets */ /* allocate and zero out a static buffer */ #define CU_ALLOC(_datPtr, _size) \ @@ -50,39 +70,12 @@ SPutSBuf(CU_APP_MEM_REG, CU_POOL, \ (Data *)_datPtr, _size); -typedef struct ipAddr -{ - Bool ipV4Pres; - uint32_t ipV4Addr; - Bool ipV6Pres; - uint8_t ipV6Addr[MAX_IPV6_LEN]; -}SctpIpAddr; - typedef struct RrcVersion { uint8_t rrcVer; /* Latest RRC Version */ uint32_t extRrcVer; /* Latest RRC version extended */ }RrcVersion; -typedef struct egtpParams -{ - SctpIpAddr localIp; - uint16_t localPort; - SctpIpAddr destIp; - uint16_t destPort; - uint32_t currTunnelId; - uint32_t minTunnelId; - uint32_t maxTunnelId; -}EgtpParams; - -typedef struct CuSctpParams -{ - SctpIpAddr duIpAddr; - uint16_t duPort; - SctpIpAddr cuIpAddr; - uint16_t cuPort; -}CuSctpParams; - typedef struct cuCfgParams { uint32_t cuId; @@ -91,10 +84,47 @@ typedef struct cuCfgParams Plmn plmn; EgtpParams egtpParams; RrcVersion rrcVersion; - uint8_t numSnssaiSupported; - Snssai *snssaiList[MAX_NUM_OF_SLICE]; }CuCfgParams; -CuCfgParams cuCfgParams; //global variable to hold all configs + +typedef struct cuCellCb CuCellCb; + +typedef struct cuUeCb +{ + CuCellCb *cellCb; + uint32_t crnti; + uint8_t gnbDuUeF1apId; + uint8_t gnbCuUeF1apId; + F1apMsgDb f1apMsgDb; +}CuUeCb; + +struct cuCellCb +{ + uint32_t nrCellId; + uint8_t numUe; + CuUeCb *ueCb[MAX_NUM_UE]; +}; + +typedef struct duDb +{ + uint32_t duId; + char duName[CU_DU_NAME_LEN_MAX]; + uint8_t numCells; + CuCellCb cellCb[MAX_NUM_CELL]; + uint8_t numUe; + CuUeCb ueCb[MAX_NUM_CELL * MAX_NUM_UE]; +}DuDb; + +typedef struct cuGlobalCb +{ + CuCfgParams cuCfgParams; + uint8_t numSnssaiSupported; + Snssai *snssaiList[MAX_NUM_OF_SLICE]; + uint8_t numDu; + DuDb duInfo[MAX_DU_SUPPORTED]; + uint32_t gnbCuUeF1apIdGenerator; /* Generating CU UE F1AP ID */ +}CuGlobalCb; + +CuGlobalCb cuCb; void readCuCfg(); void cuAppInmsgHdlr(Buffer *mBuf); diff --git a/src/cu_stub/cu_stub_egtp.c b/src/cu_stub/cu_stub_egtp.c index cb3c5c82e..8657cb2cd 100644 --- a/src/cu_stub/cu_stub_egtp.c +++ b/src/cu_stub/cu_stub_egtp.c @@ -19,12 +19,17 @@ /* This file contains all EGTP related functionality */ #include "common_def.h" +#include "OCTET_STRING.h" +#include "cu_stub_sctp.h" #include "cu_f1ap_msg_hdl.h" #include "cu_stub_egtp.h" -#include "du_log.h" +#include "cu_stub.h" +#include "cm_inet.h" +#include "cm_tpt.h" + +#include "cm_inet.x" +#include "cm_tpt.x" -/* Global variable declaration */ -EgtpGlobalCb egtpCb; /************************************************************************** * @brief Task Initiation callback function. * @@ -115,7 +120,7 @@ S16 cuEgtpCfgReq() { uint8_t ret; - memcpy(&egtpCb.egtpCfg, &cuCfgParams.egtpParams, sizeof(EgtpParams)); + memcpy(&egtpCb.egtpCfg, &cuCb.cuCfgParams.egtpParams, sizeof(EgtpParams)); egtpCb.recvTptSrvr.addr.address = CM_INET_NTOH_UINT32(egtpCb.egtpCfg.localIp.ipV4Addr); egtpCb.recvTptSrvr.addr.port = EGTP_DFLT_PORT; diff --git a/src/cu_stub/cu_stub_egtp.h b/src/cu_stub/cu_stub_egtp.h index fb79204a8..0ca75fc20 100644 --- a/src/cu_stub/cu_stub_egtp.h +++ b/src/cu_stub/cu_stub_egtp.h @@ -21,13 +21,6 @@ #ifndef __CU_STUB_EGTP_H__ #define __CU_STUB_EGTP_H__ -#include "cu_stub.h" -#include "cm_inet.h" -#include "cm_tpt.h" - -#include "cm_inet.x" -#include "cm_tpt.x" - #define EGTP_DFLT_PORT 2152 #define EGTP_TNL_MGMT_ADD 1 #define EGTP_TNL_MGMT_MOD 2 @@ -47,6 +40,10 @@ #define EGTP_MASK_BIT7 0x40 #define EGTP_MASK_BIT8 0x80 +/*VALID Tunnel ID*/ +#define MIN_TEID 1 /*[Spec 29.281,Sec 5.1]: All Zero TEIDs are never assigned for setting up GTP-U Tunnel*/ +#define MAX_TEID MAX_NUM_DRB * MAX_NUM_UE /*[Spec 29.281]: Max limit is not mentioned but as per GTP-U Header Format, TEID occupies 4 octets */ + #define NUM_TUNNEL_TO_PUMP_DATA 9 #define NUM_DL_PACKETS 1 @@ -121,6 +118,17 @@ typedef struct egtpDstCb CmHashListCp teIdLst; /* Tunnel Id list for this destination */ }EgtpDstCb; +typedef struct egtpParams +{ + SctpIpAddr localIp; + uint16_t localPort; + SctpIpAddr destIp; + uint16_t destPort; + uint32_t currTunnelId; + uint32_t minTunnelId; + uint32_t maxTunnelId; +}EgtpParams; + typedef struct egtpGlobalCb { EgtpParams egtpCfg; /* EGTP configuration */ diff --git a/src/cu_stub/cu_stub_sctp.c b/src/cu_stub/cu_stub_sctp.c index fc0fe3be1..aa8626ea6 100644 --- a/src/cu_stub/cu_stub_sctp.c +++ b/src/cu_stub/cu_stub_sctp.c @@ -19,12 +19,18 @@ /* This file contains all SCTP related functionality */ #include "common_def.h" +#include "OCTET_STRING.h" #include "cu_f1ap_msg_hdl.h" #include "cu_stub_sctp.h" #include "cu_stub_egtp.h" -#include "du_log.h" +#include "cu_stub.h" +#include "cm_inet.h" +#include "cm_tpt.h" + +#include "cm_inet.x" +#include "cm_tpt.x" + -CuSctpDestCb f1Params; /************************************************************************** * @brief Task Initiation callback function. * @@ -45,15 +51,12 @@ CuSctpDestCb f1Params; * @return ROK - success * RFAILED - failure ***************************************************************************/ -S16 sctpActvInit() +uint8_t sctpActvInit() { DU_LOG("\n\nDEBUG --> SCTP : Initializing"); - connUp = FALSE; - assocId = 0; - nonblocking = FALSE; - sctpCfg = cuCfgParams.sctpParams; + memset(&sctpCb, 0, sizeof(SctpGlobalCb)); + sctpCb.sctpCfg = cuCb.cuCfgParams.sctpParams; return ROK; - } /************************************************************************** @@ -75,7 +78,7 @@ S16 sctpActvInit() * RFAILED - failure * ***************************************************************************/ -S16 sctpActvTsk(Pst *pst, Buffer *mBuf) +uint8_t sctpActvTsk(Pst *pst, Buffer *mBuf) { //TODO: TBD @@ -97,17 +100,21 @@ S16 sctpActvTsk(Pst *pst, Buffer *mBuf) * ***************************************************************************/ -S16 sctpCfgReq() +uint8_t sctpCfgReq() { - -/* Fill F1 Params */ - f1Params.destPort = sctpCfg.duPort; - f1Params.srcPort = sctpCfg.cuPort; - f1Params.bReadFdSet = ROK; - memset(&f1Params.sockFd, -1, sizeof(CmInetFd)); - memset(&f1Params.lstnSockFd, -1, sizeof(CmInetFd)); - fillDestNetAddr(&f1Params.destIpNetAddr, &sctpCfg.duIpAddr); - + int destIdx; + + for(destIdx=0; destIdx < sctpCb.sctpCfg.numDu; destIdx++) + { + sctpCb.destCb[destIdx].destPort = sctpCb.sctpCfg.sctpAssoc[destIdx].duPort; + sctpCb.destCb[destIdx].srcPort = sctpCb.sctpCfg.sctpAssoc[destIdx].cuPort; + sctpCb.destCb[destIdx].bReadFdSet = ROK; + memset(&sctpCb.destCb[destIdx].sockFd, -1, sizeof(CmInetFd)); + memset(&sctpCb.destCb[destIdx].lstnSockFd, -1, sizeof(CmInetFd)); + fillDestNetAddr(&sctpCb.destCb[destIdx].destIpNetAddr, &sctpCb.sctpCfg.sctpAssoc[destIdx].duIpAddr); + fillAddrLst(&sctpCb.destCb[destIdx].localAddrLst, &sctpCb.sctpCfg.sctpAssoc[destIdx].cuIpAddr); + } + sctpCb.numDu = sctpCb.sctpCfg.numDu; return ROK; } @@ -130,12 +137,11 @@ S16 sctpCfgReq() * ******************************************************************/ -S16 fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr) +uint8_t fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr) { + addrLstPtr->addrs[addrLstPtr->count].type = CM_INET_IPV4ADDR_TYPE; + addrLstPtr->addrs[addrLstPtr->count].u.ipv4NetAddr = CM_INET_NTOH_UINT32(ipAddr->ipV4Addr); addrLstPtr->count++; - addrLstPtr->addrs[(addrLstPtr->count - 1)].type = CM_INET_IPV4ADDR_TYPE; - addrLstPtr->addrs[(addrLstPtr->count - 1)].u.ipv4NetAddr = CM_INET_NTOH_UINT32(ipAddr->ipV4Addr); - return ROK; } @@ -156,7 +162,7 @@ S16 fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr) * RFAILED - failure * *******************************************************************************/ -S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr) +uint8_t fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr) { /* Filling destination address */ destAddrPtr->type = CM_INET_IPV4ADDR_TYPE; @@ -181,25 +187,30 @@ S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr) * *******************************************************************************/ -S16 sctpStartReq() +uint8_t sctpStartReq() { - S16 ret = ROK; - socket_type = CM_INET_STREAM; - fillAddrLst(&f1Params.localAddrLst, &sctpCfg.cuIpAddr); + uint8_t destIdx; + uint8_t ret = ROK; - if((ret = cmInetSocket(socket_type, &f1Params.lstnSockFd, IPPROTO_SCTP) != ROK)) - { - DU_LOG("\nERROR --> SCTP : Socket[%d] coudnt open for listening", f1Params.lstnSockFd.fd); - } - else if((ret = cmInetSctpBindx(&f1Params.lstnSockFd, &f1Params.localAddrLst, f1Params.srcPort)) != ROK) - { - DU_LOG("\nERROR --> SCTP: Binding failed at CU"); - } - else if((ret = sctpAccept(&f1Params.lstnSockFd, &f1Params.peerAddr, &f1Params.sockFd)) != ROK) + socket_type = CM_INET_STREAM; + for(destIdx=0; destIdx < sctpCb.numDu; destIdx++) { - DU_LOG("\nERROR --> SCTP: Unable to accept the connection at CU"); + if((ret = cmInetSocket(socket_type, &sctpCb.destCb[destIdx].lstnSockFd, IPPROTO_SCTP) != ROK)) + { + DU_LOG("\nERROR --> SCTP : Socket[%d] coudnt open for listening", sctpCb.destCb[destIdx].lstnSockFd.fd); + } + else if((ret = cmInetSctpBindx(&sctpCb.destCb[destIdx].lstnSockFd, &sctpCb.destCb[destIdx].localAddrLst, \ + sctpCb.destCb[destIdx].srcPort)) != ROK) + { + DU_LOG("\nERROR --> SCTP: Binding failed at CU"); + } + else if((ret = sctpAccept(&sctpCb.destCb[destIdx])) != ROK) + { + DU_LOG("\nERROR --> SCTP: Unable to accept the connection at CU"); + } } - else if(sctpSockPoll() != ROK) + + if(sctpSockPoll() != ROK) { DU_LOG("\nERROR --> SCTP: Polling failed to start at CU"); } @@ -221,7 +232,7 @@ S16 sctpStartReq() * RFAILED - failure * * ****************************************************************/ -S16 sctpSetSockOpts(CmInetFd *sock_Fd) +uint8_t sctpSetSockOpts(CmInetFd *sock_Fd) { S16 ret = ROK; CmSctpEvent sctpEvent; @@ -260,23 +271,23 @@ S16 sctpSetSockOpts(CmInetFd *sock_Fd) * RFAILED - failure * * ****************************************************************/ -S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd) +uint8_t sctpAccept(CuSctpDestCb *destCb) { uint8_t ret; - ret = cmInetListen(lstnSock_Fd, 1); + ret = cmInetListen(&destCb->lstnSockFd, 1); if (ret != ROK) { DU_LOG("\nERROR --> SCTP : Listening on socket failed"); - cmInetClose(lstnSock_Fd); + cmInetClose(&destCb->lstnSockFd); return RFAILED; } DU_LOG("\nINFO --> SCTP : Connecting"); - while(!connUp) + while(!destCb->connUp) { - ret = cmInetAccept(lstnSock_Fd, peerAddr, sock_Fd); + ret = cmInetAccept(&destCb->lstnSockFd, &destCb->peerAddr, &destCb->sockFd); if (ret == ROKDNA) { continue; @@ -288,8 +299,8 @@ S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd) } else { - connUp = TRUE; - sctpSetSockOpts(sock_Fd); + destCb->connUp = TRUE; + sctpSetSockOpts(&destCb->sockFd); break; } } @@ -315,7 +326,7 @@ S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd) * RFAILED - failure * * ****************************************************************/ -S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) +uint8_t sctpNtfyHdlr(CuSctpDestCb *destCb, CmInetSctpNotification *ntfy) { switch(ntfy->header.nType) { @@ -325,23 +336,23 @@ S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) { case CM_INET_SCTP_COMM_UP: DU_LOG("DEBUG --> Event : COMMUNICATION UP"); - connUp = TRUE; + destCb->connUp = TRUE; break; case CM_INET_SCTP_COMM_LOST: DU_LOG("DEBUG --> Event : COMMUNICATION LOST"); - connUp = FALSE; + destCb->connUp = FALSE; break; case CM_INET_SCTP_RESTART: DU_LOG("DEBUG --> Event : SCTP RESTART"); - connUp = FALSE; + destCb->connUp = FALSE; break; case CM_INET_SCTP_SHUTDOWN_COMP: /* association gracefully shutdown */ DU_LOG("DEBUG --> Event : SHUTDOWN COMPLETE"); - connUp = FALSE; + destCb->connUp = FALSE; break; case CM_INET_SCTP_CANT_STR_ASSOC: DU_LOG("DEBUG --> Event : CANT START ASSOC"); - connUp = FALSE; + destCb->connUp = FALSE; break; default: DU_LOG("\nERROR --> Invalid event"); @@ -360,7 +371,7 @@ S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) break; case CM_INET_SCTP_SHUTDOWN_EVENT : /* peer socket gracefully closed */ DU_LOG("\nINFO --> SCTP : Shutdown Event notification received\n"); - connUp = FALSE; + destCb->connUp = FALSE; exit(0); break; case CM_INET_SCTP_ADAPTATION_INDICATION : @@ -394,8 +405,9 @@ S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) * RFAILED - failure * * ****************************************************************/ -S16 sctpSockPoll() +uint8_t sctpSockPoll() { + uint8_t destIdx; uint16_t ret = ROK; uint32_t timeout; uint32_t *timeoutPtr; @@ -411,17 +423,9 @@ S16 sctpSockPoll() egtpFromAddr.port = egtpCb.dstCb.dstPort; egtpFromAddr.address = egtpCb.dstCb.dstIp; - if(f1Params.sockFd.blocking) - { - /* blocking */ - timeoutPtr = NULLP; - } - else - { - /* non-blocking */ - timeout = 0; - timeoutPtr = &timeout; - } + /* All sockets are non-blocking */ + timeout = 0; + timeoutPtr = &timeout; memInfo.region = CU_APP_MEM_REG; memInfo.pool = CU_POOL; @@ -429,9 +433,13 @@ S16 sctpSockPoll() while(1) { - if((ret = processPolling(&f1PollParams, &f1Params.sockFd, timeoutPtr, &memInfo)) != ROK) + /* Receiving SCTP data */ + for(destIdx = 0; destIdx < sctpCb.numDu; destIdx++) { - DU_LOG("\nERROR --> SCTP : Failed to RecvMsg for F1 at CU\n"); + if((ret = processPolling(&f1PollParams, &sctpCb.destCb[destIdx], timeoutPtr, &memInfo)) != ROK) + { + DU_LOG("\nERROR --> SCTP : Failed to RecvMsg for F1 at CU\n"); + } } /* Receiving EGTP data */ @@ -472,32 +480,33 @@ S16 sctpSockPoll() * * ****************************************************************/ -S16 processPolling(sctpSockPollParams *pollParams, CmInetFd *sockFd, uint32_t *timeoutPtr, CmInetMemInfo *memInfo) +uint8_t processPolling(sctpSockPollParams *pollParams, CuSctpDestCb *destCb, uint32_t *timeoutPtr, CmInetMemInfo *memInfo) { uint16_t ret = ROK; - CM_INET_FD_SET(sockFd, &pollParams->readFd); + CM_INET_FD_SET(&destCb->sockFd, &pollParams->readFd); ret = cmInetSelect(&pollParams->readFd, NULLP, timeoutPtr, &pollParams->numFd); - if(CM_INET_FD_ISSET(sockFd, &pollParams->readFd)) + if(CM_INET_FD_ISSET(&destCb->sockFd, &pollParams->readFd)) { - CM_INET_FD_CLR(sockFd, &pollParams->readFd); - ret = cmInetSctpRecvMsg(sockFd, &pollParams->addr, &pollParams->port, memInfo, &pollParams->mBuf, &pollParams->bufLen, &pollParams->info, &pollParams->flag, &pollParams->ntfy); - if(connUp & (ret != ROK)) + CM_INET_FD_CLR(&destCb->sockFd, &pollParams->readFd); + ret = cmInetSctpRecvMsg(&destCb->sockFd, &pollParams->addr, &pollParams->port, memInfo, &pollParams->mBuf, \ + &pollParams->bufLen, &pollParams->info, &pollParams->flag, &pollParams->ntfy); + if(destCb->connUp & (ret != ROK)) { - f1Params.bReadFdSet = RFAILED; + destCb->bReadFdSet = RFAILED; } else { if(((pollParams->flag & CM_INET_SCTP_MSG_NOTIFICATION) != 0) && (ret == ROK)) { - ret = sctpNtfyHdlr(&pollParams->ntfy); + ret = sctpNtfyHdlr(destCb, &pollParams->ntfy); if(ret != ROK) { DU_LOG("\nERROR --> SCTP : Failed to process sctp notify msg\n"); } } - else if(connUp & (pollParams->port == f1Params.destPort)) + else if(destCb->connUp & (pollParams->port == destCb->destPort)) { - F1APMsgHdlr(pollParams->mBuf); + F1APMsgHdlr(&destCb->duId, pollParams->mBuf); ODU_PUT_MSG_BUF(pollParams->mBuf); } else @@ -525,9 +534,9 @@ S16 processPolling(sctpSockPollParams *pollParams, CmInetFd *sockFd, uint32_t *t * RFAILED - failure * * ****************************************************************/ -S16 sctpSend(Buffer *mBuf) +uint8_t sctpSend(uint32_t duId, Buffer *mBuf) { - uint8_t ret = ROK; + uint8_t ret = ROK, destIdx = 0; MsgLen len = 0; /* number of actually sent octets */ CmInetMemInfo memInfo; @@ -535,15 +544,23 @@ S16 sctpSend(Buffer *mBuf) memInfo.region = CU_APP_MEM_REG; memInfo.pool = CU_POOL; - ret = cmInetSctpSendMsg(&f1Params.sockFd, &f1Params.destIpNetAddr, f1Params.destPort, &memInfo, mBuf, &len, 0, FALSE, 0, 0/*SCT_PROTID_NONE*/, RWOULDBLOCK); - - if(ret != ROK && ret != RWOULDBLOCK) + for(destIdx=0; destIdx < sctpCb.numDu; destIdx++) { - DU_LOG("\nERROR --> SCTP : Send message failed"); - return RFAILED; - } + if(sctpCb.destCb[destIdx].duId == duId) + { + ret = cmInetSctpSendMsg(&sctpCb.destCb[destIdx].sockFd, &sctpCb.destCb[destIdx].destIpNetAddr, \ + sctpCb.destCb[destIdx].destPort, &memInfo, mBuf, &len, 0, FALSE, 0, 0/*SCT_PROTID_NONE*/, RWOULDBLOCK); - return ROK; + if(ret != ROK && ret != RWOULDBLOCK) + { + DU_LOG("\nERROR --> SCTP : Send message failed"); + return RFAILED; + } + return ROK; + } + } + DU_LOG("\nERROR --> SCTP : DU ID [%d] not found in SCTP DestCb list. Failed to send message", duId); + return RFAILED; } /* End of sctpSend */ /********************************************************************** diff --git a/src/cu_stub/cu_stub_sctp.h b/src/cu_stub/cu_stub_sctp.h index 8cb745615..2c0a9b7b1 100644 --- a/src/cu_stub/cu_stub_sctp.h +++ b/src/cu_stub/cu_stub_sctp.h @@ -21,22 +21,12 @@ #ifndef __CU_SCTP_H__ #define __CU_SCTP_H__ -#include "cu_stub.h" -#include "cm_inet.h" -#include "cm_tpt.h" - -#include "cm_inet.x" -#include "cm_tpt.x" - #define MAX_RETRY 5 +#define MAX_IPV6_LEN 16 +#define MAX_DU_SUPPORTED 1 /* Global variable declaration */ uint8_t socket_type; /* Socket type */ -Bool nonblocking; /* Blocking/Non-blocking socket */ -Bool connUp; /* Is connection up */ -int assocId; /* Assoc Id of connected assoc */ - -CuSctpParams sctpCfg; /* SCTP configurations at DU */ typedef struct { @@ -53,6 +43,7 @@ typedef struct typedef struct { + uint32_t duId; uint16_t destPort; /* DU PORTS */ uint16_t srcPort; Bool bReadFdSet; @@ -62,19 +53,51 @@ typedef struct CmInetNetAddrLst destAddrLst; /* DU Ip address */ CmInetNetAddrLst localAddrLst; CmInetNetAddr destIpNetAddr; /* DU Ip address */ + Bool connUp; /* Is connection up */ }CuSctpDestCb; -S16 sctpActvInit(); -S16 sctpStartReq(); -S16 sctpSend(Buffer *mBuf); -S16 sctpCfgReq(); +typedef struct ipAddr +{ + Bool ipV4Pres; + uint32_t ipV4Addr; + Bool ipV6Pres; + uint8_t ipV6Addr[MAX_IPV6_LEN]; +}SctpIpAddr; + +typedef struct sctpAssocInfo +{ + SctpIpAddr duIpAddr; + uint16_t duPort; + SctpIpAddr cuIpAddr; + uint16_t cuPort; +}SctpAssocInfo; + +typedef struct CuSctpParams +{ + uint8_t numDu; + SctpAssocInfo sctpAssoc[MAX_DU_SUPPORTED]; +}CuSctpParams; + +typedef struct +{ + CuSctpParams sctpCfg; + uint8_t numDu; + CuSctpDestCb destCb[MAX_DU_SUPPORTED]; +}SctpGlobalCb; + +SctpGlobalCb sctpCb; + +uint8_t sctpActvInit(); +uint8_t sctpStartReq(); +uint8_t sctpSend(uint32_t duId, Buffer *mBuf); +uint8_t sctpCfgReq(); -S16 fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr); -S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr); -S16 sctpSetSockOpts(CmInetFd *sock_Fd); -S16 sctpSockPoll(); -S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd); -S16 processPolling(sctpSockPollParams *pollParams, CmInetFd *sockFd, uint32_t *timeoutPtr, CmInetMemInfo *memInfo); +uint8_t fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr); +uint8_t fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr); +uint8_t sctpSetSockOpts(CmInetFd *sock_Fd); +uint8_t sctpSockPoll(); +uint8_t sctpAccept(CuSctpDestCb *destCb); +uint8_t processPolling(sctpSockPollParams *pollParams, CuSctpDestCb *destCb, uint32_t *timeoutPtr, CmInetMemInfo *memInfo); #endif /********************************************************************** diff --git a/src/du_app/du_cfg.h b/src/du_app/du_cfg.h index 5fbbd325a..6701eb932 100644 --- a/src/du_app/du_cfg.h +++ b/src/du_app/du_cfg.h @@ -64,6 +64,7 @@ #define NR_BANDWIDTH BANDWIDTH_20MHZ #endif +#define TRANS_ID 1 #define DU_TAC 1 #define PLMN_MCC0 3 #define PLMN_MCC1 1 @@ -1264,6 +1265,14 @@ typedef struct duCfgParams CopyOfRecvdSliceCfg tempSliceCfg; }DuCfgParams; +typedef struct f1SetupMsg +{ + uint8_t f1MsgReqBufSize; + char *f1MsgReqBuf; + uint8_t f1MsgRspBufSize; + char *f1MsgRspBuf; +}F1SetupMsg; + DuCfgParams duCfgParam; /*function declarations */ diff --git a/src/du_app/du_e2ap_msg_hdl.c b/src/du_app/du_e2ap_msg_hdl.c index 57a89f900..d96483321 100644 --- a/src/du_app/du_e2ap_msg_hdl.c +++ b/src/du_app/du_e2ap_msg_hdl.c @@ -34,9 +34,9 @@ #include "E2AP-PDU.h" #include "du_e2ap_msg_hdl.h" #include "odu_common_codec.h" +#include "E2nodeComponentInterfaceF1.h" +#include "E2setupRequest.h" -/* Global variable */ -DuCfgParams duCfgParam; /******************************************************************* * * @brief Builds Global gNodeB Params @@ -93,6 +93,109 @@ uint8_t BuildGlobalgNBId(GlobalE2node_gNB_ID_t *gNbId) return ret; } +/******************************************************************* + * + * @brief Builds E2 node config addition list + * + * @details + * + * Function : BuildE2NodeConfigAddList + * + * Functionality: Building E2 node config addition list + * + * @params[in] E2nodeComponentConfigAddition_List_t *e2NodeAddList + * @return ROK - success + * RFAILED - failure + * + ******************************************************************/ + +uint8_t BuildE2NodeConfigAddList(E2nodeComponentConfigAddition_List_t *e2NodeAddList) +{ + uint8_t arrIdx = 0; + E2nodeComponentConfigAddition_ItemIEs_t *e2NodeAddItemIe; + E2nodeComponentConfigAddition_Item_t *e2NodeAddItem; + + e2NodeAddList->list.count = 1; + e2NodeAddList->list.size = e2NodeAddList->list.count * sizeof(E2nodeComponentConfigAddition_ItemIEs_t *); + DU_ALLOC(e2NodeAddList->list.array, e2NodeAddList->list.size); + if(e2NodeAddList->list.array == NULLP) + { + DU_LOG("\nERROR --> E2AP: Memory allocation failed for BuildE2NodeConfigAddList %d",__LINE__); + return RFAILED; + } + + for(arrIdx = 0; arrIdx< e2NodeAddList->list.count; arrIdx++) + { + DU_ALLOC(e2NodeAddList->list.array[arrIdx], sizeof(E2nodeComponentConfigAddition_ItemIEs_t)); + if(e2NodeAddList->list.array[arrIdx] == NULLP) + { + DU_LOG("\nERROR --> E2AP: Memory allocation failed for BuildE2NodeConfigAddList %d",__LINE__); + return RFAILED; + } + } + + arrIdx = 0; + e2NodeAddItemIe = (E2nodeComponentConfigAddition_ItemIEs_t *) e2NodeAddList->list.array[arrIdx]; + e2NodeAddItemIe->id = ProtocolIE_IDE2_id_E2nodeComponentConfigAddition_Item; + e2NodeAddItemIe->criticality = CriticalityE2_reject; + e2NodeAddItemIe->value.present = E2nodeComponentConfigAddition_ItemIEs__value_PR_E2nodeComponentConfigAddition_Item; + e2NodeAddItem = &e2NodeAddItemIe->value.choice.E2nodeComponentConfigAddition_Item; + + /* E2nodeComponentInterfaceType */ + e2NodeAddItem->e2nodeComponentInterfaceType = E2nodeComponentInterfaceType_f1; + + /* E2 Node Component Request Part */ + e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentRequestPart.size = duCb.f1SetupReqAndRspMsg.f1MsgReqBufSize; + DU_ALLOC(e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentRequestPart.buf,\ + e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentRequestPart.size); + if(e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentRequestPart.buf == NULLP) + { + DU_LOG("\nERROR --> E2AP: Memory allocation failed for BuildE2NodeConfigAddList %d",__LINE__); + return RFAILED; + } + + memcpy(e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentRequestPart.buf,\ + duCb.f1SetupReqAndRspMsg.f1MsgReqBuf, e2NodeAddItem->e2nodeComponentConfiguration.\ + e2nodeComponentRequestPart.size); + DU_FREE(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf,duCb.f1SetupReqAndRspMsg.f1MsgReqBufSize); + + /* E2 Node Component Response Part */ + e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentResponsePart.size = duCb.f1SetupReqAndRspMsg.f1MsgRspBufSize; + DU_ALLOC(e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentResponsePart.buf, \ + e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentResponsePart.size); + if(e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentResponsePart.buf == NULLP) + { + DU_LOG("\nERROR --> E2AP: Memory allocation failed for BuildE2NodeConfigAddList %d",__LINE__); + return RFAILED; + } + memcpy(e2NodeAddItem->e2nodeComponentConfiguration.e2nodeComponentResponsePart.buf, \ + duCb.f1SetupReqAndRspMsg.f1MsgRspBuf, e2NodeAddItem->e2nodeComponentConfiguration.\ + e2nodeComponentResponsePart.size); + DU_FREE(duCb.f1SetupReqAndRspMsg.f1MsgRspBuf, duCb.f1SetupReqAndRspMsg.f1MsgRspBufSize); + + /* E2 Node Component ID */ + e2NodeAddItem->e2nodeComponentID.present = E2nodeComponentID_PR_e2nodeComponentInterfaceTypeF1; + DU_ALLOC(e2NodeAddItem->e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1,\ + sizeof(E2nodeComponentInterfaceF1_t)); + if(e2NodeAddItem->e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1 == NULLP) + { + DU_LOG("\nERROR --> E2AP: Memory allocation failed for BuildE2NodeConfigAddList %d",__LINE__); + return RFAILED; + } + e2NodeAddItem->e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.size = sizeof(uint8_t); + DU_ALLOC(e2NodeAddItem->e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf,\ + e2NodeAddItem->e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.size); + + if(e2NodeAddItem->e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf == NULLP) + { + DU_LOG("\nERROR -->list. E2AP: Memory allocation failed for BuildE2NodeConfigAddList %d",__LINE__); + return RFAILED; + } + e2NodeAddItem->e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf[arrIdx] = duCfgParam.duId; + return ROK; + +} + /******************************************************************* * * @brief Fills the initiating IE for E2 Setup Request @@ -114,75 +217,196 @@ uint8_t BuildGlobalgNBId(GlobalE2node_gNB_ID_t *gNbId) uint8_t fillE2SetupReq(E2setupRequest_t **e2SetupReq, uint8_t *idx) { uint8_t elementCnt = 0; - uint8_t idx2 = 0; + uint8_t arrIdx = 0; uint8_t ret = ROK; if(*e2SetupReq != NULLP) { - elementCnt = 1; + elementCnt = 3; (*e2SetupReq)->protocolIEs.list.count = elementCnt; - (*e2SetupReq)->protocolIEs.list.size = \ - elementCnt * sizeof(E2setupRequestIEs_t); + (*e2SetupReq)->protocolIEs.list.size = elementCnt * sizeof(E2setupRequestIEs_t*); /* Initialize the E2Setup members */ DU_ALLOC((*e2SetupReq)->protocolIEs.list.array, \ - (*e2SetupReq)->protocolIEs.list.size); + (*e2SetupReq)->protocolIEs.list.size); if((*e2SetupReq)->protocolIEs.list.array == NULLP) { - DU_LOG("\nERROR --> E2AP : Memory allocation failed for array elements"); - ret = RFAILED; + DU_LOG("\nERROR --> E2AP : Memory allocation failed for array elements"); + return RFAILED; + } + for(*idx = 0; *idx < elementCnt; (*idx)++) + { + DU_ALLOC((*e2SetupReq)->protocolIEs.list.array[*idx],\ + sizeof(E2setupRequestIEs_t)); + if((*e2SetupReq)->protocolIEs.list.array[*idx] == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation failed for arrayidx [%d]", *idx); + return RFAILED; + } + } + arrIdx = 0; + + /* TransactionID */ + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->id = ProtocolIE_IDE2_id_TransactionID; + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->criticality = CriticalityE2_reject; + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.present = E2setupRequestIEs__value_PR_TransactionID; + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.choice.TransactionID = TRANS_ID; + + arrIdx++; + /* GlobalE2node_gNB_ID */ + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->id = ProtocolIE_IDE2_id_GlobalE2node_ID; + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->criticality = CriticalityE2_reject; + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.present = E2setupRequestIEs__value_PR_GlobalE2node_ID; + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.choice.GlobalE2node_ID.present = GlobalE2node_ID_PR_gNB; + + DU_ALLOC((*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.choice.\ + GlobalE2node_ID.choice.gNB, sizeof(GlobalE2node_gNB_ID_t)); + if((*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.choice.\ + GlobalE2node_ID.choice.gNB == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation failed for gNbId"); + return RFAILED; } else { - for(*idx = 0; *idx < elementCnt; (*idx)++) - { - DU_ALLOC((*e2SetupReq)->protocolIEs.list.array[*idx],\ - sizeof(E2setupRequestIEs_t)); - if((*e2SetupReq)->protocolIEs.list.array[*idx] == NULLP) - { - DU_LOG("\nERROR --> E2AP : Memory allocation failed for arrayidx [%d]", *idx); - ret = RFAILED; - } - else - { - /* GlobalE2node_gNB_ID */ - (*e2SetupReq)->protocolIEs.list.array[idx2]->id = \ - ProtocolIE_IDE2_id_GlobalE2node_ID; - (*e2SetupReq)->protocolIEs.list.array[idx2]->criticality = \ - CriticalityE2_reject; - (*e2SetupReq)->protocolIEs.list.array[idx2]->value.present =\ - E2setupRequestIEs__value_PR_GlobalE2node_ID; - (*e2SetupReq)->protocolIEs.list.array[idx2]->value.choice.\ - GlobalE2node_ID.present = GlobalE2node_ID_PR_gNB; - - DU_ALLOC((*e2SetupReq)->protocolIEs.list.array[idx2]->value.choice.\ - GlobalE2node_ID.choice.gNB, sizeof(GlobalE2node_gNB_ID_t)); - if((*e2SetupReq)->protocolIEs.list.array[idx2]->value.choice.\ - GlobalE2node_ID.choice.gNB == NULLP) - { - DU_LOG("\nERROR --> E2AP : Memory allocation failed for gNbId"); - ret = RFAILED; - } - else - { - ret = BuildGlobalgNBId((*e2SetupReq)->protocolIEs.list.array[idx2]->value.\ - choice.GlobalE2node_ID.choice.gNB); - if(ret != ROK) - { - ret = RFAILED; - } - } - - } - } + ret = BuildGlobalgNBId((*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.\ + choice.GlobalE2node_ID.choice.gNB); + if(ret != ROK) + { + DU_LOG("\nERROR --> E2AP : Failed to build Global Gnb Id"); + return RFAILED; + } + } + + arrIdx++; + /* E2 Node Component Configuration Addition List */ + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->id = ProtocolIE_IDE2_id_E2nodeComponentConfigAddition; + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->criticality = CriticalityE2_reject; + (*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.present = E2setupRequestIEs__value_PR_E2nodeComponentConfigAddition_List; + if(BuildE2NodeConfigAddList(&((*e2SetupReq)->protocolIEs.list.array[arrIdx]->value.choice.E2nodeComponentConfigAddition_List))!=ROK) + { + DU_LOG("\nERROR --> E2AP : Failed to E2 Node config addition list"); + return RFAILED; } + } else { - ret = RFAILED; DU_LOG("\nERROR --> E2AP : received e2SetupReq is NULL"); + return RFAILED; + } + return ROK; +} + + +/******************************************************************* + * + * @brief De Allocate E2 Setup Request Message + * + * @details + * + * Function : FreeE2SetupReq + * + * Functionality: De-Allocating E2 Setup request Message + * + * @params[in] E2AP_PDU_t *e2apMsg + + * @return void + * + * ****************************************************************/ + +void FreeE2SetupReq(E2AP_PDU_t *e2apMsg) +{ + uint8_t arrIdx = 0; + uint8_t e2NodeAddListIdx =0; + E2setupRequest_t *e2SetupReq; + E2nodeComponentConfigAddition_List_t *e2NodeAddList; + E2nodeComponentConfigAddition_ItemIEs_t *e2NodeAddItem; + + /* De-allocating Memory */ + if(e2apMsg != NULLP) + { + if(e2apMsg->choice.initiatingMessage != NULLP) + { + e2SetupReq = &e2apMsg->choice.initiatingMessage->value.choice.E2setupRequest; + if(e2SetupReq->protocolIEs.list.array != NULLP) + { + for(arrIdx = 0; arrIdx < e2SetupReq->protocolIEs.list.count; arrIdx++) + { + if(e2SetupReq->protocolIEs.list.array[arrIdx] != NULLP) + { + switch(e2SetupReq->protocolIEs.list.array[arrIdx]->id) + { + case ProtocolIE_IDE2_id_TransactionID: + break; + case ProtocolIE_IDE2_id_GlobalE2node_ID: + { + if(e2SetupReq->protocolIEs.list.array[arrIdx]->\ + value.choice.GlobalE2node_ID.choice.gNB != NULLP) + { + GlobalE2node_gNB_ID_t *gNbId = NULLP; + gNbId = e2SetupReq->protocolIEs.list.array[arrIdx]->\ + value.choice.GlobalE2node_ID.choice.gNB; + if(gNbId->global_gNB_ID.plmn_id.buf != NULLP) + { + DU_FREE(gNbId->global_gNB_ID.gnb_id.choice.gnb_ID.buf,\ + gNbId->global_gNB_ID.gnb_id.choice.gnb_ID.size); + DU_FREE(gNbId->global_gNB_ID.plmn_id.buf,\ + gNbId->global_gNB_ID.plmn_id.size); + } + DU_FREE(e2SetupReq->protocolIEs.list.array[arrIdx]->value.\ + choice.GlobalE2node_ID.choice.gNB, sizeof(GlobalE2node_gNB_ID_t)); + } + break; + } + case ProtocolIE_IDE2_id_E2nodeComponentConfigAddition: + { + e2NodeAddList = &e2SetupReq->protocolIEs.list.array[arrIdx]->value.choice.E2nodeComponentConfigAddition_List; + if(e2NodeAddList->list.array) + { + for(e2NodeAddListIdx = 0; e2NodeAddListIdx< e2NodeAddList->list.count; e2NodeAddListIdx++) + { + e2NodeAddItem = (E2nodeComponentConfigAddition_ItemIEs_t *) e2NodeAddList->list.array[e2NodeAddListIdx]; + + /* Free E2 Node Component Request Part */ + DU_FREE(e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentConfiguration.e2nodeComponentRequestPart.buf,\ + e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentConfiguration.e2nodeComponentRequestPart.size); + + /* Free E2 Node Component Response Part */ + DU_FREE(e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentConfiguration.\ + e2nodeComponentResponsePart.buf, \ + e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentConfiguration.e2nodeComponentResponsePart.size); + + /* Free E2 Node Component ID */ + if(e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1) + { + DU_FREE(e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.\ + e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf,\ + e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.\ + e2nodeComponentInterfaceTypeF1->gNB_DU_ID.size); + DU_FREE(e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1,\ + sizeof(E2nodeComponentInterfaceF1_t)); + } + DU_FREE(e2NodeAddList->list.array[e2NodeAddListIdx], sizeof(E2nodeComponentConfigAddition_ItemIEs_t)); + } + DU_FREE(e2NodeAddList->list.array, e2NodeAddList->list.size); + } + break; + } + default: + DU_LOG("\nERROR --> E2AP: Invalid event at e2SetupRequet %ld ",\ + (e2SetupReq->protocolIEs.list.array[arrIdx]->id)); + break; + } + DU_FREE(e2SetupReq->protocolIEs.list.array[arrIdx], sizeof(E2setupRequestIEs_t)); + } + } + DU_FREE(e2SetupReq->protocolIEs.list.array, e2SetupReq->protocolIEs.list.size); + } + DU_FREE(e2apMsg->choice.initiatingMessage, sizeof(InitiatingMessageE2_t)); + } + DU_FREE(e2apMsg, sizeof(E2AP_PDU_t)); } - return ret; } /******************************************************************* @@ -214,16 +438,16 @@ uint8_t BuildAndSendE2SetupReq() DU_ALLOC(e2apMsg, sizeof(E2AP_PDU_t)); if(e2apMsg == NULLP) { - DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); - break; + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); + break; } e2apMsg->present = E2AP_PDU_PR_initiatingMessage; DU_ALLOC(e2apMsg->choice.initiatingMessage, sizeof(InitiatingMessageE2_t)); if(e2apMsg->choice.initiatingMessage == NULLP) { - DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); - DU_FREE(e2apMsg, sizeof(E2AP_PDU_t)); - return RFAILED; + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); + DU_FREE(e2apMsg, sizeof(E2AP_PDU_t)); + return RFAILED; } e2apMsg->choice.initiatingMessage->criticality = CriticalityE2_reject; e2apMsg->choice.initiatingMessage->procedureCode = ProcedureCodeE2_id_E2setup; @@ -233,8 +457,8 @@ uint8_t BuildAndSendE2SetupReq() ret = fillE2SetupReq(&e2SetupReq, &idx); if(ret != ROK) { - DU_LOG("\nERROR --> E2AP : fillE2SetupReq() failed"); - break; + DU_LOG("\nERROR --> E2AP : fillE2SetupReq() failed"); + break; } /* Prints the Msg formed */ xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2apMsg); @@ -242,108 +466,33 @@ uint8_t BuildAndSendE2SetupReq() memset(encBuf, 0, ENC_BUF_MAX_LEN); encBufSize = 0; encRetVal = aper_encode(&asn_DEF_E2AP_PDU, 0, e2apMsg, PrepFinalEncBuf,\ - encBuf); + encBuf); if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG("\nERROR --> E2AP : Could not encode E2SetupRequest structure (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); - break; + DU_LOG("\nERROR --> E2AP : Could not encode E2SetupRequest structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; } else { - DU_LOG("\nDEBUG --> E2AP : Created APER encoded buffer for E2SetupRequest\n"); - for(int i=0; i< encBufSize; i++) - { - printf("%x",encBuf[i]); - } + DU_LOG("\nDEBUG --> E2AP : Created APER encoded buffer for E2SetupRequest\n"); + for(int i=0; i< encBufSize; i++) + { + printf("%x",encBuf[i]); + } } if(SendE2APMsg(DU_APP_MEM_REGION, DU_POOL) != ROK) { - DU_LOG("\nERROR --> E2AP : Sending E2 Setup request failed"); + DU_LOG("\nERROR --> E2AP : Sending E2 Setup request failed"); } break; }while(true); - deAllocateE2SetupReqMsg(e2apMsg, e2SetupReq, idx); + FreeE2SetupReq(e2apMsg); return ret; }/* End of BuildAndSendE2SetupReq */ -/******************************************************************* - * - * @brief De Allocate E2 Setup Request Message - * - * @details - * - * Function : deAllocateE2SetupReqMsg - * - * Functionality: De-Allocating E2 Setup request Message - * - * @params[in] E2AP_PDU_t *e2apMsg - * E2setupRequest_t *e2SetupReq - * @return ROK - success - * RFAILED - failure - * - * ****************************************************************/ - -uint8_t deAllocateE2SetupReqMsg(E2AP_PDU_t *e2apMsg, \ - E2setupRequest_t *e2SetupReq, uint8_t idx) -{ - uint8_t idx2; - uint8_t ret = ROK; - /* De-allocating Memory */ - if(e2apMsg != NULLP) - { - if(e2apMsg->choice.initiatingMessage != NULLP) - { - if(e2SetupReq->protocolIEs.list.array != NULLP) - { - for(idx2 = 0; idx2 < idx; idx2++) - { - if(e2SetupReq->protocolIEs.list.array[idx2] != NULLP) - { - switch(e2SetupReq->protocolIEs.list.array[idx2]->id) - { - case ProtocolIE_IDE2_id_GlobalE2node_ID: - { - if(e2SetupReq->protocolIEs.list.array[idx2]->\ - value.choice.GlobalE2node_ID.choice.gNB != NULLP) - { - GlobalE2node_gNB_ID_t *gNbId = NULLP; - gNbId = e2SetupReq->protocolIEs.list.array[idx2]->\ - value.choice.GlobalE2node_ID.choice.gNB; - if(gNbId->global_gNB_ID.plmn_id.buf != NULLP) - { - if(gNbId->global_gNB_ID.gnb_id.choice.gnb_ID.buf != NULLP) - { - DU_FREE(gNbId->global_gNB_ID.gnb_id.choice.gnb_ID.buf,\ - gNbId->global_gNB_ID.gnb_id.choice.gnb_ID.size); - } - DU_FREE(gNbId->global_gNB_ID.plmn_id.buf,\ - gNbId->global_gNB_ID.plmn_id.size); - } - DU_FREE(e2SetupReq->protocolIEs.list.array[idx2]->value.\ - choice.GlobalE2node_ID.choice.gNB, sizeof(GlobalE2node_gNB_ID_t)); - } - DU_FREE(e2SetupReq->protocolIEs.list.array[idx2],\ - sizeof(E2setupRequestIEs_t)); - break; - } - default: - DU_LOG("\nERROR --> E2AP: Invalid event at e2SetupRequet %ld ",\ - (e2SetupReq->protocolIEs.list.array[idx2]->id)); - break; - } - } - } - DU_FREE(e2SetupReq->protocolIEs.list.array, e2SetupReq->protocolIEs.list.size); - } - DU_FREE(e2apMsg->choice.initiatingMessage, sizeof(InitiatingMessageE2_t)); - } - DU_FREE(e2apMsg, sizeof(E2AP_PDU_t)); - } - return ret; -} /******************************************************************* * * @brief Builds Ric Request Id @@ -712,6 +861,77 @@ uint8_t BuildAndSendRicSubscriptionRsp() return ret; } + +/****************************************************************** + * + * @brief Deallocation of memory allocated bu aper decoder for e2 setup response + * + * @details + * + * Function : freeAperDecodingOfE2SetupRsp + * + * Functionality: Deallocation of memory allocated bu aper decoder for e2 + * setup response + * + * @params[in] E2setupResponse_t *e2SetRspMsg; + * @return void + * + * ****************************************************************/ +void freeAperDecodingOfE2SetupRsp(E2setupResponse_t *e2SetRspMsg) +{ + uint8_t arrIdx, e2NodeConfigAddAckListIdx; + E2nodeComponentConfigAdditionAck_ItemIEs_t *e2NodeAddAckItem; + E2nodeComponentConfigAdditionAck_List_t *e2NodeConfigAddAckList; + + if(e2SetRspMsg) + { + if(e2SetRspMsg->protocolIEs.list.array) + { + for(arrIdx=0; arrIdxprotocolIEs.list.count; arrIdx++) + { + if(e2SetRspMsg->protocolIEs.list.array[arrIdx]) + { + switch(e2SetRspMsg->protocolIEs.list.array[arrIdx]->id) + { + case ProtocolIE_IDE2_id_TransactionID: + break; + + case ProtocolIE_IDE2_id_GlobalRIC_ID: + { + free(e2SetRspMsg->protocolIEs.list.array[arrIdx]->value.choice.GlobalRIC_ID.pLMN_Identity.buf); + free(e2SetRspMsg->protocolIEs.list.array[arrIdx]->value.choice.GlobalRIC_ID.ric_ID.buf); + break; + } + + case ProtocolIE_IDE2_id_E2nodeComponentConfigAdditionAck: + { + e2NodeConfigAddAckList = &e2SetRspMsg->protocolIEs.list.array[arrIdx]->value.choice.E2nodeComponentConfigAdditionAck_List; + if(e2NodeConfigAddAckList->list.array ) + { + for(e2NodeConfigAddAckListIdx = 0; e2NodeConfigAddAckListIdx< e2NodeConfigAddAckList->list.count; e2NodeConfigAddAckListIdx++) + { + if(e2NodeConfigAddAckList->list.array[e2NodeConfigAddAckListIdx]) + { + e2NodeAddAckItem = (E2nodeComponentConfigAdditionAck_ItemIEs_t*) e2NodeConfigAddAckList->list.array[e2NodeConfigAddAckListIdx]; + free(e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.\ + e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf); + free(e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.\ + e2nodeComponentInterfaceTypeF1); + free(e2NodeConfigAddAckList->list.array[e2NodeConfigAddAckListIdx]); + } + } + free(e2NodeConfigAddAckList->list.array); + } + break; + } + } + free(e2SetRspMsg->protocolIEs.list.array[arrIdx]); + } + } + free(e2SetRspMsg->protocolIEs.list.array); + } + } +} /****************************************************************** * * @brief Processes E2 Setup Response sent by RIC @@ -729,7 +949,7 @@ uint8_t BuildAndSendRicSubscriptionRsp() * ****************************************************************/ uint8_t procE2SetupRsp(E2AP_PDU_t *e2apMsg) { - uint8_t idx; + uint8_t arrIdx =0; uint32_t recvBufLen; E2setupResponse_t *e2SetRspMsg; @@ -737,38 +957,41 @@ uint8_t procE2SetupRsp(E2AP_PDU_t *e2apMsg) duCb.e2Status = TRUE; //Set E2 status as true e2SetRspMsg = &e2apMsg->choice.successfulOutcome->value.choice.E2setupResponse; - for(idx=0; idxprotocolIEs.list.count; idx++) + for(arrIdx=0; arrIdxprotocolIEs.list.count; arrIdx++) { - switch(e2SetRspMsg->protocolIEs.list.array[idx]->id) + switch(e2SetRspMsg->protocolIEs.list.array[arrIdx]->id) { - case ProtocolIE_IDE2_id_GlobalRIC_ID: - { - /* To store the Ric Id Params */ - recvBufLen = sizeof(e2SetRspMsg->protocolIEs.list.array[idx]->value\ - .choice.GlobalRIC_ID.pLMN_Identity.size); - e2apMsgDb.plmn = NULLP; - DU_ALLOC(e2apMsgDb.plmn, recvBufLen); - if(e2apMsgDb.plmn) - { - memcpy(e2apMsgDb.plmn, e2SetRspMsg->protocolIEs.list.array[idx]\ - ->value.choice.GlobalRIC_ID.pLMN_Identity.buf, recvBufLen); - free(e2SetRspMsg->protocolIEs.list.array[idx]->value.choice.\ - GlobalRIC_ID.pLMN_Identity.buf); - } - bitStringToInt(&e2SetRspMsg->protocolIEs.list.array[idx]->value.choice.GlobalRIC_ID.ric_ID, &e2apMsgDb.ricId); - free(e2SetRspMsg->protocolIEs.list.array[idx]->value.choice.\ - GlobalRIC_ID.ric_ID.buf); - /*TODO : e2apMsgDb.plmn memory to be deallocated after the usage */ - break; - } - default: - DU_LOG("\nERROR --> E2AP : Invalid IE received in E2SetupRsp:%ld", - e2SetRspMsg->protocolIEs.list.array[idx]->id); - break; + case ProtocolIE_IDE2_id_TransactionID: + break; + + case ProtocolIE_IDE2_id_GlobalRIC_ID: + { + /* To store the Ric Id Params */ + recvBufLen = sizeof(e2SetRspMsg->protocolIEs.list.array[arrIdx]->value\ + .choice.GlobalRIC_ID.pLMN_Identity.size); + e2apMsgDb.plmn = NULLP; + DU_ALLOC(e2apMsgDb.plmn, recvBufLen); + if(e2apMsgDb.plmn) + { + memcpy(e2apMsgDb.plmn, e2SetRspMsg->protocolIEs.list.array[arrIdx]\ + ->value.choice.GlobalRIC_ID.pLMN_Identity.buf, recvBufLen); + } + bitStringToInt(&e2SetRspMsg->protocolIEs.list.array[arrIdx]->value.choice.GlobalRIC_ID.ric_ID, &e2apMsgDb.ricId); + /*TODO : e2apMsgDb.plmn memory to be deallocated after the usage */ + break; + } + + case ProtocolIE_IDE2_id_E2nodeComponentConfigAdditionAck: + break; + + default: + DU_LOG("\nERROR --> E2AP : Invalid IE received in E2SetupRsp:%ld", + e2SetRspMsg->protocolIEs.list.array[arrIdx]->id); + break; } - free(e2SetRspMsg->protocolIEs.list.array[idx]); } - free(e2SetRspMsg->protocolIEs.list.array); + freeAperDecodingOfE2SetupRsp(e2SetRspMsg); + BuildAndSendE2NodeConfigUpdate(); return ROK; } @@ -1213,6 +1436,158 @@ uint8_t SendE2APMsg(Region region, Pool pool) return ROK; } /* SendE2APMsg */ +/******************************************************************* + * + * @brief Deallocate the memory allocated for E2nodeConfigurationUpdate msg + * + * @details + * + * Function : FreeE2NodeConfigUpdate + * + * Functionality: + * - freeing the memory allocated for E2nodeConfigurationUpdate + * + * @params[in] E2AP_PDU_t *e2apMsg + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +void FreeE2NodeConfigUpdate(E2AP_PDU_t *e2apMsg) +{ + uint8_t arrIdx =0; + E2nodeConfigurationUpdate_t *e2NodeConfigUpdate; + + if(e2apMsg != NULLP) + { + if(e2apMsg->choice.initiatingMessage != NULLP) + { + e2NodeConfigUpdate = &e2apMsg->choice.initiatingMessage->value.choice.E2nodeConfigurationUpdate; + if(e2NodeConfigUpdate->protocolIEs.list.array != NULLP) + { + for(arrIdx = 0; arrIdx < e2NodeConfigUpdate->protocolIEs.list.count; arrIdx++) + { + DU_FREE(e2NodeConfigUpdate->protocolIEs.list.array[arrIdx], sizeof(E2nodeConfigurationUpdate_t)); + } + DU_FREE(e2NodeConfigUpdate->protocolIEs.list.array, e2NodeConfigUpdate->protocolIEs.list.size); + } + DU_FREE(e2apMsg->choice.initiatingMessage, sizeof(InitiatingMessageE2_t)); + } + DU_FREE(e2apMsg, sizeof(E2AP_PDU_t)); + } +} + +/******************************************************************* + * + * @brief Buld and send the E2 node config update msg + * + * @details + * + * Function : BuildAndSendE2NodeConfigUpdate + * + * Functionality: + * - Buld and send the E2 node config update msg + * + * @params[in] + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + +uint8_t BuildAndSendE2NodeConfigUpdate() +{ + uint8_t arrIdx = 0,elementCnt = 1; + uint8_t ret = ROK; + E2AP_PDU_t *e2apMsg = NULLP; + E2nodeConfigurationUpdate_t *e2NodeConfigUpdate = NULLP; + asn_enc_rval_t encRetVal; /* Encoder return value */ + + DU_LOG("\nINFO --> E2AP : Building E2 Node config update\n"); + do + { + DU_ALLOC(e2apMsg, sizeof(E2AP_PDU_t)); + if(e2apMsg == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); + break; + } + e2apMsg->present = E2AP_PDU_PR_initiatingMessage; + DU_ALLOC(e2apMsg->choice.initiatingMessage, sizeof(InitiatingMessageE2_t)); + if(e2apMsg->choice.initiatingMessage == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); + DU_FREE(e2apMsg, sizeof(E2AP_PDU_t)); + return RFAILED; + } + e2apMsg->choice.initiatingMessage->criticality = CriticalityE2_reject; + e2apMsg->choice.initiatingMessage->procedureCode = ProcedureCodeE2_id_E2nodeConfigurationUpdate; + e2apMsg->choice.initiatingMessage->value.present = \ + InitiatingMessageE2__value_PR_E2nodeConfigurationUpdate; + e2NodeConfigUpdate = &e2apMsg->choice.initiatingMessage->value.choice.E2nodeConfigurationUpdate; + + e2NodeConfigUpdate->protocolIEs.list.count = elementCnt; + e2NodeConfigUpdate->protocolIEs.list.size = elementCnt * sizeof(E2nodeConfigurationUpdate_IEs_t*); + /* Initialize the Ric Indication members */ + DU_ALLOC(e2NodeConfigUpdate->protocolIEs.list.array, \ + e2NodeConfigUpdate->protocolIEs.list.size); + if(e2NodeConfigUpdate->protocolIEs.list.array == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for e2NodeConfigUpdate failed"); + break; + } + + for(arrIdx =0; arrIdxprotocolIEs.list.array[arrIdx], sizeof(E2nodeConfigurationUpdate_IEs_t)); + if(e2NodeConfigUpdate->protocolIEs.list.array[arrIdx] == NULLP) + { + + DU_LOG("\nERROR --> E2AP : Memory allocation for e2NodeConfigUpdate failed"); + break; + } + } + + arrIdx = 0; + /* TransactionID */ + e2NodeConfigUpdate->protocolIEs.list.array[arrIdx]->id = ProtocolIE_IDE2_id_TransactionID; + e2NodeConfigUpdate->protocolIEs.list.array[arrIdx]->criticality = CriticalityE2_reject; + e2NodeConfigUpdate->protocolIEs.list.array[arrIdx]->value.present = E2nodeConfigurationUpdate_IEs__value_PR_TransactionID; + e2NodeConfigUpdate->protocolIEs.list.array[arrIdx]->value.choice.TransactionID = TRANS_ID; + + + /* Prints the Msg formed */ + xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2apMsg); + + memset(encBuf, 0, ENC_BUF_MAX_LEN); + encBufSize = 0; + encRetVal = aper_encode(&asn_DEF_E2AP_PDU, 0, e2apMsg, PrepFinalEncBuf,\ + encBuf); + if(encRetVal.encoded == ENCODE_FAIL) + { + DU_LOG("\nERROR --> E2AP : Could not encode E2nodeConfigurationUpdate structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; + } + else + { + DU_LOG("\nDEBUG --> E2AP : Created APER encoded buffer for E2nodeConfigurationUpdate\n"); + for(int i=0; i< encBufSize; i++) + { + printf("%x",encBuf[i]); + } + } + if(SendE2APMsg(DU_APP_MEM_REGION, DU_POOL) != ROK) + { + DU_LOG("\nERROR --> E2AP : Sending E2 node config update failed"); + return RFAILED; + } + + break; + }while(true); + + FreeE2NodeConfigUpdate(e2apMsg); + return ret; +} + /******************************************************************* * * @brief Handles received E2AP message and sends back response @@ -1282,50 +1657,55 @@ void E2APMsgHdlr(Buffer *mBuf) switch(e2apMsg->present) { case E2AP_PDU_PR_successfulOutcome: - { - switch(e2apMsg->choice.successfulOutcome->value.present) - { - case SuccessfulOutcomeE2__value_PR_E2setupResponse: - { - if(!duCb.e2Status) - { - DU_LOG("\nDEBUG --> E2AP : Store E2 setup response Params"); - procE2SetupRsp(e2apMsg); - } - break; - } - default: - { - DU_LOG("\nERROR --> E2AP : Invalid type of E2AP_PDU_PR_successfulOutcome [%d]",\ - e2apMsg->choice.successfulOutcome->value.present); - return; - } - }/* End of switch(successfulOutcome) */ - free(e2apMsg->choice.successfulOutcome); - break; - } + { + switch(e2apMsg->choice.successfulOutcome->value.present) + { + case SuccessfulOutcomeE2__value_PR_E2setupResponse: + { + if(!duCb.e2Status) + { + DU_LOG("\nDEBUG --> E2AP : Store E2 setup response Params"); + procE2SetupRsp(e2apMsg); + } + break; + } + case SuccessfulOutcomeE2__value_PR_E2nodeConfigurationUpdateAcknowledge: + { + DU_LOG("\nDEBUG --> E2AP : E2 node Config update ack message recevied"); + break; + } + default: + { + DU_LOG("\nERROR --> E2AP : Invalid type of E2AP_PDU_PR_successfulOutcome [%d]",\ + e2apMsg->choice.successfulOutcome->value.present); + return; + } + }/* End of switch(successfulOutcome) */ + free(e2apMsg->choice.successfulOutcome); + break; + } case E2AP_PDU_PR_initiatingMessage: - { - switch(e2apMsg->choice.initiatingMessage->value.present) - { - case InitiatingMessageE2__value_PR_RICsubscriptionRequest: - { - if(procRicSubsReq(e2apMsg) == ROK) - { - BuildAndSendRicIndication(); - } - break; - } - default: - { - DU_LOG("\nERROR --> E2AP : Invalid type of E2AP_PDU_PR_initiatingMessage [%d]",\ - e2apMsg->choice.initiatingMessage->value.present); - return; - } - }/* End of switch(initiatingMessage) */ - free(e2apMsg->choice.initiatingMessage); - break; - } + { + switch(e2apMsg->choice.initiatingMessage->value.present) + { + case InitiatingMessageE2__value_PR_RICsubscriptionRequest: + { + if(procRicSubsReq(e2apMsg) == ROK) + { + BuildAndSendRicIndication(); + } + break; + } + default: + { + DU_LOG("\nERROR --> E2AP : Invalid type of E2AP_PDU_PR_initiatingMessage [%d]",\ + e2apMsg->choice.initiatingMessage->value.present); + return; + } + }/* End of switch(initiatingMessage) */ + free(e2apMsg->choice.initiatingMessage); + break; + } default: { DU_LOG("\nERROR --> E2AP : Invalid type of e2apMsg->present [%d]",e2apMsg->present); diff --git a/src/du_app/du_e2ap_msg_hdl.h b/src/du_app/du_e2ap_msg_hdl.h index 8c86edd50..a10fe03d0 100644 --- a/src/du_app/du_e2ap_msg_hdl.h +++ b/src/du_app/du_e2ap_msg_hdl.h @@ -18,7 +18,6 @@ /* This file contains all E2AP message handler related functionality */ -#include "E2setupRequest.h" #define ENCODE_FAIL -1 uint8_t sctpSend(Buffer *mBuf, uint8_t itfType); @@ -39,7 +38,7 @@ E2apMsgDb e2apMsgDb; uint8_t BuildAndSendE2SetupReq(); uint8_t SendE2APMsg(Region , Pool ); void E2APMsgHdlr(Buffer *mBuf); -uint8_t deAllocateE2SetupReqMsg(E2AP_PDU_t *e2apMsg, E2setupRequest_t *e2SetupReq, uint8_t idx); +uint8_t BuildAndSendE2NodeConfigUpdate(); /********************************************************************** End of file **********************************************************************/ diff --git a/src/du_app/du_f1ap_msg_hdl.c b/src/du_app/du_f1ap_msg_hdl.c index 1b52c60c1..1b524957d 100644 --- a/src/du_app/du_f1ap_msg_hdl.c +++ b/src/du_app/du_f1ap_msg_hdl.c @@ -103,6 +103,7 @@ #include "GTPTunnel.h" #include "SupportedSULFreqBandItem.h" #include "du_sys_info_hdl.h" +#include "du_e2ap_msg_hdl.h" #ifdef O1_ENABLE #include "CmInterface.h" @@ -1997,24 +1998,33 @@ uint8_t BuildAndSendF1SetupReq() /* Encode results */ if(encRetVal.encoded == ENCODE_FAIL) { - DU_LOG("\nERROR --> F1AP : Could not encode F1SetupRequest structure (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); - break; + DU_LOG("\nERROR --> F1AP : Could not encode F1SetupRequest structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; } else { - DU_LOG("\nDEBUG --> F1AP : Created APER encoded buffer for F1SetupRequest\n"); - for(ieIdx=0; ieIdx< encBufSize; ieIdx++) - { - printf("%x",encBuf[ieIdx]); - } + DU_LOG("\nDEBUG --> F1AP : Created APER encoded buffer for F1SetupRequest\n"); + for(ieIdx=0; ieIdx< encBufSize; ieIdx++) + { + printf("%x",encBuf[ieIdx]); + } + + duCb.f1SetupReqAndRspMsg.f1MsgReqBufSize = encBufSize; + DU_ALLOC(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf, encBufSize); + if(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf == NULLP) + { + DU_LOG("\nERROR --> F1AP : Memory allocation failed to store the encoding of f1setup req"); + return RFAILED; + } + memcpy(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf, &encBuf, duCb.f1SetupReqAndRspMsg.f1MsgReqBufSize); } /* Sending msg */ if(sendF1APMsg() != ROK) { - DU_LOG("\nERROR --> F1AP : Sending F1 Setup request failed"); - break; + DU_LOG("\nERROR --> F1AP : Sending F1 Setup request failed"); + break; } ret=ROK; @@ -12476,7 +12486,7 @@ void freeAperDecodeF1SetupRsp(F1SetupResponse_t *f1SetRspMsg) * RFAILED - failure * * ****************************************************************/ -uint8_t procF1SetupRsp(F1AP_PDU_t *f1apMsg) +uint8_t procF1SetupRsp(F1AP_PDU_t *f1apMsg, MsgLen recvBufLen, char *recvBuf) { uint8_t ret = ROK; uint16_t idx =0; @@ -12528,6 +12538,21 @@ uint8_t procF1SetupRsp(F1AP_PDU_t *f1apMsg) } freeAperDecodeF1SetupRsp(f1SetRspMsg); + + duCb.f1SetupReqAndRspMsg.f1MsgRspBufSize = recvBufLen; + DU_ALLOC(duCb.f1SetupReqAndRspMsg.f1MsgRspBuf, duCb.f1SetupReqAndRspMsg.f1MsgRspBufSize); + if(duCb.f1SetupReqAndRspMsg.f1MsgReqBuf == NULLP) + { + DU_LOG("\nERROR --> F1AP : Memory allocation failed to store the buf of F1setup response"); + return RFAILED; + } + memcpy(duCb.f1SetupReqAndRspMsg.f1MsgRspBuf, recvBuf, recvBufLen); + + if(BuildAndSendE2SetupReq() != ROK) + { + DU_LOG("\nERROR --> F1AP : Failed to build and send E2 setup request "); + return RFAILED; + } return ret; } /******************************************************************* @@ -14128,7 +14153,6 @@ void F1APMsgHdlr(Buffer *mBuf) memset(f1apMsg, 0, sizeof(F1AP_PDU_t)); rval = aper_decode(0, &asn_DEF_F1AP_PDU, (void **)&f1apMsg, recvBuf, recvBufLen, 0, 0); - DU_FREE(recvBuf, (Size)recvBufLen); if(rval.code == RC_FAIL || rval.code == RC_WMORE) { @@ -14152,7 +14176,7 @@ void F1APMsgHdlr(Buffer *mBuf) case SuccessfulOutcome__value_PR_F1SetupResponse: { #ifndef ODU_TEST_STUB - procF1SetupRsp(f1apMsg); + procF1SetupRsp(f1apMsg, recvBufLen, recvBuf); #endif break; } @@ -14221,7 +14245,8 @@ void F1APMsgHdlr(Buffer *mBuf) free(f1apMsg); }/* End of switch(f1apMsg->present) */ - + + DU_FREE(recvBuf, (Size)recvBufLen); } /* End of F1APMsgHdlr */ /********************************************************************** diff --git a/src/du_app/du_f1ap_msg_hdl.h b/src/du_app/du_f1ap_msg_hdl.h index 856cb1e21..af307debc 100644 --- a/src/du_app/du_f1ap_msg_hdl.h +++ b/src/du_app/du_f1ap_msg_hdl.h @@ -18,7 +18,6 @@ /* This file contains all F1AP message handler related functionality */ -#define TRANS_ID 1 #define RRC_SIZE 1 #define SUL_BAND_COUNT 0 #define UL_SRBID 1 diff --git a/src/du_app/du_mgr.h b/src/du_app/du_mgr.h index 49f9a1f9a..2c4d195b1 100644 --- a/src/du_app/du_mgr.h +++ b/src/du_app/du_mgr.h @@ -175,7 +175,6 @@ typedef struct duCellCb /* pointer to store the address of macCellCfg params used to send du-app to MAC */ MacCellCfg *duMacCellCfg; CellStatus cellStatus; /* Cell status */ - uint32_t gnbDuUeF1apIdGenerator; /* Generating Du Ue F1ap Id */ uint32_t numActvUes; /* Total Active UEs */ DuUeCb ueCb[MAX_NUM_UE]; /* UE CONTEXT */ }DuCellCb; @@ -219,12 +218,14 @@ typedef struct duCb DuCellCb* cfgCellLst[MAX_NUM_CELL]; /* List of cells at DU APP of type DuCellCb */ uint8_t numActvCells; /* Number of active cells */ DuCellCb* actvCellLst[MAX_NUM_CELL]; /* List of cells activated/to be activated of type DuCellCb */ + uint32_t gnbDuUeF1apIdGenerator; /* Generating Du Ue F1ap Id */ uint32_t numUe; /* current number of UEs */ UeCcchCtxt ueCcchCtxt[MAX_NUM_UE]; /* mapping of gnbDuUeF1apId to CRNTI required for CCCH processing*/ uint8_t numTeId; /* current number of TEIDs configured in the system*/ UpTnlCfg* upTnlCfg[MAX_TEID]; /* tunnel info for every Drb */ CmLListCp reservedF1apPduList; /*storing F1AP pdu infomation and transId */ SliceCfgState sliceState; + F1SetupMsg f1SetupReqAndRspMsg; }DuCb; diff --git a/src/du_app/du_mgr_msg_router.c b/src/du_app/du_mgr_msg_router.c index f66dae78e..33a8526ff 100644 --- a/src/du_app/du_mgr_msg_router.c +++ b/src/du_app/du_mgr_msg_router.c @@ -96,6 +96,7 @@ uint8_t duActvInit(Ent entity, Inst inst, Region region, Reason reason) memset(duCb.ueCcchCtxt, 0, MAX_NUM_UE * sizeof(UeCcchCtxt)); duCb.numCfgCells = 0; duCb.numActvCells = 0; + duCb.gnbDuUeF1apIdGenerator = 0; cmLListInit(&duCb.reservedF1apPduList); ODU_SET_PROC_ID(DU_PROC); diff --git a/src/du_app/du_msg_hdl.c b/src/du_app/du_msg_hdl.c index 8a10eaf22..7b27caed1 100644 --- a/src/du_app/du_msg_hdl.c +++ b/src/du_app/du_msg_hdl.c @@ -58,7 +58,6 @@ DuCfgParams duCfgParam; uint8_t packRlcConfigReq(Pst *pst, RlcMngmt *cfg); uint8_t cmPkLkwCntrlReq(Pst *pst, RlcMngmt *cfg); uint8_t cmPkLrgCfgReq(Pst *pst, RgMngmt *cfg); -uint8_t BuildAndSendE2SetupReq(); uint8_t egtpHdlDatInd(EgtpMsg egtpMsg); uint8_t BuildAndSendDUConfigUpdate(); uint16_t getTransId(); @@ -384,7 +383,6 @@ uint8_t duProcCfgComplete() cell->cellInfo.maxUe = duCfgParam.maxUe; cell->cellStatus = CELL_OUT_OF_SERVICE; gCellStatus = CELL_DOWN; - cell->gnbDuUeF1apIdGenerator = 0; duCb.cfgCellLst[duCb.numCfgCells] = cell; duCb.numCfgCells++; } @@ -981,15 +979,12 @@ uint8_t duSctpNtfyHdl(Buffer *mBuf, CmInetSctpNotification *ntfy) { if(BuildAndSendF1SetupReq() != ROK) { - return RFAILED; + return RFAILED; } } else if(ricParams.assocId == ntfy->u.assocChange.assocId) { - if(BuildAndSendE2SetupReq() != ROK) - { - return RFAILED; - } + return ROK; } else { diff --git a/src/du_app/du_ue_mgr.c b/src/du_app/du_ue_mgr.c index 8a60ade43..b27158b64 100644 --- a/src/du_app/du_ue_mgr.c +++ b/src/du_app/du_ue_mgr.c @@ -527,7 +527,7 @@ int32_t genGnbDuUeF1apId(uint8_t cellId) GET_CELL_IDX(cellId, cellIdx); if(duCb.actvCellLst[cellIdx]) { - return ++duCb.actvCellLst[cellIdx]->gnbDuUeF1apIdGenerator; + return ++duCb.gnbDuUeF1apIdGenerator; } else { diff --git a/src/ric_stub/ric_e2ap_msg_hdl.c b/src/ric_stub/ric_e2ap_msg_hdl.c index 851fb5d12..4bed18a7a 100644 --- a/src/ric_stub/ric_e2ap_msg_hdl.c +++ b/src/ric_stub/ric_e2ap_msg_hdl.c @@ -21,8 +21,8 @@ #include "OCTET_STRING.h" #include "BIT_STRING.h" #include "odu_common_codec.h" -#include "ric_stub.h" #include "ric_stub_sctp.h" +#include "ric_stub.h" #include "ric_e2ap_msg_hdl.h" #include "GlobalE2node-gNB-ID.h" #include "ProtocolIE-FieldE2.h" @@ -30,8 +30,8 @@ #include "SuccessfulOutcomeE2.h" #include "E2AP-PDU.h" #include "du_log.h" +#include "E2nodeComponentInterfaceF1.h" -Bool ricSubsStatus; /******************************************************************* * @@ -50,7 +50,7 @@ Bool ricSubsStatus; * * ****************************************************************/ -S16 SendE2APMsg(Region region, Pool pool) +uint8_t SendE2APMsg(Region region, Pool pool) { Buffer *mBuf; @@ -100,7 +100,7 @@ S16 SendE2APMsg(Region region, Pool pool) * * ****************************************************************/ -S16 BuildGlobalRicId(GlobalRIC_ID_t *ricId) +uint8_t BuildGlobalRicId(GlobalRIC_ID_t *ricId) { uint8_t unused = 4; uint8_t byteSize = 3; @@ -118,6 +118,115 @@ S16 BuildGlobalRicId(GlobalRIC_ID_t *ricId) return ROK; } +/******************************************************************* + * + * @brief deallocate the memory allocated in E2SetupResponse + * + * @details + * + * Function : FreeE2SetupRsp + * + * Functionality: deallocate the memory allocated in E2SetupResponse + * + * @params[in] E2AP_PDU_t *e2apMsg + * + * @return void + * ****************************************************************/ +void FreeE2SetupRsp(E2AP_PDU_t *e2apMsg) +{ + uint8_t arrIdx = 0; + E2setupResponse_t *e2SetupRsp; + + if(e2apMsg) + { + if(e2apMsg->choice.successfulOutcome) + { + e2SetupRsp = &e2apMsg->choice.successfulOutcome->value.choice.E2setupResponse; + if(e2SetupRsp->protocolIEs.list.array) + { + for(arrIdx=0; arrIdxprotocolIEs.list.count; arrIdx++) + { + RIC_FREE(e2SetupRsp->protocolIEs.list.array[arrIdx], sizeof(E2setupResponseIEs_t)); + } + RIC_FREE(e2SetupRsp->protocolIEs.list.array, e2SetupRsp->protocolIEs.list.size); + } + RIC_FREE(e2apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcomeE2_t)); + } + RIC_FREE(e2apMsg, sizeof(E2AP_PDU_t)); + } +} + +/******************************************************************* + * + * @brief Build E2node Component config addition ack list + * + * @details + * + * Function : BuildE2nodeComponentConfigAdditionAck + * + * Functionality: deallocate the memory allocated in E2SetupResponse + * + * @params[in] E2nodeComponentConfigAdditionAck_List_t + * *e2NodeConfigAdditionAckList + * + * @return ROK - success + * RFAILED - failure + * ****************************************************************/ +uint8_t BuildE2nodeComponentConfigAdditionAck(E2nodeComponentConfigAdditionAck_List_t *e2NodeConfigAdditionAckList, uint8_t duId) +{ + uint8_t arrIdx = 0; + E2nodeComponentConfigAdditionAck_ItemIEs_t *e2NodeAddAckItem; + + e2NodeConfigAdditionAckList->list.count = 1; + e2NodeConfigAdditionAckList->list.size = e2NodeConfigAdditionAckList->list.count * sizeof(E2nodeComponentConfigAdditionAck_ItemIEs_t*); + RIC_ALLOC(e2NodeConfigAdditionAckList->list.array, e2NodeConfigAdditionAckList->list.size); + if(e2NodeConfigAdditionAckList->list.array == NULLP) + { + DU_LOG("\nERROR --> E2AP: Memory allocation failed for BuildE2nodeComponentConfigAdditionAck %d",__LINE__); + return RFAILED; + } + + for(arrIdx = 0; arrIdx< e2NodeConfigAdditionAckList->list.count; arrIdx++) + { + RIC_ALLOC(e2NodeConfigAdditionAckList->list.array[arrIdx], sizeof(E2nodeComponentConfigAdditionAck_ItemIEs_t)); + if(e2NodeConfigAdditionAckList->list.array[arrIdx] == NULLP) + { + DU_LOG("\nERROR --> E2AP: Memory allocation failed for BuildE2nodeComponentConfigAdditionAck %d",__LINE__); + return RFAILED; + } + } + e2NodeAddAckItem = (E2nodeComponentConfigAdditionAck_ItemIEs_t*) e2NodeConfigAdditionAckList->list.array[0]; + e2NodeAddAckItem->id = ProtocolIE_IDE2_id_E2nodeComponentConfigAdditionAck_Item; + e2NodeAddAckItem->criticality = CriticalityE2_reject; + e2NodeAddAckItem->value.present = E2nodeComponentConfigAdditionAck_ItemIEs__value_PR_E2nodeComponentConfigAdditionAck_Item; + e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentInterfaceType = E2nodeComponentInterfaceType_f1; + + /* >E2 Node Component ID */ + e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.present = E2nodeComponentID_PR_e2nodeComponentInterfaceTypeF1; + RIC_ALLOC(e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1,\ + sizeof(E2nodeComponentInterfaceF1_t)); + if(e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1 == NULLP) + { + DU_LOG("\nERROR --> E2AP: Memory allocation failed for BuildE2nodeComponentConfigAdditionAck %d",__LINE__); + return RFAILED; + } + e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.size = sizeof(uint8_t); + RIC_ALLOC(e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf,\ + e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.size); + + if(e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf == NULLP) + { + DU_LOG("\nERROR -->list. E2AP: Memory allocation failed for BuildE2nodeComponentConfigAdditionAck %d",__LINE__); + return RFAILED; + } + e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf[0] = duId; + + /* >E2 Node Component Configuration Acknowledge*/ + e2NodeAddAckItem->value.choice.E2nodeComponentConfigAdditionAck_Item.e2nodeComponentConfigurationAck.updateOutcome = \ + E2nodeComponentConfigurationAck__updateOutcome_success; + + return ROK; +} /******************************************************************* * * @brief Builds and sends the E2SetupResponse @@ -136,103 +245,127 @@ S16 BuildGlobalRicId(GlobalRIC_ID_t *ricId) * RFAILED - failure * * ****************************************************************/ -S16 BuildAndSendE2SetupRsp() +uint8_t BuildAndSendE2SetupRsp(uint8_t duId) { E2AP_PDU_t *e2apMsg = NULL; E2setupResponse_t *e2SetupRsp; asn_enc_rval_t encRetVal; uint8_t idx; uint8_t elementCnt; - + bool memAllocFailed = false; DU_LOG("\nINFO --> E2AP : Building E2 Setup Response\n"); - - RIC_ALLOC(e2apMsg, sizeof(E2AP_PDU_t)); - if(e2apMsg == NULLP) + while(true) { - DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); - return RFAILED; - } - e2apMsg->present = E2AP_PDU_PR_successfulOutcome; - RIC_ALLOC(e2apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcomeE2_t)); - if(e2apMsg->choice.successfulOutcome == NULLP) - { - DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); - RIC_FREE(e2apMsg, sizeof(E2AP_PDU_t)); - return RFAILED; - } - - e2apMsg->choice.successfulOutcome->procedureCode = ProcedureCodeE2_id_E2setup; - e2apMsg->choice.successfulOutcome->criticality = CriticalityE2_reject; - e2apMsg->choice.successfulOutcome->value.present = \ - SuccessfulOutcomeE2__value_PR_E2setupResponse; - e2SetupRsp = &e2apMsg->choice.successfulOutcome->value.choice.E2setupResponse; + RIC_ALLOC(e2apMsg, sizeof(E2AP_PDU_t)); + if(e2apMsg == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); + break; + } + e2apMsg->present = E2AP_PDU_PR_successfulOutcome; + RIC_ALLOC(e2apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcomeE2_t)); + if(e2apMsg->choice.successfulOutcome == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); + break; + } - elementCnt = 1; - e2SetupRsp->protocolIEs.list.count = elementCnt; - e2SetupRsp->protocolIEs.list.size = elementCnt * sizeof(E2setupResponseIEs_t); + e2apMsg->choice.successfulOutcome->procedureCode = ProcedureCodeE2_id_E2setup; + e2apMsg->choice.successfulOutcome->criticality = CriticalityE2_reject; + e2apMsg->choice.successfulOutcome->value.present = \ + SuccessfulOutcomeE2__value_PR_E2setupResponse; + e2SetupRsp = &e2apMsg->choice.successfulOutcome->value.choice.E2setupResponse; - RIC_ALLOC(e2SetupRsp->protocolIEs.list.array, \ - e2SetupRsp->protocolIEs.list.size); - if(e2SetupRsp->protocolIEs.list.array == NULLP) - { - DU_LOG("\nERROR --> E2AP : Memory allocation for E2ResponseIEs failed"); - RIC_FREE(e2apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcomeE2_t)); - RIC_FREE(e2apMsg, sizeof(E2AP_PDU_t)); - return RFAILED; - } - - for(idx=0; idxprotocolIEs.list.array[idx], \ - sizeof(E2setupResponseIEs_t)); - if(e2SetupRsp->protocolIEs.list.array[idx] == NULLP) - { - RIC_FREE(e2SetupRsp->protocolIEs.list.array,\ - e2SetupRsp->protocolIEs.list.size); - RIC_FREE(e2apMsg->choice.successfulOutcome, \ - sizeof(SuccessfulOutcomeE2_t)); - RIC_FREE(e2apMsg, sizeof(E2AP_PDU_t)); - return RFAILED; - } - } - /* Global RIC ID */ - idx = 0; - e2SetupRsp->protocolIEs.list.array[idx]->id = ProtocolIE_IDE2_id_GlobalRIC_ID; - e2SetupRsp->protocolIEs.list.array[idx]->criticality = CriticalityE2_reject; - e2SetupRsp->protocolIEs.list.array[idx]->value.present = \ - E2setupResponseIEs__value_PR_GlobalRIC_ID; + elementCnt = 3; + e2SetupRsp->protocolIEs.list.count = elementCnt; + e2SetupRsp->protocolIEs.list.size = elementCnt * sizeof(E2setupResponseIEs_t); - BuildGlobalRicId(&(e2SetupRsp->protocolIEs.list.array[idx]->value.choice.GlobalRIC_ID)); + RIC_ALLOC(e2SetupRsp->protocolIEs.list.array, e2SetupRsp->protocolIEs.list.size); + if(e2SetupRsp->protocolIEs.list.array == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2ResponseIEs failed"); + break; + } - xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2apMsg); - memset(encBuf, 0, ENC_BUF_MAX_LEN); - encBufSize = 0; - encRetVal = aper_encode(&asn_DEF_E2AP_PDU, 0, e2apMsg, PrepFinalEncBuf, encBuf); + for(idx=0; idxprotocolIEs.list.array[idx], sizeof(E2setupResponseIEs_t)); + if(e2SetupRsp->protocolIEs.list.array[idx] == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2ResponseIEs failed"); + memAllocFailed = true; + break; + } + } + + if(memAllocFailed == true) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2ResponseIEs failed"); + break; + } + /* Trans Id */ + idx = 0; + e2SetupRsp->protocolIEs.list.array[idx]->id = ProtocolIE_IDE2_id_TransactionID; + e2SetupRsp->protocolIEs.list.array[idx]->criticality = CriticalityE2_reject; + e2SetupRsp->protocolIEs.list.array[idx]->value.present = E2setupResponseIEs__value_PR_TransactionID; + e2SetupRsp->protocolIEs.list.array[idx]->value.choice.TransactionID = TRANS_ID; + + /* Global RIC ID */ + idx++; + e2SetupRsp->protocolIEs.list.array[idx]->id = ProtocolIE_IDE2_id_GlobalRIC_ID; + e2SetupRsp->protocolIEs.list.array[idx]->criticality = CriticalityE2_reject; + e2SetupRsp->protocolIEs.list.array[idx]->value.present = \ + E2setupResponseIEs__value_PR_GlobalRIC_ID; + + if(BuildGlobalRicId(&(e2SetupRsp->protocolIEs.list.array[idx]->value.choice.GlobalRIC_ID))!=ROK) + { + DU_LOG("\nERROR --> E2AP : Failed to build Global Ric Id"); + break; + } + + /* E2 Node Component Configuration Addition Acknowledge List*/ + idx++; + e2SetupRsp->protocolIEs.list.array[idx]->id = ProtocolIE_IDE2_id_E2nodeComponentConfigAdditionAck; + e2SetupRsp->protocolIEs.list.array[idx]->criticality = CriticalityE2_reject; + e2SetupRsp->protocolIEs.list.array[idx]->value.present = \ + E2setupResponseIEs__value_PR_E2nodeComponentConfigAdditionAck_List; + if(BuildE2nodeComponentConfigAdditionAck(&e2SetupRsp->protocolIEs.list.array[idx]->value.choice.E2nodeComponentConfigAdditionAck_List, duId)!=ROK) + { + DU_LOG("\nERROR --> E2AP : Failed to build E2Node Component config addition ack list"); + break; + } - /* Check encode results */ - if(encRetVal.encoded == ENCODE_FAIL) - { - DU_LOG("\nERROR --> E2AP : Could not encode E2SetupResponse structure (at %s)\n",\ - encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); - return RFAILED; - } - else - { - DU_LOG("\nDEBUG --> E2AP : Created APER encoded buffer for E2SetupResponse\n"); - for(int i=0; i< encBufSize; i++) - { - DU_LOG("%x",encBuf[i]); - } - } + xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2apMsg); + memset(encBuf, 0, ENC_BUF_MAX_LEN); + encBufSize = 0; + encRetVal = aper_encode(&asn_DEF_E2AP_PDU, 0, e2apMsg, PrepFinalEncBuf, encBuf); + /* Check encode results */ + if(encRetVal.encoded == ENCODE_FAIL) + { + DU_LOG("\nERROR --> E2AP : Could not encode E2SetupResponse structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + break; + } + else + { + DU_LOG("\nDEBUG --> E2AP : Created APER encoded buffer for E2SetupResponse\n"); + for(int i=0; i< encBufSize; i++) + { + DU_LOG("%x",encBuf[i]); + } + } - if(SendE2APMsg(RIC_APP_MEM_REG, RIC_POOL) != ROK) - { - DU_LOG("\nERROR --> E2AP : Sending E2 Setup Response failed"); - return RFAILED; + if(SendE2APMsg(RIC_APP_MEM_REG, RIC_POOL) != ROK) + { + DU_LOG("\nERROR --> E2AP : Sending E2 Setup Response failed"); + break; + } + break; } + FreeE2SetupRsp(e2apMsg); return ROK; } @@ -252,7 +385,7 @@ S16 BuildAndSendE2SetupRsp() * * ****************************************************************/ -S16 BuildRicRequestId(RICrequestID_t *ricReqId) +uint8_t BuildRicRequestId(RICrequestID_t *ricReqId) { if(ricReqId != NULLP) @@ -305,7 +438,7 @@ RICaction_ToBeSetup_Item_t* fillSetupItems(RICaction_ToBeSetup_Item_t *setupItem * * ****************************************************************/ -S16 fillSubsDetails(RICaction_ToBeSetup_ItemIEs_t *items) +uint8_t fillSubsDetails(RICaction_ToBeSetup_ItemIEs_t *items) { if(items != NULLP) { @@ -333,7 +466,7 @@ S16 fillSubsDetails(RICaction_ToBeSetup_ItemIEs_t *items) * * ****************************************************************/ -S16 BuildRicSubsDetails(RICsubscriptionDetails_t *subsDetails) +uint8_t BuildRicSubsDetails(RICsubscriptionDetails_t *subsDetails) { uint8_t elementCnt; @@ -379,7 +512,7 @@ S16 BuildRicSubsDetails(RICsubscriptionDetails_t *subsDetails) * ******************************************************************/ -S16 BuildAndSendRicSubscriptionReq() +uint8_t BuildAndSendRicSubscriptionReq() { E2AP_PDU_t *e2apRicMsg = NULL; @@ -387,9 +520,9 @@ S16 BuildAndSendRicSubscriptionReq() uint8_t elementCnt; uint8_t idx; uint8_t ieId; - S16 ret; + uint8_t ret; asn_enc_rval_t encRetVal; /* Encoder return value */ - ricSubsStatus = TRUE; + ricCfgParams.ricSubsStatus = TRUE; DU_LOG("\nINFO --> E2AP : Building RIC Subscription Request\n"); @@ -512,7 +645,227 @@ S16 BuildAndSendRicSubscriptionReq() return ROK; } - +/******************************************************************* + * + * @brief process the e2setup request + * + * @details + * + * Function : ProcE2SetupReq + * + * Functionality: process the e2setup request + * + * @return ROK - success + * RFAILED - failure + * + ******************************************************************/ + +uint8_t ProcE2SetupReq(E2setupRequest_t *e2SetupReq) +{ + uint8_t arrIdx = 0, e2NodeAddListIdx =0;; + E2nodeComponentConfigAddition_List_t *e2NodeAddList; + E2nodeComponentConfigAddition_ItemIEs_t *e2NodeAddItem; + + if(e2SetupReq) + { + if(e2SetupReq->protocolIEs.list.array) + { + for(arrIdx=0; arrIdxprotocolIEs.list.count; arrIdx++) + { + if(e2SetupReq->protocolIEs.list.array[arrIdx]) + { + switch(e2SetupReq->protocolIEs.list.array[arrIdx]->id) + { + case ProtocolIE_IDE2_id_E2nodeComponentConfigAddition: + { + e2NodeAddList = &e2SetupReq->protocolIEs.list.array[arrIdx]->value.choice.E2nodeComponentConfigAddition_List; + if(e2NodeAddList->list.array) + { + for(e2NodeAddListIdx = 0; e2NodeAddListIdx< e2NodeAddList->list.count; e2NodeAddListIdx++) + { + if(e2NodeAddList->list.array[e2NodeAddListIdx]) + { + e2NodeAddItem = (E2nodeComponentConfigAddition_ItemIEs_t *) e2NodeAddList->list.array[e2NodeAddListIdx]; + if(e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1) + { + if(e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.e2nodeComponentInterfaceTypeF1->\ + gNB_DU_ID.buf) + { + if(BuildAndSendE2SetupRsp(e2NodeAddItem->value.choice.E2nodeComponentConfigAddition_Item.e2nodeComponentID.choice.\ + e2nodeComponentInterfaceTypeF1->gNB_DU_ID.buf[0]) !=ROK) + { + DU_LOG("\nERROR --> E2AP : Failed to build and send E2 setup response"); + return RFAILED; + } + } + } + } + } + } + break; + } + default: + break; + } + } + } + } + } + return ROK; +} + +/******************************************************************* + * + * @brief Deallocate the memory allocated for E2nodeConfigurationUpdate msg + * + * @details + * + * Function : FreeE2NodeConfigUpdate + * + * Functionality: + * - freeing the memory allocated for E2nodeConfigurationUpdate + * + * @params[in] E2AP_PDU_t *e2apMsg + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ +void FreeE2NodeConfigUpdateAck(E2AP_PDU_t *e2apMsg) +{ + uint8_t arrIdx =0; + E2nodeConfigurationUpdate_t *e2NodeConfigUpdateAck; + + if(e2apMsg != NULLP) + { + if(e2apMsg->choice.successfulOutcome != NULLP) + { + e2NodeConfigUpdateAck = &e2apMsg->choice.successfulOutcome->value.choice.E2nodeConfigurationUpdateAcknowledge; + if(e2NodeConfigUpdateAck->protocolIEs.list.array != NULLP) + { + for(arrIdx = 0; arrIdx < e2NodeConfigUpdateAck->protocolIEs.list.count; arrIdx++) + { + RIC_FREE(e2NodeConfigUpdateAck->protocolIEs.list.array[arrIdx], sizeof(E2nodeConfigurationUpdate_t)); + } + RIC_FREE(e2NodeConfigUpdateAck->protocolIEs.list.array, e2NodeConfigUpdateAck->protocolIEs.list.size); + } + RIC_FREE(e2apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcomeE2_t)); + } + RIC_FREE(e2apMsg, sizeof(E2AP_PDU_t)); + } +} + +/******************************************************************* + * + * @brief Buld and send the E2 node config update msg + * + * @details + * + * Function : BuildAndSendE2NodeConfigUpdate + * + * Functionality: + * - Buld and send the E2 node config update msg + * @return ROK - success + * RFAILED - failure + * + * ****************************************************************/ + +uint8_t BuildAndSendE2NodeConfigUpdateAck() +{ + uint8_t arrIdx = 0,elementCnt = 1; + uint8_t ret = ROK; + E2AP_PDU_t *e2apMsg = NULLP; + E2nodeConfigurationUpdateAcknowledge_t *e2NodeConfigUpdateAck = NULLP; + asn_enc_rval_t encRetVal; /* Encoder return value */ + + DU_LOG("\nINFO --> E2AP : Building E2 Node config update Ack Message\n"); + do + { + RIC_ALLOC(e2apMsg, sizeof(E2AP_PDU_t)); + if(e2apMsg == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); + break; + } + e2apMsg->present = E2AP_PDU_PR_successfulOutcome; + RIC_ALLOC(e2apMsg->choice.successfulOutcome, sizeof(SuccessfulOutcomeE2_t)); + if(e2apMsg->choice.successfulOutcome == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for E2AP-PDU failed"); + RIC_FREE(e2apMsg, sizeof(E2AP_PDU_t)); + return RFAILED; + } + + e2apMsg->choice.successfulOutcome->criticality = CriticalityE2_reject; + e2apMsg->choice.successfulOutcome->procedureCode = ProcedureCodeE2_id_E2nodeConfigurationUpdate; + e2apMsg->choice.successfulOutcome->value.present = SuccessfulOutcomeE2__value_PR_E2nodeConfigurationUpdateAcknowledge; + e2NodeConfigUpdateAck = &e2apMsg->choice.successfulOutcome->value.choice.E2nodeConfigurationUpdateAcknowledge; + + e2NodeConfigUpdateAck->protocolIEs.list.count = elementCnt; + e2NodeConfigUpdateAck->protocolIEs.list.size = elementCnt * sizeof(E2nodeConfigurationUpdateAcknowledge_IEs_t*); + /* Initialize the Ric Indication members */ + RIC_ALLOC(e2NodeConfigUpdateAck->protocolIEs.list.array, \ + e2NodeConfigUpdateAck->protocolIEs.list.size); + if(e2NodeConfigUpdateAck->protocolIEs.list.array == NULLP) + { + DU_LOG("\nERROR --> E2AP : Memory allocation for e2NodeConfigUpdateAck failed"); + break; + } + + for(arrIdx =0; arrIdxprotocolIEs.list.array[arrIdx], sizeof(E2nodeConfigurationUpdateAcknowledge_IEs_t)); + if(e2NodeConfigUpdateAck->protocolIEs.list.array[arrIdx] == NULLP) + { + + DU_LOG("\nERROR --> E2AP : Memory allocation for e2NodeConfigUpdateAck failed"); + break; + } + } + + arrIdx = 0; + /* TransactionID */ + e2NodeConfigUpdateAck->protocolIEs.list.array[arrIdx]->id = ProtocolIE_IDE2_id_TransactionID; + e2NodeConfigUpdateAck->protocolIEs.list.array[arrIdx]->criticality = CriticalityE2_reject; + e2NodeConfigUpdateAck->protocolIEs.list.array[arrIdx]->value.present = E2nodeConfigurationUpdateAcknowledge_IEs__value_PR_TransactionID; + e2NodeConfigUpdateAck->protocolIEs.list.array[arrIdx]->value.choice.TransactionID = TRANS_ID; + + + xer_fprint(stdout, &asn_DEF_E2AP_PDU, e2apMsg); + + memset(encBuf, 0, ENC_BUF_MAX_LEN); + encBufSize = 0; + encRetVal = aper_encode(&asn_DEF_E2AP_PDU, 0, e2apMsg, PrepFinalEncBuf,\ + encBuf); + if(encRetVal.encoded == ENCODE_FAIL) + { + DU_LOG("\nERROR --> E2AP : Could not encode E2 Node config update ack structure (at %s)\n",\ + encRetVal.failed_type ? encRetVal.failed_type->name : "unknown"); + return RFAILED; + } + else + { + DU_LOG("\nDEBUG --> E2AP : Created APER encoded buffer for E2 Node config update ack \n"); + for(int i=0; i< encBufSize; i++) + { + DU_LOG("%x",encBuf[i]); + } + } + + + /* Sending msg */ + if(SendE2APMsg(RIC_APP_MEM_REG, RIC_POOL) != ROK) + { + DU_LOG("\nERROR --> E2AP : Failed to send E2 Node config update ack "); + return RFAILED; + } + + break; + }while(true); + + FreeE2NodeConfigUpdateAck(e2apMsg); + return ret; +} + /******************************************************************* * * @brief Handles received E2AP message and sends back response @@ -588,8 +941,14 @@ void E2APMsgHdlr(Buffer *mBuf) case InitiatingMessageE2__value_PR_E2setupRequest: { DU_LOG("\nINFO --> E2AP : E2 setup request received"); - BuildAndSendE2SetupRsp(); - break; + ProcE2SetupReq(&e2apMsg->choice.initiatingMessage->value.choice.E2setupRequest); + break; + } + case InitiatingMessageE2__value_PR_E2nodeConfigurationUpdate: + { + DU_LOG("\nINFO --> E2AP : E2 node config update received"); + BuildAndSendE2NodeConfigUpdateAck(); + break; } case InitiatingMessageE2__value_PR_RICindication: { @@ -630,7 +989,7 @@ void E2APMsgHdlr(Buffer *mBuf) }/* End of switch(e2apMsg->present) */ - if(!ricSubsStatus) + if(!ricCfgParams.ricSubsStatus) BuildAndSendRicSubscriptionReq(); } /* End of E2APMsgHdlr */ diff --git a/src/ric_stub/ric_e2ap_msg_hdl.h b/src/ric_stub/ric_e2ap_msg_hdl.h index c34b6a2f1..6f54f0d5c 100644 --- a/src/ric_stub/ric_e2ap_msg_hdl.h +++ b/src/ric_stub/ric_e2ap_msg_hdl.h @@ -30,7 +30,6 @@ #define CRNTI 17017 #define CELL_INDEX 0 - /* allocate and zero out a static buffer */ #define RIC_ALLOC(_datPtr, _size) \ { \ @@ -51,9 +50,10 @@ + void E2APMsgHdlr(Buffer *mBuf); -S16 BuildAndSendE2SetupReq(); -S16 SendE2APMsg(Region , Pool ); +uint8_t BuildAndSendE2SetupRsp(uint8_t duId); +uint8_t SendE2APMsg(Region , Pool ); /********************************************************************** End of file diff --git a/src/ric_stub/ric_stub.c b/src/ric_stub/ric_stub.c index 0f36cb52d..429dc461b 100644 --- a/src/ric_stub/ric_stub.c +++ b/src/ric_stub/ric_stub.c @@ -18,38 +18,13 @@ /* This functions contains main() for ric_app */ #include "common_def.h" -#include "ric_stub.h" #include "ric_stub_sctp.h" -#include "du_log.h" +#include "ric_stub.h" #ifdef O1_ENABLE #include "CmInterface.h" #endif -#define RIC_ID 1 -#define RIC_NAME "ORAN_OAM_RIC" - -#define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001" -#define RIC_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011" - -#ifndef O1_ENABLE - -#define DU_IP_V4_ADDR "192.168.130.81" -#define RIC_IP_V4_ADDR "192.168.130.80" -#define DU_PORT 36421 -#define RIC_PORT 36421 - -#endif - -#define RRC_VER 0 -#define EXT_RRC_VER 5 -#define PLMN_MCC0 3 -#define PLMN_MCC1 1 -#define PLMN_MCC2 1 -#define PLMN_MNC0 4 -#define PLMN_MNC1 8 -#define PLMN_MNC2 0 - #ifdef O1_ENABLE extern StartupConfig g_cfg; #endif @@ -130,10 +105,13 @@ uint8_t tst() void readRicCfg() { + uint8_t *numDu; uint32_t ipv4_du, ipv4_ric; DU_LOG("\nINFO --> RIC : Reading RIC configurations"); + ricCfgParams.ricId = RIC_ID; + strcpy(ricCfgParams.ricName, RIC_NAME); #ifdef O1_ENABLE if( getStartupConfigForStub(&g_cfg) != ROK ) { @@ -148,23 +126,26 @@ void readRicCfg() ricCfgParams.sctpParams.duPort = g_cfg.RIC_Port; ricCfgParams.sctpParams.ricPort = g_cfg.RIC_Port; #else - cmInetAddr((S8*)DU_IP_V4_ADDR, &ipv4_du); - cmInetAddr((S8*)RIC_IP_V4_ADDR, &ipv4_ric); - - ricCfgParams.sctpParams.duPort = DU_PORT; - ricCfgParams.sctpParams.ricPort = RIC_PORT; + ricCfgParams.sctpParams.numDu = 0; + numDu = &ricCfgParams.sctpParams.numDu; + while(*numDu < MAX_DU_SUPPORTED) + { + /* DU IP Address and Port*/ + memset(&ipv4_du, 0, sizeof(uint32_t)); + cmInetAddr((S8*)DU_IP_V4_ADDR[*numDu], &ipv4_du); + ricCfgParams.sctpParams.sctpAssoc[*numDu].duIpAddr.ipV4Addr = ipv4_du; + ricCfgParams.sctpParams.sctpAssoc[*numDu].duIpAddr.ipV6Pres = false; + ricCfgParams.sctpParams.sctpAssoc[*numDu].duPort = DU_SCTP_PORT[*numDu]; + + /* RIC IP Address and Port*/ + memset(&ipv4_du, 0, sizeof(uint32_t)); + cmInetAddr((S8*)RIC_IP_V4_ADDR, &ipv4_ric); + ricCfgParams.sctpParams.sctpAssoc[*numDu].ricIpAddr.ipV4Addr = ipv4_ric; + ricCfgParams.sctpParams.sctpAssoc[*numDu].ricIpAddr.ipV6Pres = false; + ricCfgParams.sctpParams.sctpAssoc[*numDu].ricPort = RIC_SCTP_PORT_TO_DU[*numDu]; + (*numDu)++; + } #endif - - ricCfgParams.ricId = RIC_ID; - strcpy(ricCfgParams.ricName, RIC_NAME); - - /* DU IP Address and Port*/ - ricCfgParams.sctpParams.duIpAddr.ipV4Addr = ipv4_du; - ricCfgParams.sctpParams.duIpAddr.ipV6Pres = false; - - /* RIC IP Address and Port*/ - ricCfgParams.sctpParams.ricIpAddr.ipV4Addr = ipv4_ric; - ricCfgParams.sctpParams.ricIpAddr.ipV6Pres = false; /*PLMN*/ ricCfgParams.plmn.mcc[0] = PLMN_MCC0; diff --git a/src/ric_stub/ric_stub.h b/src/ric_stub/ric_stub.h index 566f07018..b41e9c6da 100644 --- a/src/ric_stub/ric_stub.h +++ b/src/ric_stub/ric_stub.h @@ -19,7 +19,29 @@ #ifndef __RIC_MGR_MAIN_H__ #define __RIC_MGR_MAIN_H__ -#define MAX_IPV6_LEN 16 +#define RIC_ID 1 +#define RIC_NAME "ORAN_OAM_RIC" + +#define DU_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0001" +#define RIC_IP_V6_ADDR "0000:0000:0000:0000:0000:0000:0000:0011" + +#ifndef O1_ENABLE +#define DU_IP_V4_ADDR (char*[]){"192.168.130.81", "192.168.130.83"} +#define DU_SCTP_PORT (int[]){36421, 36422} + +#define RIC_IP_V4_ADDR "192.168.130.80" +#define RIC_SCTP_PORT_TO_DU (int[]){36421, 36422} +#endif + +#define RRC_VER 0 +#define EXT_RRC_VER 5 +#define PLMN_MCC0 3 +#define PLMN_MCC1 1 +#define PLMN_MCC2 1 +#define PLMN_MNC0 4 +#define PLMN_MNC1 8 +#define PLMN_MNC2 0 + #define RIC_DU_NAME_LEN_MAX 30 /* Max length of RIC/DU name string */ #define RIC_APP_MEM_REG 1 @@ -42,28 +64,13 @@ SPutSBuf(RIC_APP_MEM_REG, RIC_POOL, \ (Data *)_datPtr, _size); -typedef struct ipAddr -{ - bool ipV4Pres; - uint32_t ipV4Addr; - bool ipV6Pres; - uint8_t ipV6Addr[MAX_IPV6_LEN]; -}SctpIpAddr; - -typedef struct RicSctpParams -{ - SctpIpAddr duIpAddr; - uint16_t duPort; - SctpIpAddr ricIpAddr; - uint16_t ricPort; -}RicSctpParams; - typedef struct ricCfgParams { - uint32_t ricId; + uint32_t ricId; char ricName[RIC_DU_NAME_LEN_MAX]; RicSctpParams sctpParams; Plmn plmn; + Bool ricSubsStatus; }RicCfgParams; RicCfgParams ricCfgParams; //global variable to hold all configs diff --git a/src/ric_stub/ric_stub_sctp.c b/src/ric_stub/ric_stub_sctp.c index 679c43eca..662087c26 100644 --- a/src/ric_stub/ric_stub_sctp.c +++ b/src/ric_stub/ric_stub_sctp.c @@ -19,16 +19,11 @@ /* This file contains all SCTP related functionality */ #include "common_def.h" -#include "ric_e2ap_msg_hdl.h" #include "ric_stub_sctp.h" #include "ric_stub.h" +#include "ric_e2ap_msg_hdl.h" #include "E2AP-PDU.h" -#include "du_log.h" -CuSctpDestCb ricParams; -RicSctpParams sctpCfg; -S16 fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr); -S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr); /************************************************************************** * @brief Function to configure the Sctp Params during config Request * @@ -44,19 +39,23 @@ S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr); * ***************************************************************************/ -S16 sctpCfgReq() +uint8_t sctpCfgReq() { - connUp = FALSE; - sctpCfg = ricCfgParams.sctpParams; - -/* Fill F1 Params */ - ricParams.destPort = sctpCfg.duPort; - ricParams.srcPort = sctpCfg.ricPort; - ricParams.bReadFdSet = ROK; - memset(&ricParams.sockFd, -1, sizeof(CmInetFd)); - memset(&ricParams.lstnSockFd, -1, sizeof(CmInetFd)); - fillDestNetAddr(&ricParams.destIpNetAddr, &sctpCfg.duIpAddr); + int destIdx; + sctpCb.sctpCfg = ricCfgParams.sctpParams; + for(destIdx=0; destIdx < sctpCb.sctpCfg.numDu; destIdx++) + { + sctpCb.destCb[destIdx].destPort = sctpCb.sctpCfg.sctpAssoc[destIdx].duPort; + sctpCb.destCb[destIdx].srcPort = sctpCb.sctpCfg.sctpAssoc[destIdx].ricPort; + sctpCb.destCb[destIdx].bReadFdSet = ROK; + memset(&sctpCb.destCb[destIdx].sockFd, -1, sizeof(CmInetFd)); + memset(&sctpCb.destCb[destIdx].lstnSockFd, -1, sizeof(CmInetFd)); + fillDestNetAddr(&sctpCb.destCb[destIdx].destIpNetAddr, &sctpCb.sctpCfg.sctpAssoc[destIdx].duIpAddr); + fillAddrLst(&sctpCb.destCb[destIdx].localAddrLst, &sctpCb.sctpCfg.sctpAssoc[destIdx].ricIpAddr); + sctpCb.destCb[destIdx].connUp = false; + } + sctpCb.numDu = sctpCb.sctpCfg.numDu; return ROK; } @@ -78,11 +77,11 @@ S16 sctpCfgReq() * ******************************************************************/ -S16 fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr) +uint8_t fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr) { + addrLstPtr->addrs[addrLstPtr->count].type = CM_INET_IPV4ADDR_TYPE; + addrLstPtr->addrs[addrLstPtr->count].u.ipv4NetAddr = CM_INET_NTOH_UINT32(ipAddr->ipV4Addr); addrLstPtr->count++; - addrLstPtr->addrs[(addrLstPtr->count - 1)].type = CM_INET_IPV4ADDR_TYPE; - addrLstPtr->addrs[(addrLstPtr->count - 1)].u.ipv4NetAddr = CM_INET_NTOH_UINT32(ipAddr->ipV4Addr); return ROK; } @@ -104,7 +103,7 @@ S16 fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr) * RFAILED - failure * *******************************************************************************/ -S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr) +uint8_t fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr) { /* Filling destination address */ destAddrPtr->type = CM_INET_IPV4ADDR_TYPE; @@ -129,25 +128,31 @@ S16 fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr) * *******************************************************************************/ -S16 sctpStartReq() +uint8_t sctpStartReq() { - S16 ret = ROK; + uint8_t destIdx = 0; + uint8_t ret = ROK; + socket_type = CM_INET_STREAM; - fillAddrLst(&ricParams.localAddrLst, &sctpCfg.ricIpAddr); - if((ret = cmInetSocket(socket_type, &ricParams.lstnSockFd, IPPROTO_SCTP) != ROK)) - { - DU_LOG("\nERROR --> SCTP : Socket[%d] coudnt open for listening", ricParams.lstnSockFd.fd); - } - else if((ret = cmInetSctpBindx(&ricParams.lstnSockFd, &ricParams.localAddrLst, ricParams.srcPort)) != ROK) + for(destIdx=0; destIdx < sctpCb.numDu; destIdx++) { - DU_LOG("\nERROR --> SCTP: Binding failed at RIC"); - } - else if((ret = sctpAccept(&ricParams.lstnSockFd, &ricParams.peerAddr, &ricParams.sockFd)) != ROK) - { - DU_LOG("\nERROR --> SCTP: Unable to accept the connection at RIC"); + if((ret = cmInetSocket(socket_type, &sctpCb.destCb[destIdx].lstnSockFd, IPPROTO_SCTP) != ROK)) + { + DU_LOG("\nERROR --> SCTP : Socket[%d] coudnt open for listening", sctpCb.destCb[destIdx].lstnSockFd.fd); + } + else if((ret = cmInetSctpBindx(&sctpCb.destCb[destIdx].lstnSockFd, &sctpCb.destCb[destIdx].localAddrLst, \ + sctpCb.destCb[destIdx].srcPort)) != ROK) + { + DU_LOG("\nERROR --> SCTP: Binding failed at RIC"); + } + else if((ret = sctpAccept(&sctpCb.destCb[destIdx])) != ROK) + { + DU_LOG("\nERROR --> SCTP: Unable to accept the connection at RIC"); + } } - else if(sctpSockPoll() != ROK) + + if(sctpSockPoll() != ROK) { DU_LOG("\nERROR --> SCTP: Polling failed to start at RIC"); } @@ -169,7 +174,7 @@ S16 sctpStartReq() * RFAILED - failure * * ****************************************************************/ -S16 sctpSetSockOpts(CmInetFd *sock_Fd) +uint8_t sctpSetSockOpts(CmInetFd *sock_Fd) { S16 ret = ROK; CmSctpEvent sctpEvent; @@ -208,23 +213,23 @@ S16 sctpSetSockOpts(CmInetFd *sock_Fd) * RFAILED - failure * * ****************************************************************/ -S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd) +uint8_t sctpAccept(RicSctpDestCb *destCb) { uint8_t ret; - ret = cmInetListen(lstnSock_Fd, 1); + ret = cmInetListen(&destCb->lstnSockFd, 1); if (ret != ROK) { DU_LOG("\nERROR --> SCTP : Listening on socket failed"); - cmInetClose(lstnSock_Fd); + cmInetClose(&destCb->lstnSockFd); return RFAILED; } DU_LOG("\nINFO --> SCTP : Connecting"); - while(!connUp) + while(!destCb->connUp) { - ret = cmInetAccept(lstnSock_Fd, peerAddr, sock_Fd); + ret = cmInetAccept(&destCb->lstnSockFd, &destCb->peerAddr, &destCb->sockFd); if (ret == ROKDNA) { continue; @@ -236,8 +241,8 @@ S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd) } else { - connUp = TRUE; - sctpSetSockOpts(sock_Fd); + destCb->connUp = TRUE; + sctpSetSockOpts(&destCb->sockFd); break; } } @@ -263,7 +268,7 @@ S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd) * RFAILED - failure * * ****************************************************************/ -S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) +uint8_t sctpNtfyHdlr(RicSctpDestCb *destCb, CmInetSctpNotification *ntfy) { switch(ntfy->header.nType) { @@ -273,23 +278,23 @@ S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) { case CM_INET_SCTP_COMM_UP: DU_LOG("\nINFO --> Event : COMMUNICATION UP"); - connUp = TRUE; + destCb->connUp = TRUE; break; case CM_INET_SCTP_COMM_LOST: DU_LOG("\nINFO --> Event : COMMUNICATION LOST"); - connUp = FALSE; + destCb->connUp = FALSE; break; case CM_INET_SCTP_RESTART: DU_LOG("\nINFO --> Event : SCTP RESTART"); - connUp = FALSE; + destCb->connUp = FALSE; break; case CM_INET_SCTP_SHUTDOWN_COMP: /* association gracefully shutdown */ DU_LOG("\nINFO --> Event : SHUTDOWN COMPLETE"); - connUp = FALSE; + destCb->connUp = FALSE; break; case CM_INET_SCTP_CANT_STR_ASSOC: DU_LOG("\nINFO --> Event : CANT START ASSOC"); - connUp = FALSE; + destCb->connUp = FALSE; break; default: DU_LOG("\nERROR --> Invalid event"); @@ -308,7 +313,7 @@ S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) break; case CM_INET_SCTP_SHUTDOWN_EVENT : /* peer socket gracefully closed */ DU_LOG("\nINFO --> SCTP : Shutdown Event notification received\n"); - connUp = FALSE; + destCb->connUp = FALSE; exit(0); break; case CM_INET_SCTP_ADAPTATION_INDICATION : @@ -342,8 +347,9 @@ S16 sctpNtfyHdlr(CmInetSctpNotification *ntfy) * RFAILED - failure * * ****************************************************************/ -S16 sctpSockPoll() +uint8_t sctpSockPoll() { + uint8_t destIdx; uint16_t ret = ROK; uint32_t timeout; uint32_t *timeoutPtr; @@ -352,18 +358,9 @@ S16 sctpSockPoll() memset(&e2PollParams, 0, sizeof(sctpSockPollParams)); - if(ricParams.sockFd.blocking) - { - /* blocking */ - timeoutPtr = NULLP; - } - else - { - /* non-blocking */ - timeout = 0; - timeoutPtr = &timeout; - } - + /* All sockets are non-blocking */ + timeout = 0; + timeoutPtr = &timeout; memInfo.region = RIC_APP_MEM_REG; memInfo.pool = RIC_POOL; @@ -372,9 +369,14 @@ S16 sctpSockPoll() DU_LOG("\nINFO --> SCTP : Polling started at RIC\n"); while(1) { - if((ret = processPolling(&e2PollParams, &ricParams.sockFd, timeoutPtr, &memInfo)) != ROK) + /* Receiving SCTP data */ + for(destIdx = 0; destIdx < sctpCb.numDu; destIdx++) { - DU_LOG("\nERROR --> SCTP : Failed to RecvMsg for E2 at RIC \n"); + + if((ret = processPolling(&e2PollParams, &sctpCb.destCb[destIdx], timeoutPtr, &memInfo)) != ROK) + { + DU_LOG("\nERROR --> SCTP : Failed to RecvMsg for E2 at RIC \n"); + } } }; return (ret); @@ -404,30 +406,32 @@ S16 sctpSockPoll() * ****************************************************************/ -S16 processPolling(sctpSockPollParams *pollParams, CmInetFd *sockFd, uint32_t *timeoutPtr, CmInetMemInfo *memInfo) +uint8_t processPolling(sctpSockPollParams *pollParams, RicSctpDestCb *destCb, uint32_t *timeoutPtr, CmInetMemInfo *memInfo) { uint16_t ret = ROK; - CM_INET_FD_SET(sockFd, &pollParams->readFd); + + CM_INET_FD_SET(&destCb->sockFd, &pollParams->readFd); ret = cmInetSelect(&pollParams->readFd, NULLP, timeoutPtr, &pollParams->numFd); - if(CM_INET_FD_ISSET(sockFd, &pollParams->readFd)) + if(CM_INET_FD_ISSET(&destCb->sockFd, &pollParams->readFd)) { - CM_INET_FD_CLR(sockFd, &pollParams->readFd); - ret = cmInetSctpRecvMsg(sockFd, &pollParams->addr, &pollParams->port, memInfo, &pollParams->mBuf, &pollParams->bufLen, &pollParams->info, &pollParams->flag, &pollParams->ntfy); - if(connUp & (ret != ROK)) + CM_INET_FD_CLR(&destCb->sockFd, &pollParams->readFd); + ret = cmInetSctpRecvMsg(&destCb->sockFd, &pollParams->addr, &pollParams->port, memInfo, &pollParams->mBuf, \ + &pollParams->bufLen, &pollParams->info, &pollParams->flag, &pollParams->ntfy); + if(destCb->connUp & (ret != ROK)) { - ricParams.bReadFdSet = RFAILED; + destCb->bReadFdSet = RFAILED; } else { if(((pollParams->flag & CM_INET_SCTP_MSG_NOTIFICATION) != 0) && (ret == ROK)) { - ret = sctpNtfyHdlr(&pollParams->ntfy); + ret = sctpNtfyHdlr(destCb, &pollParams->ntfy); if(ret != ROK) { DU_LOG("\nERROR --> SCTP : Failed to process sctp notify msg\n"); } } - else if(connUp & (pollParams->port == ricParams.destPort)) + else if(destCb->connUp & (pollParams->port == destCb->destPort)) { E2APMsgHdlr(pollParams->mBuf); ODU_PUT_MSG_BUF(pollParams->mBuf); @@ -457,7 +461,7 @@ S16 processPolling(sctpSockPollParams *pollParams, CmInetFd *sockFd, uint32_t *t * RFAILED - failure * * ****************************************************************/ -S16 sctpSend(Buffer *mBuf) +uint8_t sctpSend(Buffer *mBuf) { uint8_t ret; MsgLen len; /* number of actually sent octets */ @@ -466,7 +470,8 @@ S16 sctpSend(Buffer *mBuf) memInfo.region = RIC_APP_MEM_REG; memInfo.pool = RIC_POOL; - ret = cmInetSctpSendMsg(&ricParams.sockFd, &ricParams.destIpNetAddr, ricParams.destPort, &memInfo, mBuf, &len, 0, FALSE, 0, 0/*SCT_PROTID_NONE*/, RWOULDBLOCK); + ret = cmInetSctpSendMsg(&sctpCb.destCb[0].sockFd, &sctpCb.destCb[0].destIpNetAddr, sctpCb.destCb[0].destPort, &memInfo, \ + mBuf, &len, 0, FALSE, 0, 0/*SCT_PROTID_NONE*/, RWOULDBLOCK); if(ret != ROK && ret != RWOULDBLOCK) { diff --git a/src/ric_stub/ric_stub_sctp.h b/src/ric_stub/ric_stub_sctp.h index fd72abbda..37da87890 100644 --- a/src/ric_stub/ric_stub_sctp.h +++ b/src/ric_stub/ric_stub_sctp.h @@ -20,13 +20,13 @@ #ifndef __RIC_SCTP_H__ #define __RIC_SCTP_H__ + #define MAX_RETRY 5 +#define MAX_IPV6_LEN 16 +#define MAX_DU_SUPPORTED 1 /* Global variable declaration */ uint8_t socket_type; /* Socket type */ -bool nonblocking; /* Blocking/Non-blocking socket */ -bool connUp; /* Is connection up */ -int assocId; /* Assoc Id of connected assoc */ typedef struct { @@ -52,16 +52,50 @@ typedef struct CmInetNetAddrLst destAddrLst; /* DU Ip address */ CmInetNetAddrLst localAddrLst; CmInetNetAddr destIpNetAddr; /* DU Ip address */ -}CuSctpDestCb; + Bool connUp; +}RicSctpDestCb; + +typedef struct ipAddr +{ + bool ipV4Pres; + uint32_t ipV4Addr; + bool ipV6Pres; + uint8_t ipV6Addr[MAX_IPV6_LEN]; +}SctpIpAddr; + +typedef struct sctpAssocInfo +{ + SctpIpAddr duIpAddr; + uint16_t duPort; + SctpIpAddr ricIpAddr; + uint16_t ricPort; +}SctpAssocInfo; + +typedef struct ricSctpParams +{ + uint8_t numDu; + SctpAssocInfo sctpAssoc[MAX_DU_SUPPORTED]; +}RicSctpParams; + +typedef struct sctpGlobalCb +{ + RicSctpParams sctpCfg; + uint8_t numDu; + RicSctpDestCb destCb[MAX_DU_SUPPORTED]; +}SctpGlobalCb; + +SctpGlobalCb sctpCb; -S16 sctpActvInit(); -S16 sctpSend(Buffer *mBuf); -S16 sctpCfgReq(); -S16 sctpStartReq(); -S16 sctpSetSockOpts(CmInetFd *sock_Fd); -S16 sctpAccept(CmInetFd *lstnSock_Fd, CmInetAddr *peerAddr, CmInetFd *sock_Fd); -S16 sctpSockPoll(); -S16 processPolling(sctpSockPollParams *pollParams, CmInetFd *sockFd, uint32_t *timeoutPtr, CmInetMemInfo *memInfo); +uint8_t sctpActvInit(); +uint8_t sctpSend(Buffer *mBuf); +uint8_t sctpCfgReq(); +uint8_t sctpStartReq(); +uint8_t sctpSetSockOpts(CmInetFd *sock_Fd); +uint8_t sctpAccept(RicSctpDestCb *destCb); +uint8_t sctpSockPoll(); +uint8_t processPolling(sctpSockPollParams *pollParams, RicSctpDestCb *destCb, uint32_t *timeoutPtr, CmInetMemInfo *memInfo); +uint8_t fillAddrLst(CmInetNetAddrLst *addrLstPtr, SctpIpAddr *ipAddr); +uint8_t fillDestNetAddr(CmInetNetAddr *destAddrPtr, SctpIpAddr *dstIpPtr); #endif